#include <metal_stdlib>

using namespace metal;
struct str {
  float4 i;
};

void func(threadgroup float4* const pointer) {
  *(pointer) = float4(0.0f);
}

void tint_symbol_inner(uint local_invocation_index, threadgroup str* const tint_symbol_2) {
  {
    str const tint_symbol_1 = str{};
    *(tint_symbol_2) = tint_symbol_1;
  }
  threadgroup_barrier(mem_flags::mem_threadgroup);
  func(&((*(tint_symbol_2)).i));
}

kernel void tint_symbol(uint local_invocation_index [[thread_index_in_threadgroup]]) {
  threadgroup str tint_symbol_3;
  tint_symbol_inner(local_invocation_index, &(tint_symbol_3));
  return;
}

