当我尝试使用AVX功能时,Clang会产生错误

时间:2017-11-09 17:01:08

标签: c++ c clang

我在Windows 10上使用Clang第5版(最近安装)。当我编译以下

#define __AVX__
#define __AVX2__
#include <immintrin.h>

int main(void) {
    __m256i a, b, result;
    result = _mm256_add_epi64(a, b);
    return 0;
}

我收到以下错误:

 error: always_inline function '_mm256_add_epi64' requires target 
 feature 'avx2', but would be inlined into function 'main' that is 
 compiled without support for 'avx2'
    result = _mm256_add_epi64(a, b);
             ^

MSVC编译得很好。我需要使用什么编译器选项才能让Clang编译它?或者还有其他事情发生了吗?

1 个答案:

答案 0 :(得分:2)

如果您是本机编译(主机和目标是同一台机器,不是交叉编译),那么考虑将-march=native传递给clang