Intel® C++ Compiler 16.0 User and Reference Guide
The prototypes for Intel® Advanced Vector Extensions 512 (Intel® AVX-512) intrinsics are located in the zmmintrin.h header file. For purposes of including a header in your code, use immintrin.h .
Intrinsic Name |
Operation |
Corresponding |
---|---|---|
_mm512_i32gather_epi32, _mm512_mask_i32gather_epi32 |
Gathers int32 from memory using 32-bit indices. |
VPGATHERDD |
_mm512_i32gather_epi64, _mm512_mask_i32gather_epi64 |
Gathers int64 from memory using 32-bit indices. |
VPGATHERDQ |
_mm512_i64gather_epi32, _mm512_mask_i64gather_epi32 |
Gathers int32 from memory using 64-bit indices. |
VPGATHERQD |
_mm512_i64gather_epi64, _mm512_mask_i64gather_epi64 |
Gathers int64 from memory using 64-bit indices. |
VPGATHERQQ |
_mm512_i32scatter_epi32, _mm512_mask_i32scatter_epi32 |
Scatters int32 into memory using 32-bit indices. |
VPSCATTERDD |
_mm512_i32scatter_epi64, _mm512_mask_i32scatter_epi64 |
Scatters int64 into memory using 32-bit indices. |
VPSCATTERDQ |
_mm512_i64scatter_epi32, _mm512_mask_i64scatter_epi32 |
Scatters int32 into memory using 64-bit indices. |
VPSCATTERQD |
_mm512_i64scatter_epi64, _mm512_mask_i64scatter_epi64 |
Scatters int64 into memory using 64-bit indices. |
VPSCATTERQQ |
_mm512_i32gather_epi32
extern __m512i __cdecl _mm512_i32gather_epi32(__m512i vindex, void const* base_addr, _MM_UPCONV_EPI32_ENUM upconv, int scale, int hint);
Gather int32 from memory using 32-bit indices. 32-bit elements are loaded from addresses starting at base_addr and offset by each 32-bit element in vindex (each index is scaled by the factor in scale). Gathered elements are merged into destination.
_mm512_mask_i32gather_epi32
extern __m512i __cdecl _mm512_mask_i32gather_epi32(__m512i src, __mmask16 k, __m512i vindex, void const* base_addr, _MM_UPCONV_EPI32_ENUM upconv, int scale, int hint);
Gather int32 from memory using 32-bit indices. 32-bit elements are loaded from addresses starting at base_addr and offset by each 32-bit element in vindex (each index is scaled by the factor in scale). Gathered elements are merged into destination using writemask k (elements are copied from src when the corresponding mask bit is not set).
_mm512_i32gather_epi64
extern __m512i __cdecl _mm512_i32gather_epi64(__m512i vindex, void const* base_addr, _MM_UPCONV_EPI64_ENUM upconv, int scale, int hint);
Gathers int64 from memory using 32-bit indices. 64-bit elements are loaded from addresses starting at base_addr and offset by each 32-bit element in vindex (each index is scaled by the factor in scale). Gathered elements are merged into destination.
_mm512_mask_i32gather_epi64
extern __m512i __cdecl _mm512_mask_i32gather_epi64(__m512i vindex, __mmask16k, void const* base_addr, _MM_UPCONV_EPI64_ENUM upconv, int scale, int hint);
Gathers int64 from memory using 32-bit indices. 64-bit elements are loaded from addresses starting at base_addr and offset by each 32-bit element in vindex (each index is scaled by the factor in scale). Gathered elements are merged into destination using writemask k (elements are copied from src when the corresponding mask bit is not set).
_mm512_i64gather_epi32
extern __m512i __cdecl _mm512_i64gather_epi32(__m512i vindex, void const* base_addr, _MM_UPCONV_EPI32_ENUM upconv, int scale, int hint);
Gather int32 from memory using 64-bit indices. 32-bit elements are loaded from addresses starting at base_addr and offset by each 64-bit element in vindex (each index is scaled by the factor in scale). Gathered elements are merged into destination.
_mm512_mask_i64gather_epi32
extern __m512i __cdecl _mm512_mask_i64gather_epi32(__m512i src, __mmask8 k, __m512i vindex, void const* base_addr, _MM_UPCONV_EPI32_ENUM upconv, int scale, int hint);
Gather int32 from memory using 64-bit indices. 32-bit elements are loaded from addresses starting at base_addr and offset by each 64-bit element in vindex (each index is scaled by the factor in scale). Gathered elements are merged into destination using writemask k (elements are copied from src when the corresponding mask bit is not set).
_mm512_i64gather_epi64
extern __m512i __cdecl _mm512_i64gather_epi64(__m512i vindex, void const* base_addr, _MM_UPCONV_EPI64_ENUM upconv, int scale, int hint);
Gathers int64 from memory using 64-bit indices. 64-bit elements are loaded from addresses starting at base_addr and offset by each 64-bit element in vindex (each index is scaled by the factor in scale). Gathered elements are merged into destination.
_mm512_mask_i64gather_epi64
extern __m512i __cdecl _mm512_mask_i64gather_epi64(__m512i src, __mmask8 k, __m512i vindex, void const* base_addr, _MM_UPCONV_EPI64_ENUM upconv, int scale, int hint);
Gathers int64 from memory using 64-bit indices. 64-bit elements are loaded from addresses starting at base_addr and offset by each 64-bit element in vindex (each index is scaled by the factor in scale). Gathered elements are merged into destination using writemask k (elements are copied from src when the corresponding mask bit is not set).
_mm512_i32scatter_epi32
extern void __cdecl _mm512_i32scatter_epi32(void* base_addr, __m512i a, __m512i vindex, _MM_DOWNCONV_EPI32_ENUM downconv, int scale, int hint);
Scatters int32 from a into memory using 32-bit indices. 32-bit elements are stored at addresses starting at base_addr and offset by each 32-bit element in vindex (each index is scaled by the factor in scale).
_mm512_mask_i32scatter_epi32
extern void __cdecl _mm512_mask_i32scatter_epi32(void* base_addr, __mmask16 k, __m512i a, __m512i vindex, _MM_DOWNCONV_EPI32_ENUM downconv, int scale, int hint);
Scatters int32 from a into memory using 32-bit indices. 32-bit elements are stored at addresses starting at base_addr and offset by each 32-bit element in vindex (each index is scaled by the factor in scale) subject to mask k (elements are not stored when the corresponding mask bit is not set).
_mm512_i32scatter_epi64
extern void __cdecl _mm512_i32scatter_epi64(void* base_addr, __m512i a, __m512i vindex, _MM_DOWNCONV_EPI64_ENUM downconv, int scale, int hint);
Scatters int64 from a into memory using 32-bit indices. 64-bit elements are stored at addresses starting at base_addr and offset by each 32-bit element in vindex (each index is scaled by the factor in scale).
_mm512_mask_i32scatter_epi64
extern void __cdecl _mm512_mask_i32scatter_epi64(void* base_addr, __mmask8 k, __m512i a, __m512i vindex, _MM_DOWNCONV_EPI64_ENUM downconv, int scale, int hint);
Scatters int64 from a into memory using 32-bit indices. 64-bit elements are stored at addresses starting at base_addr and offset by each 32-bit element in vindex (each index is scaled by the factor in scale) subject to mask k (elements are not stored when the corresponding mask bit is not set).
_mm512_i64scatter_epi32
extern void __cdecl _mm512_i64scatter_epi32(void* base_addr, __m512i a, __m512i vindex, _MM_DOWNCONV_EPI32_ENUM downconv, int scale, int hint);
Scatters int32 from a into memory using 64-bit indices. 32-bit elements are stored at addresses starting at base_addr and offset by each 64-bit element in vindex (each index is scaled by the factor in scale).
_mm512_mask_i64scatter_epi32
extern void __cdecl _mm512_mask_i64scatter_epi32(void* base_addr, __mmask8 k, __m512i a, __m512i vindex, _MM_DOWNCONV_EPI32_ENUM downconv, int scale, int hint);
Scatters int32 from a into memory using 64-bit indices. 32-bit elements are stored at addresses starting at base_addr and offset by each 64-bit element in vindex (each index is scaled by the factor in scale) subject to mask k (elements are not stored when the corresponding mask bit is not set).
_mm512_i64scatter_epi64
extern void __cdecl _mm512_i64scatter_epi64(void* base_addr, __m512i a, __m512i vindex, _MM_DOWNCONV_EPI64_ENUM downconv, int scale, int hint);
Scatters int64 from a into memory using 64-bit indices. 64-bit elements are stored at addresses starting at base_addr and offset by each 64-bit element in vindex (each index is scaled by the factor in scale).
_mm512_mask_i64scatter_epi64
extern void __cdecl _mm512_mask_i64scatter_epi64(void* base_addr, __mmask8 k, __m512i a, __m512i vindex, _MM_DOWNCONV_EPI64_ENUM downconv, int scale, int hint);
Scatters int64 from a into memory using 64-bit indices. 64-bit elements are stored at addresses starting at base_addr and offset by each 64-bit element in vindex (each index is scaled by the factor in scale) subject to mask k (elements are not stored when the corresponding mask bit is not set).