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:
The compiler optimizes intrinsic instruction scheduling so that executables run faster.
Intrinsics enable you to use the syntax of C function calls and C variables instead of assembly language or hardware registers.
Intrinsics provide access to instructions that cannot be generated using the standard constructs of the C and C++ languages.
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:
Intel® Itanium® Processor
Pentium® III Processor
Pentium® II Processor
Pentium® with MMX™ Technology
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 |