From d8e780934eb538ca969ba81bbf3099f971042c2b Mon Sep 17 00:00:00 2001 From: Bill Schmidt Date: Tue, 25 Jun 2019 10:36:41 -0500 Subject: [PATCH] Begin writing history. Signed-off-by: Bill Schmidt --- Intrinsics_Reference/ch_intro.xml | 64 +++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 3 deletions(-) diff --git a/Intrinsics_Reference/ch_intro.xml b/Intrinsics_Reference/ch_intro.xml index 68b439d..1f535d2 100644 --- a/Intrinsics_Reference/ch_intro.xml +++ b/Intrinsics_Reference/ch_intro.xml @@ -18,11 +18,69 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_intro"> - Introduction to Vector Programming on Power + Introduction to Vector Programming on POWER
A Brief History - filler + + The history of vector programming on POWER processors begins + with the AIM (Apple, IBM, Motorola) alliance in the 1990s. The + AIM partners developed the Power Vector Media Extension (VMX) to + accelerate multimedia applications, particularly image + processing. VMX is the name still used by IBM for this + instruction set. Freescale (formerly Motorola) used the + trademark "AltiVec," while Apple at one time called it "Velocity + Engine." While VMX remains the most official name, the term + AltiVec is still in common use today. Freescale's AltiVec + Technology Programming Interface Manual (the "AltiVec PIM") is + still available online for reference (see ). + + + The original VMX specification provided for thirty-two 128-bit + vector registers (VRs). Each register can be treated as + containing sixteen 8-bit character values, eight 16-bit short + integer values, four 32-bit integer values, or four 32-bit + single-precision floating-point values (the "VMX data types"). + Furthermore, the integer data types have signed, unsigned, and + boolean variants. An extensive set of arithmetic, logical, + comparison, conversion, memory access, and permute class + operations were specified to operate on these registers. + + + The AltiVec PIM documents intrinsic functions to be used by + programmers to access the VMX instruction set. Because similar + operations are provided for all the VMX data types, the PIM + provides for overloaded intrinsics that can operate on different + data types. However, such function overloading is not normally + acceptable in the C programming language, so compilers compliant + with the AltiVec PIM (such as gcc and + clang) were required to add special handling to + their parsers to permit this. The PIM suggested (but did not + mandate) the use of a header file, + <altivec.h>, for implementations that provide + AltiVec intrinsics. This is common practice for all compliant + compilers today. + + + The first chips incorporating the VMX instruction set were + introduced by Freescale in 1999, and used primarly in Apple + desktop computers. IBM's last desktop CPU (the PowerPC 970) + also included AltiVec support, and was used in the Apple + PowerMac G5. IBM initially omitted support for VMX from its + server-class computers, but added support for it in the POWER6 + server family. + + + Next talk about VSX introduced for P7. Changes in registers and + types. + +
+ Little-Endian Linux + + Yes, it caused a lot of problems. See chapter on this. + +
@@ -30,7 +88,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_intro"> filler
-
+
Useful Links filler