SKIP: FAILED


fn frexp_d14b16(tint_symbol_2 : ptr<private, vec4<u32>>) {
  var res : vec4<f32> = frexp(vec4<f32>(), &(*(tint_symbol_2)));
}

struct tint_symbol {
  [[builtin(position)]]
  value : vec4<f32>;
};

[[stage(vertex)]]
fn vertex_main() -> tint_symbol {
  [[internal(disable_validation__function_var_storage_class)]] var<private> tint_symbol_3 : vec4<u32>;
  frexp_d14b16(&(tint_symbol_3));
  let tint_symbol_1 : tint_symbol = tint_symbol(vec4<f32>());
  return tint_symbol_1;
}

[[stage(fragment)]]
fn fragment_main() {
  [[internal(disable_validation__function_var_storage_class)]] var<private> tint_symbol_4 : vec4<u32>;
  frexp_d14b16(&(tint_symbol_4));
}

[[stage(compute)]]
fn compute_main() {
  [[internal(disable_validation__function_var_storage_class)]] var<private> tint_symbol_5 : vec4<u32>;
  frexp_d14b16(&(tint_symbol_5));
}

Failed to generate: error: Unknown import method: frexp
