SKIP: FAILED

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

%firstLeadingBit_f0779d = func():void {
  $B2: {
    %arg_0:ptr<function, u32, read_write> = var, 1u
    %4:u32 = load %arg_0
    %5:u32 = let %4
    %6:u32 = and %5, 4294901760u
    %7:bool = eq %6, 0u
    %8:u32 = select 16u, 0u, %7
    %9:u32 = let %8
    %10:u32 = shr %5, %9
    %11:u32 = and %10, 65280u
    %12:bool = eq %11, 0u
    %13:u32 = select 8u, 0u, %12
    %14:u32 = let %13
    %15:u32 = shr %10, %14
    %16:u32 = and %15, 240u
    %17:bool = eq %16, 0u
    %18:u32 = select 4u, 0u, %17
    %19:u32 = let %18
    %20:u32 = shr %15, %19
    %21:u32 = and %20, 12u
    %22:bool = eq %21, 0u
    %23:u32 = select 2u, 0u, %22
    %24:u32 = let %23
    %25:u32 = shr %20, %24
    %26:u32 = and %25, 2u
    %27:bool = eq %26, 0u
    %28:u32 = select 1u, 0u, %27
    %29:u32 = or %24, %28
    %30:u32 = or %19, %29
    %31:u32 = or %14, %30
    %32:u32 = or %9, %31
    %33:bool = eq %25, 0u
    %34:u32 = select %32, 4294967295u, %33
    %res:ptr<function, u32, read_write> = var, %34
    %36:u32 = load %res
    store %prevent_dce, %36
    ret
  }
}
%vertex_main = @vertex func():vec4<f32> [@position] {
  $B3: {
    %38:void = call %firstLeadingBit_f0779d
    ret vec4<f32>(0.0f)
  }
}
%fragment_main = @fragment func():void {
  $B4: {
    %40:void = call %firstLeadingBit_f0779d
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
  $B5: {
    %42:void = call %firstLeadingBit_f0779d
    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.  *
********************************************************************
