#include <metal_stdlib>

using namespace metal;
struct tint_array_wrapper {
  int arr[1];
};
struct main_out {
  uint x_1_1;
};
struct tint_symbol_1 {
  uint x_1_1 [[sample_mask]];
};

void main_1(thread tint_array_wrapper* const tint_symbol_3) {
  (*(tint_symbol_3)).arr[0] = 12;
  return;
}

main_out tint_symbol_inner(thread tint_array_wrapper* const tint_symbol_4) {
  main_1(tint_symbol_4);
  main_out const tint_symbol_2 = {.x_1_1=as_type<uint>((*(tint_symbol_4)).arr[0])};
  return tint_symbol_2;
}

fragment tint_symbol_1 tint_symbol() {
  thread tint_array_wrapper tint_symbol_5 = {};
  main_out const inner_result = tint_symbol_inner(&(tint_symbol_5));
  tint_symbol_1 wrapper_result = {};
  wrapper_result.x_1_1 = inner_result.x_1_1;
  return wrapper_result;
}

