Lines Matching refs:AVX2
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=avx2 | FileCheck %s --check-prefixes=ANY,X64-AVX2
28 ; X64-AVX2-LABEL: fshl_i32:
29 ; X64-AVX2: # %bb.0:
30 ; X64-AVX2-NEXT: movl %edx, %ecx
31 ; X64-AVX2-NEXT: movl %edi, %eax
32 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
33 ; X64-AVX2-NEXT: shldl %cl, %esi, %eax
34 ; X64-AVX2-NEXT: retq
88 ; X64-AVX2-LABEL: fshl_i37:
89 ; X64-AVX2: # %bb.0:
90 ; X64-AVX2-NEXT: movq %rdx, %rcx
91 ; X64-AVX2-NEXT: movabsq $-2492803253203993461, %rdx # imm = 0xDD67C8A60DD67C8B
92 ; X64-AVX2-NEXT: movq %rcx, %rax
93 ; X64-AVX2-NEXT: mulq %rdx
94 ; X64-AVX2-NEXT: shrq $5, %rdx
95 ; X64-AVX2-NEXT: leal (%rdx,%rdx,8), %eax
96 ; X64-AVX2-NEXT: leal (%rdx,%rax,4), %eax
97 ; X64-AVX2-NEXT: subl %eax, %ecx
98 ; X64-AVX2-NEXT: shlq $27, %rsi
99 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $rcx
100 ; X64-AVX2-NEXT: shldq %cl, %rsi, %rdi
101 ; X64-AVX2-NEXT: movq %rdi, %rax
102 ; X64-AVX2-NEXT: retq
129 ; X64-AVX2-LABEL: fshl_i32_const_shift:
130 ; X64-AVX2: # %bb.0:
131 ; X64-AVX2-NEXT: movl %edi, %eax
132 ; X64-AVX2-NEXT: shldl $9, %esi, %eax
133 ; X64-AVX2-NEXT: retq
148 ; X64-AVX2-LABEL: fshl_i32_const_overshift:
149 ; X64-AVX2: # %bb.0:
150 ; X64-AVX2-NEXT: movl %edi, %eax
151 ; X64-AVX2-NEXT: shldl $9, %esi, %eax
152 ; X64-AVX2-NEXT: retq
169 ; X64-AVX2-LABEL: fshl_i64_const_overshift:
170 ; X64-AVX2: # %bb.0:
171 ; X64-AVX2-NEXT: movq %rdi, %rax
172 ; X64-AVX2-NEXT: shldq $41, %rsi, %rax
173 ; X64-AVX2-NEXT: retq
202 ; X64-AVX2-LABEL: fshr_i32:
203 ; X64-AVX2: # %bb.0:
204 ; X64-AVX2-NEXT: movl %edx, %ecx
205 ; X64-AVX2-NEXT: movl %esi, %eax
206 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
207 ; X64-AVX2-NEXT: shrdl %cl, %edi, %eax
208 ; X64-AVX2-NEXT: retq
264 ; X64-AVX2-LABEL: fshr_i37:
265 ; X64-AVX2: # %bb.0:
266 ; X64-AVX2-NEXT: movq %rdx, %rcx
267 ; X64-AVX2-NEXT: movabsq $-2492803253203993461, %rdx # imm = 0xDD67C8A60DD67C8B
268 ; X64-AVX2-NEXT: movq %rcx, %rax
269 ; X64-AVX2-NEXT: mulq %rdx
270 ; X64-AVX2-NEXT: shrq $5, %rdx
271 ; X64-AVX2-NEXT: leal (%rdx,%rdx,8), %eax
272 ; X64-AVX2-NEXT: leal (%rdx,%rax,4), %eax
273 ; X64-AVX2-NEXT: subl %eax, %ecx
274 ; X64-AVX2-NEXT: addl $27, %ecx
275 ; X64-AVX2-NEXT: shlq $27, %rsi
276 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $rcx
277 ; X64-AVX2-NEXT: shrdq %cl, %rdi, %rsi
278 ; X64-AVX2-NEXT: movq %rsi, %rax
279 ; X64-AVX2-NEXT: retq
306 ; X64-AVX2-LABEL: fshl_i32_demandedbits:
307 ; X64-AVX2: # %bb.0:
308 ; X64-AVX2-NEXT: movl %edi, %eax
309 ; X64-AVX2-NEXT: shldl $9, %esi, %eax
310 ; X64-AVX2-NEXT: retq
325 ; X64-AVX2-LABEL: fshr_i32_demandedbits:
326 ; X64-AVX2: # %bb.0:
327 ; X64-AVX2-NEXT: movl %edi, %eax
328 ; X64-AVX2-NEXT: shldl $23, %esi, %eax
329 ; X64-AVX2-NEXT: retq
346 ; X64-AVX2-LABEL: fshl_i32_undef0:
347 ; X64-AVX2: # %bb.0:
348 ; X64-AVX2-NEXT: movl %esi, %ecx
349 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
350 ; X64-AVX2-NEXT: shldl %cl, %edi, %eax
351 ; X64-AVX2-NEXT: retq
366 ; X64-AVX2-LABEL: fshl_i32_undef0_msk:
367 ; X64-AVX2: # %bb.0:
368 ; X64-AVX2-NEXT: movl %esi, %ecx
369 ; X64-AVX2-NEXT: andl $7, %ecx
370 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
371 ; X64-AVX2-NEXT: shldl %cl, %edi, %eax
372 ; X64-AVX2-NEXT: retq
385 ; X64-AVX2-LABEL: fshl_i32_undef0_cst:
386 ; X64-AVX2: # %bb.0:
387 ; X64-AVX2-NEXT: movl %edi, %eax
388 ; X64-AVX2-NEXT: shrl $23, %eax
389 ; X64-AVX2-NEXT: retq
402 ; X64-AVX2-LABEL: fshl_i32_undef1:
403 ; X64-AVX2: # %bb.0:
404 ; X64-AVX2-NEXT: movl %esi, %ecx
405 ; X64-AVX2-NEXT: movl %edi, %eax
406 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
407 ; X64-AVX2-NEXT: shldl %cl, %eax, %eax
408 ; X64-AVX2-NEXT: retq
422 ; X64-AVX2-LABEL: fshl_i32_undef1_msk:
423 ; X64-AVX2: # %bb.0:
424 ; X64-AVX2-NEXT: movl %esi, %ecx
425 ; X64-AVX2-NEXT: movl %edi, %eax
426 ; X64-AVX2-NEXT: andb $7, %cl
427 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
428 ; X64-AVX2-NEXT: shll %cl, %eax
429 ; X64-AVX2-NEXT: retq
442 ; X64-AVX2-LABEL: fshl_i32_undef1_cst:
443 ; X64-AVX2: # %bb.0:
444 ; X64-AVX2-NEXT: movl %edi, %eax
445 ; X64-AVX2-NEXT: shll $9, %eax
446 ; X64-AVX2-NEXT: retq
459 ; X64-AVX2-LABEL: fshl_i32_undef2:
460 ; X64-AVX2: # %bb.0:
461 ; X64-AVX2-NEXT: movl %edi, %eax
462 ; X64-AVX2-NEXT: shldl %cl, %esi, %eax
463 ; X64-AVX2-NEXT: retq
476 ; X64-AVX2-LABEL: fshr_i32_undef0:
477 ; X64-AVX2: # %bb.0:
478 ; X64-AVX2-NEXT: movl %esi, %ecx
479 ; X64-AVX2-NEXT: movl %edi, %eax
480 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
481 ; X64-AVX2-NEXT: shrdl %cl, %eax, %eax
482 ; X64-AVX2-NEXT: retq
496 ; X64-AVX2-LABEL: fshr_i32_undef0_msk:
497 ; X64-AVX2: # %bb.0:
498 ; X64-AVX2-NEXT: movl %esi, %ecx
499 ; X64-AVX2-NEXT: movl %edi, %eax
500 ; X64-AVX2-NEXT: andb $7, %cl
501 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
502 ; X64-AVX2-NEXT: shrl %cl, %eax
503 ; X64-AVX2-NEXT: retq
516 ; X64-AVX2-LABEL: fshr_i32_undef0_cst:
517 ; X64-AVX2: # %bb.0:
518 ; X64-AVX2-NEXT: movl %edi, %eax
519 ; X64-AVX2-NEXT: shrl $9, %eax
520 ; X64-AVX2-NEXT: retq
533 ; X64-AVX2-LABEL: fshr_i32_undef1:
534 ; X64-AVX2: # %bb.0:
535 ; X64-AVX2-NEXT: movl %esi, %ecx
536 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
537 ; X64-AVX2-NEXT: shrdl %cl, %edi, %eax
538 ; X64-AVX2-NEXT: retq
553 ; X64-AVX2-LABEL: fshr_i32_undef1_msk:
554 ; X64-AVX2: # %bb.0:
555 ; X64-AVX2-NEXT: movl %esi, %ecx
556 ; X64-AVX2-NEXT: andl $7, %ecx
557 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
558 ; X64-AVX2-NEXT: shrdl %cl, %edi, %eax
559 ; X64-AVX2-NEXT: retq
572 ; X64-AVX2-LABEL: fshr_i32_undef1_cst:
573 ; X64-AVX2: # %bb.0:
574 ; X64-AVX2-NEXT: movl %edi, %eax
575 ; X64-AVX2-NEXT: shll $23, %eax
576 ; X64-AVX2-NEXT: retq
589 ; X64-AVX2-LABEL: fshr_i32_undef2:
590 ; X64-AVX2: # %bb.0:
591 ; X64-AVX2-NEXT: movl %esi, %eax
592 ; X64-AVX2-NEXT: shrdl %cl, %edi, %eax
593 ; X64-AVX2-NEXT: retq
609 ; X64-AVX2-LABEL: fshl_i32_zero0:
610 ; X64-AVX2: # %bb.0:
611 ; X64-AVX2-NEXT: movl %esi, %ecx
612 ; X64-AVX2-NEXT: xorl %eax, %eax
613 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
614 ; X64-AVX2-NEXT: shldl %cl, %edi, %eax
615 ; X64-AVX2-NEXT: retq
627 ; X64-AVX2-LABEL: fshl_i32_zero0_cst:
628 ; X64-AVX2: # %bb.0:
629 ; X64-AVX2-NEXT: movl %edi, %eax
630 ; X64-AVX2-NEXT: shrl $23, %eax
631 ; X64-AVX2-NEXT: retq
645 ; X64-AVX2-LABEL: fshl_i32_zero1:
646 ; X64-AVX2: # %bb.0:
647 ; X64-AVX2-NEXT: movl %esi, %ecx
648 ; X64-AVX2-NEXT: movl %edi, %eax
649 ; X64-AVX2-NEXT: xorl %edx, %edx
650 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
651 ; X64-AVX2-NEXT: shldl %cl, %edx, %eax
652 ; X64-AVX2-NEXT: retq
664 ; X64-AVX2-LABEL: fshl_i32_zero1_cst:
665 ; X64-AVX2: # %bb.0:
666 ; X64-AVX2-NEXT: movl %edi, %eax
667 ; X64-AVX2-NEXT: shll $9, %eax
668 ; X64-AVX2-NEXT: retq
682 ; X64-AVX2-LABEL: fshr_i32_zero0:
683 ; X64-AVX2: # %bb.0:
684 ; X64-AVX2-NEXT: movl %esi, %ecx
685 ; X64-AVX2-NEXT: movl %edi, %eax
686 ; X64-AVX2-NEXT: xorl %edx, %edx
687 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
688 ; X64-AVX2-NEXT: shrdl %cl, %edx, %eax
689 ; X64-AVX2-NEXT: retq
701 ; X64-AVX2-LABEL: fshr_i32_zero0_cst:
702 ; X64-AVX2: # %bb.0:
703 ; X64-AVX2-NEXT: movl %edi, %eax
704 ; X64-AVX2-NEXT: shrl $9, %eax
705 ; X64-AVX2-NEXT: retq
719 ; X64-AVX2-LABEL: fshr_i32_zero1:
720 ; X64-AVX2: # %bb.0:
721 ; X64-AVX2-NEXT: movl %esi, %ecx
722 ; X64-AVX2-NEXT: xorl %eax, %eax
723 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
724 ; X64-AVX2-NEXT: shrdl %cl, %edi, %eax
725 ; X64-AVX2-NEXT: retq
737 ; X64-AVX2-LABEL: fshr_i32_zero1_cst:
738 ; X64-AVX2: # %bb.0:
739 ; X64-AVX2-NEXT: movl %edi, %eax
740 ; X64-AVX2-NEXT: shll $23, %eax
741 ; X64-AVX2-NEXT: retq
754 ; X64-AVX2-LABEL: fshl_i32_zero2:
755 ; X64-AVX2: # %bb.0:
756 ; X64-AVX2-NEXT: movl %edi, %eax
757 ; X64-AVX2-NEXT: retq
768 ; X64-AVX2-LABEL: fshr_i32_zero2:
769 ; X64-AVX2: # %bb.0:
770 ; X64-AVX2-NEXT: movl %esi, %eax
771 ; X64-AVX2-NEXT: retq
786 ; X64-AVX2-LABEL: fshr_i32_const_shift:
787 ; X64-AVX2: # %bb.0:
788 ; X64-AVX2-NEXT: movl %edi, %eax
789 ; X64-AVX2-NEXT: shldl $23, %esi, %eax
790 ; X64-AVX2-NEXT: retq
805 ; X64-AVX2-LABEL: fshr_i32_const_overshift:
806 ; X64-AVX2: # %bb.0:
807 ; X64-AVX2-NEXT: movl %edi, %eax
808 ; X64-AVX2-NEXT: shldl $23, %esi, %eax
809 ; X64-AVX2-NEXT: retq
826 ; X64-AVX2-LABEL: fshr_i64_const_overshift:
827 ; X64-AVX2: # %bb.0:
828 ; X64-AVX2-NEXT: movq %rdi, %rax
829 ; X64-AVX2-NEXT: shldq $23, %rsi, %rax
830 ; X64-AVX2-NEXT: retq
852 ; X64-AVX2-LABEL: fshl_i32_shift_by_bitwidth:
853 ; X64-AVX2: # %bb.0:
854 ; X64-AVX2-NEXT: movl %edi, %eax
855 ; X64-AVX2-NEXT: retq
866 ; X64-AVX2-LABEL: fshr_i32_shift_by_bitwidth:
867 ; X64-AVX2: # %bb.0:
868 ; X64-AVX2-NEXT: movl %esi, %eax
869 ; X64-AVX2-NEXT: retq
888 ; X64-AVX2-LABEL: fshr_v4i32_shift_by_bitwidth:
889 ; X64-AVX2: # %bb.0:
890 ; X64-AVX2-NEXT: vmovaps %xmm1, %xmm0
891 ; X64-AVX2-NEXT: retq
931 ; X64-AVX2-LABEL: PR45265:
932 ; X64-AVX2: # %bb.0:
933 ; X64-AVX2-NEXT: movslq %edi, %rax
934 ; X64-AVX2-NEXT: leaq (%rax,%rax,2), %rcx
935 ; X64-AVX2-NEXT: movsbq 10(%rsi,%rcx,4), %rdx
936 ; X64-AVX2-NEXT: shlq $16, %rdx
937 ; X64-AVX2-NEXT: movzwl 8(%rsi,%rcx,4), %edi
938 ; X64-AVX2-NEXT: orq %rdx, %rdi
939 ; X64-AVX2-NEXT: movq (%rsi,%rcx,4), %rcx
940 ; X64-AVX2-NEXT: shrdq $40, %rdi, %rcx
941 ; X64-AVX2-NEXT: cmpq %rax, %rcx
942 ; X64-AVX2-NEXT: jne .LBB44_1
943 ; X64-AVX2-NEXT: # %bb.2:
944 ; X64-AVX2-NEXT: jmp _Z3foov # TAILCALL
945 ; X64-AVX2-NEXT: .LBB44_1:
946 ; X64-AVX2-NEXT: retq