#include <metal_stdlib>

using namespace metal;
void main_1(thread int3* const tint_symbol_1) {
  int3 const x_2 = *(tint_symbol_1);
  return;
}

void tint_symbol_inner(uint3 x_1_param, thread int3* const tint_symbol_2) {
  *(tint_symbol_2) = as_type<int3>(x_1_param);
  main_1(tint_symbol_2);
}

kernel void tint_symbol(uint3 x_1_param [[threadgroup_position_in_grid]]) {
  thread int3 tint_symbol_3 = 0;
  tint_symbol_inner(x_1_param, &(tint_symbol_3));
  return;
}

