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

_mm256_shuffle_epi8

2 つ目のソースベクトルにあるシャッフル制御マスクに応じて、1 つ目のソースベクトルのバイトをシャッフルします。対応するインテル® AVX2 命令は VPSHUFB です。

構文

extern __m256i _mm256_shuffle_epi8(__m256i a, __m256i b);

引数

a

整数ソースベクトル

b

整数ソースベクトル

説明

2 つ目のソースベクトルにあるシャッフル制御マスクの設定に応じて、1 つ目のソースベクトルの 8 ビットの符号付きまたは符号なし整数をシャッフルします。

以下は、ab、および 8 ビットの符号なし整数の配列 r の解釈を示す擬似コードです。

for (i = 0; i < 16; i++){
  if (b[i] & 0x80){
    r[i] =  0;
  }
  else{
    r[i] = a[b[i] & 0x0F];
  }
  if (b[16+i] & 0x80){
    r[16+i] =  0;
  }
  else{
    r[16+i] = a[16+(b[16+i] & 0x0F)];
  }
}

戻り値

シャッフル操作の結果。