SKIP: FAILED

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

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