SKIP: FAILED

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

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