Home | History | Annotate | Download | only in X86

Lines Matching full:sse41

5 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mattr=+sse4.1 | FileCheck %s --check-prefix=ALL --check-prefix=SSE --check-prefix=SSE41
264 ; SSE41-LABEL: shuffle_v4f32_0022:
265 ; SSE41: # BB#0:
266 ; SSE41-NEXT: movsldup {{.*#+}} xmm0 = xmm0[0,0,2,2]
267 ; SSE41-NEXT: retq
292 ; SSE41-LABEL: shuffle_v4f32_1133:
293 ; SSE41: # BB#0:
294 ; SSE41-NEXT: movshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
295 ; SSE41-NEXT: retq
353 ; SSE41-LABEL: shuffle_v4i32_0124:
354 ; SSE41: # BB#0:
355 ; SSE41-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,2,0]
356 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm1[6,7]
357 ; SSE41-NEXT: retq
392 ; SSE41-LABEL: shuffle_v4i32_0142:
393 ; SSE41: # BB#0:
394 ; SSE41-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]
395 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,2,2]
396 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4,5],xmm0[6,7]
397 ; SSE41-NEXT: retq
437 ; SSE41-LABEL: shuffle_v4i32_0412:
438 ; SSE41: # BB#0:
439 ; SSE41-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]
440 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,1,2]
441 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3],xmm0[4,5,6,7]
442 ; SSE41-NEXT: retq
482 ; SSE41-LABEL: shuffle_v4i32_4012:
483 ; SSE41: # BB#0:
484 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,2]
485 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3,4,5,6,7]
486 ; SSE41-NEXT: retq
534 ; SSE41-LABEL: shuffle_v4i32_0451:
535 ; SSE41: # BB#0:
536 ; SSE41-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]
537 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]
538 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3,4,5],xmm0[6,7]
539 ; SSE41-NEXT: retq
590 ; SSE41-LABEL: shuffle_v4i32_4015:
591 ; SSE41: # BB#0:
592 ; SSE41-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,1,0,1]
593 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
594 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3,4,5],xmm1[6,7]
595 ; SSE41-NEXT: retq
636 ; SSE41-LABEL: shuffle_v4f32_4zzz:
637 ; SSE41: # BB#0:
638 ; SSE41-NEXT: xorps %xmm1, %xmm1
639 ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
640 ; SSE41-NEXT: retq
673 ; SSE41-LABEL: shuffle_v4f32_z4zz:
674 ; SSE41: # BB#0:
675 ; SSE41-NEXT: insertps {{.*#+}} xmm0 = zero,xmm0[0],zero,zero
676 ; SSE41-NEXT: retq
711 ; SSE41-LABEL: shuffle_v4f32_zz4z:
712 ; SSE41: # BB#0:
713 ; SSE41-NEXT: insertps {{.*#+}} xmm0 = zero,zero,xmm0[0],zero
714 ; SSE41-NEXT: retq
746 ; SSE41-LABEL: shuffle_v4f32_zuu4:
747 ; SSE41: # BB#0:
748 ; SSE41-NEXT: insertps {{.*#+}} xmm0 = zero,zero,zero,xmm0[0]
749 ; SSE41-NEXT: retq
784 ; SSE41-LABEL: shuffle_v4f32_zzz7:
785 ; SSE41: # BB#0:
786 ; SSE41-NEXT: xorps %xmm1, %xmm1
787 ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[3]
788 ; SSE41-NEXT: retq
821 ; SSE41-LABEL: shuffle_v4f32_z6zz:
822 ; SSE41: # BB#0:
823 ; SSE41-NEXT: insertps {{.*#+}} xmm0 = zero,xmm0[2],zero,zero
824 ; SSE41-NEXT: retq
859 ; SSE41-LABEL: shuffle_v4f32_0z23:
860 ; SSE41: # BB#0:
861 ; SSE41-NEXT: xorps %xmm1, %xmm1
862 ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]
863 ; SSE41-NEXT: retq
896 ; SSE41-LABEL: shuffle_v4f32_01z3:
897 ; SSE41: # BB#0:
898 ; SSE41-NEXT: xorps %xmm1, %xmm1
899 ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
900 ; SSE41-NEXT: retq
933 ; SSE41-LABEL: shuffle_v4f32_012z:
934 ; SSE41: # BB#0:
935 ; SSE41-NEXT: xorps %xmm1, %xmm1
936 ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3]
937 ; SSE41-NEXT: retq
970 ; SSE41-LABEL: shuffle_v4f32_0zz3:
971 ; SSE41: # BB#0:
972 ; SSE41-NEXT: xorps %xmm1, %xmm1
973 ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2],xmm0[3]
974 ; SSE41-NEXT: retq
1007 ; SSE41-LABEL: shuffle_v4f32_0z2z:
1008 ; SSE41: # BB#0:
1009 ; SSE41-NEXT: xorps %xmm1, %xmm1
1010 ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]
1011 ; SSE41-NEXT: retq
1065 ; SSE41-LABEL: shuffle_v4f32_0zz4:
1066 ; SSE41: # BB#0:
1067 ; SSE41-NEXT: insertps {{.*#+}} xmm1 = zero,zero,zero,xmm1[0]
1068 ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
1069 ; SSE41-NEXT: retq
1109 ; SSE41-LABEL: shuffle_v4f32_0zz6:
1110 ; SSE41: # BB#0:
1111 ; SSE41-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],zero,zero,xmm1[2]
1112 ; SSE41-NEXT: retq
1154 ; SSE41-LABEL: shuffle_v4f32_0z24:
1155 ; SSE41: # BB#0:
1156 ; SSE41-NEXT: insertps {{.*#+}} xmm0 = xmm0[0],zero,xmm0[2],xmm1[0]
1157 ; SSE41-NEXT: retq
1190 ; SSE41-LABEL: shuffle_v4i32_4zzz:
1191 ; SSE41: # BB#0:
1192 ; SSE41-NEXT: pxor %xmm1, %xmm1
1193 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3,4,5,6,7]
1194 ; SSE41-NEXT: retq
1227 ; SSE41-LABEL: shuffle_v4i32_z4zz:
1228 ; SSE41: # BB#0:
1229 ; SSE41-NEXT: pxor %xmm1, %xmm1
1230 ; SSE41-NEXT: pblendw {{.*#+}} xmm1 = xmm0[0,1],xmm1[2,3,4,5,6,7]
1231 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,0,1,1]
1232 ; SSE41-NEXT: retq
1266 ; SSE41-LABEL: shuffle_v4i32_zz4z:
1267 ; SSE41: # BB#0:
1268 ; SSE41-NEXT: pxor %xmm1, %xmm1
1269 ; SSE41-NEXT: pblendw {{.*#+}} xmm1 = xmm0[0,1],xmm1[2,3,4,5,6,7]
1270 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm1[1,1,0,1]
1271 ; SSE41-NEXT: retq
1319 ; SSE41-LABEL: shuffle_v4i32_z6zz:
1320 ; SSE41: # BB#0:
1321 ; SSE41-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,2,3,3]
1322 ; SSE41-NEXT: pxor %xmm0, %xmm0
1323 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3],xmm0[4,5,6,7]
1324 ; SSE41-NEXT: retq
1363 ; SSE41-LABEL: shuffle_v4i32_7012:
1364 ; SSE41: # BB#0:
1365 ; SSE41-NEXT: palignr {{.*#+}} xmm0 = xmm1[12,13,14,15],xmm0[0,1,2,3,4,5,6,7,8,9,10,11]
1366 ; SSE41-NEXT: retq
1394 ; SSE41-LABEL: shuffle_v4i32_6701:
1395 ; SSE41: # BB#0:
1396 ; SSE41-NEXT: palignr {{.*#+}} xmm0 = xmm1[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
1397 ; SSE41-NEXT: retq
1427 ; SSE41-LABEL: shuffle_v4i32_5670:
1428 ; SSE41: # BB#0:
1429 ; SSE41-NEXT: palignr {{.*#+}} xmm0 = xmm1[4,5,6,7,8,9,10,11,12,13,14,15],xmm0[0,1,2,3]
1430 ; SSE41-NEXT: retq
1459 ; SSE41-LABEL: shuffle_v4i32_1234:
1460 ; SSE41: # BB#0:
1461 ; SSE41-NEXT: palignr {{.*#+}} xmm1 = xmm0[4,5,6,7,8,9,10,11,12,13,14,15],xmm1[0,1,2,3]
1462 ; SSE41-NEXT: movdqa %xmm1, %xmm0
1463 ; SSE41-NEXT: retq
1490 ; SSE41-LABEL: shuffle_v4i32_2345:
1491 ; SSE41: # BB#0:
1492 ; SSE41-NEXT: palignr {{.*#+}} xmm1 = xmm0[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
1493 ; SSE41-NEXT: movdqa %xmm1, %xmm0
1494 ; SSE41-NEXT: retq
1538 ; SSE41-LABEL: shuffle_v4i32_3456:
1539 ; SSE41: # BB#0:
1540 ; SSE41-NEXT: palignr {{.*#+}} xmm1 = xmm0[12,13,14,15],xmm1[0,1,2,3,4,5,6,7,8,9,10,11]
1541 ; SSE41-NEXT: movdqa %xmm1, %xmm0
1542 ; SSE41-NEXT: retq
1568 ; SSE41-LABEL: shuffle_v4i32_0u1u:
1569 ; SSE41: # BB#0:
1570 ; SSE41-NEXT: pmovzxdq {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero
1571 ; SSE41-NEXT: retq
1600 ; SSE41-LABEL: shuffle_v4i32_0z1z:
1601 ; SSE41: # BB#0:
1602 ; SSE41-NEXT: pmovzxdq {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero
1603 ; SSE41-NEXT: retq
1643 ; SSE41-LABEL: shuffle_v4i32_0z23:
1644 ; SSE41: # BB#0:
1645 ; SSE41-NEXT: pxor %xmm1, %xmm1
1646 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3],xmm0[4,5,6,7]
1647 ; SSE41-NEXT: retq
1680 ; SSE41-LABEL: shuffle_v4i32_01z3:
1681 ; SSE41: # BB#0:
1682 ; SSE41-NEXT: pxor %xmm1, %xmm1
1683 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm1[4,5],xmm0[6,7]
1684 ; SSE41-NEXT: retq
1717 ; SSE41-LABEL: shuffle_v4i32_012z:
1718 ; SSE41: # BB#0:
1719 ; SSE41-NEXT: pxor %xmm1, %xmm1
1720 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,5],xmm1[6,7]
1721 ; SSE41-NEXT: retq
1754 ; SSE41-LABEL: shuffle_v4i32_0zz3:
1755 ; SSE41: # BB#0:
1756 ; SSE41-NEXT: pxor %xmm1, %xmm1
1757 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3,4,5],xmm0[6,7]
1758 ; SSE41-NEXT: retq
1851 ; SSE41-LABEL: mask_v4f32_4127:
1852 ; SSE41: # BB#0:
1853 ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3]
1854 ; SSE41-NEXT: retq
1891 ; SSE41-LABEL: mask_v4f32_0127:
1892 ; SSE41: # BB#0:
1893 ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[3]
1894 ; SSE41-NEXT: retq
1931 ; SSE41-LABEL: mask_v4i32_0127:
1932 ; SSE41: # BB#0:
1933 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm1[0,1,2,3,4,5],xmm0[6,7]
1934 ; SSE41-NEXT: retq
1971 ; SSE41-LABEL: broadcast_v4f32_0101_from_v2f32:
1972 ; SSE41: # BB#0:
1973 ; SSE41-NEXT: movddup {{.*#+}} xmm0 = mem[0,0]
1974 ; SSE41-NEXT: retq
2038 ; SSE41-LABEL: insert_reg_and_zero_v4f32:
2039 ; SSE41: # BB#0:
2040 ; SSE41-NEXT: xorps %xmm1, %xmm1
2041 ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3]
2042 ; SSE41-NEXT: retq
2089 ; SSE41-LABEL: insert_reg_lo_v4i32:
2090 ; SSE41: # BB#0:
2091 ; SSE41-NEXT: movd %rdi, %xmm1
2092 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm1[0,1,2,3],xmm0[4,5,6,7]
2093 ; SSE41-NEXT: retq
2128 ; SSE41-LABEL: insert_mem_lo_v4i32:
2129 ; SSE41: # BB#0:
2130 ; SSE41-NEXT: movq {{.*#+}} xmm1 = mem[0],zero
2131 ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm1[0,1,2,3],xmm0[4,5,6,7]
2132 ; SSE41-NEXT: retq