0

動機は、float *U 配列が 64 バイトにアラインされていることをコンパイラーに伝えて、コンパイラーがベクトル化できるようにすることです。

Intel コンパイラを使用している場合は、__assume_aligned(U,64) を使用できます。Google で調べたところ、GCC を使用して同じことを行うには、別の float *U_tmp=__builtin_assume_aligned(U,64) を定義し、使用する必要があることがわかりました。 U_tmp. ただし、GCC でコンパイルすると、コンパイラは「エラー: '__builtin_assume_aligned' はこのスコープで宣言されていませんでした」と報告します。

4

1 に答える 1

1

これは、ヘッダーを追加しなくても、すぐに使用できるはずです。ただし、これは GCC 4.7 にのみ追加されたもので、コンパイラがそれより古い可能性がありますか?

于 2013-11-20T12:23:29.567 に答える