次の問題があります。
いくつかの命令を使用して、xop チェックに関連するいくつかのテストがありBulldozer (xop)
ます。
そして、このテストはBulldozer
プロセッサ上でのみ実行する必要があります。プロセッサがコンパイル時に命令を
サポートしていることを確認するにはどうすればよいですか?xop
言語: C
、OS: Linux
;
次の問題があります。
いくつかの命令を使用して、xop チェックに関連するいくつかのテストがありBulldozer (xop)
ます。
そして、このテストはBulldozer
プロセッサ上でのみ実行する必要があります。プロセッサがコンパイル時に命令を
サポートしていることを確認するにはどうすればよいですか?xop
言語: C
、OS: Linux
;
CPUIDをチェックするプログラムを作成し、コンパイル中にそのプログラムの出力を使用できます。
gcc $(cpuid_test) my_prog.c
cpuid_testが返す場所'-march=bdver1'
または-DXOP_SUPPORT=1
コンパイル時にテストすることはできませんが、次を使用して AMD Bulldozer 用にコンパイルできます。
$ gcc -march=bdver1 -mtune=bdver1 ...
参照: http://gcc.gnu.org/gcc-4.6/changes.html
ビルド マシンがターゲット マシンである場合は、 を調べてください/proc/cpuinfo
。
ソースが-march=bdver1
(特に XOP サポートを有効にする) でコンパイルされている場合、プリプロセッサ マクロ__XOP__
は 1 に定義されます。
XOPのコンパイル時にテストできます
#ifdef __XOP__
...XOP code path here...
#else
...non XOP code here...
#endif