0

私は AVX 命令ガイドを調べていましたが、32 ビット整数値のロード、ストア、および置換操作がありますが、最小値または最大値の決定などの他の操作、またはシャッフル操作は float と double に対してのみ存在します。

したがって、これらの演算を 32 ビット整数に使用したい場合は、それを float に型キャストしてから型キャストする必要がありますか、それとも他に不足している命令がありますか?

また、32 ビット整数で使用したい場合、シャッフル マスクはフロートの場合と同じままですか?

4

1 に答える 1

2

32B ベクトルの整数演算の大部分は、AVX2 拡張に含まれています (ほとんど完全に浮動小数点演算である最初の AVX 拡張ではありません)。Intel の最新のAVX Programming Referenceには完全な詳細が記載されています。詳細の一部を発表しているIntel のブログ投稿も参照してください。

残念ながら、浮動小数点の最小演算または最大演算を使用して、整数データでこれらの演算をシミュレートすることはできません。浮動小数点データとして解釈されると、かなりの数の整数が NaN 値にマップされ、NaN 比較のセマンティクスが何をしないからです。整数比較が必要になります (浮動小数点エンコーディングは符号の大きさであるため、負の値の順序が「逆」になり、+0 と -0 が等しいという事実にも対処する必要があります)。

于 2012-12-13T22:26:49.043 に答える