gcc标题错误:' _mm256_set_m128d'在这方面没有申明

时间:2017-04-26 16:33:30

标签: gcc sse simd intrinsics avx

我正在尝试使用gcc编译使用icpc和mkl数学库编译的大代码。

以下是需要AVX的代码。

Resources.Theme theme

我在编译时启用了-mavx标志,如某些帖子所示,以启用高级矢量化。 _mm256_set_m128d未在immintrin.h中定义,也未在gcc包含文件(版本5.3)中定义。

我发现它可用于intel头文件 - 在intel编译器提供的immintrin.h头文件中。

有关如何解决此问题的任何建议? 谢谢!

1 个答案:

答案 0 :(得分:1)

您可以像这样定义自己的宏:

#define _mm256_set_m128d(vh, vl) \
        _mm256_insertf128_pd(_mm256_castpd128_pd256(vl), (vh), 1)

将其括在合适的#ifdef / #endif内,以便它仅为gcc定义。