Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.
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



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
New Contributor I

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;,5239