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()]++) {
  }
}
