私はAVXバージョンに機能を変換しようとしています。関数自体は、基本的にはfloatを比較し、true/falseを返すのは計算に依存します。ここで 本来の機能である: bool testSingle(float* thisFloat, float* otherFloat)
{
for (unsigned int k = 0; k < COL_COUNT/2; k++)
{
PTEST はキャリーフラグには影響しませんが、(やや厄介な)ZFだけが設定されます。もCFとZFの両方に影響します。 多くの値をテストするために次のシーケンスを考え出しましたが、実行時間が悪いと不満です。 Latency/rThoughput
setup:
xor eax,eax ; na
vpxor xmm0,xmm0 ; na ;mask to use for
AVX2ベクトルを定数で除算したい。私はthis questionと他の多くのページを訪問しました。何かを助けて助けてくれると思ったのですが、私は理解しませんでした。だから問題は、この部門はボトルネックです。 AVX命令を使用して操作をフロートして行うために、鋳造、 まず:私は、2つの方法を試してみました最初の方法では //outside the bottleneck:
__m256i veci
gcc(Intel & T構文)で次のコードを実行します。 ; float a[128], b[128], c[128];
; for (int i = 0; i < 128; i++) a[i] = b[i] + c[i];
; Assume that a, b and c are aligned by 32
xor ecx, ecx ; Loop counter i =