intrinsics/gen/modf/1d59e5.wgsl:29:24 warning: use of deprecated intrinsic
  var res: vec4<f32> = modf(vec4<f32>(), &arg_1);
                       ^^^^

#include <metal_stdlib>

using namespace metal;

float4 tint_modf(float4 param_0, threadgroup float4* param_1) {
  float4 whole;
  float4 fract = modf(param_0, whole);
  *param_1 = whole;
  return fract;
}

void modf_1d59e5(threadgroup float4* const tint_symbol_1) {
  float4 res = tint_modf(float4(), tint_symbol_1);
}

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

