SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
  %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
}

%fract_a49758 = func():void {
  $B2: {
    %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.25f)
    %4:vec3<f32> = load %arg_0
    %5:vec3<f32> = fract %4
    %res:ptr<function, vec3<f32>, read_write> = var, %5
    %7:vec3<f32> = load %res
    store %prevent_dce, %7
    ret
  }
}
%vertex_main = @vertex func():vec4<f32> [@position] {
  $B3: {
    %9:void = call %fract_a49758
    ret vec4<f32>(0.0f)
  }
}
%fragment_main = @fragment func():void {
  $B4: {
    %11:void = call %fract_a49758
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
  $B5: {
    %13:void = call %fract_a49758
    ret
  }
}

unhandled variable address space
********************************************************************
*  The tint shader compiler has encountered an unexpected error.   *
*                                                                  *
*  Please help us fix this issue by submitting a bug report at     *
*  crbug.com/tint with the source program that triggered the bug.  *
********************************************************************
