Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.
1121 Discussions

Where is _mm512_i32extgather_epi32 defined?

Henk-Jan_L_
Beginner
810 Views

I like to use _mm512_i32extgather_epi32.

The Intrinsics Guide states that I need to include "immintrin.h", but it is not in this file. It could have been a typo, thus I searched in other header files with intrinsics, but none came up.

This page (https://software.intel.com/en-us/node/523513) states that "his intrinsic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture)." However, the Intrinsics Guide states that it is AVX512F. I need this specific one because I need to: _MM_UPCONV_EPI32_UINT8

Question: where i can find this intrinsic?

Regards Henk.

0 Kudos
2 Replies
MGRAV
New Contributor I
810 Views

I am not sure if I answer your question.

However, "immintrin.h" normally include "zmmintrin.h" that contain the definition of _mm512_i32extgather_epi32.

0 Kudos
Henk-Jan_L_
Beginner
810 Views

Thank you for pointing that out.

Somehow, when you change from Visual C++ compiler to Intel C++ compiler, the default include paths for these definition files is not updated.

The zmmintrin.h that ships with Visual Studio (C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\zmmintrin.h) does not define the intrinsic (and defines several that are not mentioned in the Intrinsics Guide) I guess there are valid reasons the intrinsic is not included.

The zmmintrin.h that ships with ICC (C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018.0.124\windows\compiler\include\icc\zmmintrin.h) does indeed define the intrinsic.

0 Kudos
Reply