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

_mm256_shufflelo_epi16

シャッフル制御オペランドの設定に応じて、ソースオペランドの各 128 ビット要素の下位 4 つの符号付きまたは符号なしワードをシャッフルします。ソースオペランドの各 128 ビット要素の上位クワッドワードは、結果ベクトルの対応する上位クワッドワードにコピーされます。対応するインテル® AVX 2 命令は VPSHUFLW です。

構文

extern __m256i _mm256_shufflelo_epi16(__m256i val, const int control);

引数

val

整数ソースベクトル

control

即値の制御オペランド

説明

シャッフル制御オペランドの設定に応じて、ソースオペランドの各 128 ビット要素の下位 4 つの符号付きまたは符号なしワードをシャッフルします。ソースオペランドの各 128 ビット要素の上位クワッドワードは、結果ベクトルの対応する上位クワッドワードにコピーされます。シャッフル値は、即値でなければなりません。

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

RESULT[15:0] <- (VAL >> (CONTROL[1:0] *16))[15:0]
RESULT[31:16] <- (VAL >> (CONTROL[3:2] * 16))[15:0]
RESULT[47:32] <- (VAL >> (CONTROL[5:4] * 16))[15:0]
RESULT[63:48] <- (VAL >> (CONTROL[7:6] * 16))[15:0]
RESULT[127:64] <- VAL[127:64]
RESULT[143:128] <- (VAL >> (CONTROL[1:0] *16))[143:128]
RESULT[159:144] <- (VAL >> (CONTROL[3:2] * 16))[143:128]
RESULT[175:160] <- (VAL >> (CONTROL[5:4] * 16))[143:128]
RESULT[191:176] <- (VAL >> (CONTROL[7:6] * 16))[143:128]

RESULT[255:192] <- VAL[255:192]

戻り値

シャッフル操作の結果。