Lines Matching +full:0 +full:x64

5 ; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | FileCheck %s --check-prefixes=X64,SDAG,SDAG-X64
6 …86_64-apple-darwin10 -fast-isel -fast-isel-abort=1 | FileCheck %s --check-prefixes=X64,FASTISEL-X64
7 …6_64-apple-darwin10 -global-isel -global-isel-abort=1 | FileCheck %s --check-prefixes=X64,GISEL-X64
11 ; X86: ## %bb.0:
12 ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
13 ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
17 ; SDAG-X64-LABEL: shl_i8:
18 ; SDAG-X64: ## %bb.0:
19 ; SDAG-X64-NEXT: movl %esi, %ecx
20 ; SDAG-X64-NEXT: movl %edi, %eax
21 ; SDAG-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
22 ; SDAG-X64-NEXT: shlb %cl, %al
23 ; SDAG-X64-NEXT: ## kill: def $al killed $al killed $eax
24 ; SDAG-X64-NEXT: retq
26 ; FASTISEL-X64-LABEL: shl_i8:
27 ; FASTISEL-X64: ## %bb.0:
28 ; FASTISEL-X64-NEXT: movl %esi, %ecx
29 ; FASTISEL-X64-NEXT: movl %edi, %eax
30 ; FASTISEL-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
31 ; FASTISEL-X64-NEXT: shlb %cl, %al
32 ; FASTISEL-X64-NEXT: ## kill: def $al killed $al killed $eax
33 ; FASTISEL-X64-NEXT: retq
35 ; GISEL-X64-LABEL: shl_i8:
36 ; GISEL-X64: ## %bb.0:
37 ; GISEL-X64-NEXT: movl %edi, %eax
38 ; GISEL-X64-NEXT: movl %esi, %ecx
39 ; GISEL-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
40 ; GISEL-X64-NEXT: shlb %cl, %al
41 ; GISEL-X64-NEXT: ## kill: def $al killed $al killed $eax
42 ; GISEL-X64-NEXT: retq
49 ; SDAG-X86: ## %bb.0:
50 ; SDAG-X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
51 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
57 ; FASTISEL-X86: ## %bb.0:
58 ; FASTISEL-X86-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
59 ; FASTISEL-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
64 ; SDAG-X64-LABEL: shl_i16:
65 ; SDAG-X64: ## %bb.0:
66 ; SDAG-X64-NEXT: movl %esi, %ecx
67 ; SDAG-X64-NEXT: movl %edi, %eax
68 ; SDAG-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
69 ; SDAG-X64-NEXT: shll %cl, %eax
70 ; SDAG-X64-NEXT: ## kill: def $ax killed $ax killed $eax
71 ; SDAG-X64-NEXT: retq
73 ; FASTISEL-X64-LABEL: shl_i16:
74 ; FASTISEL-X64: ## %bb.0:
75 ; FASTISEL-X64-NEXT: movl %esi, %ecx
76 ; FASTISEL-X64-NEXT: movl %edi, %eax
77 ; FASTISEL-X64-NEXT: ## kill: def $cx killed $cx killed $ecx
78 ; FASTISEL-X64-NEXT: ## kill: def $cl killed $cx
79 ; FASTISEL-X64-NEXT: shlw %cl, %ax
80 ; FASTISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
81 ; FASTISEL-X64-NEXT: retq
83 ; GISEL-X64-LABEL: shl_i16:
84 ; GISEL-X64: ## %bb.0:
85 ; GISEL-X64-NEXT: movl %edi, %eax
86 ; GISEL-X64-NEXT: movl %esi, %ecx
87 ; GISEL-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
88 ; GISEL-X64-NEXT: shlw %cl, %ax
89 ; GISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
90 ; GISEL-X64-NEXT: retq
97 ; SDAG-X86: ## %bb.0:
98 ; SDAG-X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
99 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
104 ; FASTISEL-X86: ## %bb.0:
105 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
106 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
111 ; SDAG-X64-LABEL: shl_i32:
112 ; SDAG-X64: ## %bb.0:
113 ; SDAG-X64-NEXT: movl %esi, %ecx
114 ; SDAG-X64-NEXT: movl %edi, %eax
115 ; SDAG-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
116 ; SDAG-X64-NEXT: shll %cl, %eax
117 ; SDAG-X64-NEXT: retq
119 ; FASTISEL-X64-LABEL: shl_i32:
120 ; FASTISEL-X64: ## %bb.0:
121 ; FASTISEL-X64-NEXT: movl %esi, %ecx
122 ; FASTISEL-X64-NEXT: movl %edi, %eax
123 ; FASTISEL-X64-NEXT: ## kill: def $cl killed $ecx
124 ; FASTISEL-X64-NEXT: shll %cl, %eax
125 ; FASTISEL-X64-NEXT: retq
127 ; GISEL-X64-LABEL: shl_i32:
128 ; GISEL-X64: ## %bb.0:
129 ; GISEL-X64-NEXT: movl %edi, %eax
130 ; GISEL-X64-NEXT: movl %esi, %ecx
131 ; GISEL-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
132 ; GISEL-X64-NEXT: shll %cl, %eax
133 ; GISEL-X64-NEXT: retq
140 ; SDAG-X86: ## %bb.0:
142 ; SDAG-X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
143 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %esi
144 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
158 ; FASTISEL-X86: ## %bb.0:
159 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
160 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
161 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
172 ; SDAG-X64-LABEL: shl_i64:
173 ; SDAG-X64: ## %bb.0:
174 ; SDAG-X64-NEXT: movq %rsi, %rcx
175 ; SDAG-X64-NEXT: movq %rdi, %rax
176 ; SDAG-X64-NEXT: ## kill: def $cl killed $cl killed $rcx
177 ; SDAG-X64-NEXT: shlq %cl, %rax
178 ; SDAG-X64-NEXT: retq
180 ; FASTISEL-X64-LABEL: shl_i64:
181 ; FASTISEL-X64: ## %bb.0:
182 ; FASTISEL-X64-NEXT: movq %rsi, %rcx
183 ; FASTISEL-X64-NEXT: movq %rdi, %rax
184 ; FASTISEL-X64-NEXT: ## kill: def $cl killed $rcx
185 ; FASTISEL-X64-NEXT: shlq %cl, %rax
186 ; FASTISEL-X64-NEXT: retq
188 ; GISEL-X64-LABEL: shl_i64:
189 ; GISEL-X64: ## %bb.0:
190 ; GISEL-X64-NEXT: movq %rdi, %rax
191 ; GISEL-X64-NEXT: movq %rsi, %rcx
192 ; GISEL-X64-NEXT: ## kill: def $cl killed $cl killed $rcx
193 ; GISEL-X64-NEXT: shlq %cl, %rax
194 ; GISEL-X64-NEXT: retq
201 ; X86: ## %bb.0:
202 ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
203 ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
207 ; SDAG-X64-LABEL: lshr_i8:
208 ; SDAG-X64: ## %bb.0:
209 ; SDAG-X64-NEXT: movl %esi, %ecx
210 ; SDAG-X64-NEXT: movl %edi, %eax
211 ; SDAG-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
212 ; SDAG-X64-NEXT: shrb %cl, %al
213 ; SDAG-X64-NEXT: ## kill: def $al killed $al killed $eax
214 ; SDAG-X64-NEXT: retq
216 ; FASTISEL-X64-LABEL: lshr_i8:
217 ; FASTISEL-X64: ## %bb.0:
218 ; FASTISEL-X64-NEXT: movl %esi, %ecx
219 ; FASTISEL-X64-NEXT: movl %edi, %eax
220 ; FASTISEL-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
221 ; FASTISEL-X64-NEXT: shrb %cl, %al
222 ; FASTISEL-X64-NEXT: ## kill: def $al killed $al killed $eax
223 ; FASTISEL-X64-NEXT: retq
225 ; GISEL-X64-LABEL: lshr_i8:
226 ; GISEL-X64: ## %bb.0:
227 ; GISEL-X64-NEXT: movl %edi, %eax
228 ; GISEL-X64-NEXT: movl %esi, %ecx
229 ; GISEL-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
230 ; GISEL-X64-NEXT: shrb %cl, %al
231 ; GISEL-X64-NEXT: ## kill: def $al killed $al killed $eax
232 ; GISEL-X64-NEXT: retq
239 ; SDAG-X86: ## %bb.0:
240 ; SDAG-X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
241 ; SDAG-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
247 ; FASTISEL-X86: ## %bb.0:
248 ; FASTISEL-X86-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
249 ; FASTISEL-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
254 ; SDAG-X64-LABEL: lshr_i16:
255 ; SDAG-X64: ## %bb.0:
256 ; SDAG-X64-NEXT: movl %esi, %ecx
257 ; SDAG-X64-NEXT: movzwl %di, %eax
258 ; SDAG-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
259 ; SDAG-X64-NEXT: shrl %cl, %eax
260 ; SDAG-X64-NEXT: ## kill: def $ax killed $ax killed $eax
261 ; SDAG-X64-NEXT: retq
263 ; FASTISEL-X64-LABEL: lshr_i16:
264 ; FASTISEL-X64: ## %bb.0:
265 ; FASTISEL-X64-NEXT: movl %esi, %ecx
266 ; FASTISEL-X64-NEXT: movl %edi, %eax
267 ; FASTISEL-X64-NEXT: ## kill: def $cx killed $cx killed $ecx
268 ; FASTISEL-X64-NEXT: ## kill: def $cl killed $cx
269 ; FASTISEL-X64-NEXT: shrw %cl, %ax
270 ; FASTISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
271 ; FASTISEL-X64-NEXT: retq
273 ; GISEL-X64-LABEL: lshr_i16:
274 ; GISEL-X64: ## %bb.0:
275 ; GISEL-X64-NEXT: movl %edi, %eax
276 ; GISEL-X64-NEXT: movl %esi, %ecx
277 ; GISEL-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
278 ; GISEL-X64-NEXT: shrw %cl, %ax
279 ; GISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
280 ; GISEL-X64-NEXT: retq
287 ; SDAG-X86: ## %bb.0:
288 ; SDAG-X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
289 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
294 ; FASTISEL-X86: ## %bb.0:
295 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
296 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
301 ; SDAG-X64-LABEL: lshr_i32:
302 ; SDAG-X64: ## %bb.0:
303 ; SDAG-X64-NEXT: movl %esi, %ecx
304 ; SDAG-X64-NEXT: movl %edi, %eax
305 ; SDAG-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
306 ; SDAG-X64-NEXT: shrl %cl, %eax
307 ; SDAG-X64-NEXT: retq
309 ; FASTISEL-X64-LABEL: lshr_i32:
310 ; FASTISEL-X64: ## %bb.0:
311 ; FASTISEL-X64-NEXT: movl %esi, %ecx
312 ; FASTISEL-X64-NEXT: movl %edi, %eax
313 ; FASTISEL-X64-NEXT: ## kill: def $cl killed $ecx
314 ; FASTISEL-X64-NEXT: shrl %cl, %eax
315 ; FASTISEL-X64-NEXT: retq
317 ; GISEL-X64-LABEL: lshr_i32:
318 ; GISEL-X64: ## %bb.0:
319 ; GISEL-X64-NEXT: movl %edi, %eax
320 ; GISEL-X64-NEXT: movl %esi, %ecx
321 ; GISEL-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
322 ; GISEL-X64-NEXT: shrl %cl, %eax
323 ; GISEL-X64-NEXT: retq
330 ; SDAG-X86: ## %bb.0:
332 ; SDAG-X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
333 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
334 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %esi
348 ; FASTISEL-X86: ## %bb.0:
349 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
350 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
351 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
362 ; SDAG-X64-LABEL: lshr_i64:
363 ; SDAG-X64: ## %bb.0:
364 ; SDAG-X64-NEXT: movq %rsi, %rcx
365 ; SDAG-X64-NEXT: movq %rdi, %rax
366 ; SDAG-X64-NEXT: ## kill: def $cl killed $cl killed $rcx
367 ; SDAG-X64-NEXT: shrq %cl, %rax
368 ; SDAG-X64-NEXT: retq
370 ; FASTISEL-X64-LABEL: lshr_i64:
371 ; FASTISEL-X64: ## %bb.0:
372 ; FASTISEL-X64-NEXT: movq %rsi, %rcx
373 ; FASTISEL-X64-NEXT: movq %rdi, %rax
374 ; FASTISEL-X64-NEXT: ## kill: def $cl killed $rcx
375 ; FASTISEL-X64-NEXT: shrq %cl, %rax
376 ; FASTISEL-X64-NEXT: retq
378 ; GISEL-X64-LABEL: lshr_i64:
379 ; GISEL-X64: ## %bb.0:
380 ; GISEL-X64-NEXT: movq %rdi, %rax
381 ; GISEL-X64-NEXT: movq %rsi, %rcx
382 ; GISEL-X64-NEXT: ## kill: def $cl killed $cl killed $rcx
383 ; GISEL-X64-NEXT: shrq %cl, %rax
384 ; GISEL-X64-NEXT: retq
391 ; X86: ## %bb.0:
392 ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
393 ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
397 ; SDAG-X64-LABEL: ashr_i8:
398 ; SDAG-X64: ## %bb.0:
399 ; SDAG-X64-NEXT: movl %esi, %ecx
400 ; SDAG-X64-NEXT: movl %edi, %eax
401 ; SDAG-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
402 ; SDAG-X64-NEXT: sarb %cl, %al
403 ; SDAG-X64-NEXT: ## kill: def $al killed $al killed $eax
404 ; SDAG-X64-NEXT: retq
406 ; FASTISEL-X64-LABEL: ashr_i8:
407 ; FASTISEL-X64: ## %bb.0:
408 ; FASTISEL-X64-NEXT: movl %esi, %ecx
409 ; FASTISEL-X64-NEXT: movl %edi, %eax
410 ; FASTISEL-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
411 ; FASTISEL-X64-NEXT: sarb %cl, %al
412 ; FASTISEL-X64-NEXT: ## kill: def $al killed $al killed $eax
413 ; FASTISEL-X64-NEXT: retq
415 ; GISEL-X64-LABEL: ashr_i8:
416 ; GISEL-X64: ## %bb.0:
417 ; GISEL-X64-NEXT: movl %edi, %eax
418 ; GISEL-X64-NEXT: movl %esi, %ecx
419 ; GISEL-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
420 ; GISEL-X64-NEXT: sarb %cl, %al
421 ; GISEL-X64-NEXT: ## kill: def $al killed $al killed $eax
422 ; GISEL-X64-NEXT: retq
429 ; SDAG-X86: ## %bb.0:
430 ; SDAG-X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
431 ; SDAG-X86-NEXT: movswl {{[0-9]+}}(%esp), %eax
437 ; FASTISEL-X86: ## %bb.0:
438 ; FASTISEL-X86-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
439 ; FASTISEL-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
444 ; SDAG-X64-LABEL: ashr_i16:
445 ; SDAG-X64: ## %bb.0:
446 ; SDAG-X64-NEXT: movl %esi, %ecx
447 ; SDAG-X64-NEXT: movswl %di, %eax
448 ; SDAG-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
449 ; SDAG-X64-NEXT: sarl %cl, %eax
450 ; SDAG-X64-NEXT: ## kill: def $ax killed $ax killed $eax
451 ; SDAG-X64-NEXT: retq
453 ; FASTISEL-X64-LABEL: ashr_i16:
454 ; FASTISEL-X64: ## %bb.0:
455 ; FASTISEL-X64-NEXT: movl %esi, %ecx
456 ; FASTISEL-X64-NEXT: movl %edi, %eax
457 ; FASTISEL-X64-NEXT: ## kill: def $cx killed $cx killed $ecx
458 ; FASTISEL-X64-NEXT: ## kill: def $cl killed $cx
459 ; FASTISEL-X64-NEXT: sarw %cl, %ax
460 ; FASTISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
461 ; FASTISEL-X64-NEXT: retq
463 ; GISEL-X64-LABEL: ashr_i16:
464 ; GISEL-X64: ## %bb.0:
465 ; GISEL-X64-NEXT: movl %edi, %eax
466 ; GISEL-X64-NEXT: movl %esi, %ecx
467 ; GISEL-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
468 ; GISEL-X64-NEXT: sarw %cl, %ax
469 ; GISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
470 ; GISEL-X64-NEXT: retq
477 ; SDAG-X86: ## %bb.0:
478 ; SDAG-X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
479 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
484 ; FASTISEL-X86: ## %bb.0:
485 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
486 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
491 ; SDAG-X64-LABEL: ashr_i32:
492 ; SDAG-X64: ## %bb.0:
493 ; SDAG-X64-NEXT: movl %esi, %ecx
494 ; SDAG-X64-NEXT: movl %edi, %eax
495 ; SDAG-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
496 ; SDAG-X64-NEXT: sarl %cl, %eax
497 ; SDAG-X64-NEXT: retq
499 ; FASTISEL-X64-LABEL: ashr_i32:
500 ; FASTISEL-X64: ## %bb.0:
501 ; FASTISEL-X64-NEXT: movl %esi, %ecx
502 ; FASTISEL-X64-NEXT: movl %edi, %eax
503 ; FASTISEL-X64-NEXT: ## kill: def $cl killed $ecx
504 ; FASTISEL-X64-NEXT: sarl %cl, %eax
505 ; FASTISEL-X64-NEXT: retq
507 ; GISEL-X64-LABEL: ashr_i32:
508 ; GISEL-X64: ## %bb.0:
509 ; GISEL-X64-NEXT: movl %edi, %eax
510 ; GISEL-X64-NEXT: movl %esi, %ecx
511 ; GISEL-X64-NEXT: ## kill: def $cl killed $cl killed $ecx
512 ; GISEL-X64-NEXT: sarl %cl, %eax
513 ; GISEL-X64-NEXT: retq
520 ; SDAG-X86: ## %bb.0:
522 ; SDAG-X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
523 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
524 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %esi
539 ; FASTISEL-X86: ## %bb.0:
541 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
542 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %esi
543 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
557 ; SDAG-X64-LABEL: ashr_i64:
558 ; SDAG-X64: ## %bb.0:
559 ; SDAG-X64-NEXT: movq %rsi, %rcx
560 ; SDAG-X64-NEXT: movq %rdi, %rax
561 ; SDAG-X64-NEXT: ## kill: def $cl killed $cl killed $rcx
562 ; SDAG-X64-NEXT: sarq %cl, %rax
563 ; SDAG-X64-NEXT: retq
565 ; FASTISEL-X64-LABEL: ashr_i64:
566 ; FASTISEL-X64: ## %bb.0:
567 ; FASTISEL-X64-NEXT: movq %rsi, %rcx
568 ; FASTISEL-X64-NEXT: movq %rdi, %rax
569 ; FASTISEL-X64-NEXT: ## kill: def $cl killed $rcx
570 ; FASTISEL-X64-NEXT: sarq %cl, %rax
571 ; FASTISEL-X64-NEXT: retq
573 ; GISEL-X64-LABEL: ashr_i64:
574 ; GISEL-X64: ## %bb.0:
575 ; GISEL-X64-NEXT: movq %rdi, %rax
576 ; GISEL-X64-NEXT: movq %rsi, %rcx
577 ; GISEL-X64-NEXT: ## kill: def $cl killed $cl killed $rcx
578 ; GISEL-X64-NEXT: sarq %cl, %rax
579 ; GISEL-X64-NEXT: retq
586 ; SDAG-X86: ## %bb.0:
587 ; SDAG-X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
592 ; FASTISEL-X86: ## %bb.0:
593 ; FASTISEL-X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
597 ; SDAG-X64-LABEL: shl_imm1_i8:
598 ; SDAG-X64: ## %bb.0:
599 ; SDAG-X64-NEXT: ## kill: def $edi killed $edi def $rdi
600 ; SDAG-X64-NEXT: leal (%rdi,%rdi), %eax
601 ; SDAG-X64-NEXT: ## kill: def $al killed $al killed $eax
602 ; SDAG-X64-NEXT: retq
604 ; FASTISEL-X64-LABEL: shl_imm1_i8:
605 ; FASTISEL-X64: ## %bb.0:
606 ; FASTISEL-X64-NEXT: ## kill: def $edi killed $edi def $rdi
607 ; FASTISEL-X64-NEXT: leal (,%rdi,2), %eax
608 ; FASTISEL-X64-NEXT: ## kill: def $al killed $al killed $eax
609 ; FASTISEL-X64-NEXT: retq
611 ; GISEL-X64-LABEL: shl_imm1_i8:
612 ; GISEL-X64: ## %bb.0:
613 ; GISEL-X64-NEXT: ## kill: def $edi killed $edi def $rdi
614 ; GISEL-X64-NEXT: leal (%rdi,%rdi), %eax
615 ; GISEL-X64-NEXT: ## kill: def $al killed $al killed $eax
616 ; GISEL-X64-NEXT: retq
623 ; SDAG-X86: ## %bb.0:
624 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
630 ; FASTISEL-X86: ## %bb.0:
631 ; FASTISEL-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
635 ; SDAG-X64-LABEL: shl_imm1_i16:
636 ; SDAG-X64: ## %bb.0:
637 ; SDAG-X64-NEXT: ## kill: def $edi killed $edi def $rdi
638 ; SDAG-X64-NEXT: leal (%rdi,%rdi), %eax
639 ; SDAG-X64-NEXT: ## kill: def $ax killed $ax killed $eax
640 ; SDAG-X64-NEXT: retq
642 ; FASTISEL-X64-LABEL: shl_imm1_i16:
643 ; FASTISEL-X64: ## %bb.0:
644 ; FASTISEL-X64-NEXT: ## kill: def $edi killed $edi def $rdi
645 ; FASTISEL-X64-NEXT: leal (,%rdi,2), %eax
646 ; FASTISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
647 ; FASTISEL-X64-NEXT: retq
649 ; GISEL-X64-LABEL: shl_imm1_i16:
650 ; GISEL-X64: ## %bb.0:
651 ; GISEL-X64-NEXT: ## kill: def $edi killed $edi def $rdi
652 ; GISEL-X64-NEXT: leal (%rdi,%rdi), %eax
653 ; GISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
654 ; GISEL-X64-NEXT: retq
661 ; SDAG-X86: ## %bb.0:
662 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
667 ; FASTISEL-X86: ## %bb.0:
668 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
672 ; SDAG-X64-LABEL: shl_imm1_i32:
673 ; SDAG-X64: ## %bb.0:
674 ; SDAG-X64-NEXT: ## kill: def $edi killed $edi def $rdi
675 ; SDAG-X64-NEXT: leal (%rdi,%rdi), %eax
676 ; SDAG-X64-NEXT: retq
678 ; FASTISEL-X64-LABEL: shl_imm1_i32:
679 ; FASTISEL-X64: ## %bb.0:
680 ; FASTISEL-X64-NEXT: ## kill: def $edi killed $edi def $rdi
681 ; FASTISEL-X64-NEXT: leal (,%rdi,2), %eax
682 ; FASTISEL-X64-NEXT: retq
684 ; GISEL-X64-LABEL: shl_imm1_i32:
685 ; GISEL-X64: ## %bb.0:
686 ; GISEL-X64-NEXT: ## kill: def $edi killed $edi def $rdi
687 ; GISEL-X64-NEXT: leal (%rdi,%rdi), %eax
688 ; GISEL-X64-NEXT: retq
695 ; SDAG-X86: ## %bb.0:
696 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
697 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
703 ; FASTISEL-X86: ## %bb.0:
704 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
705 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
710 ; SDAG-X64-LABEL: shl_imm1_i64:
711 ; SDAG-X64: ## %bb.0:
712 ; SDAG-X64-NEXT: leaq (%rdi,%rdi), %rax
713 ; SDAG-X64-NEXT: retq
715 ; FASTISEL-X64-LABEL: shl_imm1_i64:
716 ; FASTISEL-X64: ## %bb.0:
717 ; FASTISEL-X64-NEXT: leaq (,%rdi,2), %rax
718 ; FASTISEL-X64-NEXT: retq
720 ; GISEL-X64-LABEL: shl_imm1_i64:
721 ; GISEL-X64: ## %bb.0:
722 ; GISEL-X64-NEXT: leaq (%rdi,%rdi), %rax
723 ; GISEL-X64-NEXT: retq
730 ; X86: ## %bb.0:
731 ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
735 ; X64-LABEL: lshr_imm1_i8:
736 ; X64: ## %bb.0:
737 ; X64-NEXT: movl %edi, %eax
738 ; X64-NEXT: shrb %al
739 ; X64-NEXT: ## kill: def $al killed $al killed $eax
740 ; X64-NEXT: retq
747 ; SDAG-X86: ## %bb.0:
748 ; SDAG-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
754 ; FASTISEL-X86: ## %bb.0:
755 ; FASTISEL-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
759 ; SDAG-X64-LABEL: lshr_imm1_i16:
760 ; SDAG-X64: ## %bb.0:
761 ; SDAG-X64-NEXT: movzwl %di, %eax
762 ; SDAG-X64-NEXT: shrl %eax
763 ; SDAG-X64-NEXT: ## kill: def $ax killed $ax killed $eax
764 ; SDAG-X64-NEXT: retq
766 ; FASTISEL-X64-LABEL: lshr_imm1_i16:
767 ; FASTISEL-X64: ## %bb.0:
768 ; FASTISEL-X64-NEXT: movl %edi, %eax
769 ; FASTISEL-X64-NEXT: shrw %ax
770 ; FASTISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
771 ; FASTISEL-X64-NEXT: retq
773 ; GISEL-X64-LABEL: lshr_imm1_i16:
774 ; GISEL-X64: ## %bb.0:
775 ; GISEL-X64-NEXT: movl %edi, %eax
776 ; GISEL-X64-NEXT: shrw %ax
777 ; GISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
778 ; GISEL-X64-NEXT: retq
785 ; X86: ## %bb.0:
786 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
790 ; X64-LABEL: lshr_imm1_i32:
791 ; X64: ## %bb.0:
792 ; X64-NEXT: movl %edi, %eax
793 ; X64-NEXT: shrl %eax
794 ; X64-NEXT: retq
801 ; SDAG-X86: ## %bb.0:
802 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
803 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
809 ; FASTISEL-X86: ## %bb.0:
810 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
811 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
816 ; X64-LABEL: lshr_imm1_i64:
817 ; X64: ## %bb.0:
818 ; X64-NEXT: movq %rdi, %rax
819 ; X64-NEXT: shrq %rax
820 ; X64-NEXT: retq
827 ; X86: ## %bb.0:
828 ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
832 ; X64-LABEL: ashr_imm1_i8:
833 ; X64: ## %bb.0:
834 ; X64-NEXT: movl %edi, %eax
835 ; X64-NEXT: sarb %al
836 ; X64-NEXT: ## kill: def $al killed $al killed $eax
837 ; X64-NEXT: retq
844 ; SDAG-X86: ## %bb.0:
845 ; SDAG-X86-NEXT: movswl {{[0-9]+}}(%esp), %eax
851 ; FASTISEL-X86: ## %bb.0:
852 ; FASTISEL-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
856 ; SDAG-X64-LABEL: ashr_imm1_i16:
857 ; SDAG-X64: ## %bb.0:
858 ; SDAG-X64-NEXT: movswl %di, %eax
859 ; SDAG-X64-NEXT: shrl %eax
860 ; SDAG-X64-NEXT: ## kill: def $ax killed $ax killed $eax
861 ; SDAG-X64-NEXT: retq
863 ; FASTISEL-X64-LABEL: ashr_imm1_i16:
864 ; FASTISEL-X64: ## %bb.0:
865 ; FASTISEL-X64-NEXT: movl %edi, %eax
866 ; FASTISEL-X64-NEXT: sarw %ax
867 ; FASTISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
868 ; FASTISEL-X64-NEXT: retq
870 ; GISEL-X64-LABEL: ashr_imm1_i16:
871 ; GISEL-X64: ## %bb.0:
872 ; GISEL-X64-NEXT: movl %edi, %eax
873 ; GISEL-X64-NEXT: sarw %ax
874 ; GISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
875 ; GISEL-X64-NEXT: retq
882 ; X86: ## %bb.0:
883 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
887 ; X64-LABEL: ashr_imm1_i32:
888 ; X64: ## %bb.0:
889 ; X64-NEXT: movl %edi, %eax
890 ; X64-NEXT: sarl %eax
891 ; X64-NEXT: retq
898 ; SDAG-X86: ## %bb.0:
899 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
900 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
906 ; FASTISEL-X86: ## %bb.0:
907 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
908 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
913 ; X64-LABEL: ashr_imm1_i64:
914 ; X64: ## %bb.0:
915 ; X64-NEXT: movq %rdi, %rax
916 ; X64-NEXT: sarq %rax
917 ; X64-NEXT: retq
924 ; X86: ## %bb.0:
925 ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
929 ; X64-LABEL: shl_imm4_i8:
930 ; X64: ## %bb.0:
931 ; X64-NEXT: movl %edi, %eax
932 ; X64-NEXT: shlb $4, %al
933 ; X64-NEXT: ## kill: def $al killed $al killed $eax
934 ; X64-NEXT: retq
941 ; SDAG-X86: ## %bb.0:
942 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
948 ; FASTISEL-X86: ## %bb.0:
949 ; FASTISEL-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
953 ; SDAG-X64-LABEL: shl_imm4_i16:
954 ; SDAG-X64: ## %bb.0:
955 ; SDAG-X64-NEXT: movl %edi, %eax
956 ; SDAG-X64-NEXT: shll $4, %eax
957 ; SDAG-X64-NEXT: ## kill: def $ax killed $ax killed $eax
958 ; SDAG-X64-NEXT: retq
960 ; FASTISEL-X64-LABEL: shl_imm4_i16:
961 ; FASTISEL-X64: ## %bb.0:
962 ; FASTISEL-X64-NEXT: movl %edi, %eax
963 ; FASTISEL-X64-NEXT: shlw $4, %ax
964 ; FASTISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
965 ; FASTISEL-X64-NEXT: retq
967 ; GISEL-X64-LABEL: shl_imm4_i16:
968 ; GISEL-X64: ## %bb.0:
969 ; GISEL-X64-NEXT: movl %edi, %eax
970 ; GISEL-X64-NEXT: shlw $4, %ax
971 ; GISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
972 ; GISEL-X64-NEXT: retq
979 ; X86: ## %bb.0:
980 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
984 ; X64-LABEL: shl_imm4_i32:
985 ; X64: ## %bb.0:
986 ; X64-NEXT: movl %edi, %eax
987 ; X64-NEXT: shll $4, %eax
988 ; X64-NEXT: retq
995 ; SDAG-X86: ## %bb.0:
996 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
997 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
1003 ; FASTISEL-X86: ## %bb.0:
1004 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
1005 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
1010 ; X64-LABEL: shl_imm4_i64:
1011 ; X64: ## %bb.0:
1012 ; X64-NEXT: movq %rdi, %rax
1013 ; X64-NEXT: shlq $4, %rax
1014 ; X64-NEXT: retq
1021 ; X86: ## %bb.0:
1022 ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1026 ; X64-LABEL: lshr_imm4_i8:
1027 ; X64: ## %bb.0:
1028 ; X64-NEXT: movl %edi, %eax
1029 ; X64-NEXT: shrb $4, %al
1030 ; X64-NEXT: ## kill: def $al killed $al killed $eax
1031 ; X64-NEXT: retq
1038 ; SDAG-X86: ## %bb.0:
1039 ; SDAG-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
1045 ; FASTISEL-X86: ## %bb.0:
1046 ; FASTISEL-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
1050 ; SDAG-X64-LABEL: lshr_imm4_i16:
1051 ; SDAG-X64: ## %bb.0:
1052 ; SDAG-X64-NEXT: movzwl %di, %eax
1053 ; SDAG-X64-NEXT: shrl $4, %eax
1054 ; SDAG-X64-NEXT: ## kill: def $ax killed $ax killed $eax
1055 ; SDAG-X64-NEXT: retq
1057 ; FASTISEL-X64-LABEL: lshr_imm4_i16:
1058 ; FASTISEL-X64: ## %bb.0:
1059 ; FASTISEL-X64-NEXT: movl %edi, %eax
1060 ; FASTISEL-X64-NEXT: shrw $4, %ax
1061 ; FASTISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
1062 ; FASTISEL-X64-NEXT: retq
1064 ; GISEL-X64-LABEL: lshr_imm4_i16:
1065 ; GISEL-X64: ## %bb.0:
1066 ; GISEL-X64-NEXT: movl %edi, %eax
1067 ; GISEL-X64-NEXT: shrw $4, %ax
1068 ; GISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
1069 ; GISEL-X64-NEXT: retq
1076 ; X86: ## %bb.0:
1077 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
1081 ; X64-LABEL: lshr_imm4_i32:
1082 ; X64: ## %bb.0:
1083 ; X64-NEXT: movl %edi, %eax
1084 ; X64-NEXT: shrl $4, %eax
1085 ; X64-NEXT: retq
1092 ; SDAG-X86: ## %bb.0:
1093 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
1094 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
1100 ; FASTISEL-X86: ## %bb.0:
1101 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
1102 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
1107 ; X64-LABEL: lshr_imm4_i64:
1108 ; X64: ## %bb.0:
1109 ; X64-NEXT: movq %rdi, %rax
1110 ; X64-NEXT: shrq $4, %rax
1111 ; X64-NEXT: retq
1118 ; X86: ## %bb.0:
1119 ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1123 ; X64-LABEL: ashr_imm4_i8:
1124 ; X64: ## %bb.0:
1125 ; X64-NEXT: movl %edi, %eax
1126 ; X64-NEXT: sarb $4, %al
1127 ; X64-NEXT: ## kill: def $al killed $al killed $eax
1128 ; X64-NEXT: retq
1135 ; SDAG-X86: ## %bb.0:
1136 ; SDAG-X86-NEXT: movswl {{[0-9]+}}(%esp), %eax
1142 ; FASTISEL-X86: ## %bb.0:
1143 ; FASTISEL-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
1147 ; SDAG-X64-LABEL: ashr_imm4_i16:
1148 ; SDAG-X64: ## %bb.0:
1149 ; SDAG-X64-NEXT: movswl %di, %eax
1150 ; SDAG-X64-NEXT: shrl $4, %eax
1151 ; SDAG-X64-NEXT: ## kill: def $ax killed $ax killed $eax
1152 ; SDAG-X64-NEXT: retq
1154 ; FASTISEL-X64-LABEL: ashr_imm4_i16:
1155 ; FASTISEL-X64: ## %bb.0:
1156 ; FASTISEL-X64-NEXT: movl %edi, %eax
1157 ; FASTISEL-X64-NEXT: sarw $4, %ax
1158 ; FASTISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
1159 ; FASTISEL-X64-NEXT: retq
1161 ; GISEL-X64-LABEL: ashr_imm4_i16:
1162 ; GISEL-X64: ## %bb.0:
1163 ; GISEL-X64-NEXT: movl %edi, %eax
1164 ; GISEL-X64-NEXT: sarw $4, %ax
1165 ; GISEL-X64-NEXT: ## kill: def $ax killed $ax killed $eax
1166 ; GISEL-X64-NEXT: retq
1173 ; X86: ## %bb.0:
1174 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
1178 ; X64-LABEL: ashr_imm4_i32:
1179 ; X64: ## %bb.0:
1180 ; X64-NEXT: movl %edi, %eax
1181 ; X64-NEXT: sarl $4, %eax
1182 ; X64-NEXT: retq
1189 ; SDAG-X86: ## %bb.0:
1190 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
1191 ; SDAG-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
1197 ; FASTISEL-X86: ## %bb.0:
1198 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %edx
1199 ; FASTISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
1204 ; X64-LABEL: ashr_imm4_i64:
1205 ; X64: ## %bb.0:
1206 ; X64-NEXT: movq %rdi, %rax
1207 ; X64-NEXT: sarq $4, %rax
1208 ; X64-NEXT: retq
1215 ; SDAG: ## %bb.0:
1219 ; FASTISEL-X86: ## %bb.0:
1220 ; FASTISEL-X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1225 ; FASTISEL-X64-LABEL: PR36731:
1226 ; FASTISEL-X64: ## %bb.0:
1227 ; FASTISEL-X64-NEXT: movl %edi, %eax
1228 ; FASTISEL-X64-NEXT: movb $255, %cl
1229 ; FASTISEL-X64-NEXT: shlb %cl, %al
1230 ; FASTISEL-X64-NEXT: ## kill: def $al killed $al killed $eax
1231 ; FASTISEL-X64-NEXT: retq
1233 ; GISEL-X64-LABEL: PR36731:
1234 ; GISEL-X64: ## %bb.0:
1235 ; GISEL-X64-NEXT: movl %edi, %eax
1236 ; GISEL-X64-NEXT: shlb $255, %al
1237 ; GISEL-X64-NEXT: ## kill: def $al killed $al killed $eax
1238 ; GISEL-X64-NEXT: retq