#include <metal_stdlib>
using namespace metal;
struct VertexOutput {
  float4 pos;
};
struct vertex_main_outputs {
  float4 VertexOutput_pos [[position]];
};

void select_431dfb() {
  bool2 arg_2 = bool2(true);
  int2 res = select(int2(1), int2(1), arg_2);
}
fragment void fragment_main() {
  select_431dfb();
}
kernel void compute_main() {
  select_431dfb();
}
VertexOutput vertex_main_inner() {
  VertexOutput out = {};
  out.pos = float4(0.0f);
  select_431dfb();
  return out;
}
vertex vertex_main_outputs vertex_main() {
  return vertex_main_outputs{.VertexOutput_pos=vertex_main_inner().pos};
}
