#include <metal_stdlib>

using namespace metal;
struct tint_symbol_5 {
  float2x2 W;
};

void tint_zero_workgroup_memory(uint local_idx, threadgroup float2x2* const tint_symbol_1) {
  {
    *(tint_symbol_1) = float2x2(float2(0.0f), float2(0.0f));
  }
  threadgroup_barrier(mem_flags::mem_threadgroup);
}

void F_inner(uint mat2x2, threadgroup float2x2* const tint_symbol_2) {
  tint_zero_workgroup_memory(mat2x2, tint_symbol_2);
  (*(tint_symbol_2))[0] = ((*(tint_symbol_2))[0] + 0.0f);
}

kernel void F(threadgroup tint_symbol_5* tint_symbol_4 [[threadgroup(0)]], uint mat2x2 [[thread_index_in_threadgroup]]) {
  threadgroup float2x2* const tint_symbol_3 = &((*(tint_symbol_4)).W);
  F_inner(mat2x2, tint_symbol_3);
  return;
}

