2 つの float32 値をデスティネーション・ベクトルに並べ替えます。対応するインテル® AVX 命令は VPERMIL2PS です。
extern __m256 __cdecl _mm256_permute2_ps(__m256 a, __m256 b, __m256i ctrl, int imm); |
extern __m128 __cdecl _mm_permute2_ps(__m128 a, __m128 b, __m128i ctrl, int imm); |
a |
256 ビットまた[ぁ-ん] [0-9]28 ビットの float32 ソースベクトル |
b |
256 ビットまた[ぁ-ん] [0-9]28 ビットの float32 ソースベクトル |
ctrl |
演算に使用する float32 ベクトル 次のフィールドを持つベクトル。
imm 引数の zero_match フィールドと ctrl ベクトルの match ビットは、デスティネーション・ベクトルの対応するデータ要素に書き込まれる値を指定します。 |
imm |
2 ビットの zero_match 制御フィールドを指定する即値バイト |
2 つの単精度浮動小数点値 (float32 値) を並べ替えます。ソースベクトル a と b の 1 つのペア (128 ビットのソース) から float32 値を 1 つ選択するか、2 つのペア (256 ビットのソース) から float32 値を選択します。どちらを選択するかは、3 つめのベクトル ctrl によって指定された source select フィールドの値によって決定されます。
ctrl ベクトルの match ビットと imm パラメーターによって指定された zero_match 制御フィールドに応じて、選択された各 float32 値がデスティネーション・ベクトルにコピーされるか、デスティネーション・ベクトルで 0 に置換されます。
256 ビットまた[ぁ-ん] [0-9]28 ビットの値が並べ替えられた float32 ベクトル