• Home
  • Raw
  • Download

Lines Matching +full:- +full:- +full:check

2 ; RUN: llc < %s -mtriple=i686-unknown | FileCheck %s
4 ; These tests just check that the plumbing is in place for @llvm.bitreverse. The
10 ; CHECK-LABEL: test_bitreverse_v2i16:
11 ; CHECK: # BB#0:
12 ; CHECK-NEXT: pushl %edi
13 ; CHECK-NEXT: pushl %esi
14 ; CHECK-NEXT: movzwl {{[0-9]+}}(%esp), %edx
15 ; CHECK-NEXT: movzwl {{[0-9]+}}(%esp), %eax
16 ; CHECK-NEXT: movl %eax, %ecx
17 ; CHECK-NEXT: shll $15, %ecx
18 ; CHECK-NEXT: movl %eax, %esi
19 ; CHECK-NEXT: andl $2, %esi
20 ; CHECK-NEXT: shll $13, %esi
21 ; CHECK-NEXT: orl %ecx, %esi
22 ; CHECK-NEXT: movl %eax, %ecx
23 ; CHECK-NEXT: andl $4, %ecx
24 ; CHECK-NEXT: shll $11, %ecx
25 ; CHECK-NEXT: orl %esi, %ecx
26 ; CHECK-NEXT: movl %eax, %esi
27 ; CHECK-NEXT: andl $8, %esi
28 ; CHECK-NEXT: shll $9, %esi
29 ; CHECK-NEXT: orl %ecx, %esi
30 ; CHECK-NEXT: movl %eax, %edi
31 ; CHECK-NEXT: andl $16, %edi
32 ; CHECK-NEXT: shll $7, %edi
33 ; CHECK-NEXT: orl %esi, %edi
34 ; CHECK-NEXT: movl %eax, %ecx
35 ; CHECK-NEXT: andl $32, %ecx
36 ; CHECK-NEXT: shll $5, %ecx
37 ; CHECK-NEXT: orl %edi, %ecx
38 ; CHECK-NEXT: movl %eax, %esi
39 ; CHECK-NEXT: andl $64, %esi
40 ; CHECK-NEXT: shll $3, %esi
41 ; CHECK-NEXT: leal (%eax,%eax), %edi
42 ; CHECK-NEXT: andl $256, %edi # imm = 0x100
43 ; CHECK-NEXT: orl %esi, %edi
44 ; CHECK-NEXT: movl %eax, %esi
45 ; CHECK-NEXT: shrl %esi
46 ; CHECK-NEXT: andl $128, %esi
47 ; CHECK-NEXT: orl %edi, %esi
48 ; CHECK-NEXT: movl %eax, %edi
49 ; CHECK-NEXT: shrl $3, %edi
50 ; CHECK-NEXT: andl $64, %edi
51 ; CHECK-NEXT: orl %esi, %edi
52 ; CHECK-NEXT: movl %eax, %esi
53 ; CHECK-NEXT: shrl $5, %esi
54 ; CHECK-NEXT: andl $32, %esi
55 ; CHECK-NEXT: orl %edi, %esi
56 ; CHECK-NEXT: movl %eax, %edi
57 ; CHECK-NEXT: shrl $7, %edi
58 ; CHECK-NEXT: andl $16, %edi
59 ; CHECK-NEXT: orl %esi, %edi
60 ; CHECK-NEXT: movl %eax, %esi
61 ; CHECK-NEXT: shrl $9, %esi
62 ; CHECK-NEXT: andl $8, %esi
63 ; CHECK-NEXT: orl %edi, %esi
64 ; CHECK-NEXT: movl %eax, %edi
65 ; CHECK-NEXT: shrl $11, %edi
66 ; CHECK-NEXT: andl $4, %edi
67 ; CHECK-NEXT: orl %esi, %edi
68 ; CHECK-NEXT: movl %eax, %esi
69 ; CHECK-NEXT: shrl $13, %esi
70 ; CHECK-NEXT: andl $2, %esi
71 ; CHECK-NEXT: orl %edi, %esi
72 ; CHECK-NEXT: shrl $15, %eax
73 ; CHECK-NEXT: orl %esi, %eax
74 ; CHECK-NEXT: orl %ecx, %eax
75 ; CHECK-NEXT: movl %edx, %ecx
76 ; CHECK-NEXT: shll $15, %ecx
77 ; CHECK-NEXT: movl %edx, %esi
78 ; CHECK-NEXT: andl $2, %esi
79 ; CHECK-NEXT: shll $13, %esi
80 ; CHECK-NEXT: orl %ecx, %esi
81 ; CHECK-NEXT: movl %edx, %ecx
82 ; CHECK-NEXT: andl $4, %ecx
83 ; CHECK-NEXT: shll $11, %ecx
84 ; CHECK-NEXT: orl %esi, %ecx
85 ; CHECK-NEXT: movl %edx, %esi
86 ; CHECK-NEXT: andl $8, %esi
87 ; CHECK-NEXT: shll $9, %esi
88 ; CHECK-NEXT: orl %ecx, %esi
89 ; CHECK-NEXT: movl %edx, %edi
90 ; CHECK-NEXT: andl $16, %edi
91 ; CHECK-NEXT: shll $7, %edi
92 ; CHECK-NEXT: orl %esi, %edi
93 ; CHECK-NEXT: movl %edx, %ecx
94 ; CHECK-NEXT: andl $32, %ecx
95 ; CHECK-NEXT: shll $5, %ecx
96 ; CHECK-NEXT: orl %edi, %ecx
97 ; CHECK-NEXT: movl %edx, %esi
98 ; CHECK-NEXT: andl $64, %esi
99 ; CHECK-NEXT: shll $3, %esi
100 ; CHECK-NEXT: leal (%edx,%edx), %edi
101 ; CHECK-NEXT: andl $256, %edi # imm = 0x100
102 ; CHECK-NEXT: orl %esi, %edi
103 ; CHECK-NEXT: movl %edx, %esi
104 ; CHECK-NEXT: shrl %esi
105 ; CHECK-NEXT: andl $128, %esi
106 ; CHECK-NEXT: orl %edi, %esi
107 ; CHECK-NEXT: movl %edx, %edi
108 ; CHECK-NEXT: shrl $3, %edi
109 ; CHECK-NEXT: andl $64, %edi
110 ; CHECK-NEXT: orl %esi, %edi
111 ; CHECK-NEXT: movl %edx, %esi
112 ; CHECK-NEXT: shrl $5, %esi
113 ; CHECK-NEXT: andl $32, %esi
114 ; CHECK-NEXT: orl %edi, %esi
115 ; CHECK-NEXT: movl %edx, %edi
116 ; CHECK-NEXT: shrl $7, %edi
117 ; CHECK-NEXT: andl $16, %edi
118 ; CHECK-NEXT: orl %esi, %edi
119 ; CHECK-NEXT: movl %edx, %esi
120 ; CHECK-NEXT: shrl $9, %esi
121 ; CHECK-NEXT: andl $8, %esi
122 ; CHECK-NEXT: orl %edi, %esi
123 ; CHECK-NEXT: movl %edx, %edi
124 ; CHECK-NEXT: shrl $11, %edi
125 ; CHECK-NEXT: andl $4, %edi
126 ; CHECK-NEXT: orl %esi, %edi
127 ; CHECK-NEXT: movl %edx, %esi
128 ; CHECK-NEXT: shrl $13, %esi
129 ; CHECK-NEXT: andl $2, %esi
130 ; CHECK-NEXT: orl %edi, %esi
131 ; CHECK-NEXT: shrl $15, %edx
132 ; CHECK-NEXT: orl %esi, %edx
133 ; CHECK-NEXT: orl %ecx, %edx
134 ; CHECK-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
135 ; CHECK-NEXT: # kill: %DX<def> %DX<kill> %EDX<kill>
136 ; CHECK-NEXT: popl %esi
137 ; CHECK-NEXT: popl %edi
138 ; CHECK-NEXT: retl
146 ; CHECK-LABEL: test_bitreverse_i24:
147 ; CHECK: # BB#0:
148 ; CHECK-NEXT: pushl %esi
149 ; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
150 ; CHECK-NEXT: movl %eax, %ecx
151 ; CHECK-NEXT: shll $31, %ecx
152 ; CHECK-NEXT: movl %eax, %edx
153 ; CHECK-NEXT: andl $2, %edx
154 ; CHECK-NEXT: shll $29, %edx
155 ; CHECK-NEXT: orl %ecx, %edx
156 ; CHECK-NEXT: movl %eax, %ecx
157 ; CHECK-NEXT: andl $4, %ecx
158 ; CHECK-NEXT: shll $27, %ecx
159 ; CHECK-NEXT: orl %edx, %ecx
160 ; CHECK-NEXT: movl %eax, %edx
161 ; CHECK-NEXT: andl $8, %edx
162 ; CHECK-NEXT: shll $25, %edx
163 ; CHECK-NEXT: orl %ecx, %edx
164 ; CHECK-NEXT: movl %eax, %esi
165 ; CHECK-NEXT: andl $16, %esi
166 ; CHECK-NEXT: shll $23, %esi
167 ; CHECK-NEXT: orl %edx, %esi
168 ; CHECK-NEXT: movl %eax, %ecx
169 ; CHECK-NEXT: andl $32, %ecx
170 ; CHECK-NEXT: shll $21, %ecx
171 ; CHECK-NEXT: orl %esi, %ecx
172 ; CHECK-NEXT: movl %eax, %edx
173 ; CHECK-NEXT: andl $64, %edx
174 ; CHECK-NEXT: shll $19, %edx
175 ; CHECK-NEXT: movl %eax, %esi
176 ; CHECK-NEXT: shll $17, %esi
177 ; CHECK-NEXT: andl $16777216, %esi # imm = 0x1000000
178 ; CHECK-NEXT: orl %edx, %esi
179 ; CHECK-NEXT: movl %eax, %edx
180 ; CHECK-NEXT: shll $15, %edx
181 ; CHECK-NEXT: andl $8388608, %edx # imm = 0x800000
182 ; CHECK-NEXT: orl %esi, %edx
183 ; CHECK-NEXT: movl %eax, %esi
184 ; CHECK-NEXT: shll $13, %esi
185 ; CHECK-NEXT: andl $4194304, %esi # imm = 0x400000
186 ; CHECK-NEXT: orl %edx, %esi
187 ; CHECK-NEXT: movl %eax, %edx
188 ; CHECK-NEXT: shll $11, %edx
189 ; CHECK-NEXT: andl $2097152, %edx # imm = 0x200000
190 ; CHECK-NEXT: orl %esi, %edx
191 ; CHECK-NEXT: movl %eax, %esi
192 ; CHECK-NEXT: shll $9, %esi
193 ; CHECK-NEXT: andl $1048576, %esi # imm = 0x100000
194 ; CHECK-NEXT: orl %edx, %esi
195 ; CHECK-NEXT: movl %eax, %edx
196 ; CHECK-NEXT: shll $7, %edx
197 ; CHECK-NEXT: andl $524288, %edx # imm = 0x80000
198 ; CHECK-NEXT: orl %esi, %edx
199 ; CHECK-NEXT: movl %eax, %esi
200 ; CHECK-NEXT: shll $5, %esi
201 ; CHECK-NEXT: andl $262144, %esi # imm = 0x40000
202 ; CHECK-NEXT: orl %edx, %esi
203 ; CHECK-NEXT: leal (,%eax,8), %edx
204 ; CHECK-NEXT: andl $131072, %edx # imm = 0x20000
205 ; CHECK-NEXT: orl %esi, %edx
206 ; CHECK-NEXT: leal (%eax,%eax), %esi
207 ; CHECK-NEXT: andl $65536, %esi # imm = 0x10000
208 ; CHECK-NEXT: orl %edx, %esi
209 ; CHECK-NEXT: movl %eax, %edx
210 ; CHECK-NEXT: shrl %edx
211 ; CHECK-NEXT: andl $32768, %edx # imm = 0x8000
212 ; CHECK-NEXT: orl %esi, %edx
213 ; CHECK-NEXT: movl %eax, %esi
214 ; CHECK-NEXT: shrl $3, %esi
215 ; CHECK-NEXT: andl $16384, %esi # imm = 0x4000
216 ; CHECK-NEXT: orl %edx, %esi
217 ; CHECK-NEXT: movl %eax, %edx
218 ; CHECK-NEXT: shrl $5, %edx
219 ; CHECK-NEXT: andl $8192, %edx # imm = 0x2000
220 ; CHECK-NEXT: orl %esi, %edx
221 ; CHECK-NEXT: movl %eax, %esi
222 ; CHECK-NEXT: shrl $7, %esi
223 ; CHECK-NEXT: andl $4096, %esi # imm = 0x1000
224 ; CHECK-NEXT: orl %edx, %esi
225 ; CHECK-NEXT: movl %eax, %edx
226 ; CHECK-NEXT: shrl $9, %edx
227 ; CHECK-NEXT: andl $2048, %edx # imm = 0x800
228 ; CHECK-NEXT: orl %esi, %edx
229 ; CHECK-NEXT: movl %eax, %esi
230 ; CHECK-NEXT: shrl $11, %esi
231 ; CHECK-NEXT: andl $1024, %esi # imm = 0x400
232 ; CHECK-NEXT: orl %edx, %esi
233 ; CHECK-NEXT: movl %eax, %edx
234 ; CHECK-NEXT: shrl $13, %edx
235 ; CHECK-NEXT: andl $512, %edx # imm = 0x200
236 ; CHECK-NEXT: orl %esi, %edx
237 ; CHECK-NEXT: shrl $15, %eax
238 ; CHECK-NEXT: andl $256, %eax # imm = 0x100
239 ; CHECK-NEXT: orl %edx, %eax
240 ; CHECK-NEXT: orl %ecx, %eax
241 ; CHECK-NEXT: shrl $8, %eax
242 ; CHECK-NEXT: popl %esi
243 ; CHECK-NEXT: retl
251 ; CHECK-LABEL: test_bitreverse_i8:
252 ; CHECK: # BB#0:
253 ; CHECK-NEXT: movb {{[0-9]+}}(%esp), %al
254 ; CHECK-NEXT: movl %eax, %ecx
255 ; CHECK-NEXT: shlb $7, %cl
256 ; CHECK-NEXT: movl %eax, %edx
257 ; CHECK-NEXT: shlb $5, %dl
258 ; CHECK-NEXT: andb $64, %dl
259 ; CHECK-NEXT: movb %al, %ah
260 ; CHECK-NEXT: shlb $3, %ah
261 ; CHECK-NEXT: andb $32, %ah
262 ; CHECK-NEXT: orb %dl, %ah
263 ; CHECK-NEXT: movl %eax, %edx
264 ; CHECK-NEXT: addb %dl, %dl
265 ; CHECK-NEXT: andb $16, %dl
266 ; CHECK-NEXT: orb %ah, %dl
267 ; CHECK-NEXT: movb %al, %ah
268 ; CHECK-NEXT: shrb %ah
269 ; CHECK-NEXT: andb $8, %ah
270 ; CHECK-NEXT: orb %dl, %ah
271 ; CHECK-NEXT: movl %eax, %edx
272 ; CHECK-NEXT: shrb $3, %dl
273 ; CHECK-NEXT: andb $4, %dl
274 ; CHECK-NEXT: orb %ah, %dl
275 ; CHECK-NEXT: movb %al, %ah
276 ; CHECK-NEXT: shrb $5, %ah
277 ; CHECK-NEXT: andb $2, %ah
278 ; CHECK-NEXT: orb %dl, %ah
279 ; CHECK-NEXT: shrb $7, %al
280 ; CHECK-NEXT: orb %ah, %al
281 ; CHECK-NEXT: orb %cl, %al
282 ; CHECK-NEXT: retl
290 ; CHECK-LABEL: test_bitreverse_i4:
291 ; CHECK: # BB#0:
292 ; CHECK-NEXT: movb {{[0-9]+}}(%esp), %al
293 ; CHECK-NEXT: movl %eax, %ecx
294 ; CHECK-NEXT: shlb $7, %cl
295 ; CHECK-NEXT: movl %eax, %edx
296 ; CHECK-NEXT: shlb $5, %dl
297 ; CHECK-NEXT: andb $64, %dl
298 ; CHECK-NEXT: movb %al, %ah
299 ; CHECK-NEXT: shlb $3, %ah
300 ; CHECK-NEXT: andb $32, %ah
301 ; CHECK-NEXT: orb %dl, %ah
302 ; CHECK-NEXT: addb %al, %al
303 ; CHECK-NEXT: andb $16, %al
304 ; CHECK-NEXT: orb %ah, %al
305 ; CHECK-NEXT: orb %cl, %al
306 ; CHECK-NEXT: shrb $4, %al
307 ; CHECK-NEXT: retl
312 ; These tests check that bitreverse(constant) calls are folded
315 ; CHECK-LABEL: fold_v2i16:
316 ; CHECK: # BB#0:
317 ; CHECK-NEXT: movw $-4096, %ax # imm = 0xF000
318 ; CHECK-NEXT: movw $240, %dx
319 ; CHECK-NEXT: retl
325 ; CHECK-LABEL: fold_i24:
326 ; CHECK: # BB#0:
327 ; CHECK-NEXT: movl $2048, %eax # imm = 0x800
328 ; CHECK-NEXT: retl
334 ; CHECK-LABEL: fold_i8:
335 ; CHECK: # BB#0:
336 ; CHECK-NEXT: movb $-16, %al
337 ; CHECK-NEXT: retl
343 ; CHECK-LABEL: fold_i4:
344 ; CHECK: # BB#0:
345 ; CHECK-NEXT: movb $1, %al
346 ; CHECK-NEXT: retl
351 ; These tests check that bitreverse(bitreverse()) calls are removed
354 ; CHECK-LABEL: identity_i8:
355 ; CHECK: # BB#0:
356 ; CHECK-NEXT: movb {{[0-9]+}}(%esp), %al
357 ; CHECK-NEXT: retl
364 ; CHECK-LABEL: identity_v2i16:
365 ; CHECK: # BB#0:
366 ; CHECK-NEXT: movzwl {{[0-9]+}}(%esp), %eax
367 ; CHECK-NEXT: movzwl {{[0-9]+}}(%esp), %edx
368 ; CHECK-NEXT: retl
374 ; These tests check that bitreverse(undef) calls are removed
377 ; CHECK-LABEL: undef_i8:
378 ; CHECK: # BB#0:
379 ; CHECK-NEXT: retl
385 ; CHECK-LABEL: undef_v2i16:
386 ; CHECK: # BB#0:
387 ; CHECK-NEXT: retl