xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/2012-08-16-setcc.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-apple-macosx | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; rdar://12081007
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: and_1:
6*9880d681SAndroid Build Coastguard Worker; CHECK: andb
7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovnel
8*9880d681SAndroid Build Coastguard Worker; CHECK: ret
9*9880d681SAndroid Build Coastguard Workerdefine i32 @and_1(i8 zeroext %a, i8 zeroext %b, i32 %x) {
10*9880d681SAndroid Build Coastguard Worker  %1 = and i8 %b, %a
11*9880d681SAndroid Build Coastguard Worker  %2 = icmp ne i8 %1, 0
12*9880d681SAndroid Build Coastguard Worker  %3 = select i1 %2, i32 %x, i32 0
13*9880d681SAndroid Build Coastguard Worker  ret i32 %3
14*9880d681SAndroid Build Coastguard Worker}
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: and_2:
17*9880d681SAndroid Build Coastguard Worker; CHECK: andb
18*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: setne
19*9880d681SAndroid Build Coastguard Worker; CHECK: ret
20*9880d681SAndroid Build Coastguard Workerdefine zeroext i1 @and_2(i8 zeroext %a, i8 zeroext %b) {
21*9880d681SAndroid Build Coastguard Worker  %1 = and i8 %b, %a
22*9880d681SAndroid Build Coastguard Worker  %2 = icmp ne i8 %1, 0
23*9880d681SAndroid Build Coastguard Worker  ret i1 %2
24*9880d681SAndroid Build Coastguard Worker}
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: xor_1:
27*9880d681SAndroid Build Coastguard Worker; CHECK: xorb
28*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovnel
29*9880d681SAndroid Build Coastguard Worker; CHECK: ret
30*9880d681SAndroid Build Coastguard Workerdefine i32 @xor_1(i8 zeroext %a, i8 zeroext %b, i32 %x) {
31*9880d681SAndroid Build Coastguard Worker  %1 = xor i8 %b, %a
32*9880d681SAndroid Build Coastguard Worker  %2 = icmp ne i8 %1, 0
33*9880d681SAndroid Build Coastguard Worker  %3 = select i1 %2, i32 %x, i32 0
34*9880d681SAndroid Build Coastguard Worker  ret i32 %3
35*9880d681SAndroid Build Coastguard Worker}
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: xor_2:
38*9880d681SAndroid Build Coastguard Worker; CHECK: xorb
39*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: setne
40*9880d681SAndroid Build Coastguard Worker; CHECK: ret
41*9880d681SAndroid Build Coastguard Workerdefine zeroext i1 @xor_2(i8 zeroext %a, i8 zeroext %b) {
42*9880d681SAndroid Build Coastguard Worker  %1 = xor i8 %b, %a
43*9880d681SAndroid Build Coastguard Worker  %2 = icmp ne i8 %1, 0
44*9880d681SAndroid Build Coastguard Worker  ret i1 %2
45*9880d681SAndroid Build Coastguard Worker}
46