intrinsics/gen/modf/f90945.wgsl:29:18 warning: use of deprecated intrinsic
  var res: f32 = modf(1.0, &arg_1);
                 ^^^^

#include <metal_stdlib>

using namespace metal;

float tint_modf(float param_0, thread float* param_1) {
  float whole;
  float fract = modf(param_0, whole);
  *param_1 = whole;
  return fract;
}

struct tint_symbol {
  float4 value [[position]];
};

void modf_f90945() {
  float arg_1 = 0.0f;
  float res = tint_modf(1.0f, &(arg_1));
}

vertex tint_symbol vertex_main() {
  modf_f90945();
  tint_symbol const tint_symbol_1 = {.value=float4()};
  return tint_symbol_1;
}

fragment void fragment_main() {
  modf_f90945();
  return;
}

kernel void compute_main() {
  modf_f90945();
  return;
}

