Vectorizing compilers: How do they compare?

There are competing compilers on the market which also refer to themselves as vectorizing compilers. The most competent of these is Intel's own compiler, Intel C/C++ 5.0. This page compares the vectorizing capability of the Intel compiler versus Codeplay's VectorC 1.2.

Since Intel's compiler does not vectorize for AMD CPUs, our examples on this page are targetted at the Intel Pentium 4.

Test source
Intel C/C++ 5.0
VectorC 1.2 Professional
Vectorized?
Compiled ASM
Vectorized?
Compiled ASM
Simple
source
Yes
Yes
Medium
source
No
Yes
Complex
source
No
Yes

This test indicates that the Intel C/C++ 5.0 compiler does vectorize for simple functions. However these are not likely to represent real world code found in your media applications. VectorC, however, was designed to vectorize real world media processing code found in applications today and this is demonstrated by these results.

Please note, you can modify this source and test it yourself with the VectorC demo

The command lines used to compile these tests were as follows.

  • VectorC {PC} 1.2.2 Professional Edition:
    vectorc /target p4 /unrollfactor 4 demo.c
  • Intel C/C++ 5.0:
    icl /c /O3 /G7 /QxiMKW

Intel and Pentium are registered trademarks of Intel Corporation.