インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
ソースベクトルのクワッドワード整数値をデスティネーション・ベクトルに並べ替えます。対応するインテル® AVX2 命令は VPERMQ です。
extern __m256i _mm256_permute4x64_epi64(__m256i val, const int control); |
val |
並べ替える 64 ビット・クワッドワード整数要素のベクトル |
control |
8 ビットの即値として指定された整数 |
即値バイトの 2 ビットのインデックス値を使用して、ソースベクトル val からクワッドワード整数要素を選択し、結果の要素は、デスティネーション・ベクトルの対応する要素にコピーされます。ソースベクトルの同じ要素をデスティネーション・ベクトルの複数の要素にコピーすることができます。
以下にこの組込み関数の擬似コードを示します。
RESULT[63:0] <- (VAL[255:0] >> (CONTROL[1:0] * 64))[63:0]; RESULT[127:64] <- (VAL[255:0] >> (CONTROL[3:2] * 64))[63:0]; RESULT[191:128] <- (VAL[255:0] >> (CONTROL[5:4] * 64))[63:0]; RESULT[255:192] <- (VAL[255:0] >> (CONTROL[7:6] * 64))[63:0];
置換操作の結果。