インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
2 つ目のソースベクトルの対応する要素の符号に応じて、1 つ目のソースベクトルの要素の符号を変更します。対応するインテル® AVX2 命令は VPSIGNB、VPSIGNW、または VPSIGND です。
extern __m256i _mm256_sign_epi8(__m256i s1, __m256i s2); |
extern __m256i _mm256_sign_epi16(__m256i s1, __m256i s2); |
extern __m256i _mm256_sign_epi32(__m256i s1, __m256i s2); |
s1 |
演算に使用する整数ソースベクトル |
s2 |
演算に使用する整数ソースベクトル |
次のように、ベクトル s2 の対応する要素の符号に応じて、ソースベクトル s1 のデータ要素の符号を変更します。
ベクトル s2 のデータ要素の符号が < 0 の場合、ベクトル s1 の対応するデータ要素の符号は負になります。
ベクトル s2 のデータ要素の符号が > 0 の場合、ベクトル s1 の対応するデータ要素の符号は変更されません。
ベクトル s2 のデータ要素が = 0 の場合、ベクトル s1 の対応するデータ要素は 0 に設定されます。
_mm256_sign_epi8 組込み関数は、8 ビットの符号付きバイトに対して操作を実行します。_mm256_sign_epi16 組込み関数は、16 ビットの符号付きワードに対して操作を実行します。_mm256_sign_epi32 組込み関数は、32 ビットの符号付き整数に対して操作を実行します。
操作の結果。