#include <metal_stdlib>
using namespace metal;
struct frexp_result_vec4_f16 {
  half4 fract;
  int4 exp;
};
struct vertex_main_outputs {
  float4 tint_symbol [[position]];
};

void frexp_3dd21e() {
  frexp_result_vec4_f16 res = frexp_result_vec4_f16{.fract=half4(0.5h), .exp=int4(1)};
}
float4 vertex_main_inner() {
  frexp_3dd21e();
  return float4(0.0f);
}
fragment void fragment_main() {
  frexp_3dd21e();
}
kernel void compute_main() {
  frexp_3dd21e();
}
vertex vertex_main_outputs vertex_main() {
  return vertex_main_outputs{.tint_symbol=vertex_main_inner()};
}
