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

#include <metal_stdlib>

using namespace metal;

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

void modf_a128ab(threadgroup float2* const tint_symbol_1) {
  float2 res = tint_modf(float2(), tint_symbol_1);
}

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

