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

#include <metal_stdlib>

using namespace metal;

float4 tint_frexp(float4 param_0, threadgroup int4* param_1) {
  int4 exp;
  float4 sig = frexp(param_0, exp);
  *param_1 = exp;
  return sig;
}

void frexp_b87f4e(threadgroup int4* const tint_symbol_1) {
  float4 res = tint_frexp(float4(), tint_symbol_1);
}

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

