インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
2 つのベクトルの隣接する 16 ビットまたは 32 ビットの符号付きパックド整数データ要素を水平加算します。対応するインテル® AVX2 命令は VPHADDW または VPHADDD です。
extern __m256i _mm256_hadd_epi16(__m256i s1, __m256i s2); |
extern __m256i _mm256_hadd_epi32(__m256i s1, __m256i s2); |
s1 |
演算に使用する整数ソースベクトル |
s2 |
演算に使用する整数ソースベクトル |
ソースベクトル s1 と s2 の隣接する 2 つの 16 ビットまたは 32 ビットの符号付き整数を水平加算し、16 ビットまたは 32 ビットの符号付き結果をデスティネーション・ベクトルにパックします。
1 つ目と 2 つ目のソースベクトルの下位 16 バイトまたは 32 バイトの 2 つの隣接するデータ要素を水平加算した結果は、デスティネーション・ベクトルの下位 16 バイトまたは 32 バイトにパックされます。1 つ目と 2 つ目のソースベクトルの上位 16 バイトまたは 32 バイトの 2 つの隣接するデータ要素を水平加算した結果は、デスティネーション・ベクトルの上位 16 バイトまたは 32 バイトにパックされます。
水平加算の結果。