A Guide to Auto-vectorization with Intel® C++ Compilers


The goal of this Guide is to provide guidelines for enabling compiler auto-vectorization with the Intel® C++ Compilers.  This document  is aimed at C/C++ programmers working on systems based on Intel® processors or compatible, non-Intel processors that support SIMD instructions such as Intel® Streaming SIMD Extensions (Intel® SSE).  This includes Intel 64 and most IA-32 systems, but excludes systems based on Intel® Itanium® processors.  The examples presented refer to Intel SSE, but many of the principles apply also to other SIMD instruction sets.  While the examples used are specific to C++ programs, much of the concepts discussed are equally applicable to Fortran programs.

Click here to continue reading the article.

Click here to download the sample code.


For more complete information about compiler optimizations, see our Optimization Notice.


mark-sabahi (Intel)'s picture

Two other related articles are:

Getting started with Intel® Cilk™ Plus SIMD Vectorization and Elemental Functions:

Getting started with Intel® Cilk™ Plus Array Notations:

woshiwuxin's picture

This is the article that I want!
Vectorization is very important. I witnessed the performance boost in my app. Stay tuned!

mark-sabahi (Intel)'s picture

The sources for the examples are provided in the article. Did you try to copy the source from the article and compile?

Christian Andrich's picture

This guide seems to be incomplete without the files mentioned in the guide.
Can anyone please provide the mentioned files?

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.