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) {
  float2 res = tint_modf(float2(), tint_symbol);
}

void compute_main_inner(uint local_invocation_index, threadgroup float2* const tint_symbol_1) {
  {
    *(tint_symbol_1) = float2();
  }
  threadgroup_barrier(mem_flags::mem_threadgroup);
  modf_a128ab(tint_symbol_1);
}

kernel void compute_main(uint local_invocation_index [[thread_index_in_threadgroup]]) {
  threadgroup float2 tint_symbol_2;
  compute_main_inner(local_invocation_index, &(tint_symbol_2));
  return;
}

