_mm256_permute2_ps、_mm_permute2_ps

 

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 ベクトル

次のフィールドを持つベクトル。

  • 2 ビットの source_select フィールド。各ビットは、ソースベクトルの各要素に対応します。
  • match ビット


imm 引数の zero_match フィールドと ctrl ベクトルの match ビットは、デスティネーション・ベクトルの対応するデータ要素に書き込まれる値を指定します。

imm

2 ビットの zero_match 制御フィールドを指定する即値バイト

説明

2 つの単精度浮動小数点値 (float32 値) を並べ替えます。ソースベクトル ab の 1 つのペア (128 ビットのソース) から float32 値を 1 つ選択するか、2 つのペア (256 ビットのソース) から float32 値を選択します。どちらを選択するかは、3 つめのベクトル ctrl によって指定された source select フィールドの値によって決定されます。

ctrl ベクトルの match ビットと imm パラメーターによって指定された zero_match 制御フィールドに応じて、選択された各 float32 値がデスティネーション・ベクトルにコピーされるか、デスティネーション・ベクトルで 0 に置換されます。

戻り値

256 ビットまた[ぁ-ん] [0-9]28 ビットの値が並べ替えられた float32 ベクトル