Community
cancel
Showing results for 
Search instead for 
Did you mean: 
104 Views

gcc not finding a _mm256_storeu2_m128i

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
104 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