#include <metal_stdlib>

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

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

vertex tint_symbol_2 tint_symbol(uint x_4_param [[instance_id]]) {
  thread int tint_symbol_6 = 0;
  thread float4 tint_symbol_7 = 0.0f;
  tint_symbol_6 = as_type<int>(x_4_param);
  main_1(&(tint_symbol_6));
  main_out const tint_symbol_3 = {.position_1=tint_symbol_7};
  tint_symbol_2 const tint_symbol_4 = {.position_1=tint_symbol_3.position_1};
  return tint_symbol_4;
}

