Loop Parallelization and Vectorization

Combine the -parallel (Linux*) or /Qparallel (Windows*) and -x (Linux) or /Qx (Windows) options to instructs the compiler to attempt both automatic loop parallelization and automatic loop vectorization in the same compilation.

In most cases, the compiler will consider outermost loops for parallelization and innermost loops for vectorization. If deemed profitable, however, the compiler may even apply loop parallelization and vectorization to the same loop.

See Guidelines for Effective Auto-parallelization Usage and Vectorization Key Programming Guidelines.

In some rare cases successful loop parallelization (either automatically or by means of OpenMP* directives) may affect the messages reported by the compiler for a non-vectorizable loop in a non-intuitive way; for example, in the cases where -vec-report2 (Linux) or /Qvec-report2 (Windows) option indicating loops were not successfully vectorized.

See Vectorization Reports (IA-32).