SKIP: FAILED

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

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