SKIP: FAILED

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

%textureSampleCompare_dec064 = func():void {
  $B2: {
    %5:texture_depth_2d = load %arg_0
    %6:sampler_comparison = load %arg_1
    %7:f32 = textureSampleCompare %5, %6, vec2<f32>(1.0f), 1.0f, vec2<i32>(1i)
    %res:ptr<function, f32, read_write> = var, %7
    %9:f32 = load %res
    store %prevent_dce, %9
    ret
  }
}
%fragment_main = @fragment func():void {
  $B3: {
    %11:void = call %textureSampleCompare_dec064
    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.  *
********************************************************************
