Knowledge (XXG)

AltiVec

Source 📝

736:(Xbox 360) and called this enhancement VMX128. The enhancements comprise new routines targeted at gaming (accelerating 3D graphics and game physics) and a total of 128 registers. VMX128 is not entirely compatible with VMX/Altivec, as a number of integer operations were removed to make space for the larger register file and additional application-specific operations. 626:" declares a 128-bit vector variable named "foo" containing sixteen 8-bit unsigned chars. The full complement of arithmetic and binary operators is defined on vector types so that the normal C expression language can be used to manipulate vector variables. There are also overloaded intrinsic functions such as " 647:
The Power Vector Media Extension (VMX) was developed between 1996 and 1998 by a collaborative project between Apple, IBM, and Motorola. Apple was the primary customer for Power Vector Media Extension (VMX) until Apple switched to Intel-made, x86-based CPUs on June 6, 2005. They used it to accelerate
578:
design, the vector registers, like the scalar registers, can only be loaded from and stored to memory. However, VMX/AltiVec provides a much more complete set of "horizontal" operations that work across all the elements of a vector; the allowable combinations of data type and operations are much more
790:
AltiVec prior to Power ISA 2.06 with VSX lacks loading from memory using a type's natural alignment. For example, the code below requires special handling for Power6 and below when the effective address is not 16-byte aligned. The special handling adds 3 additional instructions to a load operation
634:
based on the type of the elements within the vector, and very strong type checking is enforced. In contrast, the Intel-defined data types for IA-32 SIMD registers declare only the size of the vector register (128 or 64 bits) and in the case of a 128-bit register, whether it contains integers or
774:
class template due to the treatment of "vector" as a reserved word when the compiler does not implement the context-sensitive keyword version of vector. However, it may be possible to combine them using compiler-specific workarounds; for instance, in GCC one may do
621:
capabilities that attempt to intelligently create VMX/Altivec accelerated binaries without the need for the programmer to use intrinsics directly. The "vector" type keyword is introduced to permit the declaration of native vector types, e.g.,
515:
While AltiVec refers to an instruction set, the implementations in CPUs produced by IBM and Motorola are separate in terms of logic design. To date, no IBM core has included an AltiVec logic design licensed from Motorola or vice versa.
594:, in which each byte of a resulting vector value can be taken from any byte of either of two other vectors, parametrized by yet another vector. This allows for sophisticated manipulations in a single instruction. 747:
introduced VSX vector-scalar instructions which extend SIMD processing for the Power ISA to support up to 64 registers, with support for regular floating point, decimal floating point and vector execution.
1092:
AltiVec prior to Power ISA 2.06 with VMX lacks 64-bit integer support. Developers who wish to operate on 64-bit data will develop routines from 32-bit components. For example, below are examples of 64-bit
2220: 672:. Motorola was the first to supply AltiVec enabled processors starting with their G4 line. AltiVec was also used in some embedded systems for high-performance digital signal processing. 421: 2178: 2150: 2164: 1105:. The permutes move the carry and borrow bits from columns 1 and 3 to columns 0 and 2 like in school-book math. A little-endian machine would need a different mask. 2360: 758:
New integer vector instructions were introduced by IBM following the VMX encodings as part of the VSX extension in Power ISA v3.0. Shall be introduced with
543:
feature 128-bit vector registers that can represent sixteen 8-bit signed or unsigned chars, eight 16-bit signed or unsigned shorts, four 32-bit ints or four
414: 755:
New instructions are introduced by IBM under the Vector Media Extension category for integer operations as part of the VSX extension in Power ISA 2.07.
2313: 2191: 2729: 2126: 2303: 407: 1784:
Power ISA 2.07 used in Power8 finally provided the 64-bit double words. A developer working with Power8 needs only to perform the following.
369: 2353: 583:), and most VMX/AltiVec instructions take three register operands compared to only two register/register or register/memory operands on 2454: 2372: 2323: 2245: 379: 2293: 570:" data type, but it does not operate on 64-bit double-precision floats, and there is no way to move data directly between scalar and 2735: 2614: 2490: 2380: 354: 2745: 2384: 702:
specification. This category is also known as VMX (used by IBM), and "Velocity Engine" (a brand name previously used by Apple).
2808: 2346: 713:, also supports Power Vector Media Extension (VMX) in its PPU, with the SPU ISA being enhanced but architecturally similar. 2803: 770:
In C++, the standard way of accessing AltiVec support is mutually exclusive with the use of the Standard Template Library
2631: 544: 2589: 2553: 374: 579:
complete. Thirty-two 128-bit vector registers are provided, compared to eight for SSE and SSE2 (extended to 16 in
523:
specification. It was never formally a part of the PowerPC architecture until this specification although it used
2704: 2660: 2515: 676: 540: 108: 610: 635:
floating-point values. The programmer must select the appropriate intrinsic for the data types in use, e.g., "
2798: 2710: 2639: 2410: 2405: 665: 618: 598: 457: 2478: 22: 2680: 2503: 2053: 2048: 683:
microprocessor, introduced in 2007, implements AltiVec. The last desktop microprocessor from IBM, the
2721: 2692: 2437: 344: 287: 280: 2674: 2571: 2565: 706: 591: 668:. Other companies such as Adobe used AltiVec to optimize their image-processing programs such as 2765: 2759: 2753: 606: 2101:
The following software applications are known to leverage AltiVec or VMX hardware acceleration.
2644: 2442: 2422: 2172: 2144: 2043: 733: 321: 304: 273: 2242:"Peter Bergner - [PATCH, COMMITTED] Add full Power ISA 3.0 / POWER9 binutils support" 2606: 571: 316: 2241: 2369: 2327: 2317: 2307: 2297: 669: 563: 552: 445: 687:(dubbed the "G5" by Apple) also implemented AltiVec with hardware similar to that of the 2204:
Implementing instruction set architectures with non-contiguous register file specifiers
694:
AltiVec is a brandname trademarked by Freescale (previously Motorola) for the standard
438: 2792: 2216: 2016: 2011: 2006: 717: 710: 602: 359: 73: 68: 2001: 1996: 1991: 1986: 465: 349: 63: 58: 53: 48: 2668: 2038: 2033: 2028: 684: 679:, which were intended for server applications where it was not very useful. The 481: 230: 206: 193: 188: 182: 2203: 2090: 1981: 1976: 1971: 1966: 1961: 1102: 688: 649: 493: 473: 449: 311: 199: 2338: 2698: 2620: 2461: 2398: 2393: 744: 699: 653: 548: 520: 497: 489: 364: 30: 2333: 661: 461: 253: 2583: 2449: 2432: 2415: 2314:
Using data-parallel SIMD architecture in video games and supercomputers
2192:
Using data-parallel SIMD architecture in video games and supercomputers
2078: 524: 469: 241: 169: 90: 26: 2686: 2649: 2509: 2217:"Workload acceleration with the IBM POWER vector-scalar architecture" 2073: 2068: 2063: 2058: 759: 749: 680: 657: 631: 580: 528: 485: 236: 212: 164: 159: 154: 149: 143: 136: 129: 122: 115: 614: 574:
registers. In keeping with the "load/store" model of the PowerPC's
2595: 2533: 2473: 721: 584: 567: 85: 2577: 2559: 2545: 2539: 2527: 2521: 2427: 1437:/* Performs a-b as if the vector held two 64-bit double words */ 1155:/* Performs a+b as if the vector held two 64-bit double words */ 590:
VMX/AltiVec is also unique in its support for a flexible vector
575: 559: 500:
owned solely by Freescale, so the system is also referred to as
442: 327: 2342: 2105:
Helios has a native POWER9 / POWER10 port with support for VMX.
752:
is the first Power ISA processor to implement Power ISA v2.06.
2494: 2266: 2167:. IBM. October 2015. Archived from the original on 2008-01-20. 1952:
The following processors have AltiVec, VMX or VMX128 included
477: 453: 2294:
Unrolling AltiVec, Part 1: Introducing the PowerPC SIMD unit
874:/* Natural alignment of vals is 4; and not 16 as required */ 639:" for adding two vectors containing eight 16-bit integers. 1882:/* Performs a-b using native vector 64-bit double words */ 1819:/* Performs a+b using native vector 64-bit double words */ 716:
Freescale is bringing an enhanced version of AltiVec to
2132:. Power.org. Archived from the original on 2011-07-27 709:
Broadband Engine, used in (amongst other things) the
2744: 2720: 2658: 2630: 2605: 2489: 2379: 16:SIMD instruction set extension for the PowerPC ISA 617:programs. As of version 4, the GCC also includes 609:to access VMX/AltiVec instructions directly from 2177:: CS1 maint: bot: original URL status unknown ( 2149:: CS1 maint: bot: original URL status unknown ( 1101:in C using a vector with four 32-bit words on a 558:They also exhibit important differences. Unlike 527:instruction formats and syntax and occupied the 675:IBM consistently left VMX out of their earlier 2617:(ABM: 2007, BMI1: 2012, BMI2: 2013, TBM: 2012) 531:space expressly allocated for such purposes. 464:'s Semiconductor Products Sector) — the 2354: 472:processor architecture, including Motorola's 415: 8: 925:#if defined(__VSX__) || defined(_ARCH_PWR8) 551:-control instructions intended to minimize 2361: 2347: 2339: 422: 408: 18: 2121: 2119: 547:floating-point variables. Both provide 468:. It is implemented on versions of the 2677:(2008); ARMv8 also has AES instructions 2334:SIMD history and performance comparison 2115: 783:keyword, and then use the GCC-specific 336: 296: 264: 100: 37: 21: 2170: 2142: 605:compiler and other compilers provide 38:NXP (formerly Freescale and Motorola) 7: 2165:"The Microsoft Xbox 360 CPU story" 519:AltiVec is a standard part of the 14: 562:, VMX/AltiVec supports a special 555:when working on streams of data. 2777:Suspended extensions' dates are 2248:from the original on 2016-03-07 2223:from the original on 2022-01-25 2306:at Freescale; archived at the 1: 740:VSX (Vector Scalar Extension) 732:IBM enhanced VMX for use in 630:" that emit the appropriate 791:when VSX is not available. 510:Vector Multimedia Extension 2825: 2326:at Apple; archived at the 666:Quartz graphics compositor 2775: 660:and key parts of Apple's 624:vector unsigned char foo; 2574:(FMA4: 2011, FMA3: 2012) 2316:at IBM; archived at the 2296:at IBM; archived at the 1786: 1107: 793: 535:Comparison to x86-64 SSE 512:) by IBM and P.A. Semi. 45:PowerPC e series (2006) 2632:Compressed instructions 599:GNU Compiler Collection 597:Recent versions of the 458:Freescale Semiconductor 787:keyword in its place. 448:designed and owned by 437:is a single-precision 178:PowerPC series (1992) 2809:Power microprocessors 2097:Software Applications 677:POWER microprocessors 652:applications such as 539:Both VMX/AltiVec and 2804:Cell BE architecture 2722:Transactional memory 2304:AltiVec Technologies 496:PA6T. AltiVec is a 345:OpenPOWER Foundation 2219:. IBM. 2016-03-01. 2206:US Patent 7,421,566 643:Development history 592:permute instruction 2127:"Power ISA v.2.03" 1982:MPC7447/7447A/7457 1956:Motorola/Freescale 1103:big-endian machine 637:_mm_add_epi16(x,y) 619:auto-vectorization 398:historic in italic 226:RAD series (1997) 82:Qor series (2008) 2786: 2785: 2012:T4080/T4160/T4240 1792:<altivec.h> 1113:<altivec.h> 799:<altivec.h> 664:including in the 432: 431: 394:Cancelled in gray 2816: 2607:Bit manipulation 2363: 2356: 2349: 2340: 2281: 2280: 2278: 2277: 2263: 2257: 2256: 2254: 2253: 2238: 2232: 2231: 2229: 2228: 2213: 2207: 2201: 2195: 2189: 2183: 2182: 2176: 2168: 2161: 2155: 2154: 2148: 2140: 2138: 2137: 2131: 2123: 1943: 1940: 1937: 1934: 1931: 1928: 1925: 1922: 1919: 1916: 1913: 1910: 1907: 1904: 1901: 1898: 1895: 1892: 1889: 1886: 1883: 1880: 1877: 1874: 1871: 1868: 1865: 1862: 1859: 1856: 1853: 1850: 1847: 1844: 1841: 1838: 1835: 1832: 1829: 1826: 1823: 1820: 1817: 1814: 1811: 1808: 1805: 1802: 1799: 1796: 1793: 1790: 1780: 1777: 1774: 1771: 1768: 1765: 1762: 1759: 1756: 1753: 1750: 1747: 1744: 1741: 1738: 1735: 1732: 1729: 1726: 1723: 1720: 1717: 1714: 1711: 1708: 1705: 1702: 1699: 1696: 1693: 1690: 1687: 1684: 1681: 1678: 1675: 1672: 1669: 1666: 1663: 1660: 1657: 1654: 1651: 1648: 1645: 1642: 1639: 1636: 1633: 1630: 1627: 1624: 1621: 1618: 1615: 1612: 1609: 1606: 1603: 1600: 1597: 1594: 1591: 1588: 1585: 1582: 1579: 1576: 1573: 1570: 1567: 1564: 1561: 1558: 1555: 1552: 1549: 1546: 1543: 1540: 1537: 1534: 1531: 1528: 1525: 1522: 1519: 1516: 1513: 1510: 1507: 1504: 1501: 1498: 1495: 1492: 1489: 1486: 1483: 1480: 1477: 1474: 1471: 1468: 1465: 1462: 1459: 1456: 1453: 1450: 1447: 1444: 1441: 1438: 1435: 1432: 1429: 1426: 1423: 1420: 1417: 1414: 1411: 1408: 1405: 1402: 1399: 1396: 1393: 1390: 1387: 1384: 1381: 1378: 1375: 1372: 1369: 1366: 1363: 1360: 1357: 1354: 1351: 1348: 1345: 1342: 1339: 1336: 1333: 1330: 1327: 1324: 1321: 1318: 1315: 1312: 1309: 1306: 1303: 1300: 1297: 1294: 1291: 1288: 1285: 1282: 1279: 1276: 1273: 1270: 1267: 1264: 1261: 1258: 1255: 1252: 1249: 1246: 1243: 1240: 1237: 1234: 1231: 1228: 1225: 1222: 1219: 1216: 1213: 1210: 1207: 1204: 1201: 1198: 1195: 1192: 1189: 1186: 1183: 1180: 1177: 1174: 1171: 1168: 1165: 1162: 1159: 1156: 1153: 1150: 1147: 1144: 1141: 1138: 1135: 1132: 1129: 1126: 1123: 1120: 1117: 1114: 1111: 1100: 1096: 1088: 1085: 1082: 1079: 1076: 1073: 1070: 1067: 1064: 1061: 1058: 1055: 1052: 1049: 1046: 1043: 1040: 1037: 1034: 1031: 1028: 1025: 1022: 1019: 1016: 1013: 1010: 1007: 1004: 1001: 998: 995: 992: 989: 986: 983: 980: 977: 974: 971: 968: 965: 962: 959: 956: 953: 950: 947: 944: 941: 938: 935: 932: 929: 926: 923: 920: 917: 914: 911: 908: 905: 902: 899: 896: 893: 890: 887: 884: 881: 878: 875: 872: 869: 866: 863: 860: 857: 854: 851: 848: 845: 842: 839: 836: 833: 830: 827: 824: 821: 818: 815: 812: 809: 806: 803: 800: 797: 786: 782: 778: 773: 700:Power ISA v.2.03 638: 629: 625: 521:Power ISA v.2.03 488:processors, and 424: 417: 410: 395: 307: 19: 2824: 2823: 2819: 2818: 2817: 2815: 2814: 2813: 2789: 2788: 2787: 2782: 2771: 2740: 2716: 2654: 2626: 2601: 2485: 2375: 2370:Instruction set 2367: 2328:Wayback Machine 2324:Velocity Engine 2318:Wayback Machine 2308:Wayback Machine 2298:Wayback Machine 2290: 2285: 2284: 2275: 2273: 2265: 2264: 2260: 2251: 2249: 2240: 2239: 2235: 2226: 2224: 2215: 2214: 2210: 2202: 2198: 2190: 2186: 2169: 2163: 2162: 2158: 2141: 2135: 2133: 2129: 2125: 2124: 2117: 2112: 2099: 2087: 2025: 1958: 1950: 1948:Implementations 1945: 1944: 1941: 1938: 1935: 1932: 1929: 1926: 1923: 1920: 1917: 1914: 1911: 1908: 1905: 1902: 1899: 1896: 1893: 1890: 1887: 1884: 1881: 1878: 1875: 1872: 1869: 1866: 1863: 1860: 1857: 1854: 1851: 1848: 1845: 1842: 1839: 1836: 1833: 1830: 1827: 1824: 1821: 1818: 1815: 1812: 1809: 1806: 1803: 1800: 1797: 1794: 1791: 1788: 1782: 1781: 1778: 1775: 1772: 1769: 1766: 1763: 1760: 1757: 1754: 1751: 1748: 1745: 1742: 1739: 1736: 1733: 1730: 1727: 1724: 1721: 1718: 1715: 1712: 1709: 1706: 1703: 1700: 1697: 1694: 1691: 1688: 1685: 1682: 1679: 1676: 1673: 1670: 1667: 1664: 1661: 1658: 1655: 1652: 1649: 1646: 1643: 1640: 1637: 1634: 1631: 1628: 1625: 1622: 1619: 1616: 1613: 1610: 1607: 1604: 1601: 1598: 1595: 1592: 1589: 1586: 1583: 1580: 1577: 1574: 1571: 1568: 1565: 1562: 1559: 1556: 1553: 1550: 1547: 1544: 1541: 1538: 1535: 1532: 1529: 1526: 1523: 1520: 1517: 1514: 1511: 1508: 1505: 1502: 1499: 1496: 1493: 1490: 1487: 1484: 1481: 1478: 1475: 1472: 1469: 1466: 1463: 1460: 1457: 1454: 1451: 1448: 1445: 1442: 1439: 1436: 1433: 1430: 1427: 1424: 1421: 1418: 1415: 1412: 1409: 1406: 1403: 1400: 1397: 1394: 1391: 1388: 1385: 1382: 1379: 1376: 1373: 1370: 1367: 1364: 1361: 1358: 1355: 1352: 1349: 1346: 1343: 1340: 1337: 1334: 1331: 1328: 1325: 1322: 1319: 1316: 1313: 1310: 1307: 1304: 1301: 1298: 1295: 1292: 1289: 1286: 1283: 1280: 1277: 1274: 1271: 1268: 1265: 1262: 1259: 1256: 1253: 1250: 1247: 1244: 1241: 1238: 1235: 1232: 1229: 1226: 1223: 1220: 1217: 1214: 1211: 1208: 1205: 1202: 1199: 1196: 1193: 1190: 1187: 1184: 1181: 1178: 1175: 1172: 1169: 1166: 1163: 1160: 1157: 1154: 1151: 1148: 1145: 1142: 1139: 1136: 1133: 1130: 1127: 1124: 1121: 1118: 1115: 1112: 1109: 1098: 1094: 1090: 1089: 1086: 1083: 1080: 1077: 1074: 1071: 1068: 1065: 1062: 1059: 1056: 1053: 1050: 1047: 1044: 1041: 1038: 1035: 1032: 1029: 1026: 1023: 1020: 1017: 1014: 1011: 1008: 1005: 1002: 999: 996: 993: 990: 987: 984: 981: 978: 975: 972: 969: 966: 963: 960: 957: 954: 951: 948: 945: 942: 939: 936: 933: 930: 927: 924: 921: 918: 915: 912: 909: 906: 903: 900: 897: 894: 891: 888: 885: 882: 879: 876: 873: 870: 867: 864: 861: 858: 855: 852: 849: 846: 843: 840: 837: 834: 831: 828: 825: 822: 819: 816: 813: 810: 807: 804: 801: 798: 795: 784: 780: 776: 771: 768: 745:Power ISA v2.06 742: 730: 696:Category:Vector 670:Adobe Photoshop 645: 636: 627: 623: 553:cache pollution 537: 502:Velocity Engine 446:instruction set 428: 393: 305: 17: 12: 11: 5: 2822: 2820: 2812: 2811: 2806: 2801: 2799:SIMD computing 2791: 2790: 2784: 2783: 2779:struck through 2776: 2773: 2772: 2770: 2769: 2763: 2757: 2750: 2748: 2746:Virtualization 2742: 2741: 2739: 2738: 2733: 2726: 2724: 2718: 2717: 2715: 2714: 2708: 2702: 2696: 2690: 2684: 2678: 2672: 2665: 2663: 2656: 2655: 2653: 2652: 2647: 2642: 2636: 2634: 2628: 2627: 2625: 2624: 2618: 2611: 2609: 2603: 2602: 2600: 2599: 2593: 2587: 2581: 2575: 2569: 2563: 2557: 2551: 2543: 2537: 2531: 2525: 2519: 2513: 2507: 2500: 2498: 2487: 2486: 2484: 2483: 2482: 2481: 2471: 2470: 2469: 2459: 2458: 2457: 2447: 2446: 2445: 2440: 2435: 2430: 2420: 2419: 2418: 2413: 2403: 2402: 2401: 2390: 2388: 2377: 2376: 2368: 2366: 2365: 2358: 2351: 2343: 2337: 2336: 2331: 2321: 2311: 2301: 2289: 2288:External links 2286: 2283: 2282: 2258: 2233: 2208: 2196: 2184: 2156: 2114: 2113: 2111: 2108: 2107: 2106: 2098: 2095: 2094: 2093: 2086: 2083: 2082: 2081: 2076: 2071: 2066: 2064:POWER7/POWER7+ 2061: 2059:POWER6/POWER6+ 2056: 2051: 2046: 2041: 2036: 2031: 2024: 2021: 2020: 2019: 2014: 2009: 2004: 1999: 1994: 1989: 1984: 1979: 1974: 1969: 1964: 1957: 1954: 1949: 1946: 1787: 1108: 794: 779:to remove the 772:vector<> 767: 764: 741: 738: 729: 726: 644: 641: 536: 533: 439:floating point 430: 429: 427: 426: 419: 412: 404: 401: 400: 390: 389: 388: 387: 382: 377: 372: 367: 362: 357: 352: 347: 339: 338: 334: 333: 332: 331: 324: 319: 314: 309: 299: 298: 294: 293: 292: 291: 284: 277: 267: 266: 262: 261: 260: 259: 249: 248: 247: 246: 245: 244: 239: 234: 224: 223: 222: 219: 210: 203: 196: 191: 186: 175: 174: 173: 172: 167: 162: 157: 152: 147: 140: 133: 126: 119: 111:series (1990) 103: 102: 98: 97: 96: 95: 94: 93: 88: 79: 78: 77: 76: 71: 66: 61: 56: 51: 40: 39: 35: 34: 15: 13: 10: 9: 6: 4: 3: 2: 2821: 2810: 2807: 2805: 2802: 2800: 2797: 2796: 2794: 2780: 2774: 2767: 2764: 2761: 2758: 2755: 2752: 2751: 2749: 2747: 2743: 2737: 2734: 2731: 2728: 2727: 2725: 2723: 2719: 2712: 2709: 2706: 2703: 2700: 2697: 2694: 2691: 2688: 2685: 2682: 2679: 2676: 2673: 2670: 2667: 2666: 2664: 2662: 2659:Security and 2657: 2651: 2648: 2646: 2643: 2641: 2638: 2637: 2635: 2633: 2629: 2622: 2619: 2616: 2613: 2612: 2610: 2608: 2604: 2597: 2594: 2591: 2588: 2585: 2582: 2579: 2576: 2573: 2570: 2567: 2564: 2561: 2558: 2555: 2552: 2550: 2547: 2544: 2541: 2538: 2535: 2532: 2529: 2526: 2523: 2520: 2517: 2514: 2511: 2508: 2505: 2502: 2501: 2499: 2496: 2492: 2488: 2480: 2477: 2476: 2475: 2472: 2468: 2465: 2464: 2463: 2460: 2456: 2453: 2452: 2451: 2448: 2444: 2441: 2439: 2436: 2434: 2431: 2429: 2426: 2425: 2424: 2421: 2417: 2414: 2412: 2409: 2408: 2407: 2404: 2400: 2397: 2396: 2395: 2392: 2391: 2389: 2386: 2382: 2378: 2374: 2371: 2364: 2359: 2357: 2352: 2350: 2345: 2344: 2341: 2335: 2332: 2330:on 2009-11-28 2329: 2325: 2322: 2320:on 2012-02-08 2319: 2315: 2312: 2310:on 2012-02-04 2309: 2305: 2302: 2300:on 2012-09-10 2299: 2295: 2292: 2291: 2287: 2272: 2268: 2267:"FAQ, Helios" 2262: 2259: 2247: 2243: 2237: 2234: 2222: 2218: 2212: 2209: 2205: 2200: 2197: 2193: 2188: 2185: 2180: 2174: 2166: 2160: 2157: 2152: 2146: 2128: 2122: 2120: 2116: 2109: 2104: 2103: 2102: 2096: 2092: 2089: 2088: 2084: 2080: 2077: 2075: 2072: 2070: 2067: 2065: 2062: 2060: 2057: 2055: 2054:PowerXCell 8i 2052: 2050: 2047: 2045: 2042: 2040: 2039:PowerPC 970MP 2037: 2035: 2034:PowerPC 970FX 2032: 2030: 2027: 2026: 2022: 2018: 2015: 2013: 2010: 2008: 2005: 2003: 2000: 1998: 1997:MPC8640/8640D 1995: 1993: 1992:MPC8641/8641D 1990: 1988: 1985: 1983: 1980: 1978: 1975: 1973: 1970: 1968: 1965: 1963: 1960: 1959: 1955: 1953: 1947: 1785: 1106: 1104: 792: 788: 777:#undef vector 765: 763: 761: 756: 753: 751: 746: 739: 737: 735: 727: 725: 723: 719: 714: 712: 711:PlayStation 3 708: 703: 701: 697: 692: 690: 686: 682: 678: 673: 671: 667: 663: 659: 655: 651: 642: 640: 633: 620: 616: 612: 608: 604: 603:IBM VisualAge 600: 595: 593: 588: 586: 582: 577: 573: 569: 565: 561: 556: 554: 550: 546: 542: 534: 532: 530: 526: 522: 517: 513: 511: 507: 504:by Apple and 503: 499: 495: 491: 487: 483: 479: 475: 471: 467: 463: 459: 455: 451: 447: 444: 440: 436: 425: 420: 418: 413: 411: 406: 405: 403: 402: 399: 392: 391: 386: 383: 381: 378: 376: 373: 371: 368: 366: 363: 361: 358: 356: 353: 351: 348: 346: 343: 342: 341: 340: 337:Related links 335: 330: 329: 325: 323: 320: 318: 315: 313: 310: 308: 303: 302: 301: 300: 295: 290: 289: 285: 283: 282: 278: 276: 275: 271: 270: 269: 268: 263: 257: 255: 251: 250: 243: 240: 238: 235: 233: 232: 228: 227: 225: 220: 217: 216: 214: 211: 209: 208: 204: 202: 201: 197: 195: 192: 190: 187: 185: 184: 180: 179: 177: 176: 171: 168: 166: 163: 161: 158: 156: 153: 151: 148: 146: 145: 141: 139: 138: 134: 132: 131: 127: 125: 124: 120: 118: 117: 113: 112: 110: 107: 106: 105: 104: 99: 92: 89: 87: 84: 83: 81: 80: 75: 72: 70: 67: 65: 62: 60: 57: 55: 52: 50: 47: 46: 44: 43: 42: 41: 36: 33:architectures 32: 28: 24: 20: 2778: 2661:cryptography 2548: 2466: 2274:. Retrieved 2270: 2261: 2250:. Retrieved 2236: 2225:. Retrieved 2211: 2199: 2194:IBM Research 2187: 2159: 2134:. Retrieved 2100: 1977:MPC7445/7455 1951: 1783: 1091: 789: 769: 762:processors. 757: 754: 743: 731: 724:processors. 715: 704: 698:part of the 695: 693: 689:PowerPC 7400 674: 646: 596: 589: 557: 538: 518: 514: 509: 505: 501: 466:AIM alliance 441:and integer 434: 433: 397: 384: 350:AIM alliance 326: 286: 279: 272: 265:IBM/Nintendo 252: 229: 205: 198: 181: 142: 135: 128: 121: 114: 2645:MIPS16e ASE 2029:PowerPC 970 2017:B4420/B4860 2007:T2081/T2080 685:PowerPC 970 2793:Categories 2373:extensions 2276:2021-07-09 2252:2016-12-24 2227:2017-05-02 2136:2024-08-09 2110:References 1909:uint64x2_p 1897:uint64x2_p 1885:uint64x2_p 1846:uint64x2_p 1834:uint64x2_p 1822:uint64x2_p 1810:uint64x2_p 1665:uint32x4_p 1629:uint32x4_p 1590:uint32x4_p 1479:uint8x16_p 1464:uint32x4_p 1452:uint32x4_p 1440:uint32x4_p 1344:uint32x4_p 1308:uint32x4_p 1197:uint8x16_p 1182:uint32x4_p 1170:uint32x4_p 1158:uint32x4_p 1146:uint32x4_p 1128:uint8x16_p 1054:uint32x4_p 1018:uint8x16_p 988:uint8x16_p 958:uint8x16_p 916:uint32x4_p 832:uint32x4_p 814:uint8x16_p 650:multimedia 607:intrinsics 494:PWRficient 460:(formerly 312:PWRficient 2462:Power ISA 2443:MIPS SIMD 2085:P.A. Semi 2049:Cell B.E. 654:QuickTime 498:trademark 490:P.A. Semi 365:Power.org 360:Blue Gene 31:Power ISA 2768:(AMD-Vi) 2246:Archived 2221:Archived 2173:cite web 2145:cite web 1801:unsigned 1798:__vector 1789:#include 1722:vec_perm 1698:vec_andc 1674:vec_subc 1377:vec_perm 1353:vec_addc 1140:unsigned 1137:__vector 1122:unsigned 1119:__vector 1110:#include 1099:subtract 1060:vec_perm 967:vec_lvsl 877:unsigned 826:unsigned 823:__vector 808:unsigned 805:__vector 796:#include 785:__vector 662:Mac OS X 462:Motorola 288:Espresso 281:Broadway 2669:PadLock 2584:AVX-512 2450:PA-RISC 2433:MIPS-3D 2079:Power10 2002:MPC8610 1987:MPC7448 1972:MPC7450 1967:MPC7410 1962:MPC7400 1924:vec_sub 1861:vec_add 1795:typedef 1755:vec_sub 1749:vec_sub 1410:vec_add 1404:vec_add 1134:typedef 1116:typedef 820:typedef 802:typedef 628:vec_add 601:(GCC), 525:PowerPC 470:PowerPC 435:AltiVec 385:AltiVec 242:RAD5500 231:RAD6000 215:(2010) 170:Power10 91:Qorivva 27:PowerPC 2762:(2006) 2756:(2005) 2732:(2013) 2713:(2021) 2707:(2015) 2701:(2015) 2695:(2013) 2689:(2012) 2687:RDRAND 2683:(2010) 2675:AES-NI 2671:(2003) 2623:(2014) 2598:(2023) 2592:(2022) 2586:(2015) 2580:(2013) 2568:(2009) 2562:(2009) 2556:(2008) 2549:(2007) 2542:(2006) 2536:(2006) 2530:(2004) 2524:(2001) 2518:(1999) 2512:(1998) 2510:3DNow! 2506:(1996) 2271:Helios 2074:POWER9 2069:POWER8 1921:return 1858:return 1746:return 1401:return 1084:#endif 1027:vec_ld 997:vec_ld 934:vec_xl 781:vector 766:Issues 760:POWER9 750:POWER7 728:VMX128 720:based 681:POWER6 658:iTunes 632:opcode 581:x86-64 572:vector 545:32-bit 529:opcode 486:POWER6 456:, and 258:(1996) 256:series 237:RAD750 165:POWER9 160:POWER8 155:POWER7 150:POWER6 144:POWER5 137:POWER4 130:POWER3 123:POWER2 116:POWER1 29:, and 2760:AMD-V 2681:CLMUL 2640:Thumb 2596:AVX10 2534:SSSE3 2474:SPARC 2394:Alpha 2130:(PDF) 2044:Xenon 1906:const 1894:const 1888:sub64 1843:const 1831:const 1825:add64 1740:bmask 1704:amask 1626:const 1593:amask 1587:const 1482:bmask 1476:const 1461:const 1449:const 1443:sub64 1395:cmask 1305:const 1200:cmask 1194:const 1179:const 1167:const 1161:add64 1015:const 985:const 955:const 952:#else 734:Xenon 722:QorIQ 718:e6500 585:IA-32 568:pixel 549:cache 450:Apple 322:Xenon 306:Titan 297:Other 274:Gekko 109:Power 86:QorIQ 74:e6500 69:e5500 23:POWER 2766:VT-d 2754:VT-x 2578:AVX2 2560:F16C 2546:SSE5 2540:SSE4 2528:SSE3 2522:SSE2 2491:SIMD 2428:MDMX 2423:MIPS 2411:NEON 2385:RISC 2381:SIMD 2179:link 2151:link 2091:PA6T 1807:long 1804:long 1767:vec2 1761:vec1 1734:zero 1686:vec2 1680:vec1 1632:zero 1422:vec2 1416:vec1 1389:zero 1365:vec2 1359:vec1 1311:zero 1125:char 1097:and 1078:perm 1072:high 1039:vals 1021:high 1009:vals 979:vals 961:perm 946:vals 883:vals 865:argv 859:char 853:argc 844:main 811:char 707:Cell 705:The 613:and 576:RISC 560:SSE2 484:and 443:SIMD 380:CHRP 375:PReP 370:PAPR 355:RISC 328:X704 317:Cell 254:RS64 200:74xx 64:e600 59:e500 54:e300 49:e200 2736:ASF 2730:TSX 2711:TDX 2705:SGX 2699:MPX 2693:SHA 2650:RVC 2621:ADX 2615:BMI 2590:AMX 2572:FMA 2566:XOP 2554:AVX 2516:SSE 2504:MMX 2495:x86 2479:VIS 2467:VMX 2455:MAX 2438:MXU 2416:SVE 2406:ARM 2399:MVI 2023:IBM 1816:... 1152:... 1143:int 1095:add 1066:low 1045:vec 991:low 928:vec 919:vec 880:int 850:int 841:int 838:... 829:int 615:C++ 564:RGB 541:SSE 506:VMX 492:'s 480:'s 478:IBM 454:IBM 221:A2O 218:A2I 207:970 194:7xx 189:4xx 183:6xx 101:IBM 2795:: 2269:. 2244:. 2175:}} 2171:{{ 2147:}} 2143:{{ 2118:^ 1939:); 1876:); 1776:); 1773:bw 1770:), 1743:); 1728:bw 1716:bw 1713:); 1710:bw 1692:bw 1689:); 1668:bw 1662:}; 1623:}; 1584:}; 1581:16 1575:16 1569:16 1563:16 1557:15 1551:14 1545:13 1539:12 1533:16 1527:16 1521:16 1515:16 1431:); 1428:cy 1425:), 1398:); 1383:cy 1371:cy 1368:); 1347:cy 1341:}; 1302:}; 1299:16 1293:16 1287:16 1281:16 1275:15 1269:14 1263:13 1257:12 1251:16 1245:16 1239:16 1233:16 1081:); 1042:); 1033:15 1012:); 982:); 949:); 913:}; 691:. 656:, 587:. 482:G5 476:, 474:G4 452:, 396:, 213:A2 25:, 2781:. 2497:) 2493:( 2387:) 2383:( 2362:e 2355:t 2348:v 2279:. 2255:. 2230:. 2181:) 2153:) 2139:. 1942:} 1936:b 1933:, 1930:a 1927:( 1918:{ 1915:) 1912:b 1903:, 1900:a 1891:( 1879:} 1873:b 1870:, 1867:a 1864:( 1855:{ 1852:) 1849:b 1840:, 1837:a 1828:( 1813:; 1779:} 1764:, 1758:( 1752:( 1737:, 1731:, 1725:( 1719:= 1707:, 1701:( 1695:= 1683:, 1677:( 1671:= 1659:0 1656:, 1653:0 1650:, 1647:0 1644:, 1641:0 1638:{ 1635:= 1620:1 1617:, 1614:1 1611:, 1608:1 1605:, 1602:1 1599:{ 1596:= 1578:, 1572:, 1566:, 1560:, 1554:, 1548:, 1542:, 1536:, 1530:, 1524:, 1518:, 1512:, 1509:7 1506:, 1503:6 1500:, 1497:5 1494:, 1491:4 1488:{ 1485:= 1473:{ 1470:) 1467:b 1458:, 1455:a 1446:( 1434:} 1419:, 1413:( 1407:( 1392:, 1386:, 1380:( 1374:= 1362:, 1356:( 1350:= 1338:0 1335:, 1332:0 1329:, 1326:0 1323:, 1320:0 1317:{ 1314:= 1296:, 1290:, 1284:, 1278:, 1272:, 1266:, 1260:, 1254:, 1248:, 1242:, 1236:, 1230:, 1227:7 1224:, 1221:6 1218:, 1215:5 1212:, 1209:4 1206:{ 1203:= 1191:{ 1188:) 1185:b 1176:, 1173:a 1164:( 1149:; 1131:; 1087:} 1075:, 1069:, 1063:( 1057:) 1051:( 1048:= 1036:, 1030:( 1024:= 1006:, 1003:0 1000:( 994:= 976:, 973:0 970:( 964:= 943:, 940:0 937:( 931:= 922:; 910:4 907:, 904:3 901:, 898:2 895:, 892:1 889:{ 886:= 871:{ 868:) 862:* 856:, 847:( 835:; 817:; 622:" 611:C 566:" 508:( 423:e 416:t 409:v

Index

POWER
PowerPC
Power ISA
e200
e300
e500
e600
e5500
e6500
QorIQ
Qorivva
Power
POWER1
POWER2
POWER3
POWER4
POWER5
POWER6
POWER7
POWER8
POWER9
Power10
6xx
4xx
7xx
74xx
970
A2
RAD6000
RAD750

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.