Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
For the latest information on Intel’s response to the Log4j/Log4Shell vulnerability, please see Intel-SA-00646

gcc not finding a _mm256_storeu2_m128i

rajathadripura_kumar
224 Views

Hi,

I am developing where i need to use the intrinsic function _mm256_storeu2_m128i. although i have included necessary header file and compilation flag gcc is not able to find the function. what might be the reason?

Thanks in advance

0 Kudos
1 Reply
Richard_Nutman
New Contributor I
224 Views

It's a macro provided in the Intel intrinsic headers;

#define _mm256_storeu2_m128(/* float* */ hiaddr, /* float* */ loaddr, \
                            /* __m256 */ a) \
    do { \
        __m256 _a = (a); /* reference a only once in macro body */ \
        _mm_storeu_ps((loaddr), _mm256_castps256_ps128(_a)); \
        _mm_storeu_ps((hiaddr), _mm256_extractf128_ps(_a, 0x1)); \
    } while (0)

 

You probably need Intel Compiler to get the header with these in, though I think Clang also has them, but not gcc for some reason.

The clue is the fact there is no throughput or latency listed for it in the Intel Iintrinsics Guide;

https://software.intel.com/sites/landingpage/IntrinsicsGuide/#techs=AVX&expand=5237,5239

 

Reply