インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
2 つのベクトルの符号なし拡張パックド整数値の差分絶対値和を複数回計算します。対応するインテル® AVX2 命令は VMPSADBW です。
extern __m256i _mm256_mpsadbw_epu8(__m256i s1, __m256i s2, const int mask); |
s1 |
演算に使用する整数ソースベクトル |
s2 |
演算に使用する整数ソースベクトル |
mask |
オフセットを指定する整数定数 |
s2 ベクトルの 4 つのパックド符号なしバイトのブロックと s1 ベクトルの 4 つのパックド符号なしバイトのシーケンシャル・ブロックの差分絶対値和を複数回計算します。両ベクトルのオフセットは 32 ビットです。
固定オフセットと変数を使用して、差分絶対値和 (SAD) 演算を 1 回行うごとにオフセットを 8 ビット分シフトし、s2 ベクトルと s1 ベクトルの SAD 演算を 16 回繰り返します。mask で指定される整数定数は、s2 ベクトルと s1 ベクトルの初期オフセットを指定するビット・フィールドを提供します。8 つの SAD 演算の 16 ビットの各結果は、結果ベクトルの各ワードに書き込まれます。
複数回の差分絶対値和の演算結果。