Home | History | Annotate | Download | only in X86

Lines Matching full:next

10 ; X32-NEXT:    vaddpd %ymm1, %ymm0, %ymm0
11 ; X32-NEXT: retl
15 ; X64-NEXT: vaddpd %ymm1, %ymm0, %ymm0
16 ; X64-NEXT: retq
24 ; X32-NEXT: vaddps %ymm1, %ymm0, %ymm0
25 ; X32-NEXT: retl
29 ; X64-NEXT: vaddps %ymm1, %ymm0, %ymm0
30 ; X64-NEXT: retq
38 ; X32-NEXT: vaddsubpd %ymm1, %ymm0, %ymm0
39 ; X32-NEXT: retl
43 ; X64-NEXT: vaddsubpd %ymm1, %ymm0, %ymm0
44 ; X64-NEXT: retq
53 ; X32-NEXT: vaddsubps %ymm1, %ymm0, %ymm0
54 ; X32-NEXT: retl
58 ; X64-NEXT: vaddsubps %ymm1, %ymm0, %ymm0
59 ; X64-NEXT: retq
68 ; X32-NEXT: vandps %ymm1, %ymm0, %ymm0
69 ; X32-NEXT: retl
73 ; X64-NEXT: vandps %ymm1, %ymm0, %ymm0
74 ; X64-NEXT: retq
85 ; X32-NEXT: vandps %ymm1, %ymm0, %ymm0
86 ; X32-NEXT: retl
90 ; X64-NEXT: vandps %ymm1, %ymm0, %ymm0
91 ; X64-NEXT: retq
102 ; X32-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
103 ; X32-NEXT: vinsertf128 $1, %xmm2, %ymm2, %ymm2
104 ; X32-NEXT: vxorps %ymm2, %ymm0, %ymm0
105 ; X32-NEXT: vandps %ymm1, %ymm0, %ymm0
106 ; X32-NEXT: retl
110 ; X64-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
111 ; X64-NEXT: vinsertf128 $1, %xmm2, %ymm2, %ymm2
112 ; X64-NEXT: vxorps %ymm2, %ymm0, %ymm0
113 ; X64-NEXT: vandps %ymm1, %ymm0, %ymm0
114 ; X64-NEXT: retq
126 ; X32-NEXT: vandnps %ymm1, %ymm0, %ymm0
127 ; X32-NEXT: retl
131 ; X64-NEXT: vandnps %ymm1, %ymm0, %ymm0
132 ; X64-NEXT: retq
144 ; X32-NEXT: vblendpd {{.*#+}} ymm0 = ymm0[0],ymm1[1,2],ymm0[3]
145 ; X32-NEXT: retl
149 ; X64-NEXT: vblendpd {{.*#+}} ymm0 = ymm0[0],ymm1[1,2],ymm0[3]
150 ; X64-NEXT: retq
158 ; X32-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4,5,6],ymm1[7]
159 ; X32-NEXT: retl
163 ; X64-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4,5,6],ymm1[7]
164 ; X64-NEXT: retq
172 ; X32-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
173 ; X32-NEXT: retl
177 ; X64-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
178 ; X64-NEXT: retq
187 ; X32-NEXT: vblendvps %ymm2, %ymm1, %ymm0, %ymm0
188 ; X32-NEXT: retl
192 ; X64-NEXT: vblendvps %ymm2, %ymm1, %ymm0, %ymm0
193 ; X64-NEXT: retq
202 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
203 ; X32-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1]
204 ; X32-NEXT: retl
208 ; X64-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1]
209 ; X64-NEXT: retq
219 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
220 ; X32-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1]
221 ; X32-NEXT: retl
225 ; X64-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1]
226 ; X64-NEXT: retq
236 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
237 ; X32-NEXT: vbroadcastsd (%eax), %ymm0
238 ; X32-NEXT: retl
242 ; X64-NEXT: vbroadcastsd (%rdi), %ymm0
243 ; X64-NEXT: retq
255 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
256 ; X32-NEXT: vbroadcastss (%eax), %xmm0
257 ; X32-NEXT: retl
261 ; X64-NEXT: vbroadcastss (%rdi), %xmm0
262 ; X64-NEXT: retq
274 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
275 ; X32-NEXT: vbroadcastss (%eax), %ymm0
276 ; X32-NEXT: retl
280 ; X64-NEXT: vbroadcastss (%rdi), %ymm0
281 ; X64-NEXT: retq
297 ; X32-NEXT: retl
301 ; X64-NEXT: retq
309 ; X32-NEXT: retl
313 ; X64-NEXT: retq
321 ; X32-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<def>
322 ; X32-NEXT: retl
326 ; X64-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<def>
327 ; X64-NEXT: retq
335 ; X32-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
336 ; X32-NEXT: vzeroupper
337 ; X32-NEXT: retl
341 ; X64-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
342 ; X64-NEXT: vzeroupper
343 ; X64-NEXT: retq
351 ; X32-NEXT: retl
355 ; X64-NEXT: retq
363 ; X32-NEXT: retl
367 ; X64-NEXT: retq
375 ; X32-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<def>
376 ; X32-NEXT: retl
380 ; X64-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<def>
381 ; X64-NEXT: retq
389 ; X32-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
390 ; X32-NEXT: vzeroupper
391 ; X32-NEXT: retl
395 ; X64-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
396 ; X64-NEXT: vzeroupper
397 ; X64-NEXT: retq
405 ; X32-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<def>
406 ; X32-NEXT: retl
410 ; X64-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<def>
411 ; X64-NEXT: retq
419 ; X32-NEXT: retl
423 ; X64-NEXT: retq
431 ; X32-NEXT: retl
435 ; X64-NEXT: retq
443 ; X32-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
444 ; X32-NEXT: vzeroupper
445 ; X32-NEXT: retl
449 ; X64-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
450 ; X64-NEXT: vzeroupper
451 ; X64-NEXT: retq
459 ; X32-NEXT: vroundpd $2, %ymm0, %ymm0
460 ; X32-NEXT: retl
464 ; X64-NEXT: vroundpd $2, %ymm0, %ymm0
465 ; X64-NEXT: retq
474 ; X32-NEXT: vroundps $2, %ymm0, %ymm0
475 ; X32-NEXT: retl
479 ; X64-NEXT: vroundps $2, %ymm0, %ymm0
480 ; X64-NEXT: retq
489 ; X32-NEXT: vcmpgepd %xmm1, %xmm0, %xmm0
490 ; X32-NEXT: retl
494 ; X64-NEXT: vcmpgepd %xmm1, %xmm0, %xmm0
495 ; X64-NEXT: retq
504 ; X32-NEXT: vcmpgepd %ymm1, %ymm0, %ymm0
505 ; X32-NEXT: retl
509 ; X64-NEXT: vcmpgepd %ymm1, %ymm0, %ymm0
510 ; X64-NEXT: retq
519 ; X32-NEXT: vcmpgeps %xmm1, %xmm0, %xmm0
520 ; X32-NEXT: retl
524 ; X64-NEXT: vcmpgeps %xmm1, %xmm0, %xmm0
525 ; X64-NEXT: retq
534 ; X32-NEXT: vcmpgeps %ymm1, %ymm0, %ymm0
535 ; X32-NEXT: retl
539 ; X64-NEXT: vcmpgeps %ymm1, %ymm0, %ymm0
540 ; X64-NEXT: retq
549 ; X32-NEXT: vcmpgesd %xmm1, %xmm0, %xmm0
550 ; X32-NEXT: retl
554 ; X64-NEXT: vcmpgesd %xmm1, %xmm0, %xmm0
555 ; X64-NEXT: retq
564 ; X32-NEXT: vcmpgess %xmm1, %xmm0, %xmm0
565 ; X32-NEXT: retl
569 ; X64-NEXT: vcmpgess %xmm1, %xmm0, %xmm0
570 ; X64-NEXT: retq
579 ; X32-NEXT: vcvtdq2pd %xmm0, %ymm0
580 ; X32-NEXT: retl
584 ; X64-NEXT: vcvtdq2pd %xmm0, %ymm0
585 ; X64-NEXT: retq
594 ; X32-NEXT: vcvtdq2ps %ymm0, %ymm0
595 ; X32-NEXT: retl
599 ; X64-NEXT: vcvtdq2ps %ymm0, %ymm0
600 ; X64-NEXT: retq
610 ; X32-NEXT: vcvtpd2dqy %ymm0, %xmm0
611 ; X32-NEXT: vzeroupper
612 ; X32-NEXT: retl
616 ; X64-NEXT: vcvtpd2dqy %ymm0, %xmm0
617 ; X64-NEXT: vzeroupper
618 ; X64-NEXT: retq
628 ; X32-NEXT: vcvtpd2psy %ymm0, %xmm0
629 ; X32-NEXT: vzeroupper
630 ; X32-NEXT: retl
634 ; X64-NEXT: vcvtpd2psy %ymm0, %xmm0
635 ; X64-NEXT: vzeroupper
636 ; X64-NEXT: retq
645 ; X32-NEXT: vcvtps2dq %ymm0, %ymm0
646 ; X32-NEXT: retl
650 ; X64-NEXT: vcvtps2dq %ymm0, %ymm0
651 ; X64-NEXT: retq
661 ; X32-NEXT: vcvtps2pd %xmm0, %ymm0
662 ; X32-NEXT: retl
666 ; X64-NEXT: vcvtps2pd %xmm0, %ymm0
667 ; X64-NEXT: retq
675 ; X32-NEXT: vcvttpd2dqy %ymm0, %xmm0
676 ; X32-NEXT: vzeroupper
677 ; X32-NEXT: retl
681 ; X64-NEXT: vcvttpd2dqy %ymm0, %xmm0
682 ; X64-NEXT: vzeroupper
683 ; X64-NEXT: retq
692 ; X32-NEXT: vcvttps2dq %ymm0, %ymm0
693 ; X32-NEXT: retl
697 ; X64-NEXT: vcvttps2dq %ymm0, %ymm0
698 ; X64-NEXT: retq
707 ; X32-NEXT: vdivpd %ymm1, %ymm0, %ymm0
708 ; X32-NEXT: retl
712 ; X64-NEXT: vdivpd %ymm1, %ymm0, %ymm0
713 ; X64-NEXT: retq
721 ; X32-NEXT: vdivps %ymm1, %ymm0, %ymm0
722 ; X32-NEXT: retl
726 ; X64-NEXT: vdivps %ymm1, %ymm0, %ymm0
727 ; X64-NEXT: retq
735 ; X32-NEXT: vdpps $7, %ymm1, %ymm0, %ymm0
736 ; X32-NEXT: retl
740 ; X64-NEXT: vdpps $7, %ymm1, %ymm0, %ymm0
741 ; X64-NEXT: retq
750 ; X32-NEXT: vextractf128 $1, %ymm0, %xmm0
751 ; X32-NEXT: vpextrb $15, %xmm0, %eax
752 ; X32-NEXT: movzbl %al, %eax
753 ; X32-NEXT: vzeroupper
754 ; X32-NEXT: retl
758 ; X64-NEXT: vextractf128 $1, %ymm0, %xmm0
759 ; X64-NEXT: vpextrb $15, %xmm0, %eax
760 ; X64-NEXT: movzbl %al, %eax
761 ; X64-NEXT: vzeroupper
762 ; X64-NEXT: retq
772 ; X32-NEXT: vextractf128 $1, %ymm0, %xmm0
773 ; X32-NEXT: vpextrw $3, %xmm0, %eax
774 ; X32-NEXT: movzwl %ax, %eax
775 ; X32-NEXT: vzeroupper
776 ; X32-NEXT: retl
780 ; X64-NEXT: vextractf128 $1, %ymm0, %xmm0
781 ; X64-NEXT: vpextrw $3, %xmm0, %eax
782 ; X64-NEXT: movzwl %ax, %eax
783 ; X64-NEXT: vzeroupper
784 ; X64-NEXT: retq
794 ; X32-NEXT: vextractf128 $1, %ymm0, %xmm0
795 ; X32-NEXT: vpextrd $1, %xmm0, %eax
796 ; X32-NEXT: vzeroupper
797 ; X32-NEXT: retl
801 ; X64-NEXT: vextractf128 $1, %ymm0, %xmm0
802 ; X64-NEXT: vpextrd $1, %xmm0, %eax
803 ; X64-NEXT: vzeroupper
804 ; X64-NEXT: retq
813 ; X32-NEXT: vextractf128 $1, %ymm0, %xmm0
814 ; X32-NEXT: vpextrd $2, %xmm0, %eax
815 ; X32-NEXT: vpextrd $3, %xmm0, %edx
816 ; X32-NEXT: vzeroupper
817 ; X32-NEXT: retl
821 ; X64-NEXT: vextractf128 $1, %ymm0, %xmm0
822 ; X64-NEXT: vpextrq $1, %xmm0, %rax
823 ; X64-NEXT: vzeroupper
824 ; X64-NEXT: retq
832 ; X32-NEXT: vextractf128 $1, %ymm0, %xmm0
833 ; X32-NEXT: vzeroupper
834 ; X32-NEXT: retl
838 ; X64-NEXT: vextractf128 $1, %ymm0, %xmm0
839 ; X64-NEXT: vzeroupper
840 ; X64-NEXT: retq
848 ; X32-NEXT: vextractf128 $1, %ymm0, %xmm0
849 ; X32-NEXT: vzeroupper
850 ; X32-NEXT: retl
854 ; X64-NEXT: vextractf128 $1, %ymm0, %xmm0
855 ; X64-NEXT: vzeroupper
856 ; X64-NEXT: retq
864 ; X32-NEXT: vextractf128 $1, %ymm0, %xmm0
865 ; X32-NEXT: vzeroupper
866 ; X32-NEXT: retl
870 ; X64-NEXT: vextractf128 $1, %ymm0, %xmm0
871 ; X64-NEXT: vzeroupper
872 ; X64-NEXT: retq
880 ; X32-NEXT: vroundpd $1, %ymm0, %ymm0
881 ; X32-NEXT: retl
885 ; X64-NEXT: vroundpd $1, %ymm0, %ymm0
886 ; X64-NEXT: retq
894 ; X32-NEXT: vroundps $1, %ymm0, %ymm0
895 ; X32-NEXT: retl
899 ; X64-NEXT: vroundps $1, %ymm0, %ymm0
900 ; X64-NEXT: retq
908 ; X32-NEXT: vhaddpd %ymm1, %ymm0, %ymm0
909 ; X32-NEXT: retl
913 ; X64-NEXT: vhaddpd %ymm1, %ymm0, %ymm0
914 ; X64-NEXT: retq
923 ; X32-NEXT: vhaddps %ymm1, %ymm0, %ymm0
924 ; X32-NEXT: retl
928 ; X64-NEXT: vhaddps %ymm1, %ymm0, %ymm0
929 ; X64-NEXT: retq
938 ; X32-NEXT: vhsubpd %ymm1, %ymm0, %ymm0
939 ; X32-NEXT: retl
943 ; X64-NEXT: vhsubpd %ymm1, %ymm0, %ymm0
944 ; X64-NEXT: retq
953 ; X32-NEXT: vhsubps %ymm1, %ymm0, %ymm0
954 ; X32-NEXT: retl
958 ; X64-NEXT: vhsubps %ymm1, %ymm0, %ymm0
959 ; X64-NEXT: retq
968 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
969 ; X32-NEXT: vpinsrb $4, %eax, %xmm0, %xmm1
970 ; X32-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
971 ; X32-NEXT: retl
975 ; X64-NEXT: movzbl %dil, %eax
976 ; X64-NEXT: vpinsrb $4, %eax, %xmm0, %xmm1
977 ; X64-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
978 ; X64-NEXT: retq
988 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
989 ; X32-NEXT: vextractf128 $1, %ymm0, %xmm1
990 ; X32-NEXT: vpinsrw $6, %eax, %xmm1, %xmm1
991 ; X32-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
992 ; X32-NEXT: retl
996 ; X64-NEXT: vextractf128 $1, %ymm0, %xmm1
997 ; X64-NEXT: vpinsrw $6, %edi, %xmm1, %xmm1
998 ; X64-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
999 ; X64-NEXT: retq
1009 ; X32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm0, %xmm1
1010 ; X32-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1011 ; X32-NEXT: retl
1015 ; X64-NEXT: vpinsrd $3, %edi, %xmm0, %xmm1
1016 ; X64-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1017 ; X64-NEXT: retq
1027 ; X32-NEXT: vextractf128 $1, %ymm0, %xmm1
1028 ; X32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm1, %xmm1
1029 ; X32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm1, %xmm2
1030 ; X32-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
1031 ; X32-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
1032 ; X32-NEXT: retl
1036 ; X64-NEXT: vextractf128 $1, %ymm0, %xmm1
1037 ; X64-NEXT: vpinsrq $1, %rdi, %xmm1, %xmm1
1038 ; X64-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
1039 ; X64-NEXT: retq
1047 ; X32-NEXT: # kill: %XMM1<def> %XMM1<kill> %YMM1<def>
1048 ; X32-NEXT: vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
1049 ; X32-NEXT: retl
1053 ; X64-NEXT: # kill: %XMM1<def> %XMM1<kill> %YMM1<def>
1054 ; X64-NEXT: vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
1055 ; X64-NEXT: retq
1064 ; X32-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
1065 ; X32-NEXT: retl
1069 ; X64-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
1070 ; X64-NEXT: retq
1079 ; X32-NEXT: # kill: %XMM1<def> %XMM1<kill> %YMM1<def>
1080 ; X32-NEXT: vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
1081 ; X32-NEXT: retl
1085 ; X64-NEXT: # kill: %XMM1<def> %XMM1<kill> %YMM1<def>
1086 ; X64-NEXT: vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
1087 ; X64-NEXT: retq
1096 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1097 ; X32-NEXT: vlddqu (%eax), %ymm0
1098 ; X32-NEXT: retl
1102 ; X64-NEXT: vlddqu (%rdi), %ymm0
1103 ; X64-NEXT: retq
1114 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1115 ; X32-NEXT: vmovaps (%eax), %ymm0
1116 ; X32-NEXT: retl
1120 ; X64-NEXT: vmovaps (%rdi), %ymm0
1121 ; X64-NEXT: retq
1130 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1131 ; X32-NEXT: vmovaps (%eax), %ymm0
1132 ; X32-NEXT: retl
1136 ; X64-NEXT: vmovaps (%rdi), %ymm0
1137 ; X64-NEXT: retq
1146 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1147 ; X32-NEXT: vmovaps (%eax), %ymm0
1148 ; X32-NEXT: retl
1152 ; X64-NEXT: vmovaps (%rdi), %ymm0
1153 ; X64-NEXT: retq
1161 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1162 ; X32-NEXT: vmovups (%eax), %ymm0
1163 ; X32-NEXT: retl
1167 ; X64-NEXT: vmovups (%rdi), %ymm0
1168 ; X64-NEXT: retq
1177 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1178 ; X32-NEXT: vmovups (%eax), %ymm0
1179 ; X32-NEXT: retl
1183 ; X64-NEXT: vmovups (%rdi), %ymm0
1184 ; X64-NEXT: retq
1193 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1194 ; X32-NEXT: vmovups (%eax), %ymm0
1195 ; X32-NEXT: retl
1199 ; X64-NEXT: vmovups (%rdi), %ymm0
1200 ; X64-NEXT: retq
1208 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1209 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
1210 ; X32-NEXT: vmovups (%eax), %xmm0
1211 ; X32-NEXT: vinsertf128 $1, (%ecx), %ymm0, %ymm0
1212 ; X32-NEXT: retl
1216 ; X64-NEXT: vmovups (%rsi), %xmm0
1217 ; X64-NEXT: vinsertf128 $1, (%rdi), %ymm0, %ymm0
1218 ; X64-NEXT: retq
1232 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1233 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
1234 ; X32-NEXT: vmovups (%eax), %xmm0
1235 ; X32-NEXT: vinsertf128 $1, (%ecx), %ymm0, %ymm0
1236 ; X32-NEXT: retl
1240 ; X64-NEXT: vmovups (%rsi), %xmm0
1241 ; X64-NEXT: vinsertf128 $1, (%rdi), %ymm0, %ymm0
1242 ; X64-NEXT: retq
1256 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1257 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
1258 ; X32-NEXT: vmovups (%eax), %xmm0
1259 ; X32-NEXT: vinsertf128 $1, (%ecx), %ymm0, %ymm0
1260 ; X32-NEXT: retl
1264 ; X64-NEXT: vmovups (%rsi), %xmm0
1265 ; X64-NEXT: vinsertf128 $1, (%rdi), %ymm0, %ymm0
1266 ; X64-NEXT: retq
1280 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1281 ; X32-NEXT: vmaskmovpd (%eax), %xmm0, %xmm0
1282 ; X32-NEXT: retl
1286 ; X64-NEXT: vmaskmovpd (%rdi), %xmm0, %xmm0
1287 ; X64-NEXT: retq
1297 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1298 ; X32-NEXT: vmaskmovpd (%eax), %ymm0, %ymm0
1299 ; X32-NEXT: retl
1303 ; X64-NEXT: vmaskmovpd (%rdi), %ymm0, %ymm0
1304 ; X64-NEXT: retq
1314 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1315 ; X32-NEXT: vmaskmovps (%eax), %xmm0, %xmm0
1316 ; X32-NEXT: retl
1320 ; X64-NEXT: vmaskmovps (%rdi), %xmm0, %xmm0
1321 ; X64-NEXT: retq
1332 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1333 ; X32-NEXT: vmaskmovps (%eax), %ymm0, %ymm0
1334 ; X32-NEXT: retl
1338 ; X64-NEXT: vmaskmovps (%rdi), %ymm0, %ymm0
1339 ; X64-NEXT: retq
1350 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1351 ; X32-NEXT: vmaskmovpd %xmm1, %xmm0, (%eax)
1352 ; X32-NEXT: retl
1356 ; X64-NEXT: vmaskmovpd %xmm1, %xmm0, (%rdi)
1357 ; X64-NEXT: retq
1367 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1368 ; X32-NEXT: vmaskmovpd %ymm1, %ymm0, (%eax)
1369 ; X32-NEXT: vzeroupper
1370 ; X32-NEXT: retl
1374 ; X64-NEXT: vmaskmovpd %ymm1, %ymm0, (%rdi)
1375 ; X64-NEXT: vzeroupper
1376 ; X64-NEXT: retq
1386 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1387 ; X32-NEXT: vmaskmovps %xmm1, %xmm0, (%eax)
1388 ; X32-NEXT: retl
1392 ; X64-NEXT: vmaskmovps %xmm1, %xmm0, (%rdi)
1393 ; X64-NEXT: retq
1404 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
1405 ; X32-NEXT: vmaskmovps %ymm1, %ymm0, (%eax)
1406 ; X32-NEXT: vzeroupper
1407 ; X32-NEXT: retl
1411 ; X64-NEXT: vmaskmovps %ymm1, %ymm0, (%rdi)
1412 ; X64-NEXT: vzeroupper
1413 ; X64-NEXT: retq
1424 ; X32-NEXT: vmaxpd %ymm1, %ymm0, %ymm0
1425 ; X32-NEXT: retl
1429 ; X64-NEXT: vmaxpd %ymm1, %ymm0, %ymm0
1430 ; X64-NEXT: retq
1439 ; X32-NEXT: vmaxps %ymm1, %ymm0, %ymm0
1440 ; X32-NEXT: retl
1444 ; X64-NEXT: vmaxps %ymm1, %ymm0, %ymm0
1445 ; X64-NEXT: retq
1454 ; X32-NEXT: vminpd %ymm1, %ymm0, %ymm0
1455 ; X32-NEXT: retl
1459 ; X64-NEXT: vminpd %ymm1, %ymm0, %ymm0
1460 ; X64-NEXT
1469 ; X32-NEXT: vminps %ymm1, %ymm0, %ymm0
1470 ; X32-NEXT: retl
1474 ; X64-NEXT: vminps %ymm1, %ymm0, %ymm0
1475 ; X64-NEXT: retq
1484 ; X32-NEXT: vmovddup {{.*#+}} ymm0 = ymm0[0,0,2,2]
1485 ; X32-NEXT: retl
1489 ; X64-NEXT: vmovddup {{.*#+}} ymm0 = ymm0[0,0,2,2]
1490 ; X64-NEXT: retq
1498 ; X32-NEXT: vmovshdup {{.*#+}} ymm0 = ymm0[1,1,3,3,5,5,7,7]
1499 ; X32-NEXT: retl
1503 ; X64-NEXT: vmovshdup {{.*#+}} ymm0 = ymm0[1,1,3,3,5,5,7,7]
1504 ; X64-NEXT: retq
1512 ; X32-NEXT: vmovsldup {{.*#+}} ymm0 = ymm0[0,0,2,2,4,4,6,6]
1513 ; X32-NEXT: retl
1517 ; X64-NEXT: vmovsldup {{.*#+}} ymm0 = ymm0[0,0,2,2,4,4,6,6]
1518 ; X64-NEXT: retq
1526 ; X32-NEXT: vmovmskpd %ymm0, %eax
1527 ; X32-NEXT: vzeroupper
1528 ; X32-NEXT: retl
1532 ; X64-NEXT: vmovmskpd %ymm0, %eax
1533 ; X64-NEXT: vzeroupper
1534 ; X64-NEXT: retq
1543 ; X32-NEXT: vmovmskps %ymm0, %eax
1544 ; X32-NEXT: vzeroupper
1545 ; X32-NEXT: retl
1549 ; X64-NEXT: vmovmskps %ymm0, %eax
1550 ; X64-NEXT: vzeroupper
1551 ; X64-NEXT: retq
1560 ; X32-NEXT: vmulpd %ymm1, %ymm0, %ymm0
1561 ; X32-NEXT: retl
1565 ; X64-NEXT: vmulpd %ymm1, %ymm0, %ymm0
1566 ; X64-NEXT: retq
1574 ; X32-NEXT: vmulps %ymm1, %ymm0, %ymm0
1575 ; X32-NEXT: retl
1579 ; X64-NEXT: vmulps %ymm1, %ymm0, %ymm0
1580 ; X64-NEXT: retq
1588 ; X32-NEXT: vorps %ymm1, %ymm0, %ymm0
1589 ; X32-NEXT: retl
1593 ; X64-NEXT: vorps %ymm1, %ymm0, %ymm0
1594 ; X64-NEXT: retq
1605 ; X32-NEXT: vorps %ymm1, %ymm0, %ymm0
1606 ; X32-NEXT: retl
1610 ; X64-NEXT: vorps %ymm1, %ymm0, %ymm0
1611 ; X64-NEXT: retq
1622 ; X32-NEXT: vpermilpd {{.*#+}} xmm0 = xmm0[1,0]
1623 ; X32-NEXT: retl
1627 ; X64-NEXT: vpermilpd {{.*#+}} xmm0 = xmm0[1,0]
1628 ; X64-NEXT: retq
1636 ; X32-NEXT: vpermilpd {{.*#+}} ymm0 = ymm0[1,0,3,2]
1637 ; X32-NEXT: retl
1641 ; X64-NEXT: vpermilpd {{.*#+}} ymm0 = ymm0[1,0,3,2]
1642 ; X64-NEXT: retq
1650 ; X32-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[3,2,1,0]
1651 ; X32-NEXT: retl
1655 ; X64-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[3,2,1,0]
1656 ; X64-NEXT: retq
1664 ; X32-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[2,1,2,3]
1665 ; X32-NEXT: retl
1669 ; X64-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[2,1,2,3]
1670 ; X64-NEXT: retq
1678 ; X32-NEXT: vpermilps {{.*#+}} ymm0 = ymm0[3,2,1,0,7,6,5,4]
1679 ; X32-NEXT: retl
1683 ; X64-NEXT: vpermilps {{.*#+}} ymm0 = ymm0[3,2,1,0,7,6,5,4]
1684 ; X64-NEXT: retq
1692 ; X32-NEXT: vperm2f128 {{.*#+}} ymm0 = zero,zero,ymm1[0,1]
1693 ; X32-NEXT: retl
1697 ; X64-NEXT: vperm2f128 {{.*#+}} ymm0 = zero,zero,ymm1[0,1]
1698 ; X64-NEXT: retq
1708 ; X32-NEXT: vmovaps %ymm1, %ymm0
1709 ; X32-NEXT: retl
1713 ; X64-NEXT: vmovaps %ymm1, %ymm0
1714 ; X64-NEXT: retq
1723 ; X32-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3,0,1]
1724 ; X32-NEXT: retl
1728 ; X64-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3,0,1]
1729 ; X64-NEXT: retq
1741 ; X32-NEXT: vpermilpd %xmm1, %xmm0, %xmm0
1742 ; X32-NEXT: retl
1746 ; X64-NEXT: vpermilpd %xmm1, %xmm0, %xmm0
1747 ; X64-NEXT: retq
1756 ; X32-NEXT: vpermilpd %ymm1, %ymm0, %ymm0
1757 ; X32-NEXT: retl
1761 ; X64-NEXT: vpermilpd %ymm1, %ymm0, %ymm0
1762 ; X64-NEXT: retq
1771 ; X32-NEXT: vpermilps %xmm1, %xmm0, %xmm0
1772 ; X32-NEXT: retl
1776 ; X64-NEXT: vpermilps %xmm1, %xmm0, %xmm0
1777 ; X64-NEXT: retq
1787 ; X32-NEXT: vpermilps %ymm1, %ymm0, %ymm0
1788 ; X32-NEXT: retl
1792 ; X64-NEXT: vpermilps %ymm1, %ymm0, %ymm0
1793 ; X64-NEXT: retq
1803 ; X32-NEXT: vrcpps %ymm0, %ymm0
1804 ; X32-NEXT: retl
1808 ; X64-NEXT: vrcpps %ymm0, %ymm0
1809 ; X64-NEXT: retq
1818 ; X32-NEXT: vroundpd $4, %ymm0, %ymm0
1819 ; X32-NEXT: retl
1823 ; X64-NEXT: vroundpd $4, %ymm0, %ymm0
1824 ; X64-NEXT: retq
1832 ; X32-NEXT: vroundps $4, %ymm0, %ymm0
1833 ; X32-NEXT: retl
1837 ; X64-NEXT: vroundps $4, %ymm0, %ymm0
1838 ; X64-NEXT: retq
1846 ; X32-NEXT: vrsqrtps %ymm0, %ymm0
1847 ; X32-NEXT: retl
1851 ; X64-NEXT: vrsqrtps %ymm0, %ymm0
1852 ; X64-NEXT: retq
1861 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1862 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
1863 ; X32-NEXT: vmovd %ecx, %xmm0
1864 ; X32-NEXT: vpinsrb $1, %eax, %xmm0, %xmm0
1865 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1866 ; X32-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0
1867 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1868 ; X32-NEXT: vpinsrb $3, %eax, %xmm0, %xmm0
1869 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1870 ; X32-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0
1871 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1872 ; X32-NEXT: vpinsrb $5, %eax, %xmm0, %xmm0
1873 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1874 ; X32-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0
1875 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1876 ; X32-NEXT: vpinsrb $7, %eax, %xmm0, %xmm0
1877 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1878 ; X32-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0
1879 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1880 ; X32-NEXT: vpinsrb $9, %eax, %xmm0, %xmm0
1881 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1882 ; X32-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0
1883 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1884 ; X32-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
1885 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1886 ; X32-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0
1887 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1888 ; X32-NEXT: vpinsrb $13, %eax, %xmm0, %xmm0
1889 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1890 ; X32-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0
1891 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1892 ; X32-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
1893 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1894 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
1895 ; X32-NEXT: vmovd %ecx, %xmm1
1896 ; X32-NEXT: vpinsrb $1, %eax, %xmm1, %xmm1
1897 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1898 ; X32-NEXT: vpinsrb $2, %eax, %xmm1, %xmm1
1899 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1900 ; X32-NEXT: vpinsrb $3, %eax, %xmm1, %xmm1
1901 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1902 ; X32-NEXT: vpinsrb $4, %eax, %xmm1, %xmm1
1903 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1904 ; X32-NEXT: vpinsrb $5, %eax, %xmm1, %xmm1
1905 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1906 ; X32-NEXT: vpinsrb $6, %eax, %xmm1, %xmm1
1907 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1908 ; X32-NEXT: vpinsrb $7, %eax, %xmm1, %xmm1
1909 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1910 ; X32-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1
1911 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1912 ; X32-NEXT: vpinsrb $9, %eax, %xmm1, %xmm1
1913 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1914 ; X32-NEXT: vpinsrb $10, %eax, %xmm1, %xmm1
1915 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1916 ; X32-NEXT: vpinsrb $11, %eax, %xmm1, %xmm1
1917 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1918 ; X32-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
1919 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1920 ; X32-NEXT: vpinsrb $13, %eax, %xmm1, %xmm1
1921 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
1922 ; X32-NEXT: vpinsrb $14, %eax, %xmm1, %xmm1
1923 ; X32-NEXT
1924 ; X32-NEXT: vpinsrb $15, %eax, %xmm1, %xmm1
1925 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
1926 ; X32-NEXT: retl
1930 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %r10d
1931 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1932 ; X64-NEXT: vmovd %eax, %xmm0
1933 ; X64-NEXT: vpinsrb $1, %r10d, %xmm0, %xmm0
1934 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1935 ; X64-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0
1936 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1937 ; X64-NEXT: vpinsrb $3, %eax, %xmm0, %xmm0
1938 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1939 ; X64-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0
1940 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1941 ; X64-NEXT: vpinsrb $5, %eax, %xmm0, %xmm0
1942 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1943 ; X64-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0
1944 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1945 ; X64-NEXT: vpinsrb $7, %eax, %xmm0, %xmm0
1946 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1947 ; X64-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0
1948 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1949 ; X64-NEXT: vpinsrb $9, %eax, %xmm0, %xmm0
1950 ; X64-NEXT: movzbl %r9b, %eax
1951 ; X64-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0
1952 ; X64-NEXT: movzbl %r8b, %eax
1953 ; X64-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
1954 ; X64-NEXT: movzbl %cl, %eax
1955 ; X64-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0
1956 ; X64-NEXT: movzbl %dl, %eax
1957 ; X64-NEXT: vpinsrb $13, %eax, %xmm0, %xmm0
1958 ; X64-NEXT: movzbl %sil, %eax
1959 ; X64-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0
1960 ; X64-NEXT: movzbl %dil, %eax
1961 ; X64-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
1962 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1963 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %ecx
1964 ; X64-NEXT: vmovd %ecx, %xmm1
1965 ; X64-NEXT: vpinsrb $1, %eax, %xmm1, %xmm1
1966 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1967 ; X64-NEXT: vpinsrb $2, %eax, %xmm1, %xmm1
1968 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1969 ; X64-NEXT: vpinsrb $3, %eax, %xmm1, %xmm1
1970 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1971 ; X64-NEXT: vpinsrb $4, %eax, %xmm1, %xmm1
1972 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1973 ; X64-NEXT: vpinsrb $5, %eax, %xmm1, %xmm1
1974 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1975 ; X64-NEXT: vpinsrb $6, %eax, %xmm1, %xmm1
1976 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1977 ; X64-NEXT: vpinsrb $7, %eax, %xmm1, %xmm1
1978 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1979 ; X64-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1
1980 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1981 ; X64-NEXT: vpinsrb $9, %eax, %xmm1, %xmm1
1982 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1983 ; X64-NEXT: vpinsrb $10, %eax, %xmm1, %xmm1
1984 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1985 ; X64-NEXT: vpinsrb $11, %eax, %xmm1, %xmm1
1986 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1987 ; X64-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
1988 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1989 ; X64-NEXT: vpinsrb $13, %eax, %xmm1, %xmm1
1990 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1991 ; X64-NEXT: vpinsrb $14, %eax, %xmm1, %xmm1
1992 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
1993 ; X64-NEXT: vpinsrb $15, %eax, %xmm1, %xmm1
1994 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
1995 ; X64-NEXT: retq
2035 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2036 ; X32-NEXT: vmovd %eax, %xmm0
2037 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2038 ; X32-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0
2039 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2040 ; X32-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0
2041 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2042 ; X32-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0
2043 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2044 ; X32-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0
2045 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2046 ; X32-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0
2047 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2048 ; X32-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0
2049 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2050 ; X32-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0
2051 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2052 ; X32-NEXT: vmovd %eax, %xmm1
2053 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2054 ; X32-NEXT: vpinsrw $1, %eax, %xmm1, %xmm1
2055 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2056 ; X32-NEXT: vpinsrw $2, %eax, %xmm1, %xmm1
2057 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2058 ; X32-NEXT: vpinsrw $3, %eax, %xmm1, %xmm1
2059 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2060 ; X32-NEXT: vpinsrw $4, %eax, %xmm1, %xmm1
2061 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2062 ; X32-NEXT: vpinsrw $5, %eax, %xmm1, %xmm1
2063 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2064 ; X32-NEXT: vpinsrw $6, %eax, %xmm1, %xmm1
2065 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2066 ; X32-NEXT: vpinsrw $7, %eax, %xmm1, %xmm1
2067 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2068 ; X32-NEXT: retl
2072 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2073 ; X64-NEXT: vmovd %eax, %xmm0
2074 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2075 ; X64-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0
2076 ; X64-NEXT: vpinsrw $2, %r9d, %xmm0, %xmm0
2077 ; X64-NEXT: vpinsrw $3, %r8d, %xmm0, %xmm0
2078 ; X64-NEXT: vpinsrw $4, %ecx, %xmm0, %xmm0
2079 ; X64-NEXT: vpinsrw $5, %edx, %xmm0, %xmm0
2080 ; X64-NEXT: vpinsrw $6, %esi, %xmm0, %xmm0
2081 ; X64-NEXT: vpinsrw $7, %edi, %xmm0, %xmm0
2082 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2083 ; X64-NEXT: vmovd %eax, %xmm1
2084 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2085 ; X64-NEXT: vpinsrw $1, %eax, %xmm1, %xmm1
2086 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2087 ; X64-NEXT: vpinsrw $2, %eax, %xmm1, %xmm1
2088 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2089 ; X64-NEXT: vpinsrw $3, %eax, %xmm1, %xmm1
2090 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2091 ; X64-NEXT: vpinsrw $4, %eax, %xmm1, %xmm1
2092 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2093 ; X64-NEXT: vpinsrw $5, %eax, %xmm1, %xmm1
2094 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2095 ; X64-NEXT: vpinsrw $6, %eax, %xmm1, %xmm1
2096 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2097 ; X64-NEXT: vpinsrw $7, %eax, %xmm1, %xmm1
2098 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2099 ; X64-NEXT: retq
2123 ; X32-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
2124 ; X32-NEXT: vpinsrd $1, {{[0-9]+}}(%esp), %xmm0, %xmm0
2125 ; X32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm0, %xmm0
2126 ; X32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm0, %xmm0
2127 ; X32-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
2128 ; X32-NEXT: vpinsrd $1, {{[0-9]+}}(%esp), %xmm1, %xmm1
2129 ; X32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm1, %xmm1
2130 ; X32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm1, %xmm1
2131 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2132 ; X32-NEXT: retl
2136 ; X64-NEXT: vmovd %ecx, %xmm0
2137 ; X64-NEXT: vpinsrd $1, %edx, %xmm0, %xmm0
2138 ; X64-NEXT: vpinsrd $2, %esi, %xmm0, %xmm0
2139 ; X64-NEXT: vpinsrd $3, %edi, %xmm0, %xmm0
2140 ; X64-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
2141 ; X64-NEXT: vpinsrd $1, {{[0-9]+}}(%rsp), %xmm1, %xmm1
2142 ; X64-NEXT: vpinsrd $2, %r9d, %xmm1, %xmm1
2143 ; X64-NEXT: vpinsrd $3, %r8d, %xmm1, %xmm1
2144 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2145 ; X64-NEXT: retq
2161 ; X32-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
2162 ; X32-NEXT: vpinsrd $1, {{[0-9]+}}(%esp), %xmm0, %xmm0
2163 ; X32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm0, %xmm0
2164 ; X32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm0, %xmm0
2165 ; X32-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
2166 ; X32-NEXT: vpinsrd $1, {{[0-9]+}}(%esp), %xmm1, %xmm1
2167 ; X32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm1, %xmm1
2168 ; X32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm1, %xmm1
2169 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2170 ; X32-NEXT: retl
2174 ; X64-NEXT: vmovq %rdi, %xmm0
2175 ; X64-NEXT: vmovq %rsi, %xmm1
2176 ; X64-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
2177 ; X64-NEXT: vmovq %rdx, %xmm1
2178 ; X64-NEXT: vmovq %rcx, %xmm2
2179 ; X64-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
2180 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2181 ; X64-NEXT: retq
2192 ; X32-NEXT: # kill: %XMM1<def> %XMM1<kill> %YMM1<def>
2193 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2194 ; X32-NEXT: retl
2198 ; X64-NEXT: # kill: %XMM1<def> %XMM1<kill> %YMM1<def>
2199 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2200 ; X64-NEXT: retq
2208 ; X32-NEXT: # kill: %XMM1<def> %XMM1<kill> %YMM1<def>
2209 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2210 ; X32-NEXT: retl
2214 ; X64-NEXT: # kill: %XMM1<def> %XMM1<kill> %YMM1<def>
2215 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2216 ; X64-NEXT: retq
2227 ; X32-NEXT: # kill: %XMM1<def> %XMM1<kill> %YMM1<def>
2228 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2229 ; X32-NEXT: retl
2233 ; X64-NEXT: # kill: %XMM1<def> %XMM1<kill> %YMM1<def>
2234 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2235 ; X64-NEXT: retq
2246 ; X32-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
2247 ; X32-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
2248 ; X32-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero
2249 ; X32-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero
2250 ; X32-NEXT: vunpcklpd {{.*#+}} xmm2 = xmm2[0],xmm3[0]
2251 ; X32-NEXT: vunpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
2252 ; X32-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
2253 ; X32-NEXT: retl
2257 ; X64-NEXT: vunpcklpd {{.*#+}} xmm0 = xmm1[0],xmm0[0]
2258 ; X64-NEXT: vunpcklpd {{.*#+}} xmm1 = xmm3[0],xmm2[0]
2259 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2260 ; X64-NEXT: retq
2271 ; X32-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2272 ; X32-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2273 ; X32-NEXT: vmovss {{.*#+}} xmm2 = mem[0],zero,zero,zero
2274 ; X32-NEXT: vmovss {{.*#+}} xmm3 = mem[0],zero,zero,zero
2275 ; X32-NEXT: vmovss {{.*#+}} xmm4 = mem[0],zero,zero,zero
2276 ; X32-NEXT: vmovss {{.*#+}} xmm5 = mem[0],zero,zero,zero
2277 ; X32-NEXT: vmovss {{.*#+}} xmm6 = mem[0],zero,zero,zero
2278 ; X32-NEXT: vmovss {{.*#+}} xmm7 = mem[0],zero,zero,zero
2279 ; X32-NEXT: vinsertps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[2,3]
2280 ; X32-NEXT: vinsertps {{.*#+}} xmm4 = xmm4[0,1],xmm6[0],xmm4[3]
2281 ; X32-NEXT: vinsertps {{.*#+}} xmm4 = xmm4[0,1,2],xmm7[0]
2282 ; X32-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[2,3]
2283 ; X32-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0,1],xmm2[0],xmm0[3]
2284 ; X32-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0,1,2],xmm3[0]
2285 ; X32-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0
2286 ; X32-NEXT: retl
2290 ; X64-NEXT: vinsertps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[2,3]
2291 ; X64-NEXT: vinsertps {{.*#+}} xmm1 = xmm2[0,1],xmm1[0],xmm2[3]
2292 ; X64-NEXT: vinsertps {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[0]
2293 ; X64-NEXT: vinsertps {{.*#+}} xmm1 = xmm7[0],xmm6[0],xmm7[2,3]
2294 ; X64-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0,1],xmm5[0],xmm1[3]
2295 ; X64-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0,1,2],xmm4[0]
2296 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2297 ; X64-NEXT: retq
2312 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2313 ; X32-NEXT: vmovd %eax, %xmm0
2314 ; X32-NEXT: vpxor %xmm1, %xmm1, %xmm1
2315 ; X32-NEXT: vpshufb %xmm1, %xmm0, %xmm0
2316 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
2317 ; X32-NEXT: retl
2321 ; X64-NEXT: movzbl %dil, %eax
2322 ; X64-NEXT: vmovd %eax, %xmm0
2323 ; X64-NEXT: vpxor %xmm1, %xmm1, %xmm1
2324 ; X64-NEXT: vpshufb %xmm1, %xmm0, %xmm0
2325 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
2326 ; X64-NEXT: retq
2366 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2367 ; X32-NEXT: vmovd %eax, %xmm0
2368 ; X32-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]
2369 ; X32-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
2370 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
2371 ; X32-NEXT: retl
2375 ; X64-NEXT: vmovd %edi, %xmm0
2376 ; X64-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]
2377 ; X64-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
2378 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
2379 ; X64-NEXT: retq
2403 ; X32-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
2404 ; X32-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
2405 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
2406 ; X32-NEXT: retl
2410 ; X64-NEXT: vmovd %edi, %xmm0
2411 ; X64-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
2412 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
2413 ; X64-NEXT: retq
2429 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
2430 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
2431 ; X32-NEXT: vmovd %ecx, %xmm0
2432 ; X32-NEXT: vpinsrd $1, %eax, %xmm0, %xmm0
2433 ; X32-NEXT: vpinsrd $2, %ecx, %xmm0, %xmm0
2434 ; X32-NEXT: vpinsrd $3, %eax, %xmm0, %xmm0
2435 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
2436 ; X32-NEXT: retl
2440 ; X64-NEXT: vmovq %rdi, %xmm0
2441 ; X64-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]
2442 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
2443 ; X64-NEXT: retq
2454 ; X32-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
2455 ; X32-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0]
2456 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
2457 ; X32-NEXT: retl
2461 ; X64-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0]
2462 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
2463 ; X64-NEXT: retq
2474 ; X32-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2475 ; X32-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[0,0,0,0]
2476 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
2477 ; X32-NEXT: retl
2481 ; X64-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[0,0,0,0]
2482 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
2483 ; X64-NEXT: retq
2498 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2499 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
2500 ; X32-NEXT: vmovd %ecx, %xmm0
2501 ; X32-NEXT: vpinsrb $1, %eax, %xmm0, %xmm0
2502 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2503 ; X32-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0
2504 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2505 ; X32-NEXT: vpinsrb $3, %eax, %xmm0, %xmm0
2506 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2507 ; X32-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0
2508 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2509 ; X32-NEXT: vpinsrb $5, %eax, %xmm0, %xmm0
2510 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2511 ; X32-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0
2512 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2513 ; X32-NEXT: vpinsrb $7, %eax, %xmm0, %xmm0
2514 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2515 ; X32-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0
2516 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2517 ; X32-NEXT: vpinsrb $9, %eax, %xmm0, %xmm0
2518 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2519 ; X32-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0
2520 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2521 ; X32-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
2522 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2523 ; X32-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0
2524 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2525 ; X32-NEXT: vpinsrb $13, %eax, %xmm0, %xmm0
2526 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2527 ; X32-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0
2528 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2529 ; X32-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
2530 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2531 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
2532 ; X32-NEXT: vmovd %ecx, %xmm1
2533 ; X32-NEXT: vpinsrb $1, %eax, %xmm1, %xmm1
2534 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2535 ; X32-NEXT: vpinsrb $2, %eax, %xmm1, %xmm1
2536 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2537 ; X32-NEXT: vpinsrb $3, %eax, %xmm1, %xmm1
2538 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2539 ; X32-NEXT: vpinsrb $4, %eax, %xmm1, %xmm1
2540 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2541 ; X32-NEXT: vpinsrb $5, %eax, %xmm1, %xmm1
2542 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2543 ; X32-NEXT: vpinsrb $6, %eax, %xmm1, %xmm1
2544 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2545 ; X32-NEXT: vpinsrb $7, %eax, %xmm1, %xmm1
2546 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2547 ; X32-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1
2548 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2549 ; X32-NEXT: vpinsrb $9, %eax, %xmm1, %xmm1
2550 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2551 ; X32-NEXT: vpinsrb $10, %eax, %xmm1, %xmm1
2552 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2553 ; X32-NEXT: vpinsrb $11, %eax, %xmm1, %xmm1
2554 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2555 ; X32-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
2556 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2557 ; X32-NEXT: vpinsrb $13, %eax, %xmm1, %xmm1
2558 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2559 ; X32-NEXT: vpinsrb $14, %eax, %xmm1, %xmm1
2560 ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax
2561 ; X32-NEXT: vpinsrb $15, %eax, %xmm1, %xmm1
2562 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2563 ; X32-NEXT: retl
2567 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %r10d
2568 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2569 ; X64-NEXT: vmovd %eax, %xmm0
2570 ; X64-NEXT: vpinsrb $1, %r10d, %xmm0, %xmm0
2571 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2572 ; X64-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0
2573 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2574 ; X64-NEXT: vpinsrb $3, %eax, %xmm0, %xmm0
2575 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2576 ; X64-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0
2577 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2578 ; X64-NEXT: vpinsrb $5, %eax, %xmm0, %xmm0
2579 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2580 ; X64-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0
2581 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2582 ; X64-NEXT: vpinsrb $7, %eax, %xmm0, %xmm0
2583 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2584 ; X64-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0
2585 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2586 ; X64-NEXT: vpinsrb $9, %eax, %xmm0, %xmm0
2587 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2588 ; X64-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0
2589 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2590 ; X64-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
2591 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2592 ; X64-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0
2593 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2594 ; X64-NEXT: vpinsrb $13, %eax, %xmm0, %xmm0
2595 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2596 ; X64-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0
2597 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2598 ; X64-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
2599 ; X64-NEXT: movzbl %sil, %eax
2600 ; X64-NEXT: movzbl %dil, %esi
2601 ; X64-NEXT: vmovd %esi, %xmm1
2602 ; X64-NEXT: vpinsrb $1, %eax, %xmm1, %xmm1
2603 ; X64-NEXT: movzbl %dl, %eax
2604 ; X64-NEXT: vpinsrb $2, %eax, %xmm1, %xmm1
2605 ; X64-NEXT: movzbl %cl, %eax
2606 ; X64-NEXT: vpinsrb $3, %eax, %xmm1, %xmm1
2607 ; X64-NEXT: movzbl %r8b, %eax
2608 ; X64-NEXT: vpinsrb $4, %eax, %xmm1, %xmm1
2609 ; X64-NEXT: movzbl %r9b, %eax
2610 ; X64-NEXT: vpinsrb $5, %eax, %xmm1, %xmm1
2611 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2612 ; X64-NEXT: vpinsrb $6, %eax, %xmm1, %xmm1
2613 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2614 ; X64-NEXT: vpinsrb $7, %eax, %xmm1, %xmm1
2615 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2616 ; X64-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1
2617 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2618 ; X64-NEXT: vpinsrb $9, %eax, %xmm1, %xmm1
2619 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2620 ; X64-NEXT: vpinsrb $10, %eax, %xmm1, %xmm1
2621 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2622 ; X64-NEXT: vpinsrb $11, %eax, %xmm1, %xmm1
2623 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2624 ; X64-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
2625 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2626 ; X64-NEXT: vpinsrb $13, %eax, %xmm1, %xmm1
2627 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2628 ; X64-NEXT: vpinsrb $14, %eax, %xmm1, %xmm1
2629 ; X64-NEXT: movzbl {{[0-9]+}}(%rsp), %eax
2630 ; X64-NEXT: vpinsrb $15, %eax, %xmm1, %xmm1
2631 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2632 ; X64-NEXT: retq
2672 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2673 ; X32-NEXT: vmovd %eax, %xmm0
2674 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2675 ; X32-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0
2676 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2677 ; X32-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0
2678 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2679 ; X32-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0
2680 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2681 ; X32-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0
2682 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2683 ; X32-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0
2684 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2685 ; X32-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0
2686 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2687 ; X32-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0
2688 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2689 ; X32-NEXT: vmovd %eax, %xmm1
2690 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2691 ; X32-NEXT: vpinsrw $1, %eax, %xmm1, %xmm1
2692 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2693 ; X32-NEXT: vpinsrw $2, %eax, %xmm1, %xmm1
2694 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2695 ; X32-NEXT: vpinsrw $3, %eax, %xmm1, %xmm1
2696 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2697 ; X32-NEXT: vpinsrw $4, %eax, %xmm1, %xmm1
2698 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2699 ; X32-NEXT: vpinsrw $5, %eax, %xmm1, %xmm1
2700 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2701 ; X32-NEXT: vpinsrw $6, %eax, %xmm1, %xmm1
2702 ; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
2703 ; X32-NEXT: vpinsrw $7, %eax, %xmm1, %xmm1
2704 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2705 ; X32-NEXT: retl
2709 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2710 ; X64-NEXT: vmovd %eax, %xmm0
2711 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2712 ; X64-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0
2713 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2714 ; X64-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0
2715 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2716 ; X64-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0
2717 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2718 ; X64-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0
2719 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2720 ; X64-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0
2721 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2722 ; X64-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0
2723 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2724 ; X64-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0
2725 ; X64-NEXT: vmovd %edi, %xmm1
2726 ; X64-NEXT: vpinsrw $1, %esi, %xmm1, %xmm1
2727 ; X64-NEXT: vpinsrw $2, %edx, %xmm1, %xmm1
2728 ; X64-NEXT: vpinsrw $3, %ecx, %xmm1, %xmm1
2729 ; X64-NEXT: vpinsrw $4, %r8d, %xmm1, %xmm1
2730 ; X64-NEXT: vpinsrw $5, %r9d, %xmm1, %xmm1
2731 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2732 ; X64-NEXT: vpinsrw $6, %eax, %xmm1, %xmm1
2733 ; X64-NEXT: movw {{[0-9]+}}(%rsp), %ax
2734 ; X64-NEXT: vpinsrw $7, %eax, %xmm1, %xmm1
2735 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2736 ; X64-NEXT: retq
2760 ; X32-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
2761 ; X32-NEXT: vpinsrd $1, {{[0-9]+}}(%esp), %xmm0, %xmm0
2762 ; X32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm0, %xmm0
2763 ; X32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm0, %xmm0
2764 ; X32-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
2765 ; X32-NEXT: vpinsrd $1, {{[0-9]+}}(%esp), %xmm1, %xmm1
2766 ; X32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm1, %xmm1
2767 ; X32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm1, %xmm1
2768 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2769 ; X32-NEXT: retl
2773 ; X64-NEXT: vmovd %r8d, %xmm0
2774 ; X64-NEXT: vpinsrd $1, %r9d, %xmm0, %xmm0
2775 ; X64-NEXT: vpinsrd $2, {{[0-9]+}}(%rsp), %xmm0, %xmm0
2776 ; X64-NEXT: vpinsrd $3, {{[0-9]+}}(%rsp), %xmm0, %xmm0
2777 ; X64-NEXT: vmovd %edi, %xmm1
2778 ; X64-NEXT: vpinsrd $1, %esi, %xmm1, %xmm1
2779 ; X64-NEXT: vpinsrd $2, %edx, %xmm1, %xmm1
2780 ; X64-NEXT: vpinsrd $3, %ecx, %xmm1, %xmm1
2781 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2782 ; X64-NEXT: retq
2798 ; X32-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
2799 ; X32-NEXT: vpinsrd $1, {{[0-9]+}}(%esp), %xmm0, %xmm0
2800 ; X32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm0, %xmm0
2801 ; X32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm0, %xmm0
2802 ; X32-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
2803 ; X32-NEXT: vpinsrd $1, {{[0-9]+}}(%esp), %xmm1, %xmm1
2804 ; X32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm1, %xmm1
2805 ; X32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm1, %xmm1
2806 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2807 ; X32-NEXT: retl
2811 ; X64-NEXT: vmovq %rcx, %xmm0
2812 ; X64-NEXT: vmovq %rdx, %xmm1
2813 ; X64-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
2814 ; X64-NEXT: vmovq %rsi, %xmm1
2815 ; X64-NEXT: vmovq %rdi, %xmm2
2816 ; X64-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
2817 ; X64-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2818 ; X64-NEXT: retq
2829 ; X32-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<def>
2830 ; X32-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
2831 ; X32-NEXT: retl
2835 ; X64-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<def>
2836 ; X64-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
2837 ; X64-NEXT: retq
2845 ; X32-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<def>
2846 ; X32-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
2847 ; X32-NEXT: retl
2851 ; X64-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<def>
2852 ; X64-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
2853 ; X64-NEXT: retq
2864 ; X32-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<def>
2865 ; X32-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
2866 ; X32-NEXT: retl
2870 ; X64-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<def>
2871 ; X64-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
2872 ; X64-NEXT: retq
2883 ; X32-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
2884 ; X32-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
2885 ; X32-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero
2886 ; X32-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero
2887 ; X32-NEXT: vunpcklpd {{.*#+}} xmm0 = xmm1[0],xmm0[0]
2888 ; X32-NEXT: vunpcklpd {{.*#+}} xmm1 = xmm3[0],xmm2[0]
2889 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2890 ; X32-NEXT: retl
2894 ; X64-NEXT: vunpcklpd {{.*#+}} xmm2 = xmm2[0],xmm3[0]
2895 ; X64-NEXT: vunpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
2896 ; X64-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
2897 ; X64-NEXT: retq
2908 ; X32-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
2909 ; X32-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2910 ; X32-NEXT: vmovss {{.*#+}} xmm2 = mem[0],zero,zero,zero
2911 ; X32-NEXT: vmovss {{.*#+}} xmm3 = mem[0],zero,zero,zero
2912 ; X32-NEXT: vmovss {{.*#+}} xmm4 = mem[0],zero,zero,zero
2913 ; X32-NEXT: vmovss {{.*#+}} xmm5 = mem[0],zero,zero,zero
2914 ; X32-NEXT: vmovss {{.*#+}} xmm6 = mem[0],zero,zero,zero
2915 ; X32-NEXT: vmovss {{.*#+}} xmm7 = mem[0],zero,zero,zero
2916 ; X32-NEXT: vinsertps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[2,3]
2917 ; X32-NEXT: vinsertps {{.*#+}} xmm1 = xmm2[0,1],xmm1[0],xmm2[3]
2918 ; X32-NEXT: vinsertps {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[0]
2919 ; X32-NEXT: vinsertps {{.*#+}} xmm1 = xmm7[0],xmm6[0],xmm7[2,3]
2920 ; X32-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0,1],xmm5[0],xmm1[3]
2921 ; X32-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0,1,2],xmm4[0]
2922 ; X32-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
2923 ; X32-NEXT: retl
2927 ; X64-NEXT: vinsertps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[2,3]
2928 ; X64-NEXT: vinsertps {{.*#+}} xmm4 = xmm4[0,1],xmm6[0],xmm4[3]
2929 ; X64-NEXT: vinsertps {{.*#+}} xmm4 = xmm4[0,1,2],xmm7[0]
2930 ; X64-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[2,3]
2931 ; X64-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0,1],xmm2[0],xmm0[3]
2932 ; X64-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0,1,2],xmm3[0]
2933 ; X64-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0
2934 ; X64-NEXT: retq
2949 ; X32-NEXT: vxorps %ymm0, %ymm0, %ymm0
2950 ; X32-NEXT: retl
2954 ; X64-NEXT: vxorps %ymm0, %ymm0, %ymm0
2955 ; X64-NEXT: retq
2962 ; X32-NEXT: vxorps %ymm0, %ymm0, %ymm0
2963 ; X32-NEXT: retl
2967 ; X64-NEXT: vxorps %ymm0, %ymm0, %ymm0
2968 ; X64-NEXT: retq
2975 ; X32-NEXT: vxorps %ymm0, %ymm0, %ymm0
2976 ; X32-NEXT: retl
2980 ; X64-NEXT: vxorps %ymm0, %ymm0, %ymm0
2981 ; X64-NEXT: retq
2988 ; X32-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2989 ; X32-NEXT: retl
2993 ; X64-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2994 ; X64-NEXT: retq
3002 ; X32-NEXT: vshufps {{.*#+}} ymm0 = ymm0[0,0],ymm1[0,0],ymm0[4,4],ymm1[4,4]
3003 ; X32-NEXT: retl
3007 ; X64-NEXT: vshufps {{.*#+}} ymm0 = ymm0[0,0],ymm1[0,0],ymm0[4,4],ymm1[4,4]
3008 ; X64-NEXT: retq
3016 ; X32-NEXT: vsqrtpd %ymm0, %ymm0
3017 ; X32-NEXT: retl
3021 ; X64-NEXT: vsqrtpd %ymm0, %ymm0
3022 ; X64-NEXT: retq
3031 ; X32-NEXT: vsqrtps %ymm0, %ymm0
3032 ; X32-NEXT: retl
3036 ; X64-NEXT: vsqrtps %ymm0, %ymm0
3037 ; X64-NEXT: retq
3046 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
3047 ; X32-NEXT: vmovaps %ymm0, (%eax)
3048 NEXT: vzeroupper
3049 ; X32-NEXT: retl
3053 ; X64-NEXT: vmovaps %ymm0, (%rdi)
3054 ; X64-NEXT: vzeroupper
3055 ; X64-NEXT: retq
3064 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
3065 ; X32-NEXT: vmovaps %ymm0, (%eax)
3066 ; X32-NEXT: vzeroupper
3067 ; X32-NEXT: retl
3071 ; X64-NEXT: vmovaps %ymm0, (%rdi)
3072 ; X64-NEXT: vzeroupper
3073 ; X64-NEXT: retq
3082 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
3083 ; X32-NEXT: vmovaps %ymm0, (%eax)
3084 ; X32-NEXT: vzeroupper
3085 ; X32-NEXT: retl
3089 ; X64-NEXT: vmovaps %ymm0, (%rdi)
3090 ; X64-NEXT: vzeroupper
3091 ; X64-NEXT: retq
3099 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
3100 ; X32-NEXT: vmovups %ymm0, (%eax)
3101 ; X32-NEXT: vzeroupper
3102 ; X32-NEXT: retl
3106 ; X64-NEXT: vmovups %ymm0, (%rdi)
3107 ; X64-NEXT: vzeroupper
3108 ; X64-NEXT: retq
3117 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
3118 ; X32-NEXT: vmovups %ymm0, (%eax)
3119 ; X32-NEXT: vzeroupper
3120 ; X32-NEXT: retl
3124 ; X64-NEXT: vmovups %ymm0, (%rdi)
3125 ; X64-NEXT: vzeroupper
3126 ; X64-NEXT: retq
3135 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
3136 ; X32-NEXT: vmovups %ymm0, (%eax)
3137 ; X32-NEXT: vzeroupper
3138 ; X32-NEXT: retl
3142 ; X64-NEXT: vmovups %ymm0, (%rdi)
3143 ; X64-NEXT: vzeroupper
3144 ; X64-NEXT: retq
3152 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
3153 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
3154 ; X32-NEXT: vmovups %xmm0, (%ecx)
3155 ; X32-NEXT: vextractf128 $1, %ymm0, %xmm0
3156 ; X32-NEXT: vmovups %xmm0, (%eax)
3157 ; X32-NEXT: vzeroupper
3158 ; X32-NEXT: retl
3162 ; X64-NEXT: vmovups %xmm0, (%rdi)
3163 ; X64-NEXT: vextractf128 $1, %ymm0, %xmm0
3164 ; X64-NEXT: vmovups %xmm0, (%rsi)
3165 ; X64-NEXT: vzeroupper
3166 ; X64-NEXT: retq
3179 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
3180 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
3181 ; X32-NEXT: vmovups %xmm0, (%ecx)
3182 ; X32-NEXT: vextractf128 $1, %ymm0, %xmm0
3183 ; X32-NEXT: vmovups %xmm0, (%eax)
3184 ; X32-NEXT: vzeroupper
3185 ; X32-NEXT: retl
3189 ; X64-NEXT: vmovups %xmm0, (%rdi)
3190 ; X64-NEXT: vextractf128 $1, %ymm0, %xmm0
3191 ; X64-NEXT: vmovups %xmm0, (%rsi)
3192 ; X64-NEXT: vzeroupper
3193 ; X64-NEXT: retq
3206 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
3207 ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
3208 ; X32-NEXT: vmovups %xmm0, (%ecx)
3209 ; X32-NEXT: vextractf128 $1, %ymm0, %xmm0
3210 ; X32-NEXT: vmovups %xmm0, (%eax)
3211 ; X32-NEXT: vzeroupper
3212 ; X32-NEXT: retl
3216 ; X64-NEXT: vmovups %xmm0, (%rdi)
3217 ; X64-NEXT: vextractf128 $1, %ymm0, %xmm0
3218 ; X64-NEXT: vmovups %xmm0, (%rsi)
3219 ; X64-NEXT: vzeroupper
3220 ; X64-NEXT: retq
3233 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
3234 ; X32-NEXT: vmovntps %ymm0, (%eax)
3235 ; X32-NEXT: vzeroupper
3236 ; X32-NEXT: retl
3240 ; X64-NEXT: vmovntps %ymm0, (%rdi)
3241 ; X64-NEXT: vzeroupper
3242 ; X64-NEXT: retq
3251 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
3252 ; X32-NEXT: vmovntps %ymm0, (%eax)
3253 ; X32-NEXT: vzeroupper
3254 ; X32-NEXT: retl
3258 ; X64-NEXT: vmovntps %ymm0, (%rdi)
3259 ; X64-NEXT: vzeroupper
3260 ; X64-NEXT: retq
3269 ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
3270 ; X32-NEXT: vmovntps %ymm0, (%eax)
3271 ; X32-NEXT: vzeroupper
3272 ; X32-NEXT: retl
3276 ; X64-NEXT: vmovntps %ymm0, (%rdi)
3277 ; X64-NEXT: vzeroupper
3278 ; X64-NEXT: retq
3286 ; X32-NEXT: vsubpd %ymm1, %ymm0, %ymm0
3287 ; X32-NEXT: retl
3291 ; X64-NEXT: vsubpd %ymm1, %ymm0, %ymm0
3292 ; X64-NEXT: retq
3300 ; X32-NEXT: vsubps %ymm1, %ymm0, %ymm0
3301 ; X32-NEXT: retl
3305 ; X64-NEXT: vsubps %ymm1, %ymm0, %ymm0
3306 ; X64-NEXT: retq
3314 ; X32-NEXT: vtestpd %xmm1, %xmm0
3315 ; X32-NEXT: sbbl %eax, %eax
3316 ; X32-NEXT: andl $1, %eax
3317 ; X32-NEXT: retl
3321 ; X64-NEXT: vtestpd %xmm1, %xmm0
3322 ; X64-NEXT: sbbl %eax, %eax
3323 ; X64-NEXT: andl $1, %eax
3324 ; X64-NEXT: retq
3333 ; X32-NEXT: vtestpd %ymm1, %ymm0
3334 ; X32-NEXT: sbbl %eax, %eax
3335 ; X32-NEXT: andl $1, %eax
3336 ; X32-NEXT: vzeroupper
3337 ; X32-NEXT: retl
3341 ; X64-NEXT: vtestpd %ymm1, %ymm0
3342 ; X64-NEXT: sbbl %eax, %eax
3343 ; X64-NEXT: andl $1, %eax
3344 ; X64-NEXT: vzeroupper
3345 ; X64-NEXT: retq
3354 ; X32-NEXT: vtestps %xmm1, %xmm0
3355 ; X32-NEXT: sbbl %eax, %eax
3356 ; X32-NEXT: andl $1, %eax
3357 ; X32-NEXT: retl
3361 ; X64-NEXT: vtestps %xmm1, %xmm0
3362 ; X64-NEXT: sbbl %eax, %eax
3363 ; X64-NEXT: andl $1, %eax
3364 ; X64-NEXT: retq
3373 ; X32-NEXT: vtestps %ymm1, %ymm0
3374 ; X32-NEXT: sbbl %eax, %eax
3375 ; X32-NEXT: andl $1, %eax
3376 ; X32-NEXT: vzeroupper
3377 ; X32-NEXT: retl
3381 ; X64-NEXT: vtestps %ymm1, %ymm0
3382 ; X64-NEXT: sbbl %eax, %eax
3383 ; X64-NEXT: andl $1, %eax
3384 ; X64-NEXT: vzeroupper
3385 ; X64-NEXT: retq
3394 ; X32-NEXT: vptest %ymm1, %ymm0
3395 ; X32-NEXT: sbbl %eax, %eax
3396 ; X32-NEXT: andl $1, %eax
3397 ; X32-NEXT: vzeroupper
3398 ; X32-NEXT: retl
3402 ; X64-NEXT: vptest %ymm1, %ymm0
3403 ; X64-NEXT: sbbl %eax, %eax
3404 ; X64-NEXT: andl $1, %eax
3405 ; X64-NEXT: vzeroupper
3406 ; X64-NEXT: retq
3415 ; X32-NEXT: xorl %eax, %eax
3416 ; X32-NEXT: vtestpd %xmm1, %xmm0
3417 ; X32-NEXT: seta %al
3418 ; X32-NEXT: retl
3422 ; X64-NEXT: xorl %eax, %eax
3423 ; X64-NEXT: vtestpd %xmm1, %xmm0
3424 ; X64-NEXT: seta %al
3425 ; X64-NEXT: retq
3434 ; X32-NEXT: xorl %eax, %eax
3435 ; X32-NEXT: vtestpd %ymm1, %ymm0
3436 ; X32-NEXT: seta %al
3437 ; X32-NEXT: vzeroupper
3438 ; X32-NEXT: retl
3442 ; X64-NEXT: xorl %eax, %eax
3443 ; X64-NEXT: vtestpd %ymm1, %ymm0
3444 ; X64-NEXT: seta %al
3445 ; X64-NEXT: vzeroupper
3446 ; X64-NEXT: retq
3455 ; X32-NEXT: xorl %eax, %eax
3456 ; X32-NEXT: vtestps %xmm1, %xmm0
3457 ; X32-NEXT: seta %al
3458 ; X32-NEXT: retl
3462 ; X64-NEXT: xorl %eax, %eax
3463 ; X64-NEXT: vtestps %xmm1, %xmm0
3464 ; X64-NEXT: seta %al
3465 ; X64-NEXT: retq
3474 ; X32-NEXT: xorl %eax, %eax
3475 ; X32-NEXT: vtestps %ymm1, %ymm0
3476 ; X32-NEXT: seta %al
3477 ; X32-NEXT: vzeroupper
3478 ; X32-NEXT: retl
3482 ; X64-NEXT: xorl %eax, %eax
3483 ; X64-NEXT: vtestps %ymm1, %ymm0
3484 ; X64-NEXT: seta %al
3485 ; X64-NEXT: vzeroupper
3486 ; X64-NEXT: retq
3495 ; X32-NEXT: xorl %eax, %eax
3496 ; X32-NEXT: vptest %ymm1, %ymm0
3497 ; X32-NEXT: seta %al
3498 ; X32-NEXT: vzeroupper
3499 ; X32-NEXT: retl
3503 ; X64-NEXT: xorl %eax, %eax
3504 ; X64-NEXT: vptest %ymm1, %ymm0
3505 ; X64-NEXT: seta %al
3506 ; X64-NEXT: vzeroupper
3507 ; X64-NEXT: retq
3516 ; X32-NEXT: xorl %eax, %eax
3517 ; X32-NEXT: vtestpd %xmm1, %xmm0
3518 ; X32-NEXT: sete %al
3519 ; X32-NEXT: retl
3523 ; X64-NEXT: xorl %eax, %eax
3524 ; X64-NEXT: vtestpd %xmm1, %xmm0
3525 ; X64-NEXT: sete %al
3526 ; X64-NEXT: retq
3535 ; X32-NEXT: xorl %eax, %eax
3536 ; X32-NEXT: vtestpd %ymm1, %ymm0
3537 ; X32-NEXT: sete %al
3538 ; X32-NEXT: vzeroupper
3539 ; X32-NEXT: retl
3543 ; X64-NEXT: xorl %eax, %eax
3544 ; X64-NEXT: vtestpd %ymm1, %ymm0
3545 ; X64-NEXT: sete %al
3546 ; X64-NEXT: vzeroupper
3547 ; X64-NEXT: retq
3556 ; X32-NEXT: xorl %eax, %eax
3557 ; X32-NEXT: vtestps %xmm1, %xmm0
3558 ; X32-NEXT: sete %al
3559 ; X32-NEXT: retl
3563 ; X64-NEXT: xorl %eax, %eax
3564 ; X64-NEXT: vtestps %xmm1, %xmm0
3565 ; X64-NEXT: sete %al
3566 ; X64-NEXT: retq
3575 ; X32-NEXT: xorl %eax, %eax
3576 ; X32-NEXT
3577 ; X32-NEXT: sete %al
3578 ; X32-NEXT: vzeroupper
3579 ; X32-NEXT: retl
3583 ; X64-NEXT: xorl %eax, %eax
3584 ; X64-NEXT: vtestps %ymm1, %ymm0
3585 ; X64-NEXT: sete %al
3586 ; X64-NEXT: vzeroupper
3587 ; X64-NEXT: retq
3596 ; X32-NEXT: xorl %eax, %eax
3597 ; X32-NEXT: vptest %ymm1, %ymm0
3598 ; X32-NEXT: sete %al
3599 ; X32-NEXT: vzeroupper
3600 ; X32-NEXT: retl
3604 ; X64-NEXT: xorl %eax, %eax
3605 ; X64-NEXT: vptest %ymm1, %ymm0
3606 ; X64-NEXT: sete %al
3607 ; X64-NEXT: vzeroupper
3608 ; X64-NEXT: retq
3617 ; X32-NEXT: retl
3621 ; X64-NEXT: retq
3628 ; X32-NEXT: retl
3632 ; X64-NEXT: retq
3639 ; X32-NEXT: retl
3643 ; X64-NEXT: retq
3650 ; X32-NEXT: retl
3654 ; X64-NEXT: retq
3661 ; X32-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3662 ; X32-NEXT: retl
3666 ; X64-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3667 ; X64-NEXT: retq
3675 ; X32-NEXT: vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
3676 ; X32-NEXT: retl
3680 ; X64-NEXT: vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
3681 ; X64-NEXT: retq
3689 ; X32-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3690 ; X32-NEXT: retl
3694 ; X64-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3695 ; X64-NEXT: retq
3703 ; X32-NEXT: vunpcklps {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
3704 ; X32-NEXT: retl
3708 ; X64-NEXT: vunpcklps {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
3709 ; X64-NEXT: retq
3717 ; X32-NEXT: vxorps %ymm1, %ymm0, %ymm0
3718 ; X32-NEXT: retl
3722 ; X64-NEXT: vxorps %ymm1, %ymm0, %ymm0
3723 ; X64-NEXT: retq
3734 ; X32-NEXT: vxorps %ymm1, %ymm0, %ymm0
3735 ; X32-NEXT: retl
3739 ; X64-NEXT: vxorps %ymm1, %ymm0, %ymm0
3740 ; X64-NEXT: retq
3751 ; X32-NEXT: vzeroall
3752 ; X32-NEXT: retl
3756 ; X64-NEXT: vzeroall
3757 ; X64-NEXT: retq
3766 ; X32-NEXT: vzeroupper
3767 ; X32-NEXT: retl
3771 ; X64-NEXT: vzeroupper
3772 ; X64-NEXT: retq