我刚开始尝试内在函数。我设法使用Clang 5.1在Mac上使用__m128
成功编译了一个程序。这台Mac上的CPU是英特尔酷睿i5 M540。
当我尝试使用__m256
编译相同的代码时,我收到以下消息:
simple.cpp:4:2: error: unknown type name '__m256'
__m256 A;
代码如下所示:
#include <immintrin.h>
int main()
{
__m256 A;
return 0;
}
以下是用于编译它的命令:
c++ -o simple simple.cpp -march=native -O3
是不是我的CPU太旧而无法支持AVX指令集?我使用的所有选项(在命令行上)是否正确?我检查了immintrin.h
包含文件,它确实调用另一个包含似乎是定义AVX内在函数的文件。如果问题是天真的,或者如果术语被滥用,请道歉,正如我所说,我是这个话题的新手。
Intel 540M CPU位于Westmere微体系结构中(对于评论中的错误而言),它出现在Sandy Bridge之前,当AVX被引入时因此它不支持AVX。术语“核心i5”涵盖了从Nehalem到Haswell(当前)的各种体系结构,因此使用核心i5 CPU并不意味着您将支持所有指令集,例如lates。