#include <metal_stdlib>
using namespace metal;
struct modf_result_vec4_f32 {
  float4 fract;
  float4 whole;
};
struct vertex_main_outputs {
  float4 tint_symbol [[position]];
};

void modf_4bfced() {
  modf_result_vec4_f32 res = modf_result_vec4_f32{.fract=float4(-0.5f), .whole=float4(-1.0f)};
}
float4 vertex_main_inner() {
  modf_4bfced();
  return float4(0.0f);
}
fragment void fragment_main() {
  modf_4bfced();
}
kernel void compute_main() {
  modf_4bfced();
}
vertex vertex_main_outputs vertex_main() {
  return vertex_main_outputs{.tint_symbol=vertex_main_inner()};
}
