blob: 44f3fbf9a3a3e3e8781fc6b697a344b7effed378 [file] [log] [blame] [edit]
struct S {
a : i32,
b : vec4<f32>,
c : mat2x2<f32>,
}
@group(0) @binding(0)
var<storage, read_write> v : S;
var<private> i : u32;
fn idx1() -> i32 {
i += 1u;
return 1;
}
fn idx2() -> i32 {
i += 2u;
return 1;
}
fn idx3() -> i32 {
i += 3u;
return 1;
}
@compute @workgroup_size(1)
fn foo() {
var a = array<f32, 4>();
// Make sure that the functions are only evaluated once each.
for (a[idx1()] *= 2.0; a[idx2()] < 10.0; a[idx3()] += 1.0) {
}
}