SKIP: FAILED

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

%all_bd2dba = func():void {
  $B2: {
    %arg_0:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
    %4:vec3<bool> = load %arg_0
    %5:bool = all %4
    %res:ptr<function, bool, read_write> = var, %5
    %7:bool = load %res
    %8:bool = eq %7, false
    %9:bool = all %8
    %10:i32 = select 0i, 1i, %9
    store %prevent_dce, %10
    ret
  }
}
%vertex_main = @vertex func():vec4<f32> [@position] {
  $B3: {
    %12:void = call %all_bd2dba
    ret vec4<f32>(0.0f)
  }
}
%fragment_main = @fragment func():void {
  $B4: {
    %14:void = call %all_bd2dba
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
  $B5: {
    %16:void = call %all_bd2dba
    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.  *
********************************************************************
