#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() {
  return;
}

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

