The vectorizer is a component of the Intel® compiler that automatically uses SIMD instructions in the MMX™, SSE, and SSE2 instruction sets. The vectorizer detects operations in the program that can be done in parallel, and then converts the sequential operations like one SIMD instruction that processes 2, 4, 8 or up to 16 elements in parallel, depending on the data type.
This section provides options description, guidelines, and examples for Intel® compiler vectorization implemented by IA-32 compiler only.
The section discusses the following topics, among others:
High-level discussion of compiler options used to control or influence vectorization
Vectorization Key Programming Guidelines
Loop parallelization and vectorization
Discussion and general guidelines on vectorization levels:
automatic vectorization
vectorization with user intervention
Examples demonstrating typical vectorization issues and resolutions
The compiler supports a variety of directives that can help the compiler to generate effective vector instructions. See Vectorization Support.
See The Software Vectorization Handbook. Applying Multimedia Extensions for Maximum Performance, A.J.C. Bik. Intel Press, June, 2004, for a detailed discussion of how to vectorize code using the Intel® compiler. Additionally, see the Related Publications topic in this document for other resources.