xref: /llvm-project/llvm/test/CodeGen/RISCV/cmp-bool.ll (revision 1456b68686808fa7c6ed7327aba65b639f81d5b8)
12b6215f1SRoger Ferrer Ibanez; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
22b6215f1SRoger Ferrer Ibanez; RUN: llc -mtriple=riscv32 < %s | FileCheck --check-prefix=RV32 %s
32b6215f1SRoger Ferrer Ibanez; RUN: llc -mtriple=riscv64 < %s | FileCheck --check-prefix=RV64 %s
42b6215f1SRoger Ferrer Ibanez
5*1456b686SNikita Popovdefine void @bool_eq(i1 zeroext %a, i1 zeroext %b, ptr nocapture %c) nounwind {
62b6215f1SRoger Ferrer Ibanez; RV32-LABEL: bool_eq:
72b6215f1SRoger Ferrer Ibanez; RV32:       # %bb.0: # %entry
82b6215f1SRoger Ferrer Ibanez; RV32-NEXT:    beq a0, a1, .LBB0_2
92b6215f1SRoger Ferrer Ibanez; RV32-NEXT:  # %bb.1: # %if.end
102b6215f1SRoger Ferrer Ibanez; RV32-NEXT:    ret
112b6215f1SRoger Ferrer Ibanez; RV32-NEXT:  .LBB0_2: # %if.then
122b6215f1SRoger Ferrer Ibanez; RV32-NEXT:    jr a2
132b6215f1SRoger Ferrer Ibanez;
142b6215f1SRoger Ferrer Ibanez; RV64-LABEL: bool_eq:
152b6215f1SRoger Ferrer Ibanez; RV64:       # %bb.0: # %entry
162b6215f1SRoger Ferrer Ibanez; RV64-NEXT:    beq a0, a1, .LBB0_2
172b6215f1SRoger Ferrer Ibanez; RV64-NEXT:  # %bb.1: # %if.end
182b6215f1SRoger Ferrer Ibanez; RV64-NEXT:    ret
192b6215f1SRoger Ferrer Ibanez; RV64-NEXT:  .LBB0_2: # %if.then
202b6215f1SRoger Ferrer Ibanez; RV64-NEXT:    jr a2
212b6215f1SRoger Ferrer Ibanezentry:
222b6215f1SRoger Ferrer Ibanez  %0 = xor i1 %a, %b
232b6215f1SRoger Ferrer Ibanez  br i1 %0, label %if.end, label %if.then
242b6215f1SRoger Ferrer Ibanez
252b6215f1SRoger Ferrer Ibanezif.then:
262b6215f1SRoger Ferrer Ibanez  tail call void %c() #1
272b6215f1SRoger Ferrer Ibanez  br label %if.end
282b6215f1SRoger Ferrer Ibanez
292b6215f1SRoger Ferrer Ibanezif.end:
302b6215f1SRoger Ferrer Ibanez  ret void
312b6215f1SRoger Ferrer Ibanez}
322b6215f1SRoger Ferrer Ibanez
33*1456b686SNikita Popovdefine void @bool_ne(i1 zeroext %a, i1 zeroext %b, ptr nocapture %c) nounwind {
342b6215f1SRoger Ferrer Ibanez; RV32-LABEL: bool_ne:
352b6215f1SRoger Ferrer Ibanez; RV32:       # %bb.0: # %entry
3614bc5e14SRoger Ferrer Ibanez; RV32-NEXT:    beq a0, a1, .LBB1_2
372b6215f1SRoger Ferrer Ibanez; RV32-NEXT:  # %bb.1: # %if.then
382b6215f1SRoger Ferrer Ibanez; RV32-NEXT:    jr a2
392b6215f1SRoger Ferrer Ibanez; RV32-NEXT:  .LBB1_2: # %if.end
402b6215f1SRoger Ferrer Ibanez; RV32-NEXT:    ret
412b6215f1SRoger Ferrer Ibanez;
422b6215f1SRoger Ferrer Ibanez; RV64-LABEL: bool_ne:
432b6215f1SRoger Ferrer Ibanez; RV64:       # %bb.0: # %entry
4414bc5e14SRoger Ferrer Ibanez; RV64-NEXT:    beq a0, a1, .LBB1_2
452b6215f1SRoger Ferrer Ibanez; RV64-NEXT:  # %bb.1: # %if.then
462b6215f1SRoger Ferrer Ibanez; RV64-NEXT:    jr a2
472b6215f1SRoger Ferrer Ibanez; RV64-NEXT:  .LBB1_2: # %if.end
482b6215f1SRoger Ferrer Ibanez; RV64-NEXT:    ret
492b6215f1SRoger Ferrer Ibanezentry:
502b6215f1SRoger Ferrer Ibanez  %cmp = xor i1 %a, %b
512b6215f1SRoger Ferrer Ibanez  br i1 %cmp, label %if.then, label %if.end
522b6215f1SRoger Ferrer Ibanez
532b6215f1SRoger Ferrer Ibanezif.then:
542b6215f1SRoger Ferrer Ibanez  tail call void %c() #1
552b6215f1SRoger Ferrer Ibanez  br label %if.end
562b6215f1SRoger Ferrer Ibanez
572b6215f1SRoger Ferrer Ibanezif.end:
582b6215f1SRoger Ferrer Ibanez  ret void
592b6215f1SRoger Ferrer Ibanez}
60