The Intel Intrinsic headers provide optimized functions that take advantage of the processor’s specialized features. Each intrinsic family has its own header. However, the <immintrin.h>
header includes all other supported intrinsic headers.
- Intel Intrinsics (including RDRND & FSGSBASE) – <immintrin.h>
- I32 Intrinsics – <ia32intrin.h>
- 3DNow! – <mm3dnow.h>
- MMX – <mmintrin.h>
- SSE – <xmmintrin.h>
- SSE2 – <emmintrin.h>
- SSE3 – <pmmintrin.h>
- SSSE3 – <tmmintrin.h>
- SSE4.1 or SSE4.2 – <smmintrin.h>
- ADX – <adxintrin.h>
- AES or PCLMUL – <wmmintrin.h>
- AVX – <avxintrin.h>
- AVX2 – <avx2intrin.h>
- AVX512BW – <avx512bwintrin.h>
- AVX512ER – <avx512erintrin.h>
- AVX512F – <avx512fintrin.h>
- AVX512PF – <avx512pfintrin.h>
- AVX512VL – <avx512vlintrin.h>
- AVX512BW or AVX512VL – <avx512vlbwintrin.h>
- BMI – <bmiintrin.h>
- BMI2 – <bmi2intrin.h>
- F16C – <f16cintrin.h>
- FMA – <fmaintrin.h>
- FMA4 – <fma4intrin.h>
- FXSR – <fxsrintrin.h>
- LWP – <lwpintrin.h>
- LZCNT – <lzcntintrin.h>
- POPCNT – <popcntintrin.h>
- PREFETCHW – <prfchwintrin.h>
- RDSEED – <rdseedintrin.h>
- RTM – <rtmintrin.h>
- SHA – <shaintrin.h>
- XOP – <xopintrin.h>
- XSAVE – <xsaveintrin.h>
- XSAVEOPT – <xsaveoptintrin.h>
- XTEST – <xtestintrin.h>
NOTE: Some intrinsics inside adxintrin.h are available only if ADX defined, while others are available if ADX undefined
Data Format Notations
- ep – extended packed
- p – packed
- s – scalar
Datatype Notations
- s – single-precision floating point
- d – double-precision floating point
- i128 – signed 128-bit integer
- i64 – signed 64-bit integer
- u64 – unsigned 64-bit integer
- i32 – signed 32-bit integer
- u32 – unsigned 32-bit integer
- i16 – signed 16-bit integer
- u16 – unsigned 16-bit integer
- i8 – signed 8-bit integer
- u8 – unsigned 8-bit integer