#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 [[thread_position_in_threadgroup]]) {
  thread int3 tint_symbol_3 = 0;
  tint_symbol_inner(x_1_param, &(tint_symbol_3));
  return;
}

