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, void ()* 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, void ()* nocapture %c) nounwind { 26; CHECK-LABEL: bool_ne: 27; CHECK: # %bb.0: # %entry 28; CHECK-NEXT: xorl %esi, %edi 29; CHECK-NEXT: cmpb $1, %dil 30; CHECK-NEXT: jne .LBB1_1 31; CHECK-NEXT: # %bb.2: # %if.then 32; CHECK-NEXT: jmpq *%rdx # TAILCALL 33; CHECK-NEXT: .LBB1_1: # %if.end 34; CHECK-NEXT: retq 35entry: 36 %cmp = xor i1 %a, %b 37 br i1 %cmp, label %if.then, label %if.end 38 39if.then: 40 tail call void %c() #1 41 br label %if.end 42 43if.end: 44 ret void 45} 46