SKIP: FAILED


fn modf_3d00e2(tint_symbol_2 : ptr<private, vec4<f32>>) {
  var res : vec4<f32> = modf(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<f32>;
  modf_3d00e2(&(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<f32>;
  modf_3d00e2(&(tint_symbol_4));
}

[[stage(compute), workgroup_size(1)]]
fn compute_main() {
  [[internal(disable_validation__function_var_storage_class)]] var<private> tint_symbol_5 : vec4<f32>;
  modf_3d00e2(&(tint_symbol_5));
}

Failed to generate: error: Unknown import method: modf
