SIMD Vectorization and SIMD-enabled Functions are a part of Intel® Cilk™ Plus feature supported by the Intel® C++ Compiler that provide ways to vectorize loops and user defined functions. Vectorization is the key to improving your applications' performance through taking advantage of the processor's Single Instruction Multiple Data (SIMD) capability to operate on multiple array (or vector) elements at a time. The Intel® Compilers provide unique capabilities to enable vectorization. The programmer may be able to help the compiler to vectorize more loops through a simple programming style and by the use of compiler features designed to assist vectorization. This article discusses how to use the SIMD-enabled functions, and the SIMD directive (#pragma simd) from the Intel® Cilk™ Plus, to help the compiler to vectorize C/C++ code and improve performance.
Click here to continue reading the article.
Additional information about what sort of loops may be vectorized using the SIMD pragma/directive is available here.
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804