intrinsics/gen/modf/e38ae6.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, threadgroup float* param_1) {
  float whole;
  float fract = modf(param_0, whole);
  *param_1 = whole;
  return fract;
}

void modf_e38ae6(threadgroup float* const tint_symbol_1) {
  float res = tint_modf(1.0f, tint_symbol_1);
}

kernel void compute_main(uint local_invocation_index [[thread_index_in_threadgroup]]) {
  threadgroup float tint_symbol_2;
  {
    tint_symbol_2 = float();
  }
  threadgroup_barrier(mem_flags::mem_threadgroup);
  modf_e38ae6(&(tint_symbol_2));
  return;
}

