struct Constants {
  zero : u32;
}

[[group(1), binding(0)]] var<uniform> constants : Constants;

struct Result {
  value : u32;
}

[[group(1), binding(1)]] var<storage, write> result : Result;

struct TestData {
  data : array<atomic<i32>, 3>;
}

[[group(0), binding(0)]] var<storage, read_write> s : TestData;

fn runTest() -> i32 {
  return atomicLoad(&(s.data[(0u + u32(constants.zero))]));
}

[[stage(compute), workgroup_size(1)]]
fn main() {
  result.value = u32(runTest());
}
