cbuffer cbuffer_u : register(b0) {
  uint4 u[1];
};
groupshared float2x2 w;

struct tint_symbol_1 {
  uint local_invocation_index : SV_GroupIndex;
};

float2x2 u_load(uint offset) {
  const uint scalar_offset = ((offset + 0u)) / 4;
  uint4 ubo_load = u[scalar_offset / 4];
  const uint scalar_offset_1 = ((offset + 8u)) / 4;
  uint4 ubo_load_1 = u[scalar_offset_1 / 4];
  return float2x2(asfloat(((scalar_offset & 2) ? ubo_load.zw : ubo_load.xy)), asfloat(((scalar_offset_1 & 2) ? ubo_load_1.zw : ubo_load_1.xy)));
}

void f_inner(uint local_invocation_index) {
  {
    w = float2x2((0.0f).xx, (0.0f).xx);
  }
  GroupMemoryBarrierWithGroupSync();
  w = u_load(0u);
  w[1] = asfloat(u[0].xy);
  w[1] = asfloat(u[0].xy).yx;
  w[0][1] = asfloat(u[0].z);
}

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