type Arr = array<u32, 50>;

[[block]]
struct Buf{
  count : u32;
  data : Arr;
};

[[group(0), binding (0)]] var<storage, read_write> b : Buf;

[[stage(compute), workgroup_size(1)]]
fn main() {
  var i : u32 = 0u;
  loop {
    if (i >= b.count) { break; }
    let p : ptr<storage, u32, read_write> = &b.data[i];
    if ((i % 2u) == 0u) { continue; }
    *p = 0u;              // Set odd elements of the array to 0
    continuing {
      *p = *p * 2u;        // Double the value in the array entry
      i = i + 1u;
    }
  }
  return;
}
