#include <metal_stdlib>
using namespace metal;
struct frexp_result_vec2_f16 {
  half2 fract;
  int2 exp;
};
struct vertex_main_outputs {
  float4 tint_symbol [[position]];
};

void frexp_5f47bf() {
  frexp_result_vec2_f16 res = frexp_result_vec2_f16{.fract=half2(0.5h), .exp=int2(1)};
}
float4 vertex_main_inner() {
  frexp_5f47bf();
  return float4(0.0f);
}
fragment void fragment_main() {
  frexp_5f47bf();
}
kernel void compute_main() {
  frexp_5f47bf();
}
vertex vertex_main_outputs vertex_main() {
  return vertex_main_outputs{.tint_symbol=vertex_main_inner()};
}
