#include <metal_stdlib>

using namespace metal;
struct main_out {
  float4 x_4_1;
};
struct tint_symbol_2 {
  float4 x_4_1 [[position]];
};

void main_1(thread uint* const tint_symbol_5) {
  uint const x_2 = *(tint_symbol_5);
  return;
}

vertex tint_symbol_2 tint_symbol(uint x_1_param [[instance_id]]) {
  thread uint tint_symbol_6 = 0u;
  thread float4 tint_symbol_7 = 0.0f;
  tint_symbol_6 = x_1_param;
  main_1(&(tint_symbol_6));
  main_out const tint_symbol_3 = {.x_4_1=tint_symbol_7};
  tint_symbol_2 const tint_symbol_4 = {.x_4_1=tint_symbol_3.x_4_1};
  return tint_symbol_4;
}

