インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
2 つのベクトルの 8/16/32/64 ビットの符号付きまたは符号なしパックド整数データ要素を減算します。対応するインテル® AVX2 命令は VPSUBB、VPSUBW、VPADDD、または VPSUBQ です。
extern __m256i _mm256_sub_epi8(__m256i s1, __m256i s2); |
extern __m256i _mm256_sub_epi16(__m256i s1, __m256i s2); |
extern __m256i _mm256_sub_epi32(__m256i s1, __m256i s2); |
extern __m256i _mm256_sub_epi64(__m256i s1, __m256i s2); |
s1 |
演算に使用する整数ソースベクトル |
s2 |
演算に使用する整数ソースベクトル |
2 つ目のソースベクトル s2 の 8/16/32/64 ビットの符号付きまたは符号なしパックド整数を 1 つ目のソースベクトル s1 の対応するビットから引いて、パックド整数結果をデスティネーション・ベクトルに格納します。個々の結果が 8/16/32/64 ビットでは表現できない場合 (オーバーフローが発生した場合)、結果の下位 8/16/32/64 ビットだけがデスティネーション・ベクトルに書き込まれます (キャリーは無視されます)。
検知されないオーバーフロー状態を回避するために、演算を行う値の範囲を制御する必要があります。
減算の結果。