#include <metal_stdlib>

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

void main_1(thread tint_array_wrapper* const tint_symbol_1) {
  uint const x_4 = (*(tint_symbol_1)).arr[0];
  return;
}

void tint_symbol_inner(uint x_1_param, thread tint_array_wrapper* const tint_symbol_2) {
  (*(tint_symbol_2)).arr[0] = x_1_param;
  main_1(tint_symbol_2);
}

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

