SKIP: FAILED

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

%max_e14f2b = func():void {
  $B2: {
    %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
    %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
    %5:vec4<f16> = load %arg_0
    %6:vec4<f16> = load %arg_1
    %7:vec4<f16> = max %5, %6
    %res:ptr<function, vec4<f16>, read_write> = var, %7
    %9:vec4<f16> = load %res
    store %prevent_dce, %9
    ret
  }
}
%vertex_main = @vertex func():vec4<f32> [@position] {
  $B3: {
    %11:void = call %max_e14f2b
    ret vec4<f32>(0.0f)
  }
}
%fragment_main = @fragment func():void {
  $B4: {
    %13:void = call %max_e14f2b
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
  $B5: {
    %15:void = call %max_e14f2b
    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.  *
********************************************************************
