blob: c03b923cadba290064d8fa1104155a03e5f975e7 [file] [log] [blame]
Nadav Rotema1369392012-08-18 17:53:03 +00001; RUN: llc < %s -mtriple=x86_64-apple-macosx | FileCheck %s
2
3; rdar://12081007
4
Stephen Lind24ab202013-07-14 06:24:09 +00005; CHECK-LABEL: and_1:
Nadav Rotema1369392012-08-18 17:53:03 +00006; CHECK: andb
7; CHECK-NEXT: cmovnel
8; CHECK: ret
9define i32 @and_1(i8 zeroext %a, i8 zeroext %b, i32 %x) {
10 %1 = and i8 %b, %a
11 %2 = icmp ne i8 %1, 0
12 %3 = select i1 %2, i32 %x, i32 0
13 ret i32 %3
14}
15
Stephen Lind24ab202013-07-14 06:24:09 +000016; CHECK-LABEL: and_2:
Nadav Rotema1369392012-08-18 17:53:03 +000017; CHECK: andb
18; CHECK-NEXT: setne
19; CHECK: ret
20define zeroext i1 @and_2(i8 zeroext %a, i8 zeroext %b) {
21 %1 = and i8 %b, %a
22 %2 = icmp ne i8 %1, 0
23 ret i1 %2
24}
25
Stephen Lind24ab202013-07-14 06:24:09 +000026; CHECK-LABEL: xor_1:
Nadav Rotema1369392012-08-18 17:53:03 +000027; CHECK: xorb
28; CHECK-NEXT: cmovnel
29; CHECK: ret
30define i32 @xor_1(i8 zeroext %a, i8 zeroext %b, i32 %x) {
31 %1 = xor i8 %b, %a
32 %2 = icmp ne i8 %1, 0
33 %3 = select i1 %2, i32 %x, i32 0
34 ret i32 %3
35}
36
Stephen Lind24ab202013-07-14 06:24:09 +000037; CHECK-LABEL: xor_2:
Nadav Rotema1369392012-08-18 17:53:03 +000038; CHECK: xorb
39; CHECK-NEXT: setne
40; CHECK: ret
41define zeroext i1 @xor_2(i8 zeroext %a, i8 zeroext %b) {
42 %1 = xor i8 %b, %a
43 %2 = icmp ne i8 %1, 0
44 ret i1 %2
45}