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

_mm_blend_epi32、_mm256_blend_epi16/32

マスクでセットされているビットに応じて、ソースベクトルのデータ要素を条件付きでブレンド (混合) します。対応するインテル® 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 で定義されているマスクビットに応じて、ソースベクトル s2s1 の 16 ビット (ワード) または 32 ビット (ダブルワード) のバイト要素を条件付きでコピーして、ブレンド (混合) します。マスクビットは、256 ビットの組込み関数 _mm256_blend_epi16/_mm256_blend_epi32 を使用する場合は mask の最下位 8 ビットで、128 ビットの組込み関数 _mm_blend_epi32 を使用する場合は最下位 4 ビットです。

デスティネーション・ベクトルの各ワード/ダブルワード要素は、マスクビットが 1 の場合は s2 の対応するワード/ダブルワード要素から、マスクビットが 0 の場合は s1 の対応するワード/ダブルワード要素からコピーされます。

戻り値

混合操作の結果。