#include <metal_stdlib>

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

float4 func(threadgroup float4* const pointer) {
  return *(pointer);
}

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);
  float4 const r = 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;
}

