#include <metal_stdlib>

using namespace metal;
struct tint_array_wrapper {
  int arr[1];
};

void main_1() {
  return;
}

void tint_symbol_inner(uint x_1_param, thread tint_array_wrapper* const tint_symbol_1) {
  (*(tint_symbol_1)).arr[0] = as_type<int>(x_1_param);
  main_1();
}

fragment void tint_symbol(uint x_1_param [[sample_mask]]) {
  thread tint_array_wrapper tint_symbol_2 = {};
  tint_symbol_inner(x_1_param, &(tint_symbol_2));
  return;
}

