The IntelŪ PentiumŪ 4 processor and other Intel processors have instructions to enable development of optimized multimedia applications. The instructions are implemented through extensions to previously implemented instructions. This technology uses the single instruction, multiple data (SIMD) technique. By processing data elements in parallel, applications with media-rich bit streams are able to significantly improve performance using SIMD instructions. The IntelŪ ItaniumŪ processor also supports these instructions.
The most direct way to use these instructions is to inline the assembly language instructions into your source code. However, this can be time-consuming and tedious, and assembly language inline programming is not supported on all compilers. Instead, Intel provides easy implementation through the use of API extension sets referred to as intrinsics.
Intrinsics are special coding extensions that allow using the syntax of C function calls and C variables instead of hardware registers. Using these intrinsics frees programmers from having to program in assembly language and manage registers. In addition, the compiler optimizes the instruction scheduling so that executables run faster.
In addition, the native intrinsics for the Itanium processor give programmers access to Itanium instructions that cannot be generated using the standard constructs of the C and C++ languages. The IntelŪ C++ Compiler also supports general purpose intrinsics that work across all IA-32 and Itanium-based platforms.
For more information on intrinsics, please refer to the following publications:
Intel Architecture Software Developer's Manual, Volume 2: Instruction Set Reference Manual, Intel Corporation, doc. number 243191
|Processors:||MMX(TM) Technology Intrinsics||Streaming SIMD Extensions||Streaming SIMD Extensions 2||Itanium Processor Instructions|
|Pentium 4 Processor||X||X||X||N/A|
|Pentium III Processor||X||X||N/A||N/A|
|Pentium II Processor||X||N/A||N/A||N/A|
|Pentium with MMX Technology||X||N/A||N/A||N/A|
|Pentium Pro Processor||N/A||N/A||N/A||N/A|