インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

_mm256_permutevar8x32_ps

ソースベクトルの単精度浮動小数点要素をデスティネーション・ベクトルに並べ替えます。対応するインテル® AVX2 命令は VPERMPS です。

構文

extern __m256i _mm256_permutevar8x32_ps(__m256 val, __m256i offsets);

引数

val

並べ替える 32 ビットの単精度浮動小数点要素からなるベクトル

offsets

256 ビットのベクトルの並べ替えた要素を示す 8 つの 3 ビット・オフセット (範囲 [0 - 7] の値で指定される) からなるベクトル

説明

ベクトル offsets の各ダブルワード要素にあるオフセット値を使用して、ソースベクトル val から単精度浮動小数点要素を選択します。結果の要素は、デスティネーション・ベクトルの対応する要素にコピーされます。ソースベクトルの同じ要素をデスティネーション・ベクトルの複数の要素にコピーすることはできません。

以下にこの組込み関数の擬似コードを示します。

RESULT[31:0] <- (VAL[255:0] >> (OFFSETS[2:0] * 32))[31:0];
RESULT[63:32] <- (VAL[255:0] >> (OFFSETS[34:32] * 32))[31:0];
RESULT[95:64] <- (VAL[255:0] >> (OFFSETS[66:64] * 32))[31:0];
RESULT[127:96] <- (VAL[255:0] >> (OFFSETS[98:96] * 32))[31:0];
RESULT[159:128] <- (VAL[255:0] >> (OFFSETS[130:128] * 32))[31:0];
RESULT[191:160] <- (VAL[255:0] >> (OFFSETS[162:160] * 32))[31:0];
RESULT[223:192] <- (VAL[255:0] >> (OFFSETS[194:192] * 32))[31:0];
RESULT[255:224] <- (VAL[255:0] >> (OFFSETS[226:224] * 32))[31:0];

戻り値

置換操作の結果。