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