#include <metal_stdlib>

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

void tint_symbol_inner(uint local_invocation_index, threadgroup float4* const tint_symbol_1) {
  {
    *(tint_symbol_1) = float4(0.0f);
  }
  threadgroup_barrier(mem_flags::mem_threadgroup);
  float4 const r = func(tint_symbol_1);
}

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

