xref: /llvm-project/llvm/test/CodeGen/X86/cmp-bool.ll (revision 2f448bf509432c1a19ec46ab8cbc7353c03c6280)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -mtriple=x86_64 < %s | FileCheck %s
3
4define void @bool_eq(i1 zeroext %a, i1 zeroext %b, ptr nocapture %c) nounwind {
5; CHECK-LABEL: bool_eq:
6; CHECK:       # %bb.0: # %entry
7; CHECK-NEXT:    xorl %esi, %edi
8; CHECK-NEXT:    je .LBB0_2
9; CHECK-NEXT:  # %bb.1: # %if.end
10; CHECK-NEXT:    retq
11; CHECK-NEXT:  .LBB0_2: # %if.then
12; CHECK-NEXT:    jmpq *%rdx # TAILCALL
13entry:
14  %0 = xor i1 %a, %b
15  br i1 %0, label %if.end, label %if.then
16
17if.then:
18  tail call void %c() #1
19  br label %if.end
20
21if.end:
22  ret void
23}
24
25define void @bool_ne(i1 zeroext %a, i1 zeroext %b, ptr nocapture %c) nounwind {
26; CHECK-LABEL: bool_ne:
27; CHECK:       # %bb.0: # %entry
28; CHECK-NEXT:    cmpb %sil, %dil
29; CHECK-NEXT:    je .LBB1_1
30; CHECK-NEXT:  # %bb.2: # %if.then
31; CHECK-NEXT:    jmpq *%rdx # TAILCALL
32; CHECK-NEXT:  .LBB1_1: # %if.end
33; CHECK-NEXT:    retq
34entry:
35  %cmp = xor i1 %a, %b
36  br i1 %cmp, label %if.then, label %if.end
37
38if.then:
39  tail call void %c() #1
40  br label %if.end
41
42if.end:
43  ret void
44}
45