Well, there are a few mistakes right off the bat:
- he is focused on floating point operations only. A single Altivec unit will work on a vector of 4 (single precision) floating point values at once. Notice that this is a perfectly appropriate use of the Computer Science term "vector". That is the definition.
- now on the integer side of things is where AltiVec really shines. It is capable of chopping the 128 bit registers that it takes data from and viewing each one as: 16 8bit values, 8 16bit values, or 4 32bit values. The combinations of what processes are available for this are truly astounding. For example multiplying 16 values tines 16 other values and then adding 16 other values can be accomplished with a single instruction (not counting the load and stores).
- He focuses on SSE2's abiltiy to work with 2 double precision values at the same time, but seems to ignore the fact that the G5's main floating point units can do this as well... since there are more than 2 of them. The only reason that Intel put in this feature was that the x86 instruction set is so starved for registers that it does make a difference to do this math in the extra registers available in the SSE2 extension (which is not subject to the design limitations on the x86).
- pretty much everyone agrees that "AltiVec is vector processing done right", and that Intel has been playing catchup.
- While MMX was out ahead of AltiVec, IBM has had a long history of doing vector processing in their chips. And vector processing has been around for a long time, it was one of the main features of the old Cray's.
- you could argue that the old Mac IIfx's twin DSP's were effectively a vector processor unit... but this is stretching things a bit. They did do the same job, but in a slightly different way.