我有下一个问题:我使用一些说明
进行了一些与 xop 检查相关的测试。
而且我必须只在处理器上运行这个测试。
如何在编译时检查我的处理器是否支持指令? Bulldozer (xop)
Bulldozer
xop
语言: C
,操作系统: Linux
;
我有下一个问题:我使用一些说明
进行了一些与 xop 检查相关的测试。
而且我必须只在处理器上运行这个测试。
如何在编译时检查我的处理器是否支持指令? Bulldozer (xop)
Bulldozer
xop
语言: C
,操作系统: Linux
;
您可以编写一个检查 CPUID 的程序,并在编译时使用该程序的输出:
gcc $(cpuid_test) my_prog.c
cpuid_test 返回'-march=bdver1'
或-DXOP_SUPPORT=1
如果使用源编译-march=bdver1
(其中启用 XOP 支持),则预处理器宏__XOP__
将定义为 1。
您可以在编译时测试 XOP
#ifdef __XOP__
...XOP code path here...
#else
...non XOP code here...
#endif
您无法在编译时进行测试,但您可以使用以下命令为 AMD Bulldozer 进行编译:
$ gcc -march=bdver1 -mtune=bdver1 ...
见: http: //gcc.gnu.org/gcc-4.6/changes.html
如果您的构建机器是您的目标机器,请查看/proc/cpuinfo
.