インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
マスクでセットされているビットに応じて、2 つのソースベクトルの要素をアライメントします。対応するインテル® AVX2 命令は VPALIGNR です。
extern __m256i _mm256_alignr_epi8(__m256i s1, __m256i s2, const int mask); |
s1 |
演算に使用する整数ソースベクトル |
s2 |
演算に使用する整数ソースベクトル |
mask |
演算に使用する 8 ビットの即値 |
1 つ目のソースベクトル s1 と 2 つ目のソースベクトル s2 からの 2 つの 16 バイトのデータブロックを連結し、32 バイトの中間複合値を生成して、その値をマスクで指定されている定数即値分だけバイト単位で右へシフトし、右にアライメントされた 16 バイトの結果を抽出してデスティネーション・ベクトルに格納することでアライメントします。即値は符号なしと見なされます。
アライメント操作の結果。