The growing popularity of multimedia extensions has renewed the interest
in vectorizing compilers, which date back to the early days of
supercomputers (with a traditional focus on Fortran programs).
Although the target architectures of these early vectorizing compilers
differ substantially from modern microprocessors with multimedia
extensions, a lot of the vectorization methodology developed in the
past can be put to use in today's compilers that target multimedia
instruction sets that are based on the
Single-Instruction-Multiple-Data (SIMD) paradigm.
The
Intel® C++/Fortran compilers
are vectorizing compilers for Windows, Linux, and Mac OS
that automatically convert sequential code into a form that
exploits the Intel® MMX Technology,
Streaming SIMD Extensions (SSE, SSE2, SSE3, SSSE3, SSE4)
for IA-32 and Intel® 64 processors,
and the Intel® Wireless MMX Technology
for the Intel® Xscale® microarchitecture.
In March 2002, Aart Bik received the Intel Achievement Award
(highest company award) from Paul Otellini for making the Streaming
SIMD Extensions easy to use through automatic vectorization.
For more details on automatic vectorization for multimedia extensions (also called intra-register vectorization), see:
main(){int i=0;while(putchar(*("Xsjuufo!cz!Bbsu!Cjl"+i++)-'i'/'i')!=2+'i');putchar('\n'/(')'/')'));}
char *c="***\0* *\0* \0 * \0%s %s %s %s\n",i;main(){for(;i<4;i++)printf(c+16,c+4*(i%2),c+4*(i%2),c+((i)?8:0),c+((i)?12:0));}