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
Link Copied
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
For more complete information about compiler optimizations, see our Optimization Notice.