Lines Matching refs:SSE42
3 …able-peephole -mtriple=x86_64-apple-darwin -mattr=sse4.2 | FileCheck %s --check-prefixes=SSE,SSE42
82 ; SSE42-LABEL: load_v2f64_v2i64:
83 ; SSE42: ## %bb.0:
84 ; SSE42-NEXT: pxor %xmm2, %xmm2
85 ; SSE42-NEXT: pcmpeqq %xmm0, %xmm2
86 ; SSE42-NEXT: movmskpd %xmm2, %eax
87 ; SSE42-NEXT: testb $1, %al
88 ; SSE42-NEXT: jne LBB1_1
89 ; SSE42-NEXT: ## %bb.2: ## %else
90 ; SSE42-NEXT: testb $2, %al
91 ; SSE42-NEXT: jne LBB1_3
92 ; SSE42-NEXT: LBB1_4: ## %else2
93 ; SSE42-NEXT: movaps %xmm1, %xmm0
94 ; SSE42-NEXT: retq
95 ; SSE42-NEXT: LBB1_1: ## %cond.load
96 ; SSE42-NEXT: movlps {{.*#+}} xmm1 = mem[0,1],xmm1[2,3]
97 ; SSE42-NEXT: testb $2, %al
98 ; SSE42-NEXT: je LBB1_4
99 ; SSE42-NEXT: LBB1_3: ## %cond.load1
100 ; SSE42-NEXT: movhps {{.*#+}} xmm1 = xmm1[0,1],mem[0,1]
101 ; SSE42-NEXT: movaps %xmm1, %xmm0
102 ; SSE42-NEXT: retq
354 ; SSE42-LABEL: load_v4f64_v4i64:
355 ; SSE42: ## %bb.0:
356 ; SSE42-NEXT: pxor %xmm4, %xmm4
357 ; SSE42-NEXT: pcmpeqq %xmm4, %xmm1
358 ; SSE42-NEXT: pcmpeqq %xmm4, %xmm0
359 ; SSE42-NEXT: packssdw %xmm1, %xmm0
360 ; SSE42-NEXT: movmskps %xmm0, %eax
361 ; SSE42-NEXT: testb $1, %al
362 ; SSE42-NEXT: jne LBB4_1
363 ; SSE42-NEXT: ## %bb.2: ## %else
364 ; SSE42-NEXT: testb $2, %al
365 ; SSE42-NEXT: jne LBB4_3
366 ; SSE42-NEXT: LBB4_4: ## %else2
367 ; SSE42-NEXT: testb $4, %al
368 ; SSE42-NEXT: jne LBB4_5
369 ; SSE42-NEXT: LBB4_6: ## %else5
370 ; SSE42-NEXT: testb $8, %al
371 ; SSE42-NEXT: je LBB4_8
372 ; SSE42-NEXT: LBB4_7: ## %cond.load7
373 ; SSE42-NEXT: movhps {{.*#+}} xmm3 = xmm3[0,1],mem[0,1]
374 ; SSE42-NEXT: LBB4_8: ## %else8
375 ; SSE42-NEXT: movaps %xmm2, %xmm0
376 ; SSE42-NEXT: movaps %xmm3, %xmm1
377 ; SSE42-NEXT: retq
378 ; SSE42-NEXT: LBB4_1: ## %cond.load
379 ; SSE42-NEXT: movlps {{.*#+}} xmm2 = mem[0,1],xmm2[2,3]
380 ; SSE42-NEXT: testb $2, %al
381 ; SSE42-NEXT: je LBB4_4
382 ; SSE42-NEXT: LBB4_3: ## %cond.load1
383 ; SSE42-NEXT: movhps {{.*#+}} xmm2 = xmm2[0,1],mem[0,1]
384 ; SSE42-NEXT: testb $4, %al
385 ; SSE42-NEXT: je LBB4_6
386 ; SSE42-NEXT: LBB4_5: ## %cond.load4
387 ; SSE42-NEXT: movlps {{.*#+}} xmm3 = mem[0,1],xmm3[2,3]
388 ; SSE42-NEXT: testb $8, %al
389 ; SSE42-NEXT: jne LBB4_7
390 ; SSE42-NEXT: jmp LBB4_8
660 ; SSE42-LABEL: load_v8f64_v8i64:
661 ; SSE42: ## %bb.0:
662 ; SSE42-NEXT: movdqa %xmm7, %xmm8
663 ; SSE42-NEXT: pxor %xmm7, %xmm7
664 ; SSE42-NEXT: pcmpeqq %xmm7, %xmm3
665 ; SSE42-NEXT: pcmpeqq %xmm7, %xmm2
666 ; SSE42-NEXT: packssdw %xmm3, %xmm2
667 ; SSE42-NEXT: pcmpeqq %xmm7, %xmm1
668 ; SSE42-NEXT: pcmpeqq %xmm7, %xmm0
669 ; SSE42-NEXT: packssdw %xmm1, %xmm0
670 ; SSE42-NEXT: packssdw %xmm2, %xmm0
671 ; SSE42-NEXT: packsswb %xmm0, %xmm0
672 ; SSE42-NEXT: pmovmskb %xmm0, %eax
673 ; SSE42-NEXT: testb $1, %al
674 ; SSE42-NEXT: jne LBB6_1
675 ; SSE42-NEXT: ## %bb.2: ## %else
676 ; SSE42-NEXT: testb $2, %al
677 ; SSE42-NEXT: jne LBB6_3
678 ; SSE42-NEXT: LBB6_4: ## %else2
679 ; SSE42-NEXT: testb $4, %al
680 ; SSE42-NEXT: jne LBB6_5
681 ; SSE42-NEXT: LBB6_6: ## %else5
682 ; SSE42-NEXT: testb $8, %al
683 ; SSE42-NEXT: jne LBB6_7
684 ; SSE42-NEXT: LBB6_8: ## %else8
685 ; SSE42-NEXT: testb $16, %al
686 ; SSE42-NEXT: jne LBB6_9
687 ; SSE42-NEXT: LBB6_10: ## %else11
688 ; SSE42-NEXT: testb $32, %al
689 ; SSE42-NEXT: jne LBB6_11
690 ; SSE42-NEXT: LBB6_12: ## %else14
691 ; SSE42-NEXT: testb $64, %al
692 ; SSE42-NEXT: jne LBB6_13
693 ; SSE42-NEXT: LBB6_14: ## %else17
694 ; SSE42-NEXT: testb $-128, %al
695 ; SSE42-NEXT: je LBB6_16
696 ; SSE42-NEXT: LBB6_15: ## %cond.load19
697 ; SSE42-NEXT: movhps {{.*#+}} xmm8 = xmm8[0,1],mem[0,1]
698 ; SSE42-NEXT: LBB6_16: ## %else20
699 ; SSE42-NEXT: movaps %xmm4, %xmm0
700 ; SSE42-NEXT: movaps %xmm5, %xmm1
701 ; SSE42-NEXT: movaps %xmm6, %xmm2
702 ; SSE42-NEXT: movaps %xmm8, %xmm3
703 ; SSE42-NEXT: retq
704 ; SSE42-NEXT: LBB6_1: ## %cond.load
705 ; SSE42-NEXT: movlps {{.*#+}} xmm4 = mem[0,1],xmm4[2,3]
706 ; SSE42-NEXT: testb $2, %al
707 ; SSE42-NEXT: je LBB6_4
708 ; SSE42-NEXT: LBB6_3: ## %cond.load1
709 ; SSE42-NEXT: movhps {{.*#+}} xmm4 = xmm4[0,1],mem[0,1]
710 ; SSE42-NEXT: testb $4, %al
711 ; SSE42-NEXT: je LBB6_6
712 ; SSE42-NEXT: LBB6_5: ## %cond.load4
713 ; SSE42-NEXT: movlps {{.*#+}} xmm5 = mem[0,1],xmm5[2,3]
714 ; SSE42-NEXT: testb $8, %al
715 ; SSE42-NEXT: je LBB6_8
716 ; SSE42-NEXT: LBB6_7: ## %cond.load7
717 ; SSE42-NEXT: movhps {{.*#+}} xmm5 = xmm5[0,1],mem[0,1]
718 ; SSE42-NEXT: testb $16, %al
719 ; SSE42-NEXT: je LBB6_10
720 ; SSE42-NEXT: LBB6_9: ## %cond.load10
721 ; SSE42-NEXT: movlps {{.*#+}} xmm6 = mem[0,1],xmm6[2,3]
722 ; SSE42-NEXT: testb $32, %al
723 ; SSE42-NEXT: je LBB6_12
724 ; SSE42-NEXT: LBB6_11: ## %cond.load13
725 ; SSE42-NEXT: movhps {{.*#+}} xmm6 = xmm6[0,1],mem[0,1]
726 ; SSE42-NEXT: testb $64, %al
727 ; SSE42-NEXT: je LBB6_14
728 ; SSE42-NEXT: LBB6_13: ## %cond.load16
729 ; SSE42-NEXT: movlps {{.*#+}} xmm8 = mem[0,1],xmm8[2,3]
730 ; SSE42-NEXT: testb $-128, %al
731 ; SSE42-NEXT: jne LBB6_15
732 ; SSE42-NEXT: jmp LBB6_16
811 ; SSE42-LABEL: load_v2f32_v2i32:
812 ; SSE42: ## %bb.0:
813 ; SSE42-NEXT: pxor %xmm2, %xmm2
814 ; SSE42-NEXT: pcmpeqd %xmm0, %xmm2
815 ; SSE42-NEXT: pmovsxdq %xmm2, %xmm0
816 ; SSE42-NEXT: movmskpd %xmm0, %eax
817 ; SSE42-NEXT: testb $1, %al
818 ; SSE42-NEXT: jne LBB7_1
819 ; SSE42-NEXT: ## %bb.2: ## %else
820 ; SSE42-NEXT: testb $2, %al
821 ; SSE42-NEXT: jne LBB7_3
822 ; SSE42-NEXT: LBB7_4: ## %else2
823 ; SSE42-NEXT: movaps %xmm1, %xmm0
824 ; SSE42-NEXT: retq
825 ; SSE42-NEXT: LBB7_1: ## %cond.load
826 ; SSE42-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
827 ; SSE42-NEXT: blendps {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
828 ; SSE42-NEXT: testb $2, %al
829 ; SSE42-NEXT: je LBB7_4
830 ; SSE42-NEXT: LBB7_3: ## %cond.load1
831 ; SSE42-NEXT: insertps {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[2,3]
832 ; SSE42-NEXT: movaps %xmm1, %xmm0
833 ; SSE42-NEXT: retq
911 ; SSE42-LABEL: load_v2f32_v2i32_undef:
912 ; SSE42: ## %bb.0:
913 ; SSE42-NEXT: pxor %xmm1, %xmm1
914 ; SSE42-NEXT: pcmpeqd %xmm0, %xmm1
915 ; SSE42-NEXT: pmovsxdq %xmm1, %xmm0
916 ; SSE42-NEXT: movmskpd %xmm0, %eax
917 ; SSE42-NEXT: testb $1, %al
918 ; SSE42-NEXT: ## implicit-def: $xmm0
919 ; SSE42-NEXT: jne LBB8_1
920 ; SSE42-NEXT: ## %bb.2: ## %else
921 ; SSE42-NEXT: testb $2, %al
922 ; SSE42-NEXT: jne LBB8_3
923 ; SSE42-NEXT: LBB8_4: ## %else2
924 ; SSE42-NEXT: retq
925 ; SSE42-NEXT: LBB8_1: ## %cond.load
926 ; SSE42-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
927 ; SSE42-NEXT: testb $2, %al
928 ; SSE42-NEXT: je LBB8_4
929 ; SSE42-NEXT: LBB8_3: ## %cond.load1
930 ; SSE42-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[2,3]
931 ; SSE42-NEXT: retq
1026 ; SSE42-LABEL: load_v4f32_v4i32:
1027 ; SSE42: ## %bb.0:
1028 ; SSE42-NEXT: pxor %xmm2, %xmm2
1029 ; SSE42-NEXT: pcmpeqd %xmm0, %xmm2
1030 ; SSE42-NEXT: movmskps %xmm2, %eax
1031 ; SSE42-NEXT: testb $1, %al
1032 ; SSE42-NEXT: jne LBB9_1
1033 ; SSE42-NEXT: ## %bb.2: ## %else
1034 ; SSE42-NEXT: testb $2, %al
1035 ; SSE42-NEXT: jne LBB9_3
1036 ; SSE42-NEXT: LBB9_4: ## %else2
1037 ; SSE42-NEXT: testb $4, %al
1038 ; SSE42-NEXT: jne LBB9_5
1039 ; SSE42-NEXT: LBB9_6: ## %else5
1040 ; SSE42-NEXT: testb $8, %al
1041 ; SSE42-NEXT: jne LBB9_7
1042 ; SSE42-NEXT: LBB9_8: ## %else8
1043 ; SSE42-NEXT: movaps %xmm1, %xmm0
1044 ; SSE42-NEXT: retq
1045 ; SSE42-NEXT: LBB9_1: ## %cond.load
1046 ; SSE42-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
1047 ; SSE42-NEXT: pblendw {{.*#+}} xmm1 = xmm0[0,1],xmm1[2,3,4,5,6,7]
1048 ; SSE42-NEXT: testb $2, %al
1049 ; SSE42-NEXT: je LBB9_4
1050 ; SSE42-NEXT: LBB9_3: ## %cond.load1
1051 ; SSE42-NEXT: insertps {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[2,3]
1052 ; SSE42-NEXT: testb $4, %al
1053 ; SSE42-NEXT: je LBB9_6
1054 ; SSE42-NEXT: LBB9_5: ## %cond.load4
1055 ; SSE42-NEXT: insertps {{.*#+}} xmm1 = xmm1[0,1],mem[0],xmm1[3]
1056 ; SSE42-NEXT: testb $8, %al
1057 ; SSE42-NEXT: je LBB9_8
1058 ; SSE42-NEXT: LBB9_7: ## %cond.load7
1059 ; SSE42-NEXT: insertps {{.*#+}} xmm1 = xmm1[0,1,2],mem[0]
1060 ; SSE42-NEXT: movaps %xmm1, %xmm0
1061 ; SSE42-NEXT: retq
1181 ; SSE42-LABEL: load_v8f32_v8i1_zero:
1182 ; SSE42: ## %bb.0:
1183 ; SSE42-NEXT: psllw $15, %xmm0
1184 ; SSE42-NEXT: packsswb %xmm0, %xmm0
1185 ; SSE42-NEXT: pmovmskb %xmm0, %eax
1186 ; SSE42-NEXT: pxor %xmm0, %xmm0
1187 ; SSE42-NEXT: testb $1, %al
1188 ; SSE42-NEXT: xorps %xmm1, %xmm1
1189 ; SSE42-NEXT: jne LBB10_1
1190 ; SSE42-NEXT: ## %bb.2: ## %else
1191 ; SSE42-NEXT: testb $2, %al
1192 ; SSE42-NEXT: jne LBB10_3
1193 ; SSE42-NEXT: LBB10_4: ## %else2
1194 ; SSE42-NEXT: testb $4, %al
1195 ; SSE42-NEXT: jne LBB10_5
1196 ; SSE42-NEXT: LBB10_6: ## %else5
1197 ; SSE42-NEXT: testb $8, %al
1198 ; SSE42-NEXT: jne LBB10_7
1199 ; SSE42-NEXT: LBB10_8: ## %else8
1200 ; SSE42-NEXT: testb $16, %al
1201 ; SSE42-NEXT: jne LBB10_9
1202 ; SSE42-NEXT: LBB10_10: ## %else11
1203 ; SSE42-NEXT: testb $32, %al
1204 ; SSE42-NEXT: jne LBB10_11
1205 ; SSE42-NEXT: LBB10_12: ## %else14
1206 ; SSE42-NEXT: testb $64, %al
1207 ; SSE42-NEXT: jne LBB10_13
1208 ; SSE42-NEXT: LBB10_14: ## %else17
1209 ; SSE42-NEXT: testb $-128, %al
1210 ; SSE42-NEXT: jne LBB10_15
1211 ; SSE42-NEXT: LBB10_16: ## %else20
1212 ; SSE42-NEXT: retq
1213 ; SSE42-NEXT: LBB10_1: ## %cond.load
1214 ; SSE42-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
1215 ; SSE42-NEXT: xorps %xmm1, %xmm1
1216 ; SSE42-NEXT: testb $2, %al
1217 ; SSE42-NEXT: je LBB10_4
1218 ; SSE42-NEXT: LBB10_3: ## %cond.load1
1219 ; SSE42-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[2,3]
1220 ; SSE42-NEXT: testb $4, %al
1221 ; SSE42-NEXT: je LBB10_6
1222 ; SSE42-NEXT: LBB10_5: ## %cond.load4
1223 ; SSE42-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1],mem[0],xmm0[3]
1224 ; SSE42-NEXT: testb $8, %al
1225 ; SSE42-NEXT: je LBB10_8
1226 ; SSE42-NEXT: LBB10_7: ## %cond.load7
1227 ; SSE42-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1,2],mem[0]
1228 ; SSE42-NEXT: testb $16, %al
1229 ; SSE42-NEXT: je LBB10_10
1230 ; SSE42-NEXT: LBB10_9: ## %cond.load10
1231 ; SSE42-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
1232 ; SSE42-NEXT: blendps {{.*#+}} xmm1 = xmm2[0],xmm1[1,2,3]
1233 ; SSE42-NEXT: testb $32, %al
1234 ; SSE42-NEXT: je LBB10_12
1235 ; SSE42-NEXT: LBB10_11: ## %cond.load13
1236 ; SSE42-NEXT: insertps {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[2,3]
1237 ; SSE42-NEXT: testb $64, %al
1238 ; SSE42-NEXT: je LBB10_14
1239 ; SSE42-NEXT: LBB10_13: ## %cond.load16
1240 ; SSE42-NEXT: insertps {{.*#+}} xmm1 = xmm1[0,1],mem[0],xmm1[3]
1241 ; SSE42-NEXT: testb $-128, %al
1242 ; SSE42-NEXT: je LBB10_16
1243 ; SSE42-NEXT: LBB10_15: ## %cond.load19
1244 ; SSE42-NEXT: insertps {{.*#+}} xmm1 = xmm1[0,1,2],mem[0]
1245 ; SSE42-NEXT: retq
1383 ; SSE42-LABEL: load_v8f32_v8i32:
1384 ; SSE42: ## %bb.0:
1385 ; SSE42-NEXT: pxor %xmm4, %xmm4
1386 ; SSE42-NEXT: pcmpeqd %xmm4, %xmm1
1387 ; SSE42-NEXT: pcmpeqd %xmm4, %xmm0
1388 ; SSE42-NEXT: packssdw %xmm1, %xmm0
1389 ; SSE42-NEXT: packsswb %xmm0, %xmm0
1390 ; SSE42-NEXT: pmovmskb %xmm0, %eax
1391 ; SSE42-NEXT: testb $1, %al
1392 ; SSE42-NEXT: jne LBB11_1
1393 ; SSE42-NEXT: ## %bb.2: ## %else
1394 ; SSE42-NEXT: testb $2, %al
1395 ; SSE42-NEXT: jne LBB11_3
1396 ; SSE42-NEXT: LBB11_4: ## %else2
1397 ; SSE42-NEXT: testb $4, %al
1398 ; SSE42-NEXT: jne LBB11_5
1399 ; SSE42-NEXT: LBB11_6: ## %else5
1400 ; SSE42-NEXT: testb $8, %al
1401 ; SSE42-NEXT: jne LBB11_7
1402 ; SSE42-NEXT: LBB11_8: ## %else8
1403 ; SSE42-NEXT: testb $16, %al
1404 ; SSE42-NEXT: jne LBB11_9
1405 ; SSE42-NEXT: LBB11_10: ## %else11
1406 ; SSE42-NEXT: testb $32, %al
1407 ; SSE42-NEXT: jne LBB11_11
1408 ; SSE42-NEXT: LBB11_12: ## %else14
1409 ; SSE42-NEXT: testb $64, %al
1410 ; SSE42-NEXT: jne LBB11_13
1411 ; SSE42-NEXT: LBB11_14: ## %else17
1412 ; SSE42-NEXT: testb $-128, %al
1413 ; SSE42-NEXT: je LBB11_16
1414 ; SSE42-NEXT: LBB11_15: ## %cond.load19
1415 ; SSE42-NEXT: insertps {{.*#+}} xmm3 = xmm3[0,1,2],mem[0]
1416 ; SSE42-NEXT: LBB11_16: ## %else20
1417 ; SSE42-NEXT: movaps %xmm2, %xmm0
1418 ; SSE42-NEXT: movaps %xmm3, %xmm1
1419 ; SSE42-NEXT: retq
1420 ; SSE42-NEXT: LBB11_1: ## %cond.load
1421 ; SSE42-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
1422 ; SSE42-NEXT: pblendw {{.*#+}} xmm2 = xmm0[0,1],xmm2[2,3,4,5,6,7]
1423 ; SSE42-NEXT: testb $2, %al
1424 ; SSE42-NEXT: je LBB11_4
1425 ; SSE42-NEXT: LBB11_3: ## %cond.load1
1426 ; SSE42-NEXT: insertps {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[2,3]
1427 ; SSE42-NEXT: testb $4, %al
1428 ; SSE42-NEXT: je LBB11_6
1429 ; SSE42-NEXT: LBB11_5: ## %cond.load4
1430 ; SSE42-NEXT: insertps {{.*#+}} xmm2 = xmm2[0,1],mem[0],xmm2[3]
1431 ; SSE42-NEXT: testb $8, %al
1432 ; SSE42-NEXT: je LBB11_8
1433 ; SSE42-NEXT: LBB11_7: ## %cond.load7
1434 ; SSE42-NEXT: insertps {{.*#+}} xmm2 = xmm2[0,1,2],mem[0]
1435 ; SSE42-NEXT: testb $16, %al
1436 ; SSE42-NEXT: je LBB11_10
1437 ; SSE42-NEXT: LBB11_9: ## %cond.load10
1438 ; SSE42-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
1439 ; SSE42-NEXT: pblendw {{.*#+}} xmm3 = xmm0[0,1],xmm3[2,3,4,5,6,7]
1440 ; SSE42-NEXT: testb $32, %al
1441 ; SSE42-NEXT: je LBB11_12
1442 ; SSE42-NEXT: LBB11_11: ## %cond.load13
1443 ; SSE42-NEXT: insertps {{.*#+}} xmm3 = xmm3[0],mem[0],xmm3[2,3]
1444 ; SSE42-NEXT: testb $64, %al
1445 ; SSE42-NEXT: je LBB11_14
1446 ; SSE42-NEXT: LBB11_13: ## %cond.load16
1447 ; SSE42-NEXT: insertps {{.*#+}} xmm3 = xmm3[0,1],mem[0],xmm3[3]
1448 ; SSE42-NEXT: testb $-128, %al
1449 ; SSE42-NEXT: jne LBB11_15
1450 ; SSE42-NEXT: jmp LBB11_16
1572 ; SSE42-LABEL: load_v2i64_v2i64:
1573 ; SSE42: ## %bb.0:
1574 ; SSE42-NEXT: pxor %xmm2, %xmm2
1575 ; SSE42-NEXT: pcmpeqq %xmm0, %xmm2
1576 ; SSE42-NEXT: movmskpd %xmm2, %eax
1577 ; SSE42-NEXT: testb $1, %al
1578 ; SSE42-NEXT: jne LBB13_1
1579 ; SSE42-NEXT: ## %bb.2: ## %else
1580 ; SSE42-NEXT: testb $2, %al
1581 ; SSE42-NEXT: jne LBB13_3
1582 ; SSE42-NEXT: LBB13_4: ## %else2
1583 ; SSE42-NEXT: movdqa %xmm1, %xmm0
1584 ; SSE42-NEXT: retq
1585 ; SSE42-NEXT: LBB13_1: ## %cond.load
1586 ; SSE42-NEXT: pinsrq $0, (%rdi), %xmm1
1587 ; SSE42-NEXT: testb $2, %al
1588 ; SSE42-NEXT: je LBB13_4
1589 ; SSE42-NEXT: LBB13_3: ## %cond.load1
1590 ; SSE42-NEXT: pinsrq $1, 8(%rdi), %xmm1
1591 ; SSE42-NEXT: movdqa %xmm1, %xmm0
1592 ; SSE42-NEXT: retq
1684 ; SSE42-LABEL: load_v4i64_v4i64:
1685 ; SSE42: ## %bb.0:
1686 ; SSE42-NEXT: pxor %xmm4, %xmm4
1687 ; SSE42-NEXT: pcmpeqq %xmm4, %xmm1
1688 ; SSE42-NEXT: pcmpeqq %xmm4, %xmm0
1689 ; SSE42-NEXT: packssdw %xmm1, %xmm0
1690 ; SSE42-NEXT: movmskps %xmm0, %eax
1691 ; SSE42-NEXT: testb $1, %al
1692 ; SSE42-NEXT: jne LBB14_1
1693 ; SSE42-NEXT: ## %bb.2: ## %else
1694 ; SSE42-NEXT: testb $2, %al
1695 ; SSE42-NEXT: jne LBB14_3
1696 ; SSE42-NEXT: LBB14_4: ## %else2
1697 ; SSE42-NEXT: testb $4, %al
1698 ; SSE42-NEXT: jne LBB14_5
1699 ; SSE42-NEXT: LBB14_6: ## %else5
1700 ; SSE42-NEXT: testb $8, %al
1701 ; SSE42-NEXT: je LBB14_8
1702 ; SSE42-NEXT: LBB14_7: ## %cond.load7
1703 ; SSE42-NEXT: pinsrq $1, 24(%rdi), %xmm3
1704 ; SSE42-NEXT: LBB14_8: ## %else8
1705 ; SSE42-NEXT: movdqa %xmm2, %xmm0
1706 ; SSE42-NEXT: movdqa %xmm3, %xmm1
1707 ; SSE42-NEXT: retq
1708 ; SSE42-NEXT: LBB14_1: ## %cond.load
1709 ; SSE42-NEXT: pinsrq $0, (%rdi), %xmm2
1710 ; SSE42-NEXT: testb $2, %al
1711 ; SSE42-NEXT: je LBB14_4
1712 ; SSE42-NEXT: LBB14_3: ## %cond.load1
1713 ; SSE42-NEXT: pinsrq $1, 8(%rdi), %xmm2
1714 ; SSE42-NEXT: testb $4, %al
1715 ; SSE42-NEXT: je LBB14_6
1716 ; SSE42-NEXT: LBB14_5: ## %cond.load4
1717 ; SSE42-NEXT: pinsrq $0, 16(%rdi), %xmm3
1718 ; SSE42-NEXT: testb $8, %al
1719 ; SSE42-NEXT: jne LBB14_7
1720 ; SSE42-NEXT: jmp LBB14_8
1841 ; SSE42-LABEL: load_v8i64_v8i16:
1842 ; SSE42: ## %bb.0:
1843 ; SSE42-NEXT: pxor %xmm5, %xmm5
1844 ; SSE42-NEXT: pcmpeqw %xmm0, %xmm5
1845 ; SSE42-NEXT: packsswb %xmm5, %xmm5
1846 ; SSE42-NEXT: pmovmskb %xmm5, %eax
1847 ; SSE42-NEXT: testb $1, %al
1848 ; SSE42-NEXT: jne LBB15_1
1849 ; SSE42-NEXT: ## %bb.2: ## %else
1850 ; SSE42-NEXT: testb $2, %al
1851 ; SSE42-NEXT: jne LBB15_3
1852 ; SSE42-NEXT: LBB15_4: ## %else2
1853 ; SSE42-NEXT: testb $4, %al
1854 ; SSE42-NEXT: jne LBB15_5
1855 ; SSE42-NEXT: LBB15_6: ## %else5
1856 ; SSE42-NEXT: testb $8, %al
1857 ; SSE42-NEXT: jne LBB15_7
1858 ; SSE42-NEXT: LBB15_8: ## %else8
1859 ; SSE42-NEXT: testb $16, %al
1860 ; SSE42-NEXT: jne LBB15_9
1861 ; SSE42-NEXT: LBB15_10: ## %else11
1862 ; SSE42-NEXT: testb $32, %al
1863 ; SSE42-NEXT: jne LBB15_11
1864 ; SSE42-NEXT: LBB15_12: ## %else14
1865 ; SSE42-NEXT: testb $64, %al
1866 ; SSE42-NEXT: jne LBB15_13
1867 ; SSE42-NEXT: LBB15_14: ## %else17
1868 ; SSE42-NEXT: testb $-128, %al
1869 ; SSE42-NEXT: je LBB15_16
1870 ; SSE42-NEXT: LBB15_15: ## %cond.load19
1871 ; SSE42-NEXT: pinsrq $1, 56(%rdi), %xmm4
1872 ; SSE42-NEXT: LBB15_16: ## %else20
1873 ; SSE42-NEXT: movdqa %xmm1, %xmm0
1874 ; SSE42-NEXT: movdqa %xmm2, %xmm1
1875 ; SSE42-NEXT: movdqa %xmm3, %xmm2
1876 ; SSE42-NEXT: movdqa %xmm4, %xmm3
1877 ; SSE42-NEXT: retq
1878 ; SSE42-NEXT: LBB15_1: ## %cond.load
1879 ; SSE42-NEXT: pinsrq $0, (%rdi), %xmm1
1880 ; SSE42-NEXT: testb $2, %al
1881 ; SSE42-NEXT: je LBB15_4
1882 ; SSE42-NEXT: LBB15_3: ## %cond.load1
1883 ; SSE42-NEXT: pinsrq $1, 8(%rdi), %xmm1
1884 ; SSE42-NEXT: testb $4, %al
1885 ; SSE42-NEXT: je LBB15_6
1886 ; SSE42-NEXT: LBB15_5: ## %cond.load4
1887 ; SSE42-NEXT: pinsrq $0, 16(%rdi), %xmm2
1888 ; SSE42-NEXT: testb $8, %al
1889 ; SSE42-NEXT: je LBB15_8
1890 ; SSE42-NEXT: LBB15_7: ## %cond.load7
1891 ; SSE42-NEXT: pinsrq $1, 24(%rdi), %xmm2
1892 ; SSE42-NEXT: testb $16, %al
1893 ; SSE42-NEXT: je LBB15_10
1894 ; SSE42-NEXT: LBB15_9: ## %cond.load10
1895 ; SSE42-NEXT: pinsrq $0, 32(%rdi), %xmm3
1896 ; SSE42-NEXT: testb $32, %al
1897 ; SSE42-NEXT: je LBB15_12
1898 ; SSE42-NEXT: LBB15_11: ## %cond.load13
1899 ; SSE42-NEXT: pinsrq $1, 40(%rdi), %xmm3
1900 ; SSE42-NEXT: testb $64, %al
1901 ; SSE42-NEXT: je LBB15_14
1902 ; SSE42-NEXT: LBB15_13: ## %cond.load16
1903 ; SSE42-NEXT: pinsrq $0, 48(%rdi), %xmm4
1904 ; SSE42-NEXT: testb $-128, %al
1905 ; SSE42-NEXT: jne LBB15_15
1906 ; SSE42-NEXT: jmp LBB15_16
2065 ; SSE42-LABEL: load_v8i64_v8i64:
2066 ; SSE42: ## %bb.0:
2067 ; SSE42-NEXT: movdqa %xmm7, %xmm8
2068 ; SSE42-NEXT: pxor %xmm7, %xmm7
2069 ; SSE42-NEXT: pcmpeqq %xmm7, %xmm3
2070 ; SSE42-NEXT: pcmpeqq %xmm7, %xmm2
2071 ; SSE42-NEXT: packssdw %xmm3, %xmm2
2072 ; SSE42-NEXT: pcmpeqq %xmm7, %xmm1
2073 ; SSE42-NEXT: pcmpeqq %xmm7, %xmm0
2074 ; SSE42-NEXT: packssdw %xmm1, %xmm0
2075 ; SSE42-NEXT: packssdw %xmm2, %xmm0
2076 ; SSE42-NEXT: packsswb %xmm0, %xmm0
2077 ; SSE42-NEXT: pmovmskb %xmm0, %eax
2078 ; SSE42-NEXT: testb $1, %al
2079 ; SSE42-NEXT: jne LBB16_1
2080 ; SSE42-NEXT: ## %bb.2: ## %else
2081 ; SSE42-NEXT: testb $2, %al
2082 ; SSE42-NEXT: jne LBB16_3
2083 ; SSE42-NEXT: LBB16_4: ## %else2
2084 ; SSE42-NEXT: testb $4, %al
2085 ; SSE42-NEXT: jne LBB16_5
2086 ; SSE42-NEXT: LBB16_6: ## %else5
2087 ; SSE42-NEXT: testb $8, %al
2088 ; SSE42-NEXT: jne LBB16_7
2089 ; SSE42-NEXT: LBB16_8: ## %else8
2090 ; SSE42-NEXT: testb $16, %al
2091 ; SSE42-NEXT: jne LBB16_9
2092 ; SSE42-NEXT: LBB16_10: ## %else11
2093 ; SSE42-NEXT: testb $32, %al
2094 ; SSE42-NEXT: jne LBB16_11
2095 ; SSE42-NEXT: LBB16_12: ## %else14
2096 ; SSE42-NEXT: testb $64, %al
2097 ; SSE42-NEXT: jne LBB16_13
2098 ; SSE42-NEXT: LBB16_14: ## %else17
2099 ; SSE42-NEXT: testb $-128, %al
2100 ; SSE42-NEXT: je LBB16_16
2101 ; SSE42-NEXT: LBB16_15: ## %cond.load19
2102 ; SSE42-NEXT: pinsrq $1, 56(%rdi), %xmm8
2103 ; SSE42-NEXT: LBB16_16: ## %else20
2104 ; SSE42-NEXT: movdqa %xmm4, %xmm0
2105 ; SSE42-NEXT: movdqa %xmm5, %xmm1
2106 ; SSE42-NEXT: movdqa %xmm6, %xmm2
2107 ; SSE42-NEXT: movdqa %xmm8, %xmm3
2108 ; SSE42-NEXT: retq
2109 ; SSE42-NEXT: LBB16_1: ## %cond.load
2110 ; SSE42-NEXT: pinsrq $0, (%rdi), %xmm4
2111 ; SSE42-NEXT: testb $2, %al
2112 ; SSE42-NEXT: je LBB16_4
2113 ; SSE42-NEXT: LBB16_3: ## %cond.load1
2114 ; SSE42-NEXT: pinsrq $1, 8(%rdi), %xmm4
2115 ; SSE42-NEXT: testb $4, %al
2116 ; SSE42-NEXT: je LBB16_6
2117 ; SSE42-NEXT: LBB16_5: ## %cond.load4
2118 ; SSE42-NEXT: pinsrq $0, 16(%rdi), %xmm5
2119 ; SSE42-NEXT: testb $8, %al
2120 ; SSE42-NEXT: je LBB16_8
2121 ; SSE42-NEXT: LBB16_7: ## %cond.load7
2122 ; SSE42-NEXT: pinsrq $1, 24(%rdi), %xmm5
2123 ; SSE42-NEXT: testb $16, %al
2124 ; SSE42-NEXT: je LBB16_10
2125 ; SSE42-NEXT: LBB16_9: ## %cond.load10
2126 ; SSE42-NEXT: pinsrq $0, 32(%rdi), %xmm6
2127 ; SSE42-NEXT: testb $32, %al
2128 ; SSE42-NEXT: je LBB16_12
2129 ; SSE42-NEXT: LBB16_11: ## %cond.load13
2130 ; SSE42-NEXT: pinsrq $1, 40(%rdi), %xmm6
2131 ; SSE42-NEXT: testb $64, %al
2132 ; SSE42-NEXT: je LBB16_14
2133 ; SSE42-NEXT: LBB16_13: ## %cond.load16
2134 ; SSE42-NEXT: pinsrq $0, 48(%rdi), %xmm8
2135 ; SSE42-NEXT: testb $-128, %al
2136 ; SSE42-NEXT: jne LBB16_15
2137 ; SSE42-NEXT: jmp LBB16_16
2216 ; SSE42-LABEL: load_v2i32_v2i32:
2217 ; SSE42: ## %bb.0:
2218 ; SSE42-NEXT: pxor %xmm2, %xmm2
2219 ; SSE42-NEXT: pcmpeqd %xmm0, %xmm2
2220 ; SSE42-NEXT: pmovsxdq %xmm2, %xmm0
2221 ; SSE42-NEXT: movmskpd %xmm0, %eax
2222 ; SSE42-NEXT: testb $1, %al
2223 ; SSE42-NEXT: jne LBB17_1
2224 ; SSE42-NEXT: ## %bb.2: ## %else
2225 ; SSE42-NEXT: testb $2, %al
2226 ; SSE42-NEXT: jne LBB17_3
2227 ; SSE42-NEXT: LBB17_4: ## %else2
2228 ; SSE42-NEXT: movdqa %xmm1, %xmm0
2229 ; SSE42-NEXT: retq
2230 ; SSE42-NEXT: LBB17_1: ## %cond.load
2231 ; SSE42-NEXT: pinsrd $0, (%rdi), %xmm1
2232 ; SSE42-NEXT: testb $2, %al
2233 ; SSE42-NEXT: je LBB17_4
2234 ; SSE42-NEXT: LBB17_3: ## %cond.load1
2235 ; SSE42-NEXT: pinsrd $1, 4(%rdi), %xmm1
2236 ; SSE42-NEXT: movdqa %xmm1, %xmm0
2237 ; SSE42-NEXT: retq
2343 ; SSE42-LABEL: load_v4i32_v4i32:
2344 ; SSE42: ## %bb.0:
2345 ; SSE42-NEXT: pxor %xmm2, %xmm2
2346 ; SSE42-NEXT: pcmpeqd %xmm0, %xmm2
2347 ; SSE42-NEXT: movmskps %xmm2, %eax
2348 ; SSE42-NEXT: testb $1, %al
2349 ; SSE42-NEXT: jne LBB18_1
2350 ; SSE42-NEXT: ## %bb.2: ## %else
2351 ; SSE42-NEXT: testb $2, %al
2352 ; SSE42-NEXT: jne LBB18_3
2353 ; SSE42-NEXT: LBB18_4: ## %else2
2354 ; SSE42-NEXT: testb $4, %al
2355 ; SSE42-NEXT: jne LBB18_5
2356 ; SSE42-NEXT: LBB18_6: ## %else5
2357 ; SSE42-NEXT: testb $8, %al
2358 ; SSE42-NEXT: jne LBB18_7
2359 ; SSE42-NEXT: LBB18_8: ## %else8
2360 ; SSE42-NEXT: movdqa %xmm1, %xmm0
2361 ; SSE42-NEXT: retq
2362 ; SSE42-NEXT: LBB18_1: ## %cond.load
2363 ; SSE42-NEXT: pinsrd $0, (%rdi), %xmm1
2364 ; SSE42-NEXT: testb $2, %al
2365 ; SSE42-NEXT: je LBB18_4
2366 ; SSE42-NEXT: LBB18_3: ## %cond.load1
2367 ; SSE42-NEXT: pinsrd $1, 4(%rdi), %xmm1
2368 ; SSE42-NEXT: testb $4, %al
2369 ; SSE42-NEXT: je LBB18_6
2370 ; SSE42-NEXT: LBB18_5: ## %cond.load4
2371 ; SSE42-NEXT: pinsrd $2, 8(%rdi), %xmm1
2372 ; SSE42-NEXT: testb $8, %al
2373 ; SSE42-NEXT: je LBB18_8
2374 ; SSE42-NEXT: LBB18_7: ## %cond.load7
2375 ; SSE42-NEXT: pinsrd $3, 12(%rdi), %xmm1
2376 ; SSE42-NEXT: movdqa %xmm1, %xmm0
2377 ; SSE42-NEXT: retq
2505 ; SSE42-LABEL: load_v8i32_v8i1:
2506 ; SSE42: ## %bb.0:
2507 ; SSE42-NEXT: psllw $15, %xmm0
2508 ; SSE42-NEXT: packsswb %xmm0, %xmm0
2509 ; SSE42-NEXT: pmovmskb %xmm0, %eax
2510 ; SSE42-NEXT: testb $1, %al
2511 ; SSE42-NEXT: jne LBB19_1
2512 ; SSE42-NEXT: ## %bb.2: ## %else
2513 ; SSE42-NEXT: testb $2, %al
2514 ; SSE42-NEXT: jne LBB19_3
2515 ; SSE42-NEXT: LBB19_4: ## %else2
2516 ; SSE42-NEXT: testb $4, %al
2517 ; SSE42-NEXT: jne LBB19_5
2518 ; SSE42-NEXT: LBB19_6: ## %else5
2519 ; SSE42-NEXT: testb $8, %al
2520 ; SSE42-NEXT: jne LBB19_7
2521 ; SSE42-NEXT: LBB19_8: ## %else8
2522 ; SSE42-NEXT: testb $16, %al
2523 ; SSE42-NEXT: jne LBB19_9
2524 ; SSE42-NEXT: LBB19_10: ## %else11
2525 ; SSE42-NEXT: testb $32, %al
2526 ; SSE42-NEXT: jne LBB19_11
2527 ; SSE42-NEXT: LBB19_12: ## %else14
2528 ; SSE42-NEXT: testb $64, %al
2529 ; SSE42-NEXT: jne LBB19_13
2530 ; SSE42-NEXT: LBB19_14: ## %else17
2531 ; SSE42-NEXT: testb $-128, %al
2532 ; SSE42-NEXT: je LBB19_16
2533 ; SSE42-NEXT: LBB19_15: ## %cond.load19
2534 ; SSE42-NEXT: pinsrd $3, 28(%rdi), %xmm2
2535 ; SSE42-NEXT: LBB19_16: ## %else20
2536 ; SSE42-NEXT: movdqa %xmm1, %xmm0
2537 ; SSE42-NEXT: movdqa %xmm2, %xmm1
2538 ; SSE42-NEXT: retq
2539 ; SSE42-NEXT: LBB19_1: ## %cond.load
2540 ; SSE42-NEXT: pinsrd $0, (%rdi), %xmm1
2541 ; SSE42-NEXT: testb $2, %al
2542 ; SSE42-NEXT: je LBB19_4
2543 ; SSE42-NEXT: LBB19_3: ## %cond.load1
2544 ; SSE42-NEXT: pinsrd $1, 4(%rdi), %xmm1
2545 ; SSE42-NEXT: testb $4, %al
2546 ; SSE42-NEXT: je LBB19_6
2547 ; SSE42-NEXT: LBB19_5: ## %cond.load4
2548 ; SSE42-NEXT: pinsrd $2, 8(%rdi), %xmm1
2549 ; SSE42-NEXT: testb $8, %al
2550 ; SSE42-NEXT: je LBB19_8
2551 ; SSE42-NEXT: LBB19_7: ## %cond.load7
2552 ; SSE42-NEXT: pinsrd $3, 12(%rdi), %xmm1
2553 ; SSE42-NEXT: testb $16, %al
2554 ; SSE42-NEXT: je LBB19_10
2555 ; SSE42-NEXT: LBB19_9: ## %cond.load10
2556 ; SSE42-NEXT: pinsrd $0, 16(%rdi), %xmm2
2557 ; SSE42-NEXT: testb $32, %al
2558 ; SSE42-NEXT: je LBB19_12
2559 ; SSE42-NEXT: LBB19_11: ## %cond.load13
2560 ; SSE42-NEXT: pinsrd $1, 20(%rdi), %xmm2
2561 ; SSE42-NEXT: testb $64, %al
2562 ; SSE42-NEXT: je LBB19_14
2563 ; SSE42-NEXT: LBB19_13: ## %cond.load16
2564 ; SSE42-NEXT: pinsrd $2, 24(%rdi), %xmm2
2565 ; SSE42-NEXT: testb $-128, %al
2566 ; SSE42-NEXT: jne LBB19_15
2567 ; SSE42-NEXT: jmp LBB19_16
2705 ; SSE42-LABEL: load_v8i32_v8i1_zero:
2706 ; SSE42: ## %bb.0:
2707 ; SSE42-NEXT: psllw $15, %xmm0
2708 ; SSE42-NEXT: packsswb %xmm0, %xmm0
2709 ; SSE42-NEXT: pmovmskb %xmm0, %eax
2710 ; SSE42-NEXT: pxor %xmm0, %xmm0
2711 ; SSE42-NEXT: testb $1, %al
2712 ; SSE42-NEXT: pxor %xmm1, %xmm1
2713 ; SSE42-NEXT: jne LBB20_1
2714 ; SSE42-NEXT: ## %bb.2: ## %else
2715 ; SSE42-NEXT: testb $2, %al
2716 ; SSE42-NEXT: jne LBB20_3
2717 ; SSE42-NEXT: LBB20_4: ## %else2
2718 ; SSE42-NEXT: testb $4, %al
2719 ; SSE42-NEXT: jne LBB20_5
2720 ; SSE42-NEXT: LBB20_6: ## %else5
2721 ; SSE42-NEXT: testb $8, %al
2722 ; SSE42-NEXT: jne LBB20_7
2723 ; SSE42-NEXT: LBB20_8: ## %else8
2724 ; SSE42-NEXT: testb $16, %al
2725 ; SSE42-NEXT: jne LBB20_9
2726 ; SSE42-NEXT: LBB20_10: ## %else11
2727 ; SSE42-NEXT: testb $32, %al
2728 ; SSE42-NEXT: jne LBB20_11
2729 ; SSE42-NEXT: LBB20_12: ## %else14
2730 ; SSE42-NEXT: testb $64, %al
2731 ; SSE42-NEXT: jne LBB20_13
2732 ; SSE42-NEXT: LBB20_14: ## %else17
2733 ; SSE42-NEXT: testb $-128, %al
2734 ; SSE42-NEXT: jne LBB20_15
2735 ; SSE42-NEXT: LBB20_16: ## %else20
2736 ; SSE42-NEXT: retq
2737 ; SSE42-NEXT: LBB20_1: ## %cond.load
2738 ; SSE42-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
2739 ; SSE42-NEXT: pxor %xmm1, %xmm1
2740 ; SSE42-NEXT: testb $2, %al
2741 ; SSE42-NEXT: je LBB20_4
2742 ; SSE42-NEXT: LBB20_3: ## %cond.load1
2743 ; SSE42-NEXT: pinsrd $1, 4(%rdi), %xmm0
2744 ; SSE42-NEXT: testb $4, %al
2745 ; SSE42-NEXT: je LBB20_6
2746 ; SSE42-NEXT: LBB20_5: ## %cond.load4
2747 ; SSE42-NEXT: pinsrd $2, 8(%rdi), %xmm0
2748 ; SSE42-NEXT: testb $8, %al
2749 ; SSE42-NEXT: je LBB20_8
2750 ; SSE42-NEXT: LBB20_7: ## %cond.load7
2751 ; SSE42-NEXT: pinsrd $3, 12(%rdi), %xmm0
2752 ; SSE42-NEXT: testb $16, %al
2753 ; SSE42-NEXT: je LBB20_10
2754 ; SSE42-NEXT: LBB20_9: ## %cond.load10
2755 ; SSE42-NEXT: pinsrd $0, 16(%rdi), %xmm1
2756 ; SSE42-NEXT: testb $32, %al
2757 ; SSE42-NEXT: je LBB20_12
2758 ; SSE42-NEXT: LBB20_11: ## %cond.load13
2759 ; SSE42-NEXT: pinsrd $1, 20(%rdi), %xmm1
2760 ; SSE42-NEXT: testb $64, %al
2761 ; SSE42-NEXT: je LBB20_14
2762 ; SSE42-NEXT: LBB20_13: ## %cond.load16
2763 ; SSE42-NEXT: pinsrd $2, 24(%rdi), %xmm1
2764 ; SSE42-NEXT: testb $-128, %al
2765 ; SSE42-NEXT: je LBB20_16
2766 ; SSE42-NEXT: LBB20_15: ## %cond.load19
2767 ; SSE42-NEXT: pinsrd $3, 28(%rdi), %xmm1
2768 ; SSE42-NEXT: retq
4039 ; SSE42-LABEL: load_v16i8_v16i8:
4040 ; SSE42: ## %bb.0:
4041 ; SSE42-NEXT: pmovmskb %xmm0, %eax
4042 ; SSE42-NEXT: testb $1, %al
4043 ; SSE42-NEXT: jne LBB23_1
4044 ; SSE42-NEXT: ## %bb.2: ## %else
4045 ; SSE42-NEXT: testb $2, %al
4046 ; SSE42-NEXT: jne LBB23_3
4047 ; SSE42-NEXT: LBB23_4: ## %else2
4048 ; SSE42-NEXT: testb $4, %al
4049 ; SSE42-NEXT: jne LBB23_5
4050 ; SSE42-NEXT: LBB23_6: ## %else5
4051 ; SSE42-NEXT: testb $8, %al
4052 ; SSE42-NEXT: jne LBB23_7
4053 ; SSE42-NEXT: LBB23_8: ## %else8
4054 ; SSE42-NEXT: testb $16, %al
4055 ; SSE42-NEXT: jne LBB23_9
4056 ; SSE42-NEXT: LBB23_10: ## %else11
4057 ; SSE42-NEXT: testb $32, %al
4058 ; SSE42-NEXT: jne LBB23_11
4059 ; SSE42-NEXT: LBB23_12: ## %else14
4060 ; SSE42-NEXT: testb $64, %al
4061 ; SSE42-NEXT: jne LBB23_13
4062 ; SSE42-NEXT: LBB23_14: ## %else17
4063 ; SSE42-NEXT: testb $-128, %al
4064 ; SSE42-NEXT: jne LBB23_15
4065 ; SSE42-NEXT: LBB23_16: ## %else20
4066 ; SSE42-NEXT: testl $256, %eax ## imm = 0x100
4067 ; SSE42-NEXT: jne LBB23_17
4068 ; SSE42-NEXT: LBB23_18: ## %else23
4069 ; SSE42-NEXT: testl $512, %eax ## imm = 0x200
4070 ; SSE42-NEXT: jne LBB23_19
4071 ; SSE42-NEXT: LBB23_20: ## %else26
4072 ; SSE42-NEXT: testl $1024, %eax ## imm = 0x400
4073 ; SSE42-NEXT: jne LBB23_21
4074 ; SSE42-NEXT: LBB23_22: ## %else29
4075 ; SSE42-NEXT: testl $2048, %eax ## imm = 0x800
4076 ; SSE42-NEXT: jne LBB23_23
4077 ; SSE42-NEXT: LBB23_24: ## %else32
4078 ; SSE42-NEXT: testl $4096, %eax ## imm = 0x1000
4079 ; SSE42-NEXT: jne LBB23_25
4080 ; SSE42-NEXT: LBB23_26: ## %else35
4081 ; SSE42-NEXT: testl $8192, %eax ## imm = 0x2000
4082 ; SSE42-NEXT: jne LBB23_27
4083 ; SSE42-NEXT: LBB23_28: ## %else38
4084 ; SSE42-NEXT: testl $16384, %eax ## imm = 0x4000
4085 ; SSE42-NEXT: jne LBB23_29
4086 ; SSE42-NEXT: LBB23_30: ## %else41
4087 ; SSE42-NEXT: testl $32768, %eax ## imm = 0x8000
4088 ; SSE42-NEXT: jne LBB23_31
4089 ; SSE42-NEXT: LBB23_32: ## %else44
4090 ; SSE42-NEXT: movdqa %xmm1, %xmm0
4091 ; SSE42-NEXT: retq
4092 ; SSE42-NEXT: LBB23_1: ## %cond.load
4093 ; SSE42-NEXT: pinsrb $0, (%rdi), %xmm1
4094 ; SSE42-NEXT: testb $2, %al
4095 ; SSE42-NEXT: je LBB23_4
4096 ; SSE42-NEXT: LBB23_3: ## %cond.load1
4097 ; SSE42-NEXT: pinsrb $1, 1(%rdi), %xmm1
4098 ; SSE42-NEXT: testb $4, %al
4099 ; SSE42-NEXT: je LBB23_6
4100 ; SSE42-NEXT: LBB23_5: ## %cond.load4
4101 ; SSE42-NEXT: pinsrb $2, 2(%rdi), %xmm1
4102 ; SSE42-NEXT: testb $8, %al
4103 ; SSE42-NEXT: je LBB23_8
4104 ; SSE42-NEXT: LBB23_7: ## %cond.load7
4105 ; SSE42-NEXT: pinsrb $3, 3(%rdi), %xmm1
4106 ; SSE42-NEXT: testb $16, %al
4107 ; SSE42-NEXT: je LBB23_10
4108 ; SSE42-NEXT: LBB23_9: ## %cond.load10
4109 ; SSE42-NEXT: pinsrb $4, 4(%rdi), %xmm1
4110 ; SSE42-NEXT: testb $32, %al
4111 ; SSE42-NEXT: je LBB23_12
4112 ; SSE42-NEXT: LBB23_11: ## %cond.load13
4113 ; SSE42-NEXT: pinsrb $5, 5(%rdi), %xmm1
4114 ; SSE42-NEXT: testb $64, %al
4115 ; SSE42-NEXT: je LBB23_14
4116 ; SSE42-NEXT: LBB23_13: ## %cond.load16
4117 ; SSE42-NEXT: pinsrb $6, 6(%rdi), %xmm1
4118 ; SSE42-NEXT: testb $-128, %al
4119 ; SSE42-NEXT: je LBB23_16
4120 ; SSE42-NEXT: LBB23_15: ## %cond.load19
4121 ; SSE42-NEXT: pinsrb $7, 7(%rdi), %xmm1
4122 ; SSE42-NEXT: testl $256, %eax ## imm = 0x100
4123 ; SSE42-NEXT: je LBB23_18
4124 ; SSE42-NEXT: LBB23_17: ## %cond.load22
4125 ; SSE42-NEXT: pinsrb $8, 8(%rdi), %xmm1
4126 ; SSE42-NEXT: testl $512, %eax ## imm = 0x200
4127 ; SSE42-NEXT: je LBB23_20
4128 ; SSE42-NEXT: LBB23_19: ## %cond.load25
4129 ; SSE42-NEXT: pinsrb $9, 9(%rdi), %xmm1
4130 ; SSE42-NEXT: testl $1024, %eax ## imm = 0x400
4131 ; SSE42-NEXT: je LBB23_22
4132 ; SSE42-NEXT: LBB23_21: ## %cond.load28
4133 ; SSE42-NEXT: pinsrb $10, 10(%rdi), %xmm1
4134 ; SSE42-NEXT: testl $2048, %eax ## imm = 0x800
4135 ; SSE42-NEXT: je LBB23_24
4136 ; SSE42-NEXT: LBB23_23: ## %cond.load31
4137 ; SSE42-NEXT: pinsrb $11, 11(%rdi), %xmm1
4138 ; SSE42-NEXT: testl $4096, %eax ## imm = 0x1000
4139 ; SSE42-NEXT: je LBB23_26
4140 ; SSE42-NEXT: LBB23_25: ## %cond.load34
4141 ; SSE42-NEXT: pinsrb $12, 12(%rdi), %xmm1
4142 ; SSE42-NEXT: testl $8192, %eax ## imm = 0x2000
4143 ; SSE42-NEXT: je LBB23_28
4144 ; SSE42-NEXT: LBB23_27: ## %cond.load37
4145 ; SSE42-NEXT: pinsrb $13, 13(%rdi), %xmm1
4146 ; SSE42-NEXT: testl $16384, %eax ## imm = 0x4000
4147 ; SSE42-NEXT: je LBB23_30
4148 ; SSE42-NEXT: LBB23_29: ## %cond.load40
4149 ; SSE42-NEXT: pinsrb $14, 14(%rdi), %xmm1
4150 ; SSE42-NEXT: testl $32768, %eax ## imm = 0x8000
4151 ; SSE42-NEXT: je LBB23_32
4152 ; SSE42-NEXT: LBB23_31: ## %cond.load43
4153 ; SSE42-NEXT: pinsrb $15, 15(%rdi), %xmm1
4154 ; SSE42-NEXT: movdqa %xmm1, %xmm0
4155 ; SSE42-NEXT: retq
4948 ; SSE42-LABEL: load_v32i8_v32i8:
4949 ; SSE42: ## %bb.0:
4950 ; SSE42-NEXT: pmovmskb %xmm0, %ecx
4951 ; SSE42-NEXT: pmovmskb %xmm1, %eax
4952 ; SSE42-NEXT: shll $16, %eax
4953 ; SSE42-NEXT: orl %ecx, %eax
4954 ; SSE42-NEXT: testb $1, %al
4955 ; SSE42-NEXT: jne LBB24_1
4956 ; SSE42-NEXT: ## %bb.2: ## %else
4957 ; SSE42-NEXT: testb $2, %al
4958 ; SSE42-NEXT: jne LBB24_3
4959 ; SSE42-NEXT: LBB24_4: ## %else2
4960 ; SSE42-NEXT: testb $4, %al
4961 ; SSE42-NEXT: jne LBB24_5
4962 ; SSE42-NEXT: LBB24_6: ## %else5
4963 ; SSE42-NEXT: testb $8, %al
4964 ; SSE42-NEXT: jne LBB24_7
4965 ; SSE42-NEXT: LBB24_8: ## %else8
4966 ; SSE42-NEXT: testb $16, %al
4967 ; SSE42-NEXT: jne LBB24_9
4968 ; SSE42-NEXT: LBB24_10: ## %else11
4969 ; SSE42-NEXT: testb $32, %al
4970 ; SSE42-NEXT: jne LBB24_11
4971 ; SSE42-NEXT: LBB24_12: ## %else14
4972 ; SSE42-NEXT: testb $64, %al
4973 ; SSE42-NEXT: jne LBB24_13
4974 ; SSE42-NEXT: LBB24_14: ## %else17
4975 ; SSE42-NEXT: testb $-128, %al
4976 ; SSE42-NEXT: jne LBB24_15
4977 ; SSE42-NEXT: LBB24_16: ## %else20
4978 ; SSE42-NEXT: testl $256, %eax ## imm = 0x100
4979 ; SSE42-NEXT: jne LBB24_17
4980 ; SSE42-NEXT: LBB24_18: ## %else23
4981 ; SSE42-NEXT: testl $512, %eax ## imm = 0x200
4982 ; SSE42-NEXT: jne LBB24_19
4983 ; SSE42-NEXT: LBB24_20: ## %else26
4984 ; SSE42-NEXT: testl $1024, %eax ## imm = 0x400
4985 ; SSE42-NEXT: jne LBB24_21
4986 ; SSE42-NEXT: LBB24_22: ## %else29
4987 ; SSE42-NEXT: testl $2048, %eax ## imm = 0x800
4988 ; SSE42-NEXT: jne LBB24_23
4989 ; SSE42-NEXT: LBB24_24: ## %else32
4990 ; SSE42-NEXT: testl $4096, %eax ## imm = 0x1000
4991 ; SSE42-NEXT: jne LBB24_25
4992 ; SSE42-NEXT: LBB24_26: ## %else35
4993 ; SSE42-NEXT: testl $8192, %eax ## imm = 0x2000
4994 ; SSE42-NEXT: jne LBB24_27
4995 ; SSE42-NEXT: LBB24_28: ## %else38
4996 ; SSE42-NEXT: testl $16384, %eax ## imm = 0x4000
4997 ; SSE42-NEXT: jne LBB24_29
4998 ; SSE42-NEXT: LBB24_30: ## %else41
4999 ; SSE42-NEXT: testl $32768, %eax ## imm = 0x8000
5000 ; SSE42-NEXT: jne LBB24_31
5001 ; SSE42-NEXT: LBB24_32: ## %else44
5002 ; SSE42-NEXT: testl $65536, %eax ## imm = 0x10000
5003 ; SSE42-NEXT: jne LBB24_33
5004 ; SSE42-NEXT: LBB24_34: ## %else47
5005 ; SSE42-NEXT: testl $131072, %eax ## imm = 0x20000
5006 ; SSE42-NEXT: jne LBB24_35
5007 ; SSE42-NEXT: LBB24_36: ## %else50
5008 ; SSE42-NEXT: testl $262144, %eax ## imm = 0x40000
5009 ; SSE42-NEXT: jne LBB24_37
5010 ; SSE42-NEXT: LBB24_38: ## %else53
5011 ; SSE42-NEXT: testl $524288, %eax ## imm = 0x80000
5012 ; SSE42-NEXT: jne LBB24_39
5013 ; SSE42-NEXT: LBB24_40: ## %else56
5014 ; SSE42-NEXT: testl $1048576, %eax ## imm = 0x100000
5015 ; SSE42-NEXT: jne LBB24_41
5016 ; SSE42-NEXT: LBB24_42: ## %else59
5017 ; SSE42-NEXT: testl $2097152, %eax ## imm = 0x200000
5018 ; SSE42-NEXT: jne LBB24_43
5019 ; SSE42-NEXT: LBB24_44: ## %else62
5020 ; SSE42-NEXT: testl $4194304, %eax ## imm = 0x400000
5021 ; SSE42-NEXT: jne LBB24_45
5022 ; SSE42-NEXT: LBB24_46: ## %else65
5023 ; SSE42-NEXT: testl $8388608, %eax ## imm = 0x800000
5024 ; SSE42-NEXT: jne LBB24_47
5025 ; SSE42-NEXT: LBB24_48: ## %else68
5026 ; SSE42-NEXT: testl $16777216, %eax ## imm = 0x1000000
5027 ; SSE42-NEXT: jne LBB24_49
5028 ; SSE42-NEXT: LBB24_50: ## %else71
5029 ; SSE42-NEXT: testl $33554432, %eax ## imm = 0x2000000
5030 ; SSE42-NEXT: jne LBB24_51
5031 ; SSE42-NEXT: LBB24_52: ## %else74
5032 ; SSE42-NEXT: testl $67108864, %eax ## imm = 0x4000000
5033 ; SSE42-NEXT: jne LBB24_53
5034 ; SSE42-NEXT: LBB24_54: ## %else77
5035 ; SSE42-NEXT: testl $134217728, %eax ## imm = 0x8000000
5036 ; SSE42-NEXT: jne LBB24_55
5037 ; SSE42-NEXT: LBB24_56: ## %else80
5038 ; SSE42-NEXT: testl $268435456, %eax ## imm = 0x10000000
5039 ; SSE42-NEXT: jne LBB24_57
5040 ; SSE42-NEXT: LBB24_58: ## %else83
5041 ; SSE42-NEXT: testl $536870912, %eax ## imm = 0x20000000
5042 ; SSE42-NEXT: jne LBB24_59
5043 ; SSE42-NEXT: LBB24_60: ## %else86
5044 ; SSE42-NEXT: testl $1073741824, %eax ## imm = 0x40000000
5045 ; SSE42-NEXT: jne LBB24_61
5046 ; SSE42-NEXT: LBB24_62: ## %else89
5047 ; SSE42-NEXT: testl $-2147483648, %eax ## imm = 0x80000000
5048 ; SSE42-NEXT: je LBB24_64
5049 ; SSE42-NEXT: LBB24_63: ## %cond.load91
5050 ; SSE42-NEXT: pinsrb $15, 31(%rdi), %xmm3
5051 ; SSE42-NEXT: LBB24_64: ## %else92
5052 ; SSE42-NEXT: movdqa %xmm2, %xmm0
5053 ; SSE42-NEXT: movdqa %xmm3, %xmm1
5054 ; SSE42-NEXT: retq
5055 ; SSE42-NEXT: LBB24_1: ## %cond.load
5056 ; SSE42-NEXT: pinsrb $0, (%rdi), %xmm2
5057 ; SSE42-NEXT: testb $2, %al
5058 ; SSE42-NEXT: je LBB24_4
5059 ; SSE42-NEXT: LBB24_3: ## %cond.load1
5060 ; SSE42-NEXT: pinsrb $1, 1(%rdi), %xmm2
5061 ; SSE42-NEXT: testb $4, %al
5062 ; SSE42-NEXT: je LBB24_6
5063 ; SSE42-NEXT: LBB24_5: ## %cond.load4
5064 ; SSE42-NEXT: pinsrb $2, 2(%rdi), %xmm2
5065 ; SSE42-NEXT: testb $8, %al
5066 ; SSE42-NEXT: je LBB24_8
5067 ; SSE42-NEXT: LBB24_7: ## %cond.load7
5068 ; SSE42-NEXT: pinsrb $3, 3(%rdi), %xmm2
5069 ; SSE42-NEXT: testb $16, %al
5070 ; SSE42-NEXT: je LBB24_10
5071 ; SSE42-NEXT: LBB24_9: ## %cond.load10
5072 ; SSE42-NEXT: pinsrb $4, 4(%rdi), %xmm2
5073 ; SSE42-NEXT: testb $32, %al
5074 ; SSE42-NEXT: je LBB24_12
5075 ; SSE42-NEXT: LBB24_11: ## %cond.load13
5076 ; SSE42-NEXT: pinsrb $5, 5(%rdi), %xmm2
5077 ; SSE42-NEXT: testb $64, %al
5078 ; SSE42-NEXT: je LBB24_14
5079 ; SSE42-NEXT: LBB24_13: ## %cond.load16
5080 ; SSE42-NEXT: pinsrb $6, 6(%rdi), %xmm2
5081 ; SSE42-NEXT: testb $-128, %al
5082 ; SSE42-NEXT: je LBB24_16
5083 ; SSE42-NEXT: LBB24_15: ## %cond.load19
5084 ; SSE42-NEXT: pinsrb $7, 7(%rdi), %xmm2
5085 ; SSE42-NEXT: testl $256, %eax ## imm = 0x100
5086 ; SSE42-NEXT: je LBB24_18
5087 ; SSE42-NEXT: LBB24_17: ## %cond.load22
5088 ; SSE42-NEXT: pinsrb $8, 8(%rdi), %xmm2
5089 ; SSE42-NEXT: testl $512, %eax ## imm = 0x200
5090 ; SSE42-NEXT: je LBB24_20
5091 ; SSE42-NEXT: LBB24_19: ## %cond.load25
5092 ; SSE42-NEXT: pinsrb $9, 9(%rdi), %xmm2
5093 ; SSE42-NEXT: testl $1024, %eax ## imm = 0x400
5094 ; SSE42-NEXT: je LBB24_22
5095 ; SSE42-NEXT: LBB24_21: ## %cond.load28
5096 ; SSE42-NEXT: pinsrb $10, 10(%rdi), %xmm2
5097 ; SSE42-NEXT: testl $2048, %eax ## imm = 0x800
5098 ; SSE42-NEXT: je LBB24_24
5099 ; SSE42-NEXT: LBB24_23: ## %cond.load31
5100 ; SSE42-NEXT: pinsrb $11, 11(%rdi), %xmm2
5101 ; SSE42-NEXT: testl $4096, %eax ## imm = 0x1000
5102 ; SSE42-NEXT: je LBB24_26
5103 ; SSE42-NEXT: LBB24_25: ## %cond.load34
5104 ; SSE42-NEXT: pinsrb $12, 12(%rdi), %xmm2
5105 ; SSE42-NEXT: testl $8192, %eax ## imm = 0x2000
5106 ; SSE42-NEXT: je LBB24_28
5107 ; SSE42-NEXT: LBB24_27: ## %cond.load37
5108 ; SSE42-NEXT: pinsrb $13, 13(%rdi), %xmm2
5109 ; SSE42-NEXT: testl $16384, %eax ## imm = 0x4000
5110 ; SSE42-NEXT: je LBB24_30
5111 ; SSE42-NEXT: LBB24_29: ## %cond.load40
5112 ; SSE42-NEXT: pinsrb $14, 14(%rdi), %xmm2
5113 ; SSE42-NEXT: testl $32768, %eax ## imm = 0x8000
5114 ; SSE42-NEXT: je LBB24_32
5115 ; SSE42-NEXT: LBB24_31: ## %cond.load43
5116 ; SSE42-NEXT: pinsrb $15, 15(%rdi), %xmm2
5117 ; SSE42-NEXT: testl $65536, %eax ## imm = 0x10000
5118 ; SSE42-NEXT: je LBB24_34
5119 ; SSE42-NEXT: LBB24_33: ## %cond.load46
5120 ; SSE42-NEXT: pinsrb $0, 16(%rdi), %xmm3
5121 ; SSE42-NEXT: testl $131072, %eax ## imm = 0x20000
5122 ; SSE42-NEXT: je LBB24_36
5123 ; SSE42-NEXT: LBB24_35: ## %cond.load49
5124 ; SSE42-NEXT: pinsrb $1, 17(%rdi), %xmm3
5125 ; SSE42-NEXT: testl $262144, %eax ## imm = 0x40000
5126 ; SSE42-NEXT: je LBB24_38
5127 ; SSE42-NEXT: LBB24_37: ## %cond.load52
5128 ; SSE42-NEXT: pinsrb $2, 18(%rdi), %xmm3
5129 ; SSE42-NEXT: testl $524288, %eax ## imm = 0x80000
5130 ; SSE42-NEXT: je LBB24_40
5131 ; SSE42-NEXT: LBB24_39: ## %cond.load55
5132 ; SSE42-NEXT: pinsrb $3, 19(%rdi), %xmm3
5133 ; SSE42-NEXT: testl $1048576, %eax ## imm = 0x100000
5134 ; SSE42-NEXT: je LBB24_42
5135 ; SSE42-NEXT: LBB24_41: ## %cond.load58
5136 ; SSE42-NEXT: pinsrb $4, 20(%rdi), %xmm3
5137 ; SSE42-NEXT: testl $2097152, %eax ## imm = 0x200000
5138 ; SSE42-NEXT: je LBB24_44
5139 ; SSE42-NEXT: LBB24_43: ## %cond.load61
5140 ; SSE42-NEXT: pinsrb $5, 21(%rdi), %xmm3
5141 ; SSE42-NEXT: testl $4194304, %eax ## imm = 0x400000
5142 ; SSE42-NEXT: je LBB24_46
5143 ; SSE42-NEXT: LBB24_45: ## %cond.load64
5144 ; SSE42-NEXT: pinsrb $6, 22(%rdi), %xmm3
5145 ; SSE42-NEXT: testl $8388608, %eax ## imm = 0x800000
5146 ; SSE42-NEXT: je LBB24_48
5147 ; SSE42-NEXT: LBB24_47: ## %cond.load67
5148 ; SSE42-NEXT: pinsrb $7, 23(%rdi), %xmm3
5149 ; SSE42-NEXT: testl $16777216, %eax ## imm = 0x1000000
5150 ; SSE42-NEXT: je LBB24_50
5151 ; SSE42-NEXT: LBB24_49: ## %cond.load70
5152 ; SSE42-NEXT: pinsrb $8, 24(%rdi), %xmm3
5153 ; SSE42-NEXT: testl $33554432, %eax ## imm = 0x2000000
5154 ; SSE42-NEXT: je LBB24_52
5155 ; SSE42-NEXT: LBB24_51: ## %cond.load73
5156 ; SSE42-NEXT: pinsrb $9, 25(%rdi), %xmm3
5157 ; SSE42-NEXT: testl $67108864, %eax ## imm = 0x4000000
5158 ; SSE42-NEXT: je LBB24_54
5159 ; SSE42-NEXT: LBB24_53: ## %cond.load76
5160 ; SSE42-NEXT: pinsrb $10, 26(%rdi), %xmm3
5161 ; SSE42-NEXT: testl $134217728, %eax ## imm = 0x8000000
5162 ; SSE42-NEXT: je LBB24_56
5163 ; SSE42-NEXT: LBB24_55: ## %cond.load79
5164 ; SSE42-NEXT: pinsrb $11, 27(%rdi), %xmm3
5165 ; SSE42-NEXT: testl $268435456, %eax ## imm = 0x10000000
5166 ; SSE42-NEXT: je LBB24_58
5167 ; SSE42-NEXT: LBB24_57: ## %cond.load82
5168 ; SSE42-NEXT: pinsrb $12, 28(%rdi), %xmm3
5169 ; SSE42-NEXT: testl $536870912, %eax ## imm = 0x20000000
5170 ; SSE42-NEXT: je LBB24_60
5171 ; SSE42-NEXT: LBB24_59: ## %cond.load85
5172 ; SSE42-NEXT: pinsrb $13, 29(%rdi), %xmm3
5173 ; SSE42-NEXT: testl $1073741824, %eax ## imm = 0x40000000
5174 ; SSE42-NEXT: je LBB24_62
5175 ; SSE42-NEXT: LBB24_61: ## %cond.load88
5176 ; SSE42-NEXT: pinsrb $14, 30(%rdi), %xmm3
5177 ; SSE42-NEXT: testl $-2147483648, %eax ## imm = 0x80000000
5178 ; SSE42-NEXT: jne LBB24_63
5179 ; SSE42-NEXT: jmp LBB24_64
6329 ; SSE42-LABEL: mload_constmask_v4f32:
6330 ; SSE42: ## %bb.0:
6331 ; SSE42-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
6332 ; SSE42-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]
6333 ; SSE42-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1],mem[0],xmm0[3]
6334 ; SSE42-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1,2],mem[0]
6335 ; SSE42-NEXT: retq
6431 ; SSE42-LABEL: mload_constmask_v4i32:
6432 ; SSE42: ## %bb.0:
6433 ; SSE42-NEXT: pinsrd $1, 4(%rdi), %xmm0
6434 ; SSE42-NEXT: pinsrd $2, 8(%rdi), %xmm0
6435 ; SSE42-NEXT: pinsrd $3, 12(%rdi), %xmm0
6436 ; SSE42-NEXT: retq
6494 ; SSE42-LABEL: mload_constmask_v2i64:
6495 ; SSE42: ## %bb.0:
6496 ; SSE42-NEXT: pinsrq $1, 8(%rdi), %xmm0
6497 ; SSE42-NEXT: retq
6527 ; SSE42-LABEL: mload_constmask_v8f32:
6528 ; SSE42: ## %bb.0:
6529 ; SSE42-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
6530 ; SSE42-NEXT: blendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
6531 ; SSE42-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[2,3]
6532 ; SSE42-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1],mem[0],xmm0[3]
6533 ; SSE42-NEXT: retq
6585 ; SSE42-LABEL: mload_constmask_v8f32_zero:
6586 ; SSE42: ## %bb.0:
6587 ; SSE42-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
6588 ; SSE42-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1],mem[0],zero
6589 ; SSE42-NEXT: xorps %xmm1, %xmm1
6590 ; SSE42-NEXT: retq
6696 ; SSE42-LABEL: mload_constmask_v8i32:
6697 ; SSE42: ## %bb.0:
6698 ; SSE42-NEXT: pinsrd $0, (%rdi), %xmm0
6699 ; SSE42-NEXT: pinsrd $1, 4(%rdi), %xmm0
6700 ; SSE42-NEXT: pinsrd $2, 8(%rdi), %xmm0
6701 ; SSE42-NEXT: pinsrd $3, 28(%rdi), %xmm1
6702 ; SSE42-NEXT: retq
6751 ; SSE42-LABEL: mload_constmask_v4i64:
6752 ; SSE42: ## %bb.0:
6753 ; SSE42-NEXT: pinsrq $0, (%rdi), %xmm0
6754 ; SSE42-NEXT: pinsrq $1, 24(%rdi), %xmm1
6755 ; SSE42-NEXT: retq
7026 ; SSE42-LABEL: load_one_mask_bit_set1:
7027 ; SSE42: ## %bb.0:
7028 ; SSE42-NEXT: pinsrd $0, (%rdi), %xmm0
7029 ; SSE42-NEXT: retq
7055 ; SSE42-LABEL: load_one_mask_bit_set2:
7056 ; SSE42: ## %bb.0:
7057 ; SSE42-NEXT: insertps {{.*#+}} xmm0 = xmm0[0,1],mem[0],xmm0[3]
7058 ; SSE42-NEXT: retq
7082 ; SSE42-LABEL: load_one_mask_bit_set3:
7083 ; SSE42: ## %bb.0:
7084 ; SSE42-NEXT: pinsrq $0, 16(%rdi), %xmm1
7085 ; SSE42-NEXT: retq
7196 ; SSE42-LABEL: load_one_mask_bit_set6:
7197 ; SSE42: ## %bb.0:
7198 ; SSE42-NEXT: movq %rdi, %rax
7199 ; SSE42-NEXT: pinsrq $0, 16(%rsi), %xmm1
7200 ; SSE42-NEXT: pinsrq $0, 80(%rsi), %xmm5
7201 ; SSE42-NEXT: pinsrq $1, 104(%rsi), %xmm6
7202 ; SSE42-NEXT: movaps %xmm7, 112(%rdi)
7203 ; SSE42-NEXT: movaps %xmm4, 64(%rdi)
7204 ; SSE42-NEXT: movaps %xmm3, 48(%rdi)
7205 ; SSE42-NEXT: movaps %xmm2, 32(%rdi)
7206 ; SSE42-NEXT: movaps %xmm0, (%rdi)
7207 ; SSE42-NEXT: movdqa %xmm6, 96(%rdi)
7208 ; SSE42-NEXT: movdqa %xmm5, 80(%rdi)
7209 ; SSE42-NEXT: movdqa %xmm1, 16(%rdi)
7210 ; SSE42-NEXT: retq