OSDN Git Service

Temporary disable tests
[android-x86/external-llvm.git] / test / CodeGen / MSP430 / bit.ll
1 ; RUN: llvm-as < %s | llc -march=msp430 | FileCheck %s
2 ; XFAIL: *
3 target datalayout = "e-p:16:16:16-i1:8:8-i8:8:8-i16:16:16-i32:16:32"
4 target triple = "msp430-generic-generic"
5
6 @foo8 = external global i8
7 @bar8 = external global i8
8
9 define i8 @bitbrr(i8 %a, i8 %b) nounwind {
10         %t1 = and i8 %a, %b
11         %t2 = icmp ne i8 %t1, 0
12         %t3 = zext i1 %t2 to i8
13         ret i8 %t3
14 }
15 ; CHECK: bitbrr:
16 ; CHECK: bit.b  r14, r15
17
18 define i8 @bitbri(i8 %a) nounwind {
19         %t1 = and i8 %a, 15
20         %t2 = icmp ne i8 %t1, 0
21         %t3 = zext i1 %t2 to i8
22         ret i8 %t3
23 }
24 ; CHECK: bitbri:
25 ; CHECK: bit.b  #15, r15
26
27 define i8 @bitbir(i8 %a) nounwind {
28         %t1 = and i8 15, %a
29         %t2 = icmp ne i8 %t1, 0
30         %t3 = zext i1 %t2 to i8
31         ret i8 %t3
32 }
33 ; CHECK: bitbir:
34 ; CHECK: bit.b  #15, r15
35
36 define i8 @bitbmi() nounwind {
37         %t1 = load i8* @foo8
38         %t2 = and i8 %t1, 15
39         %t3 = icmp ne i8 %t2, 0
40         %t4 = zext i1 %t3 to i8
41         ret i8 %t4
42 }
43 ; CHECK: bitbmi:
44 ; CHECK: bit.b  #15, &foo8
45
46 define i8 @bitbim() nounwind {
47         %t1 = load i8* @foo8
48         %t2 = and i8 15, %t1
49         %t3 = icmp ne i8 %t2, 0
50         %t4 = zext i1 %t3 to i8
51         ret i8 %t4
52 }
53 ; CHECK: bitbim:
54 ; CHECK: bit.b  #15, &foo8
55
56 define i8 @bitbrm(i8 %a) nounwind {
57         %t1 = load i8* @foo8
58         %t2 = and i8 %a, %t1
59         %t3 = icmp ne i8 %t2, 0
60         %t4 = zext i1 %t3 to i8
61         ret i8 %t4
62 }
63 ; CHECK: bitbrm:
64 ; CHECK: bit.b  &foo8, r15
65
66 define i8 @bitbmr(i8 %a) nounwind {
67         %t1 = load i8* @foo8
68         %t2 = and i8 %t1, %a
69         %t3 = icmp ne i8 %t2, 0
70         %t4 = zext i1 %t3 to i8
71         ret i8 %t4
72 }
73 ; CHECK: bitbmr:
74 ; CHECK: bit.b  r15, &foo8
75
76 define i8 @bitbmm() nounwind {
77         %t1 = load i8* @foo8
78         %t2 = load i8* @bar8
79         %t3 = and i8 %t1, %t2
80         %t4 = icmp ne i8 %t3, 0
81         %t5 = zext i1 %t4 to i8
82         ret i8 %t5
83 }
84 ; CHECK: bitbmm:
85 ; CHECK: bit.b  &bar8, &foo8
86
87 @foo16 = external global i16
88 @bar16 = external global i16
89
90 define i16 @bitwrr(i16 %a, i16 %b) nounwind {
91         %t1 = and i16 %a, %b
92         %t2 = icmp ne i16 %t1, 0
93         %t3 = zext i1 %t2 to i16
94         ret i16 %t3
95 }
96 ; CHECK: bitwrr:
97 ; CHECK: bit.w  r14, r15
98
99 define i16 @bitwri(i16 %a) nounwind {
100         %t1 = and i16 %a, 4080
101         %t2 = icmp ne i16 %t1, 0
102         %t3 = zext i1 %t2 to i16
103         ret i16 %t3
104 }
105 ; CHECK: bitwri:
106 ; CHECK: bit.w  #4080, r15
107
108 define i16 @bitwir(i16 %a) nounwind {
109         %t1 = and i16 4080, %a
110         %t2 = icmp ne i16 %t1, 0
111         %t3 = zext i1 %t2 to i16
112         ret i16 %t3
113 }
114 ; CHECK: bitwir:
115 ; CHECK: bit.w  #4080, r15
116
117 define i16 @bitwmi() nounwind {
118         %t1 = load i16* @foo16
119         %t2 = and i16 %t1, 4080
120         %t3 = icmp ne i16 %t2, 0
121         %t4 = zext i1 %t3 to i16
122         ret i16 %t4
123 }
124 ; CHECK: bitwmi:
125 ; CHECK: bit.w  #4080, &foo16
126
127 define i16 @bitwim() nounwind {
128         %t1 = load i16* @foo16
129         %t2 = and i16 4080, %t1
130         %t3 = icmp ne i16 %t2, 0
131         %t4 = zext i1 %t3 to i16
132         ret i16 %t4
133 }
134 ; CHECK: bitwim:
135 ; CHECK: bit.w  #4080, &foo16
136
137 define i16 @bitwrm(i16 %a) nounwind {
138         %t1 = load i16* @foo16
139         %t2 = and i16 %a, %t1
140         %t3 = icmp ne i16 %t2, 0
141         %t4 = zext i1 %t3 to i16
142         ret i16 %t4
143 }
144 ; CHECK: bitwrm:
145 ; CHECK: bit.w  &foo16, r15
146
147 define i16 @bitwmr(i16 %a) nounwind {
148         %t1 = load i16* @foo16
149         %t2 = and i16 %t1, %a
150         %t3 = icmp ne i16 %t2, 0
151         %t4 = zext i1 %t3 to i16
152         ret i16 %t4
153 }
154 ; CHECK: bitwmr:
155 ; CHECK: bit.w  r15, &foo16
156
157 define i16 @bitwmm() nounwind {
158         %t1 = load i16* @foo16
159         %t2 = load i16* @bar16
160         %t3 = and i16 %t1, %t2
161         %t4 = icmp ne i16 %t3, 0
162         %t5 = zext i1 %t4 to i16
163         ret i16 %t5
164 }
165 ; CHECK: bitwmm:
166 ; CHECK: bit.w  &bar16, &foo16
167