Intrinsics are assembly-coded functions that allow you to use C++ function calls and variables in place of assembly instructions.
Intrinsics can be used only on the host.
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.
To use intrinsic-based code, do the following:
Specify compiler option march so that the compiler recognizes the processor-specific or architecture-specific intrinsic.
Include the immintrin.h header file that comes with the intrinsic declarations.
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 (svml) intrinsics are documented in this reference.
Many routines in the svml library are more optimized for Intel® microprocessors than for non-Intel microprocessors.
The Intel® C++ Compiler supports Microsoft Visual Studio* intrinsics (for x86 and x64 architectures). For more information on 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 the Product Specification, Processors page. The Processor Spec Finder tool links directly to all processor documentation and the data sheets list the features, including intrinsics, supported by each processor.
As an additional reference, Intel provides an interactive Intrinsics Guide for Intel intrinsic instructions. You can find it at https://software.intel.com/sites/landingpage/IntrinsicsGuide/.