RWByteAddressBuffer b : register(u0, space0);

[numthreads(1, 1, 1)]
void main() {
  uint i = 0u;
  while (true) {
    if ((i >= b.Load(0u))) {
      break;
    }
    const uint p_save = i;
    if (((i % 2u) == 0u)) {
      {
        b.Store((4u + (4u * p_save)), asuint((b.Load((4u + (4u * p_save))) * 2u)));
        i = (i + 1u);
      }
      continue;
    }
    b.Store((4u + (4u * p_save)), asuint(0u));
    {
      b.Store((4u + (4u * p_save)), asuint((b.Load((4u + (4u * p_save))) * 2u)));
      i = (i + 1u);
    }
  }
  return;
}
