0

#include <immintrin.h>このエラーが発生した場合:

エラー: '__builtin_ia32_addpd256' はこのスコープで宣言されていません

AVX を利用可能にするマクロを定義__AVX__しましたが、明らかにこれだけでは不十分です。マクロの代わりに__FMA__コンパイラ フラグを使用してもエラーは発生しませんが、その解決策は受け入れられません。-mavxでは、AVX を使用するには他に何を定義すればよいでしょうか?

4

2 に答える 2

5

自分で定義するべきではありません。__AVX__これら__FMA__は、正しいコンパイラ オプションを有効にすると自動的に定義されます。

gcc -Wall -mavx ...

興味がある場合は、これを自分で確認できます。

AVX なし:

$ gcc -dM -E - < /dev/null | egrep "AVX|FMA"
$

AVX:

$ gcc -mavx -dM -E - < /dev/null | egrep "AVX|FMA"
#define __AVX__ 1
$

AVX + FMA:

$ gcc -mavx -mfma -dM -E - < /dev/null | egrep "AVX|FMA"
#define __AVX__ 1
#define __FMA__ 1
$
于 2013-09-18T08:32:13.520 に答える