// #target: macos-x64 module test; fn void tester() { bool? x = false; x ?? true; } /* #expect: test.ll define void @test.tester() #0 { entry: %x = alloca i8, align 1 %x.f = alloca i64, align 8 store i8 0, ptr %x, align 1 store i64 0, ptr %x.f, align 8 %optval = load i64, ptr %x.f, align 8 %not_err = icmp eq i64 %optval, 0 %0 = call i1 @llvm.expect.i1(i1 %not_err, i1 true) br i1 %0, label %after_check, label %else_block after_check: ; preds = %entry %1 = load i8, ptr %x, align 1 %2 = trunc i8 %1 to i1 br label %phi_block else_block: ; preds = %entry br label %phi_block phi_block: ; preds = %else_block, %after_check %val = phi i1 [ %2, %after_check ], [ true, %else_block ] ret void }