cbuffer cbuffer_ubo : register(b0, space0) {
  uint4 ubo[1];
};

struct S {
  int data[64];
};

RWByteAddressBuffer result : register(u1, space0);
groupshared S s;

struct tint_symbol_2 {
  uint local_invocation_index : SV_GroupIndex;
};

void f_inner(uint local_invocation_index) {
  {
    [loop] for(uint idx = local_invocation_index; (idx < 64u); idx = (idx + 1u)) {
      const uint i = idx;
      s.data[i] = 0;
    }
  }
  GroupMemoryBarrierWithGroupSync();
  result.Store(0u, asuint(s.data[asint(ubo[0].x)]));
}

[numthreads(1, 1, 1)]
void f(tint_symbol_2 tint_symbol_1) {
  f_inner(tint_symbol_1.local_invocation_index);
  return;
}
