#include <metal_stdlib>
using namespace metal;

struct frexp_result_vec2_f32 {
  float2 fract;
  int2 exp;
};

kernel void tint_symbol() {
  float2 const runtime_in = float2(1.25f, 3.75f);
  frexp_result_vec2_f32 res = frexp_result_vec2_f32{.fract=float2(0.625f, 0.9375f), .exp=int2(1, 2)};
  frexp_result_vec2_f32 v = {};
  v.fract = frexp(runtime_in, v.exp);
  res = v;
  res = frexp_result_vec2_f32{.fract=float2(0.625f, 0.9375f), .exp=int2(1, 2)};
  float2 const fract = res.fract;
  int2 const exp = res.exp;
}
