blob: ed511567c32b4b9acc5e2680431cbb7a8e148637 [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
5; CHECK: and_1:
6; 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
16; CHECK: and_2:
17; 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
26; CHECK: xor_1:
27; 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
37; CHECK: xor_2:
38; 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}