Developer Guide and Reference

Contents

Intrinsics

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.
When developing and debugging your program, compile your sources with
‑D__INTEL_COMPILER_USE_INTRINSIC_PROTOTYPES
to take advantage of improved compile-time checking of the intrinsics functions. When done be sure to remove this option as it significantly increases compile time.

Intrinsics for Intel® C++ Compilers

The Intel® C++ Compiler enables easy implementation of assembly instructions through the use of intrinsics. Intrinsics are provided for the following instructions:
  • Intel® Advanced Vector Extensions 512 (Intel® AVX-512) instructions
  • Intel® Advanced Vector Extensions 2 (Intel® AVX2) instructions
  • Intel® Advanced Vector Extensions (Intel® AVX) instructions
  • Intel® Streaming SIMD Extensions 4 (Intel® SSE4) instructions
  • Intel® Supplemental Streaming SIMD Extensions 3 (SSSE3) instructions
  • Intel® Streaming SIMD Extensions 3 (Intel® SSE3) instructions
  • Intel® Streaming SIMD Extensions 2 (Intel® SSE2) instructions
  • Intel® Streaming SIMD Extensions (Intel® SSE) instructions
  • MMX™ Technology instructions
  • Carry-less Multiplication instruction and Advanced Encryption Standard Extensions instructions
  • Half-float conversion 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.

Availability of Intrinsics on Intel Processors

Not all Intel® processors support all intrinsics. For information on which intrinsics are supported on Intel® processors, visit . The Processor Spec Finder tool links directly to all processor documentation and the data sheets list the features, including intrinsics, supported by each processor.

The Intel® Intrinsics Guide

As an additional reference, Intel provides an interactive Intrinsics Guide for Intel intrinsic instructions. You can find it at .