Intrinsics are assembly-coded functions that allow you to use C++ function calls and variables in place of assembly instructions.
Intrinsics are expanded inline eliminating function call overhead. Providing the same benefit as using inline assembly, intrinsics improve code readability, assist instruction scheduling, and help reduce debugging.
Intrinsics provide access to instructions that cannot be generated using the standard constructs of the C and C++ languages.
The Intel® C++ Compiler enables easy implementation of assembly instructions through the use of intrinsics. Intrinsics are provided for the following instructions:
The Short Vector Math Library intrinsics are documented in this reference. These intrinsics do not have any corresponding assembly instructions.
The Intel C++ Compiler provides IA-64 architecture-specific intrinsics and intrinsics that work across IA-32, Intel® 64, and IA-64 architectures. Most intrinsics map directly to a corresponding assembly instruction, some map to several assembly instructions.
The Intel C++ Compiler supports Microsoft* Visual Studio 2005 and Visual Studio 2008 intrinsics (for x86 and x64 architectures) to generate instructions on Intel processors based on IA-32 and Intel® 64 architectures. For more information on these Microsoft* intrinsics, visit http://msdn2.microsoft.com/en-us/library/26td21ds.aspx.
Not all Intel processors support all intrinsics. For information on which intrinsics are supported on Intel processors, visit http://processorfinder.intel.com.
The Processor Spec Finder tool links directly to all processor documentation and the data sheets list the features, including intrinsics, supported by each processor.