struct S { a : array<vec4<i32>, 4> } @group(0) @binding(0) var<storage, read_write> buffer : array<S>; var<private> v : u32; fn idx1() -> i32 { v--; return 1; } fn idx2() -> i32 { v--; return 2; } fn idx3() -> i32 { v--; return 3; } fn idx4() -> i32 { v--; return 4; } fn idx5() -> i32 { v--; return 0; } fn idx6() -> i32 { v--; return 2; } fn main() { for (buffer[idx1()].a[idx2()][idx3()]--; v < 10u; buffer[idx4()].a[idx5()][idx6()]--) { } }