#include <metal_stdlib>

using namespace metal;
struct main_out {
  uint x_2_1;
  uint x_4_1;
};
struct tint_symbol_2 {
  uint x_1_param [[user(locn0)]];
  uint x_3_param [[user(locn30)]];
};
struct tint_symbol_3 {
  uint x_2_1 [[color(0)]];
  uint x_4_1 [[color(40)]];
};

void main_1() {
  return;
}

fragment tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1 [[stage_in]]) {
  thread uint tint_symbol_6 = 0u;
  thread uint tint_symbol_7 = 0u;
  thread uint tint_symbol_8 = 0u;
  thread uint tint_symbol_9 = 0u;
  uint const x_1_param = tint_symbol_1.x_1_param;
  uint const x_3_param = tint_symbol_1.x_3_param;
  tint_symbol_6 = x_1_param;
  tint_symbol_7 = x_3_param;
  main_1();
  main_out const tint_symbol_4 = {.x_2_1=tint_symbol_8, .x_4_1=tint_symbol_9};
  tint_symbol_3 const tint_symbol_5 = {.x_2_1=tint_symbol_4.x_2_1, .x_4_1=tint_symbol_4.x_4_1};
  return tint_symbol_5;
}

