Single Instruction, Multiple Data (SIMD) technique
57 new instructions
Eight 64-bit wide MMX technology registers
Four new data types
Adds a multiply-and accumulate instruction - vital to signal processing, complex
analysis, 3D rendering, conformal mapping (the "warp" algorithm), and vector and
matrix maths.
Makes it possible to perform arithmetic on several integers at once (Single Instruction,
Multiple Data or SIMD), which can speed up some calculations by a factor of eight.
Can perform arithmetic operations using saturation. When an operation - addition, say -
produces a result either too big or too small to be represented by the number of bits
allocated, the result "maxes out" at the largest (smallest) number that can be
represented (analogous to "pinning the needle on an analogue meter). This is useful
for computer graphics, digital audio, numerical analysis, heat transfer, fluid dynamics,
and calculations involving system optimisation (eg. Simplex algorithm).
Implements a parallel data selection instruction that allows the programmer to mix data
from two sources under the control of a third. This instruction is useful for layered
graphics (for example, a desktop with overlapping windows and icons) and for removing
hidden lines from images.
Every one of the instructions will be emulated in software on existing machines.