SKIP: FAILED

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

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