1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
// RUN: %wgslc
fn testVariableInialization() {
let x1: u32 = 0;
let x2: vec2<u32> = vec2(0, 0);
let x3: f32 = 0;
let x4: f32 = 0.0;
var v1 = vec2(0.0);
v1 = vec2f(0);
}
@vertex
fn testConcretizationOfArguments() -> @builtin(position) vec4f {
// CHECK-L: vec<unsigned, 2>(0, 0);
let x1 = 0u + vec2(0, 0);
// CHECK-L: vec<int, 2>(0, 0);
let x2 = 0i + vec2(0, 0);
// CHECK-L: vec<float, 2>(0, 0);
let x3 = 0f + vec2(0, 0);
return vec4f();
}
@vertex
fn testArrayConcretization() -> @builtin(position) vec4f {
// CHECK-L: vec<int, 2>(0, 0),
let x1 = array<vec2<i32>, 1>(vec2(0, 0));
// CHECK-L: vec<float, 2>(0, 0),
let x2 = array<vec2<f32>, 1>(vec2(0, 0));
// CHECK-L: vec<float, 2>(0, 0),
// CHECK-L: vec<float, 2>(0, 0),
let x3 = array(vec2(0, 0), vec2(0.0, 0.0));
// CHECK-L: vec<unsigned, 2>(0, 0),
// CHECK-L: vec<unsigned, 2>(0, 0),
let x4 = array(vec2(0, 0), vec2(0u, 0u));
return vec4f();
}
@vertex
fn testInitializerConcretization() -> @builtin(position) vec4f {
// CHECK-L: vec<int, 2>(0, 0)
let x1 = vec2(0, 0);
// CHECK-L: vec<unsigned, 2>(0, 0)
let x2 : vec2<u32> = vec2(0, 0);
return vec4f();
}
@group(0) @binding(0) var<storage, read_write> a: array<atomic<i32>>;
@compute @workgroup_size(1)
fn testArrayAccessMaterialization()
{
let i = 0;
let x = atomicLoad(&a[i]);
}
|