#include <metal_stdlib>

using namespace metal;
struct main_out {
  float4 x_1_1;
};
struct tint_symbol_2 {
  float4 x_1_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 [[vertex_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 = {.x_1_1=tint_symbol_7};
  tint_symbol_2 const tint_symbol_4 = {.x_1_1=tint_symbol_3.x_1_1};
  return tint_symbol_4;
}

