インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
マスクでセットされているビットに応じて、ソースベクトルのデータ要素を条件付きでブレンド (混合) します。対応するインテル® AVX2 命令は VPBLENDD または VPBLENDW です。
extern __m128i _mm_blend_epi32(__m128i s1, __m128i s2, const int mask); |
extern __m256i _mm256_blend_epi16(__m256i s1, __m256i s2, const int mask); |
extern __m256i _mm256_blend_epi32(__m256i s1, __m256i s2, const int mask); |
s1 |
演算に使用する整数ソースベクトル |
s2 |
演算に使用する整数ソースベクトル |
mask |
演算に使用する 8 ビットの即値 |
mask で定義されているマスクビットに応じて、ソースベクトル s2 と s1 の 16 ビット (ワード) または 32 ビット (ダブルワード) のバイト要素を条件付きでコピーして、ブレンド (混合) します。マスクビットは、256 ビットの組込み関数 _mm256_blend_epi16/_mm256_blend_epi32 を使用する場合は mask の最下位 8 ビットで、128 ビットの組込み関数 _mm_blend_epi32 を使用する場合は最下位 4 ビットです。
デスティネーション・ベクトルの各ワード/ダブルワード要素は、マスクビットが 1 の場合は s2 の対応するワード/ダブルワード要素から、マスクビットが 0 の場合は s1 の対応するワード/ダブルワード要素からコピーされます。
混合操作の結果。