[[block]]
struct UBO {
  dynamic_idx: i32;
};
[[group(0), binding(0)]] var<uniform> ubo: UBO;
struct S {
  data: array<i32, 64>;
};
[[block]]
struct Result {
  out: i32;
};
[[group(0), binding(1)]] var<storage, read_write> result: Result;

var<workgroup> s : S;

[[stage(compute), workgroup_size(1)]]
fn f() {
  s.data[ubo.dynamic_idx] = 1;
  result.out = s.data[3];
}