Lines Matching refs:SSE41
4 …triple=x86_64-unknown-unknown -mattr=+sse4.1 | FileCheck %s --check-prefix=SSE --check-prefix=SSE41
21 ; SSE41-LABEL: zext_16i8_to_8i16:
22 ; SSE41: # BB#0: # %entry
23 ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
24 ; SSE41-NEXT: retq
54 ; SSE41-LABEL: zext_16i8_to_16i16:
55 ; SSE41: # BB#0: # %entry
56 ; SSE41-NEXT: movdqa %xmm0, %xmm1
57 ; SSE41-NEXT: pxor %xmm2, %xmm2
58 ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm0 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[…
59 ; SSE41-NEXT: punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm2[8],xmm1[9],xmm2[9],xmm1[10],xmm2[10],xmm1[1…
60 ; SSE41-NEXT: retq
94 ; SSE41-LABEL: zext_16i8_to_4i32:
95 ; SSE41: # BB#0: # %entry
96 ; SSE41-NEXT: pmovzxbd {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zer…
97 ; SSE41-NEXT: retq
130 ; SSE41-LABEL: zext_16i8_to_8i32:
131 ; SSE41: # BB#0: # %entry
132 ; SSE41-NEXT: pmovzxbd {{.*#+}} xmm2 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zer…
133 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,2,3]
134 ; SSE41-NEXT: pmovzxbd {{.*#+}} xmm1 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zer…
135 ; SSE41-NEXT: movdqa %xmm2, %xmm0
136 ; SSE41-NEXT: retq
174 ; SSE41-LABEL: zext_16i8_to_2i64:
175 ; SSE41: # BB#0: # %entry
176 ; SSE41-NEXT: pmovzxbq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,zero,zero,zero,zero,xmm0[1],zero,z…
177 ; SSE41-NEXT: retq
208 ; SSE41-LABEL: zext_16i8_to_4i64:
209 ; SSE41: # BB#0: # %entry
210 ; SSE41-NEXT: pmovzxbq {{.*#+}} xmm2 = xmm0[0],zero,zero,zero,zero,zero,zero,zero,xmm0[1],zero,z…
211 ; SSE41-NEXT: psrld $16, %xmm0
212 ; SSE41-NEXT: pmovzxbq {{.*#+}} xmm1 = xmm0[0],zero,zero,zero,zero,zero,zero,zero,xmm0[1],zero,z…
213 ; SSE41-NEXT: movdqa %xmm2, %xmm0
214 ; SSE41-NEXT: retq
251 ; SSE41-LABEL: zext_8i16_to_4i32:
252 ; SSE41: # BB#0: # %entry
253 ; SSE41-NEXT: pmovzxwd {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero
254 ; SSE41-NEXT: retq
283 ; SSE41-LABEL: zext_8i16_to_8i32:
284 ; SSE41: # BB#0: # %entry
285 ; SSE41-NEXT: movdqa %xmm0, %xmm1
286 ; SSE41-NEXT: pxor %xmm2, %xmm2
287 ; SSE41-NEXT: pmovzxwd {{.*#+}} xmm0 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero
288 ; SSE41-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],…
289 ; SSE41-NEXT: retq
323 ; SSE41-LABEL: zext_8i16_to_2i64:
324 ; SSE41: # BB#0: # %entry
325 ; SSE41-NEXT: pmovzxwq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero
326 ; SSE41-NEXT: retq
359 ; SSE41-LABEL: zext_8i16_to_4i64:
360 ; SSE41: # BB#0: # %entry
361 ; SSE41-NEXT: pmovzxwq {{.*#+}} xmm2 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero
362 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,2,3]
363 ; SSE41-NEXT: pmovzxwq {{.*#+}} xmm1 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero
364 ; SSE41-NEXT: movdqa %xmm2, %xmm0
365 ; SSE41-NEXT: retq
403 ; SSE41-LABEL: zext_4i32_to_2i64:
404 ; SSE41: # BB#0: # %entry
405 ; SSE41-NEXT: pmovzxdq {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero
406 ; SSE41-NEXT: retq
435 ; SSE41-LABEL: zext_4i32_to_4i64:
436 ; SSE41: # BB#0: # %entry
437 ; SSE41-NEXT: movdqa %xmm0, %xmm1
438 ; SSE41-NEXT: pxor %xmm2, %xmm2
439 ; SSE41-NEXT: pmovzxdq {{.*#+}} xmm0 = xmm1[0],zero,xmm1[1],zero
440 ; SSE41-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]
441 ; SSE41-NEXT: retq
478 ; SSE41-LABEL: load_zext_2i8_to_2i64:
479 ; SSE41: # BB#0: # %entry
480 ; SSE41-NEXT: pmovzxbq {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero,mem[1],zero,zer…
481 ; SSE41-NEXT: retq
510 ; SSE41-LABEL: load_zext_4i8_to_4i32:
511 ; SSE41: # BB#0: # %entry
512 ; SSE41-NEXT: pmovzxbd {{.*#+}} xmm0 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,z…
513 ; SSE41-NEXT: retq
548 ; SSE41-LABEL: load_zext_4i8_to_4i64:
549 ; SSE41: # BB#0: # %entry
550 ; SSE41-NEXT: pmovzxbq {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero,mem[1],zero,zer…
551 ; SSE41-NEXT: pmovzxbq {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero,mem[1],zero,zer…
552 ; SSE41-NEXT: retq
586 ; SSE41-LABEL: load_zext_8i8_to_8i16:
587 ; SSE41: # BB#0: # %entry
588 ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],ze…
589 ; SSE41-NEXT: retq
623 ; SSE41-LABEL: load_zext_8i8_to_8i32:
624 ; SSE41: # BB#0: # %entry
625 ; SSE41-NEXT: pmovzxbd {{.*#+}} xmm0 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,z…
626 ; SSE41-NEXT: pmovzxbd {{.*#+}} xmm1 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,z…
627 ; SSE41-NEXT: retq
665 ; SSE41-LABEL: load_zext_16i8_to_16i16:
666 ; SSE41: # BB#0: # %entry
667 ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],ze…
668 ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],ze…
669 ; SSE41-NEXT: retq
705 ; SSE41-LABEL: load_zext_2i16_to_2i64:
706 ; SSE41: # BB#0: # %entry
707 ; SSE41-NEXT: pmovzxwq {{.*#+}} xmm0 = mem[0],zero,zero,zero,mem[1],zero,zero,zero
708 ; SSE41-NEXT: retq
735 ; SSE41-LABEL: load_zext_4i16_to_4i32:
736 ; SSE41: # BB#0: # %entry
737 ; SSE41-NEXT: pmovzxwd {{.*#+}} xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
738 ; SSE41-NEXT: retq
771 ; SSE41-LABEL: load_zext_4i16_to_4i64:
772 ; SSE41: # BB#0: # %entry
773 ; SSE41-NEXT: pmovzxwq {{.*#+}} xmm0 = mem[0],zero,zero,zero,mem[1],zero,zero,zero
774 ; SSE41-NEXT: pmovzxwq {{.*#+}} xmm1 = mem[0],zero,zero,zero,mem[1],zero,zero,zero
775 ; SSE41-NEXT: retq
813 ; SSE41-LABEL: load_zext_8i16_to_8i32:
814 ; SSE41: # BB#0: # %entry
815 ; SSE41-NEXT: pmovzxwd {{.*#+}} xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
816 ; SSE41-NEXT: pmovzxwd {{.*#+}} xmm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
817 ; SSE41-NEXT: retq
851 ; SSE41-LABEL: load_zext_2i32_to_2i64:
852 ; SSE41: # BB#0: # %entry
853 ; SSE41-NEXT: pmovzxdq {{.*#+}} xmm0 = mem[0],zero,mem[1],zero
854 ; SSE41-NEXT: retq
885 ; SSE41-LABEL: load_zext_4i32_to_4i64:
886 ; SSE41: # BB#0: # %entry
887 ; SSE41-NEXT: pmovzxdq {{.*#+}} xmm0 = mem[0],zero,mem[1],zero
888 ; SSE41-NEXT: pmovzxdq {{.*#+}} xmm1 = mem[0],zero,mem[1],zero
889 ; SSE41-NEXT: retq
929 ; SSE41-LABEL: zext_8i8_to_8i32:
930 ; SSE41: # BB#0: # %entry
931 ; SSE41-NEXT: movdqa %xmm0, %xmm1
932 ; SSE41-NEXT: pand {{.*}}(%rip), %xmm1
933 ; SSE41-NEXT: pxor %xmm2, %xmm2
934 ; SSE41-NEXT: pmovzxwd {{.*#+}} xmm0 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero
935 ; SSE41-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],…
936 ; SSE41-NEXT: retq
974 ; SSE41-LABEL: shuf_zext_8i16_to_8i32:
975 ; SSE41: # BB#0: # %entry
976 ; SSE41-NEXT: movdqa %xmm0, %xmm1
977 ; SSE41-NEXT: pxor %xmm2, %xmm2
978 ; SSE41-NEXT: pmovzxwd {{.*#+}} xmm0 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero
979 ; SSE41-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],…
980 ; SSE41-NEXT: retq
1017 ; SSE41-LABEL: shuf_zext_4i32_to_4i64:
1018 ; SSE41: # BB#0: # %entry
1019 ; SSE41-NEXT: movdqa %xmm0, %xmm1
1020 ; SSE41-NEXT: pxor %xmm2, %xmm2
1021 ; SSE41-NEXT: pmovzxdq {{.*#+}} xmm0 = xmm1[0],zero,xmm1[1],zero
1022 ; SSE41-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]
1023 ; SSE41-NEXT: retq
1068 ; SSE41-LABEL: shuf_zext_8i8_to_8i32:
1069 ; SSE41: # BB#0: # %entry
1070 ; SSE41-NEXT: pshufb {{.*#+}} xmm0 = xmm0[0,2,4,6,8,10,12,14,u,u,u,u,u,u,u,u]
1071 ; SSE41-NEXT: pmovzxbd {{.*#+}} xmm2 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zer…
1072 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,2,3]
1073 ; SSE41-NEXT: pmovzxbd {{.*#+}} xmm1 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zer…
1074 ; SSE41-NEXT: movdqa %xmm2, %xmm0
1075 ; SSE41-NEXT: retq
1111 ; SSE41-LABEL: shuf_zext_16i8_to_2i64_offset6:
1112 ; SSE41: # BB#0: # %entry
1113 ; SSE41-NEXT: psrlq $48, %xmm0
1114 ; SSE41-NEXT: pmovzxbq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,zero,zero,zero,zero,xmm0[1],zero,z…
1115 ; SSE41-NEXT: retq
1149 ; SSE41-LABEL: shuf_zext_16i8_to_4i64_offset11:
1150 ; SSE41: # BB#0: # %entry
1151 ; SSE41-NEXT: movdqa %xmm0, %xmm1
1152 ; SSE41-NEXT: psrldq {{.*#+}} xmm1 = xmm1[11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zer…
1153 ; SSE41-NEXT: pmovzxbq {{.*#+}} xmm2 = xmm1[0],zero,zero,zero,zero,zero,zero,zero,xmm1[1],zero,z…
1154 ; SSE41-NEXT: psrldq {{.*#+}} xmm0 = xmm0[13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero…
1155 ; SSE41-NEXT: pmovzxbq {{.*#+}} xmm1 = xmm0[0],zero,zero,zero,zero,zero,zero,zero,xmm0[1],zero,z…
1156 ; SSE41-NEXT: movdqa %xmm2, %xmm0
1157 ; SSE41-NEXT: retq
1196 ; SSE41-LABEL: shuf_zext_8i16_to_2i64_offset6:
1197 ; SSE41: # BB#0: # %entry
1198 ; SSE41-NEXT: psrldq {{.*#+}} xmm0 = xmm0[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,ze…
1199 ; SSE41-NEXT: pmovzxwq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero
1200 ; SSE41-NEXT: retq
1234 ; SSE41-LABEL: shuf_zext_8i16_to_4i64_offset2:
1235 ; SSE41: # BB#0: # %entry
1236 ; SSE41-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,2,3]
1237 ; SSE41-NEXT: pmovzxwq {{.*#+}} xmm2 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero
1238 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,0,1]
1239 ; SSE41-NEXT: pmovzxwq {{.*#+}} xmm1 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero
1240 ; SSE41-NEXT: movdqa %xmm2, %xmm0
1241 ; SSE41-NEXT: retq
1302 ; SSE41-LABEL: shuf_zext_8i16_to_8i32_offset3:
1303 ; SSE41: # BB#0: # %entry
1304 ; SSE41-NEXT: movdqa %xmm0, %xmm1
1305 ; SSE41-NEXT: pslldq {{.*#+}} xmm0 = zero,zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13]
1306 ; SSE41-NEXT: pxor %xmm2, %xmm2
1307 ; SSE41-NEXT: punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],…
1308 ; SSE41-NEXT: psrldq {{.*#+}} xmm1 = xmm1[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,ze…
1309 ; SSE41-NEXT: retq
1348 ; SSE41-LABEL: shuf_zext_16i16_to_8i32_offset8:
1349 ; SSE41: # BB#0: # %entry
1350 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm1[2,2,3,3]
1351 ; SSE41-NEXT: pxor %xmm2, %xmm2
1352 ; SSE41-NEXT: pblendw {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3],xmm0[4],xmm2[5,6,7]
1353 ; SSE41-NEXT: pmovzxwd {{.*#+}} xmm0 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero
1354 ; SSE41-NEXT: movdqa %xmm2, %xmm1
1355 ; SSE41-NEXT: retq
1413 ; SSE41-LABEL: shuf_zext_4i32_to_4i64_offset1:
1414 ; SSE41: # BB#0: # %entry
1415 ; SSE41-NEXT: movdqa %xmm0, %xmm1
1416 ; SSE41-NEXT: pxor %xmm0, %xmm0
1417 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4,5],xmm0[6,7]
1418 ; SSE41-NEXT: psrldq {{.*#+}} xmm1 = xmm1[12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,z…
1419 ; SSE41-NEXT: retq