Introduction to Intel® C++ Compiler Intrinsics

Several Intel® processors enable development of optimized multimedia applications through extensions to previously implemented instructions. Applications with media-rich bit streams can significantly improve performance by using single instruction, multiple data (SIMD) instructions to process data elements in parallel.

The most direct way to use these instructions is to inline the assembly language instructions into your source code. However, this process can be time-consuming and tedious. In addition, your compiler may not support inline assembly language programming. The Intel® C++ Compiler enables easy implementation of these instructions through the use of API extension sets built into the compiler. These extension sets are referred to as intrinsic functions or intrinsics.

The Intel C++ Compiler supports both intrinsics that work on specific architectures and intrinsics that work across all IA-32 and Itanium®-based platforms.

Intrinsics provide you with several benefits:

Availability of Intrinsics on Intel® Processors

The following table shows which intrinsics are supported on each processor listed in the left column.

On processors that do not support Streaming SIMD Extensions 2 (SSE2) instructions but do support MMX Technology, you can use the sse2mmx.h emulation pack to enable support for SSE2 instructions. You can use the sse2mmx.h header file for the following processors:

Processors: MMX(TM) Technology Instructions Streaming SIMD Extensions Streaming SIMD Extensions 2 Streaming SIMD Extensions 3 Itanium Processor Instructions
Itanium® Processor Supported

Supported

Not Supported

 

Supported

Pentium® 4 Processor

Supported

Supported

Supported

Supported

Not Supported

Pentium® III Processor

Supported

Supported

Not Supported

 

Not Supported

Pentium® II Processor

Supported

Not Supported

Not Supported

 

Not Supported

Pentium® with MMX Technology

Supported

Not Supported

Not Supported

 

Not Supported

Pentium® Pro Processor

Not Supported

Not Supported

Not Supported

 

Not Supported

Pentium® Processor

Not Supported

Not Supported

Not Supported

 

Not Supported