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

#include <metal_stdlib>

using namespace metal;

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

void modf_bb9088(threadgroup float3* const tint_symbol_1) {
  float3 res = tint_modf(float3(), tint_symbol_1);
}

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

