• Home
  • Raw
  • Download

Lines Matching refs:SSE2

2 ; RUN: llc < %s -mtriple=i686--   -mattr=sse2 | FileCheck %s --check-prefixes=ANY,X32-SSE2
20 ; X32-SSE2-LABEL: fshl_i32:
21 ; X32-SSE2: # %bb.0:
22 ; X32-SSE2-NEXT: movb {{[0-9]+}}(%esp), %cl
23 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %edx
24 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
25 ; X32-SSE2-NEXT: shldl %cl, %edx, %eax
26 ; X32-SSE2-NEXT: retl
42 ; X32-SSE2-LABEL: fshl_i37:
43 ; X32-SSE2: # %bb.0:
44 ; X32-SSE2-NEXT: pushl %ebp
45 ; X32-SSE2-NEXT: pushl %ebx
46 ; X32-SSE2-NEXT: pushl %edi
47 ; X32-SSE2-NEXT: pushl %esi
48 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %esi
49 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ebx
50 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %edi
51 ; X32-SSE2-NEXT: shldl $27, %ebx, %edi
52 ; X32-SSE2-NEXT: shll $27, %ebx
53 ; X32-SSE2-NEXT: shrdl $1, %edi, %ebx
54 ; X32-SSE2-NEXT: shrl %edi
55 ; X32-SSE2-NEXT: pushl $0
56 ; X32-SSE2-NEXT: pushl $37
57 ; X32-SSE2-NEXT: pushl {{[0-9]+}}(%esp)
58 ; X32-SSE2-NEXT: pushl {{[0-9]+}}(%esp)
59 ; X32-SSE2-NEXT: calll __umoddi3
60 ; X32-SSE2-NEXT: addl $16, %esp
61 ; X32-SSE2-NEXT: movl %eax, %edx
62 ; X32-SSE2-NEXT: movl %edx, %ecx
63 ; X32-SSE2-NEXT: notb %cl
64 ; X32-SSE2-NEXT: shrdl %cl, %edi, %ebx
65 ; X32-SSE2-NEXT: shrl %cl, %edi
66 ; X32-SSE2-NEXT: xorl %eax, %eax
67 ; X32-SSE2-NEXT: testb $32, %cl
68 ; X32-SSE2-NEXT: cmovnel %edi, %ebx
69 ; X32-SSE2-NEXT: cmovnel %eax, %edi
70 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
71 ; X32-SSE2-NEXT: movl %edx, %ecx
72 ; X32-SSE2-NEXT: shll %cl, %eax
73 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ebp
74 ; X32-SSE2-NEXT: shldl %cl, %ebp, %esi
75 ; X32-SSE2-NEXT: testb $32, %dl
76 ; X32-SSE2-NEXT: cmovnel %eax, %esi
77 ; X32-SSE2-NEXT: movl $0, %ecx
78 ; X32-SSE2-NEXT: cmovnel %ecx, %eax
79 ; X32-SSE2-NEXT: orl %ebx, %eax
80 ; X32-SSE2-NEXT: orl %edi, %esi
81 ; X32-SSE2-NEXT: movl %esi, %edx
82 ; X32-SSE2-NEXT: popl %esi
83 ; X32-SSE2-NEXT: popl %edi
84 ; X32-SSE2-NEXT: popl %ebx
85 ; X32-SSE2-NEXT: popl %ebp
86 ; X32-SSE2-NEXT: retl
122 ; X32-SSE2-LABEL: fshl_i32_const_shift:
123 ; X32-SSE2: # %bb.0:
124 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
125 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
126 ; X32-SSE2-NEXT: shldl $9, %ecx, %eax
127 ; X32-SSE2-NEXT: retl
141 ; X32-SSE2-LABEL: fshl_i32_const_overshift:
142 ; X32-SSE2: # %bb.0:
143 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
144 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
145 ; X32-SSE2-NEXT: shldl $9, %ecx, %eax
146 ; X32-SSE2-NEXT: retl
160 ; X32-SSE2-LABEL: fshl_i64_const_overshift:
161 ; X32-SSE2: # %bb.0:
162 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
163 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
164 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %edx
165 ; X32-SSE2-NEXT: shldl $9, %ecx, %edx
166 ; X32-SSE2-NEXT: shrdl $23, %ecx, %eax
167 ; X32-SSE2-NEXT: retl
194 ; X32-SSE2-LABEL: fshr_i32:
195 ; X32-SSE2: # %bb.0:
196 ; X32-SSE2-NEXT: movb {{[0-9]+}}(%esp), %cl
197 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %edx
198 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
199 ; X32-SSE2-NEXT: shrdl %cl, %edx, %eax
200 ; X32-SSE2-NEXT: retl
216 ; X32-SSE2-LABEL: fshr_i37:
217 ; X32-SSE2: # %bb.0:
218 ; X32-SSE2-NEXT: pushl %ebp
219 ; X32-SSE2-NEXT: pushl %ebx
220 ; X32-SSE2-NEXT: pushl %edi
221 ; X32-SSE2-NEXT: pushl %esi
222 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ebp
223 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ebx
224 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %edi
225 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %esi
226 ; X32-SSE2-NEXT: shldl $1, %edi, %esi
227 ; X32-SSE2-NEXT: addl %edi, %edi
228 ; X32-SSE2-NEXT: pushl $0
229 ; X32-SSE2-NEXT: pushl $37
230 ; X32-SSE2-NEXT: pushl {{[0-9]+}}(%esp)
231 ; X32-SSE2-NEXT: pushl {{[0-9]+}}(%esp)
232 ; X32-SSE2-NEXT: calll __umoddi3
233 ; X32-SSE2-NEXT: addl $16, %esp
234 ; X32-SSE2-NEXT: addb $27, %al
235 ; X32-SSE2-NEXT: movl %eax, %edx
236 ; X32-SSE2-NEXT: notb %dl
237 ; X32-SSE2-NEXT: movl %edx, %ecx
238 ; X32-SSE2-NEXT: shldl %cl, %edi, %esi
239 ; X32-SSE2-NEXT: shldl $27, %ebp, %ebx
240 ; X32-SSE2-NEXT: shll $27, %ebp
241 ; X32-SSE2-NEXT: movl %eax, %ecx
242 ; X32-SSE2-NEXT: shrdl %cl, %ebx, %ebp
243 ; X32-SSE2-NEXT: shrl %cl, %ebx
244 ; X32-SSE2-NEXT: xorl %ecx, %ecx
245 ; X32-SSE2-NEXT: testb $32, %al
246 ; X32-SSE2-NEXT: cmovnel %ebx, %ebp
247 ; X32-SSE2-NEXT: cmovnel %ecx, %ebx
248 ; X32-SSE2-NEXT: xorl %eax, %eax
249 ; X32-SSE2-NEXT: movl %edx, %ecx
250 ; X32-SSE2-NEXT: shll %cl, %edi
251 ; X32-SSE2-NEXT: testb $32, %dl
252 ; X32-SSE2-NEXT: cmovnel %edi, %esi
253 ; X32-SSE2-NEXT: cmovnel %eax, %edi
254 ; X32-SSE2-NEXT: orl %ebp, %edi
255 ; X32-SSE2-NEXT: orl %ebx, %esi
256 ; X32-SSE2-NEXT: movl %edi, %eax
257 ; X32-SSE2-NEXT: movl %esi, %edx
258 ; X32-SSE2-NEXT: popl %esi
259 ; X32-SSE2-NEXT: popl %edi
260 ; X32-SSE2-NEXT: popl %ebx
261 ; X32-SSE2-NEXT: popl %ebp
262 ; X32-SSE2-NEXT: retl
299 ; X32-SSE2-LABEL: fshl_i32_demandedbits:
300 ; X32-SSE2: # %bb.0:
301 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
302 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
303 ; X32-SSE2-NEXT: shldl $9, %ecx, %eax
304 ; X32-SSE2-NEXT: retl
318 ; X32-SSE2-LABEL: fshr_i32_demandedbits:
319 ; X32-SSE2: # %bb.0:
320 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
321 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
322 ; X32-SSE2-NEXT: shrdl $9, %ecx, %eax
323 ; X32-SSE2-NEXT: retl
339 ; X32-SSE2-LABEL: fshl_i32_undef0:
340 ; X32-SSE2: # %bb.0:
341 ; X32-SSE2-NEXT: movb {{[0-9]+}}(%esp), %cl
342 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
343 ; X32-SSE2-NEXT: shldl %cl, %eax, %eax
344 ; X32-SSE2-NEXT: retl
357 ; X32-SSE2-LABEL: fshl_i32_undef0_msk:
358 ; X32-SSE2: # %bb.0:
359 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
360 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
361 ; X32-SSE2-NEXT: andl $7, %ecx
362 ; X32-SSE2-NEXT: # kill: def $cl killed $cl killed $ecx
363 ; X32-SSE2-NEXT: shldl %cl, %eax, %eax
364 ; X32-SSE2-NEXT: retl
379 ; X32-SSE2-LABEL: fshl_i32_undef0_cst:
380 ; X32-SSE2: # %bb.0:
381 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
382 ; X32-SSE2-NEXT: shrl $23, %eax
383 ; X32-SSE2-NEXT: retl
395 ; X32-SSE2-LABEL: fshl_i32_undef1:
396 ; X32-SSE2: # %bb.0:
397 ; X32-SSE2-NEXT: movb {{[0-9]+}}(%esp), %cl
398 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
399 ; X32-SSE2-NEXT: shldl %cl, %eax, %eax
400 ; X32-SSE2-NEXT: retl
414 ; X32-SSE2-LABEL: fshl_i32_undef1_msk:
415 ; X32-SSE2: # %bb.0:
416 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
417 ; X32-SSE2-NEXT: movb {{[0-9]+}}(%esp), %cl
418 ; X32-SSE2-NEXT: andb $7, %cl
419 ; X32-SSE2-NEXT: shll %cl, %eax
420 ; X32-SSE2-NEXT: retl
436 ; X32-SSE2-LABEL: fshl_i32_undef1_cst:
437 ; X32-SSE2: # %bb.0:
438 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
439 ; X32-SSE2-NEXT: shll $9, %eax
440 ; X32-SSE2-NEXT: retl
452 ; X32-SSE2-LABEL: fshl_i32_undef2:
453 ; X32-SSE2: # %bb.0:
454 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
455 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
456 ; X32-SSE2-NEXT: shldl %cl, %ecx, %eax
457 ; X32-SSE2-NEXT: retl
469 ; X32-SSE2-LABEL: fshr_i32_undef0:
470 ; X32-SSE2: # %bb.0:
471 ; X32-SSE2-NEXT: movb {{[0-9]+}}(%esp), %cl
472 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
473 ; X32-SSE2-NEXT: shrdl %cl, %eax, %eax
474 ; X32-SSE2-NEXT: retl
488 ; X32-SSE2-LABEL: fshr_i32_undef0_msk:
489 ; X32-SSE2: # %bb.0:
490 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
491 ; X32-SSE2-NEXT: movb {{[0-9]+}}(%esp), %cl
492 ; X32-SSE2-NEXT: andb $7, %cl
493 ; X32-SSE2-NEXT: shrl %cl, %eax
494 ; X32-SSE2-NEXT: retl
510 ; X32-SSE2-LABEL: fshr_i32_undef0_cst:
511 ; X32-SSE2: # %bb.0:
512 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
513 ; X32-SSE2-NEXT: shrl $9, %eax
514 ; X32-SSE2-NEXT: retl
526 ; X32-SSE2-LABEL: fshr_i32_undef1:
527 ; X32-SSE2: # %bb.0:
528 ; X32-SSE2-NEXT: movb {{[0-9]+}}(%esp), %cl
529 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
530 ; X32-SSE2-NEXT: shrdl %cl, %eax, %eax
531 ; X32-SSE2-NEXT: retl
544 ; X32-SSE2-LABEL: fshr_i32_undef1_msk:
545 ; X32-SSE2: # %bb.0:
546 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
547 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
548 ; X32-SSE2-NEXT: andl $7, %ecx
549 ; X32-SSE2-NEXT: # kill: def $cl killed $cl killed $ecx
550 ; X32-SSE2-NEXT: shrdl %cl, %eax, %eax
551 ; X32-SSE2-NEXT: retl
566 ; X32-SSE2-LABEL: fshr_i32_undef1_cst:
567 ; X32-SSE2: # %bb.0:
568 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
569 ; X32-SSE2-NEXT: shll $23, %eax
570 ; X32-SSE2-NEXT: retl
582 ; X32-SSE2-LABEL: fshr_i32_undef2:
583 ; X32-SSE2: # %bb.0:
584 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
585 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
586 ; X32-SSE2-NEXT: shrdl %cl, %ecx, %eax
587 ; X32-SSE2-NEXT: retl
601 ; X32-SSE2-LABEL: fshl_i32_zero0:
602 ; X32-SSE2: # %bb.0:
603 ; X32-SSE2-NEXT: movb {{[0-9]+}}(%esp), %cl
604 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %edx
605 ; X32-SSE2-NEXT: xorl %eax, %eax
606 ; X32-SSE2-NEXT: shldl %cl, %edx, %eax
607 ; X32-SSE2-NEXT: retl
621 ; X32-SSE2-LABEL: fshl_i32_zero0_cst:
622 ; X32-SSE2: # %bb.0:
623 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
624 ; X32-SSE2-NEXT: shrl $23, %eax
625 ; X32-SSE2-NEXT: retl
637 ; X32-SSE2-LABEL: fshl_i32_zero1:
638 ; X32-SSE2: # %bb.0:
639 ; X32-SSE2-NEXT: movb {{[0-9]+}}(%esp), %cl
640 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
641 ; X32-SSE2-NEXT: xorl %edx, %edx
642 ; X32-SSE2-NEXT: shldl %cl, %edx, %eax
643 ; X32-SSE2-NEXT: retl
658 ; X32-SSE2-LABEL: fshl_i32_zero1_cst:
659 ; X32-SSE2: # %bb.0:
660 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
661 ; X32-SSE2-NEXT: shll $9, %eax
662 ; X32-SSE2-NEXT: retl
674 ; X32-SSE2-LABEL: fshr_i32_zero0:
675 ; X32-SSE2: # %bb.0:
676 ; X32-SSE2-NEXT: movb {{[0-9]+}}(%esp), %cl
677 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
678 ; X32-SSE2-NEXT: xorl %edx, %edx
679 ; X32-SSE2-NEXT: shrdl %cl, %edx, %eax
680 ; X32-SSE2-NEXT: retl
695 ; X32-SSE2-LABEL: fshr_i32_zero0_cst:
696 ; X32-SSE2: # %bb.0:
697 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
698 ; X32-SSE2-NEXT: shrl $9, %eax
699 ; X32-SSE2-NEXT: retl
711 ; X32-SSE2-LABEL: fshr_i32_zero1:
712 ; X32-SSE2: # %bb.0:
713 ; X32-SSE2-NEXT: movb {{[0-9]+}}(%esp), %cl
714 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %edx
715 ; X32-SSE2-NEXT: xorl %eax, %eax
716 ; X32-SSE2-NEXT: shrdl %cl, %edx, %eax
717 ; X32-SSE2-NEXT: retl
731 ; X32-SSE2-LABEL: fshr_i32_zero1_cst:
732 ; X32-SSE2: # %bb.0:
733 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
734 ; X32-SSE2-NEXT: shll $23, %eax
735 ; X32-SSE2-NEXT: retl
749 ; X32-SSE2-LABEL: fshl_i32_zero2:
750 ; X32-SSE2: # %bb.0:
751 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
752 ; X32-SSE2-NEXT: retl
763 ; X32-SSE2-LABEL: fshr_i32_zero2:
764 ; X32-SSE2: # %bb.0:
765 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
766 ; X32-SSE2-NEXT: retl
779 ; X32-SSE2-LABEL: fshr_i32_const_shift:
780 ; X32-SSE2: # %bb.0:
781 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
782 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
783 ; X32-SSE2-NEXT: shrdl $9, %ecx, %eax
784 ; X32-SSE2-NEXT: retl
798 ; X32-SSE2-LABEL: fshr_i32_const_overshift:
799 ; X32-SSE2: # %bb.0:
800 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
801 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
802 ; X32-SSE2-NEXT: shrdl $9, %ecx, %eax
803 ; X32-SSE2-NEXT: retl
817 ; X32-SSE2-LABEL: fshr_i64_const_overshift:
818 ; X32-SSE2: # %bb.0:
819 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
820 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
821 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %edx
822 ; X32-SSE2-NEXT: shrdl $9, %ecx, %eax
823 ; X32-SSE2-NEXT: shldl $23, %ecx, %edx
824 ; X32-SSE2-NEXT: retl
847 ; X32-SSE2-LABEL: fshl_i32_shift_by_bitwidth:
848 ; X32-SSE2: # %bb.0:
849 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
850 ; X32-SSE2-NEXT: retl
861 ; X32-SSE2-LABEL: fshr_i32_shift_by_bitwidth:
862 ; X32-SSE2: # %bb.0:
863 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
864 ; X32-SSE2-NEXT: retl
883 ; X32-SSE2-LABEL: fshr_v4i32_shift_by_bitwidth:
884 ; X32-SSE2: # %bb.0:
885 ; X32-SSE2-NEXT: movaps %xmm1, %xmm0
886 ; X32-SSE2-NEXT: retl
898 ; X32-SSE2-LABEL: PR45265:
899 ; X32-SSE2: # %bb.0:
900 ; X32-SSE2-NEXT: pushl %ebx
901 ; X32-SSE2-NEXT: pushl %edi
902 ; X32-SSE2-NEXT: pushl %esi
903 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %eax
904 ; X32-SSE2-NEXT: movl {{[0-9]+}}(%esp), %ecx
905 ; X32-SSE2-NEXT: leal (%eax,%eax,2), %edx
906 ; X32-SSE2-NEXT: movzwl 8(%ecx,%edx,4), %esi
907 ; X32-SSE2-NEXT: movsbl 10(%ecx,%edx,4), %edi
908 ; X32-SSE2-NEXT: movl %edi, %ebx
909 ; X32-SSE2-NEXT: shll $16, %ebx
910 ; X32-SSE2-NEXT: orl %esi, %ebx
911 ; X32-SSE2-NEXT: movl 4(%ecx,%edx,4), %ecx
912 ; X32-SSE2-NEXT: shrdl $8, %ebx, %ecx
913 ; X32-SSE2-NEXT: xorl %eax, %ecx
914 ; X32-SSE2-NEXT: sarl $31, %eax
915 ; X32-SSE2-NEXT: sarl $31, %edi
916 ; X32-SSE2-NEXT: shldl $24, %ebx, %edi
917 ; X32-SSE2-NEXT: xorl %eax, %edi
918 ; X32-SSE2-NEXT: orl %edi, %ecx
919 ; X32-SSE2-NEXT: jne .LBB44_1
920 ; X32-SSE2-NEXT: # %bb.2:
921 ; X32-SSE2-NEXT: popl %esi
922 ; X32-SSE2-NEXT: popl %edi
923 ; X32-SSE2-NEXT: popl %ebx
924 ; X32-SSE2-NEXT: jmp _Z3foov # TAILCALL
925 ; X32-SSE2-NEXT: .LBB44_1:
926 ; X32-SSE2-NEXT: popl %esi
927 ; X32-SSE2-NEXT: popl %edi
928 ; X32-SSE2-NEXT: popl %ebx
929 ; X32-SSE2-NEXT: retl