Lines Matching refs:SSSE3
3 …N: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+ssse3 | FileCheck %s --check-prefixes=SSE,SSSE3
283 ; SSSE3-LABEL: v2i8:
284 ; SSSE3: # %bb.0:
285 ; SSSE3-NEXT: movzwl (%rdi), %eax
286 ; SSSE3-NEXT: movd %eax, %xmm0
287 ; SSSE3-NEXT: movzwl (%rsi), %eax
288 ; SSSE3-NEXT: movd %eax, %xmm1
289 ; SSSE3-NEXT: paddsb %xmm0, %xmm1
290 ; SSSE3-NEXT: movd %xmm1, %eax
291 ; SSSE3-NEXT: movw %ax, (%rdx)
292 ; SSSE3-NEXT: retq
609 ; SSSE3-LABEL: v2i32:
610 ; SSSE3: # %bb.0:
611 ; SSSE3-NEXT: pxor %xmm2, %xmm2
612 ; SSSE3-NEXT: pcmpgtd %xmm1, %xmm2
613 ; SSSE3-NEXT: paddd %xmm0, %xmm1
614 ; SSSE3-NEXT: pcmpgtd %xmm1, %xmm0
615 ; SSSE3-NEXT: pxor %xmm2, %xmm0
616 ; SSSE3-NEXT: movdqa %xmm0, %xmm2
617 ; SSSE3-NEXT: pandn %xmm1, %xmm2
618 ; SSSE3-NEXT: psrad $31, %xmm1
619 ; SSSE3-NEXT: pxor {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
620 ; SSSE3-NEXT: pand %xmm1, %xmm0
621 ; SSSE3-NEXT: por %xmm2, %xmm0
622 ; SSSE3-NEXT: retq
700 ; SSSE3-LABEL: v4i32:
701 ; SSSE3: # %bb.0:
702 ; SSSE3-NEXT: pxor %xmm2, %xmm2
703 ; SSSE3-NEXT: pcmpgtd %xmm1, %xmm2
704 ; SSSE3-NEXT: paddd %xmm0, %xmm1
705 ; SSSE3-NEXT: pcmpgtd %xmm1, %xmm0
706 ; SSSE3-NEXT: pxor %xmm2, %xmm0
707 ; SSSE3-NEXT: movdqa %xmm0, %xmm2
708 ; SSSE3-NEXT: pandn %xmm1, %xmm2
709 ; SSSE3-NEXT: psrad $31, %xmm1
710 ; SSSE3-NEXT: pxor {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
711 ; SSSE3-NEXT: pand %xmm1, %xmm0
712 ; SSSE3-NEXT: por %xmm2, %xmm0
713 ; SSSE3-NEXT: retq
803 ; SSSE3-LABEL: v8i32:
804 ; SSSE3: # %bb.0:
805 ; SSSE3-NEXT: pxor %xmm4, %xmm4
806 ; SSSE3-NEXT: pxor %xmm5, %xmm5
807 ; SSSE3-NEXT: pcmpgtd %xmm2, %xmm5
808 ; SSSE3-NEXT: paddd %xmm0, %xmm2
809 ; SSSE3-NEXT: pcmpgtd %xmm2, %xmm0
810 ; SSSE3-NEXT: pxor %xmm5, %xmm0
811 ; SSSE3-NEXT: movdqa %xmm0, %xmm5
812 ; SSSE3-NEXT: pandn %xmm2, %xmm5
813 ; SSSE3-NEXT: psrad $31, %xmm2
814 ; SSSE3-NEXT: movdqa {{.*#+}} xmm6 = [2147483648,2147483648,2147483648,2147483648]
815 ; SSSE3-NEXT: pxor %xmm6, %xmm2
816 ; SSSE3-NEXT: pand %xmm2, %xmm0
817 ; SSSE3-NEXT: por %xmm5, %xmm0
818 ; SSSE3-NEXT: pcmpgtd %xmm3, %xmm4
819 ; SSSE3-NEXT: paddd %xmm1, %xmm3
820 ; SSSE3-NEXT: pcmpgtd %xmm3, %xmm1
821 ; SSSE3-NEXT: pxor %xmm4, %xmm1
822 ; SSSE3-NEXT: movdqa %xmm1, %xmm2
823 ; SSSE3-NEXT: pandn %xmm3, %xmm2
824 ; SSSE3-NEXT: psrad $31, %xmm3
825 ; SSSE3-NEXT: pxor %xmm3, %xmm6
826 ; SSSE3-NEXT: pand %xmm6, %xmm1
827 ; SSSE3-NEXT: por %xmm2, %xmm1
828 ; SSSE3-NEXT: retq
959 ; SSSE3-LABEL: v16i32:
960 ; SSSE3: # %bb.0:
961 ; SSSE3-NEXT: pxor %xmm8, %xmm8
962 ; SSSE3-NEXT: pxor %xmm9, %xmm9
963 ; SSSE3-NEXT: pcmpgtd %xmm4, %xmm9
964 ; SSSE3-NEXT: paddd %xmm0, %xmm4
965 ; SSSE3-NEXT: pcmpgtd %xmm4, %xmm0
966 ; SSSE3-NEXT: pxor %xmm9, %xmm0
967 ; SSSE3-NEXT: movdqa %xmm0, %xmm10
968 ; SSSE3-NEXT: pandn %xmm4, %xmm10
969 ; SSSE3-NEXT: psrad $31, %xmm4
970 ; SSSE3-NEXT: movdqa {{.*#+}} xmm9 = [2147483648,2147483648,2147483648,2147483648]
971 ; SSSE3-NEXT: pxor %xmm9, %xmm4
972 ; SSSE3-NEXT: pand %xmm4, %xmm0
973 ; SSSE3-NEXT: por %xmm10, %xmm0
974 ; SSSE3-NEXT: pxor %xmm4, %xmm4
975 ; SSSE3-NEXT: pcmpgtd %xmm5, %xmm4
976 ; SSSE3-NEXT: paddd %xmm1, %xmm5
977 ; SSSE3-NEXT: pcmpgtd %xmm5, %xmm1
978 ; SSSE3-NEXT: pxor %xmm4, %xmm1
979 ; SSSE3-NEXT: movdqa %xmm1, %xmm4
980 ; SSSE3-NEXT: pandn %xmm5, %xmm4
981 ; SSSE3-NEXT: psrad $31, %xmm5
982 ; SSSE3-NEXT: pxor %xmm9, %xmm5
983 ; SSSE3-NEXT: pand %xmm5, %xmm1
984 ; SSSE3-NEXT: por %xmm4, %xmm1
985 ; SSSE3-NEXT: pxor %xmm4, %xmm4
986 ; SSSE3-NEXT: pcmpgtd %xmm6, %xmm4
987 ; SSSE3-NEXT: paddd %xmm2, %xmm6
988 ; SSSE3-NEXT: pcmpgtd %xmm6, %xmm2
989 ; SSSE3-NEXT: pxor %xmm4, %xmm2
990 ; SSSE3-NEXT: movdqa %xmm2, %xmm4
991 ; SSSE3-NEXT: pandn %xmm6, %xmm4
992 ; SSSE3-NEXT: psrad $31, %xmm6
993 ; SSSE3-NEXT: pxor %xmm9, %xmm6
994 ; SSSE3-NEXT: pand %xmm6, %xmm2
995 ; SSSE3-NEXT: por %xmm4, %xmm2
996 ; SSSE3-NEXT: pcmpgtd %xmm7, %xmm8
997 ; SSSE3-NEXT: paddd %xmm3, %xmm7
998 ; SSSE3-NEXT: pcmpgtd %xmm7, %xmm3
999 ; SSSE3-NEXT: pxor %xmm8, %xmm3
1000 ; SSSE3-NEXT: movdqa %xmm3, %xmm4
1001 ; SSSE3-NEXT: pandn %xmm7, %xmm4
1002 ; SSSE3-NEXT: psrad $31, %xmm7
1003 ; SSSE3-NEXT: pxor %xmm7, %xmm9
1004 ; SSSE3-NEXT: pand %xmm9, %xmm3
1005 ; SSSE3-NEXT: por %xmm4, %xmm3
1006 ; SSSE3-NEXT: retq
1146 ; SSSE3-LABEL: v2i64:
1147 ; SSSE3: # %bb.0:
1148 ; SSSE3-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648]
1149 ; SSSE3-NEXT: movdqa %xmm0, %xmm3
1150 ; SSSE3-NEXT: pxor %xmm2, %xmm3
1151 ; SSSE3-NEXT: paddq %xmm1, %xmm0
1152 ; SSSE3-NEXT: pxor %xmm0, %xmm2
1153 ; SSSE3-NEXT: movdqa %xmm3, %xmm4
1154 ; SSSE3-NEXT: pcmpgtd %xmm2, %xmm4
1155 ; SSSE3-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
1156 ; SSSE3-NEXT: pcmpeqd %xmm3, %xmm2
1157 ; SSSE3-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
1158 ; SSSE3-NEXT: pand %xmm5, %xmm2
1159 ; SSSE3-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
1160 ; SSSE3-NEXT: por %xmm2, %xmm3
1161 ; SSSE3-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
1162 ; SSSE3-NEXT: pxor %xmm2, %xmm2
1163 ; SSSE3-NEXT: pcmpgtd %xmm1, %xmm2
1164 ; SSSE3-NEXT: pxor %xmm3, %xmm2
1165 ; SSSE3-NEXT: movdqa %xmm2, %xmm1
1166 ; SSSE3-NEXT: pandn %xmm0, %xmm1
1167 ; SSSE3-NEXT: psrad $31, %xmm0
1168 ; SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
1169 ; SSSE3-NEXT: pxor {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
1170 ; SSSE3-NEXT: pand %xmm2, %xmm0
1171 ; SSSE3-NEXT: por %xmm1, %xmm0
1172 ; SSSE3-NEXT: retq
1298 ; SSSE3-LABEL: v4i64:
1299 ; SSSE3: # %bb.0:
1300 ; SSSE3-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648]
1301 ; SSSE3-NEXT: movdqa %xmm0, %xmm5
1302 ; SSSE3-NEXT: pxor %xmm4, %xmm5
1303 ; SSSE3-NEXT: paddq %xmm2, %xmm0
1304 ; SSSE3-NEXT: movdqa %xmm0, %xmm6
1305 ; SSSE3-NEXT: pxor %xmm4, %xmm6
1306 ; SSSE3-NEXT: movdqa %xmm5, %xmm7
1307 ; SSSE3-NEXT: pcmpgtd %xmm6, %xmm7
1308 ; SSSE3-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
1309 ; SSSE3-NEXT: pcmpeqd %xmm5, %xmm6
1310 ; SSSE3-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
1311 ; SSSE3-NEXT: pand %xmm8, %xmm5
1312 ; SSSE3-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
1313 ; SSSE3-NEXT: por %xmm5, %xmm6
1314 ; SSSE3-NEXT: pshufd {{.*#+}} xmm5 = xmm2[1,1,3,3]
1315 ; SSSE3-NEXT: pxor %xmm2, %xmm2
1316 ; SSSE3-NEXT: pxor %xmm7, %xmm7
1317 ; SSSE3-NEXT: pcmpgtd %xmm5, %xmm7
1318 ; SSSE3-NEXT: pxor %xmm6, %xmm7
1319 ; SSSE3-NEXT: movdqa %xmm7, %xmm6
1320 ; SSSE3-NEXT: pandn %xmm0, %xmm6
1321 ; SSSE3-NEXT: psrad $31, %xmm0
1322 ; SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
1323 ; SSSE3-NEXT: movdqa {{.*#+}} xmm8 = [9223372036854775808,9223372036854775808]
1324 ; SSSE3-NEXT: pxor %xmm8, %xmm0
1325 ; SSSE3-NEXT: pand %xmm7, %xmm0
1326 ; SSSE3-NEXT: por %xmm6, %xmm0
1327 ; SSSE3-NEXT: movdqa %xmm1, %xmm6
1328 ; SSSE3-NEXT: pxor %xmm4, %xmm6
1329 ; SSSE3-NEXT: paddq %xmm3, %xmm1
1330 ; SSSE3-NEXT: pxor %xmm1, %xmm4
1331 ; SSSE3-NEXT: movdqa %xmm6, %xmm7
1332 ; SSSE3-NEXT: pcmpgtd %xmm4, %xmm7
1333 ; SSSE3-NEXT: pshufd {{.*#+}} xmm5 = xmm7[0,0,2,2]
1334 ; SSSE3-NEXT: pcmpeqd %xmm6, %xmm4
1335 ; SSSE3-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3]
1336 ; SSSE3-NEXT: pand %xmm5, %xmm4
1337 ; SSSE3-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
1338 ; SSSE3-NEXT: por %xmm4, %xmm5
1339 ; SSSE3-NEXT: pshufd {{.*#+}} xmm3 = xmm3[1,1,3,3]
1340 ; SSSE3-NEXT: pcmpgtd %xmm3, %xmm2
1341 ; SSSE3-NEXT: pxor %xmm5, %xmm2
1342 ; SSSE3-NEXT: movdqa %xmm2, %xmm3
1343 ; SSSE3-NEXT: pandn %xmm1, %xmm3
1344 ; SSSE3-NEXT: psrad $31, %xmm1
1345 ; SSSE3-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
1346 ; SSSE3-NEXT: pxor %xmm8, %xmm1
1347 ; SSSE3-NEXT: pand %xmm2, %xmm1
1348 ; SSSE3-NEXT: por %xmm3, %xmm1
1349 ; SSSE3-NEXT: retq
1550 ; SSSE3-LABEL: v8i64:
1551 ; SSSE3: # %bb.0:
1552 ; SSSE3-NEXT: movdqa {{.*#+}} xmm8 = [2147483648,2147483648]
1553 ; SSSE3-NEXT: movdqa %xmm0, %xmm9
1554 ; SSSE3-NEXT: pxor %xmm8, %xmm9
1555 ; SSSE3-NEXT: paddq %xmm4, %xmm0
1556 ; SSSE3-NEXT: movdqa %xmm0, %xmm10
1557 ; SSSE3-NEXT: pxor %xmm8, %xmm10
1558 ; SSSE3-NEXT: movdqa %xmm9, %xmm11
1559 ; SSSE3-NEXT: pcmpgtd %xmm10, %xmm11
1560 ; SSSE3-NEXT: pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
1561 ; SSSE3-NEXT: pcmpeqd %xmm9, %xmm10
1562 ; SSSE3-NEXT: pshufd {{.*#+}} xmm9 = xmm10[1,1,3,3]
1563 ; SSSE3-NEXT: pand %xmm12, %xmm9
1564 ; SSSE3-NEXT: pshufd {{.*#+}} xmm10 = xmm11[1,1,3,3]
1565 ; SSSE3-NEXT: por %xmm9, %xmm10
1566 ; SSSE3-NEXT: pshufd {{.*#+}} xmm9 = xmm4[1,1,3,3]
1567 ; SSSE3-NEXT: pxor %xmm11, %xmm11
1568 ; SSSE3-NEXT: pxor %xmm4, %xmm4
1569 ; SSSE3-NEXT: pcmpgtd %xmm9, %xmm4
1570 ; SSSE3-NEXT: pxor %xmm10, %xmm4
1571 ; SSSE3-NEXT: movdqa %xmm4, %xmm10
1572 ; SSSE3-NEXT: pandn %xmm0, %xmm10
1573 ; SSSE3-NEXT: psrad $31, %xmm0
1574 ; SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
1575 ; SSSE3-NEXT: movdqa {{.*#+}} xmm9 = [9223372036854775808,9223372036854775808]
1576 ; SSSE3-NEXT: pxor %xmm9, %xmm0
1577 ; SSSE3-NEXT: pand %xmm4, %xmm0
1578 ; SSSE3-NEXT: por %xmm10, %xmm0
1579 ; SSSE3-NEXT: movdqa %xmm1, %xmm10
1580 ; SSSE3-NEXT: pxor %xmm8, %xmm10
1581 ; SSSE3-NEXT: paddq %xmm5, %xmm1
1582 ; SSSE3-NEXT: movdqa %xmm1, %xmm4
1583 ; SSSE3-NEXT: pxor %xmm8, %xmm4
1584 ; SSSE3-NEXT: movdqa %xmm10, %xmm12
1585 ; SSSE3-NEXT: pcmpgtd %xmm4, %xmm12
1586 ; SSSE3-NEXT: pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2]
1587 ; SSSE3-NEXT: pcmpeqd %xmm10, %xmm4
1588 ; SSSE3-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3]
1589 ; SSSE3-NEXT: pand %xmm13, %xmm4
1590 ; SSSE3-NEXT: pshufd {{.*#+}} xmm10 = xmm12[1,1,3,3]
1591 ; SSSE3-NEXT: por %xmm4, %xmm10
1592 ; SSSE3-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
1593 ; SSSE3-NEXT: pxor %xmm5, %xmm5
1594 ; SSSE3-NEXT: pcmpgtd %xmm4, %xmm5
1595 ; SSSE3-NEXT: pxor %xmm10, %xmm5
1596 ; SSSE3-NEXT: movdqa %xmm5, %xmm4
1597 ; SSSE3-NEXT: pandn %xmm1, %xmm4
1598 ; SSSE3-NEXT: psrad $31, %xmm1
1599 ; SSSE3-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
1600 ; SSSE3-NEXT: pxor %xmm9, %xmm1
1601 ; SSSE3-NEXT: pand %xmm5, %xmm1
1602 ; SSSE3-NEXT: por %xmm4, %xmm1
1603 ; SSSE3-NEXT: movdqa %xmm2, %xmm10
1604 ; SSSE3-NEXT: pxor %xmm8, %xmm10
1605 ; SSSE3-NEXT: paddq %xmm6, %xmm2
1606 ; SSSE3-NEXT: movdqa %xmm2, %xmm5
1607 ; SSSE3-NEXT: pxor %xmm8, %xmm5
1608 ; SSSE3-NEXT: movdqa %xmm10, %xmm4
1609 ; SSSE3-NEXT: pcmpgtd %xmm5, %xmm4
1610 ; SSSE3-NEXT: pshufd {{.*#+}} xmm12 = xmm4[0,0,2,2]
1611 ; SSSE3-NEXT: pcmpeqd %xmm10, %xmm5
1612 ; SSSE3-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
1613 ; SSSE3-NEXT: pand %xmm12, %xmm5
1614 ; SSSE3-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3]
1615 ; SSSE3-NEXT: por %xmm5, %xmm4
1616 ; SSSE3-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
1617 ; SSSE3-NEXT: pxor %xmm6, %xmm6
1618 ; SSSE3-NEXT: pcmpgtd %xmm5, %xmm6
1619 ; SSSE3-NEXT: pxor %xmm4, %xmm6
1620 ; SSSE3-NEXT: movdqa %xmm6, %xmm4
1621 ; SSSE3-NEXT: pandn %xmm2, %xmm4
1622 ; SSSE3-NEXT: psrad $31, %xmm2
1623 ; SSSE3-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
1624 ; SSSE3-NEXT: pxor %xmm9, %xmm2
1625 ; SSSE3-NEXT: pand %xmm6, %xmm2
1626 ; SSSE3-NEXT: por %xmm4, %xmm2
1627 ; SSSE3-NEXT: movdqa %xmm3, %xmm4
1628 ; SSSE3-NEXT: pxor %xmm8, %xmm4
1629 ; SSSE3-NEXT: paddq %xmm7, %xmm3
1630 ; SSSE3-NEXT: pxor %xmm3, %xmm8
1631 ; SSSE3-NEXT: movdqa %xmm4, %xmm5
1632 ; SSSE3-NEXT: pcmpgtd %xmm8, %xmm5
1633 ; SSSE3-NEXT: pshufd {{.*#+}} xmm6 = xmm5[0,0,2,2]
1634 ; SSSE3-NEXT: pcmpeqd %xmm4, %xmm8
1635 ; SSSE3-NEXT: pshufd {{.*#+}} xmm4 = xmm8[1,1,3,3]
1636 ; SSSE3-NEXT: pand %xmm6, %xmm4
1637 ; SSSE3-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
1638 ; SSSE3-NEXT: por %xmm4, %xmm5
1639 ; SSSE3-NEXT: pshufd {{.*#+}} xmm4 = xmm7[1,1,3,3]
1640 ; SSSE3-NEXT: pcmpgtd %xmm4, %xmm11
1641 ; SSSE3-NEXT: pxor %xmm5, %xmm11
1642 ; SSSE3-NEXT: movdqa %xmm11, %xmm4
1643 ; SSSE3-NEXT: pandn %xmm3, %xmm4
1644 ; SSSE3-NEXT: psrad $31, %xmm3
1645 ; SSSE3-NEXT: pshufd {{.*#+}} xmm3 = xmm3[1,1,3,3]
1646 ; SSSE3-NEXT: pxor %xmm9, %xmm3
1647 ; SSSE3-NEXT: pand %xmm11, %xmm3
1648 ; SSSE3-NEXT: por %xmm4, %xmm3
1649 ; SSSE3-NEXT: retq