#include <metal_stdlib>
using namespace metal;

struct modf_result_vec2_f32 {
  float2 fract;
  float2 whole;
};

kernel void tint_symbol() {
  float2 const runtime_in = float2(1.25f, 3.75f);
  modf_result_vec2_f32 res = modf_result_vec2_f32{.fract=float2(0.25f, 0.75f), .whole=float2(1.0f, 3.0f)};
  modf_result_vec2_f32 v = {};
  v.fract = modf(runtime_in, v.whole);
  res = v;
  res = modf_result_vec2_f32{.fract=float2(0.25f, 0.75f), .whole=float2(1.0f, 3.0f)};
  float2 const fract = res.fract;
  float2 const whole = res.whole;
}
