This page contains supplemental material for the following book (since Intel Press is no longer in operation, I am making the vectorization book available in Kindle Edition on Amazon).
The Software Vectorization Handbook. Applying Multimedia Extensions for Maximum Performance. ISBN 0-9743649-2-4, Intel Press, June, 2004.
page 25: replace "a2-b3" with "a2-b2" in destination (courtesy Naftali Schwartz).
page 27: replace "stores the 16-bit sums" with "stores the 32-bit sums".
page 35: replace the immediate 230 with 245 in the shufps that is equal to movshdup.
page 38: change theoretical peak into 12GFLOPS for single- and 6GFLOPS for double-precision FP computations.
page 94: add "T" to two occurrences of "pcmpeq" in expansion table (viz. "pcmpeqT") and "d" to "pcmpeq" in example at the bottom (viz. "pcmpeqd").
page 94: replace "constants -1 and -17" with "constants -1 and 17" (courtesy Naftali Schwartz).
page 112: replace "pcmpneb,w,d" entries in Table 5.8 with "emulate with pcmpeqb,w,d" (no direct support of "ne" instructions).
page 113: remove pcmpneb,w row completely from table (no direct support of "ne" instructions).
page 127: remove ")" from caption of Figure 6.2.
page 190: remove "is" from "vector implementation is shown above".
page 209: remove "LOOP" from "BLOCK LOOP WAS VECTORIZED" in Table 9.5.
page 215: add brackets "(" ")" around switches "-O3 -Qipo -Qprof_use -QxP".
* By Aart J.C. Bik, (C) 2004.
* without any fee for education, research, and non-profit purposes.
// This example was used at page 195 to demonstrate compiler diagnostics.
// Make sure comments match the line numbers in the file.