SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
  %arg_0:ptr<handle, texture_depth_2d_array, 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)
}

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