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

インテル® MMX® テクノロジーのパックド算術演算組込み関数

インテル® MMX® テクノロジーのパックド算術演算組込み関数のプロトタイプは、ヘッダーファイル mmintrin.h 内にあります。

組込み関数名

演算

対応する インテル® MMX® 命令

_mm_add_pi8

加算

PADDB

_mm_add_pi16

加算

PADDW

_mm_add_pi32

加算

PADDD

_mm_adds_pi8

加算

PADDSB

_mm_adds_pi16

加算

PADDSW

_mm_adds_pu8

加算

PADDUSB

_mm_adds_pu16

加算

PADDUSW

_mm_sub_pi8

減算

PSUBB

_mm_sub_pi16

減算

PSUBW

_mm_sub_pi32

減算

PSUBD

_mm_subs_pi8

減算

PSUBSB

_mm_subs_pi16

減算

PSUBSW

_mm_subs_pu8

減算

PSUBUSB

_mm_subs_pu16

減算

PSUBUSW

_mm_madd_pi16

積和

PMADDWD

_mm_mulhi_pi16

乗算

PMULHW

_mm_mullo_pi16

乗算

PMULLW

_mm_add_pi8

__m64 _mm_add_pi8(__m64 m1, __m64 m2);

m1 の 8 つの 8 ビット値を、m2 の 8 つの 8 ビット値に加算します。

_mm_add_pi16

__m64 _mm_add_pi16(__m64 m1, __m64 m2);

m1 の 4 つの 16 ビット値を、m2 の 4 つの 16 ビット値に加算します。

_mm_add_pi32

__m64 _mm_add_pi32(__m64 m1, __m64 m2);

m1 の 2 つの 32 ビット値を、m2 の 2 つの 32 ビット値に加算します。

_mm_adds_pi8

__m64 _mm_adds_pi8(__m64 m1, __m64 m2);

飽和演算を使用して、m1 の 8 つの符号付き 8 ビット値を、m2 の 8 つの符号付き 8 ビット値に加算します。

_mm_adds_pi16

__m64 _mm_adds_pi16(__m64 m1, __m64 m2);

飽和演算を使用して、m1 の 4 つの符号付き 16 ビット値を、m2 の 4 つの符号付き 16 ビット値に加算します。

_mm_adds_pu8

__m64 _mm_adds_pu8(__m64 m1, __m64 m2);

飽和演算を使用して、m1 の 8 つの符号なし 8 ビット値を、m2 の 8 つの符号なし 8 ビット値に加算します。

_mm_adds_pu16

__m64 _mm_adds_pu16(__m64 m1, __m64 m2);

飽和演算を使用して、m1 の 4 つの符号なし 16 ビット値を、m2 の 4 つの符号なし 16 ビット値に加算します。

_mm_sub_pi8

__m64 _mm_sub_pi8(__m64 m1, __m64 m2);

m1 の 8 つの 8 ビット値から、m2 の 8 つの 8 ビット値を引きます。

_mm_sub_pi16

__m64 _mm_sub_pi16(__m64 m1, __m64 m2);

m1 の 4 つの 16 ビット値から、m2 の 4 つの 16 ビット値を引きます。

_mm_sub_pi32

__m64 _mm_sub_pi32(__m64 m1, __m64 m2);

m1 の 2 つの 32 ビット値から、m2 の 2 つの 32 ビット値を引きます。

_mm_subs_pi8

__m64 _mm_subs_pi8(__m64 m1, __m64 m2);

飽和演算を使用して、m1 の 8 つの符号付き 8 ビット値から、m2 の 8 つの符号付き 8 ビット値を引きます。

_mm_subs_pi16

__m64 _mm_subs_pi16(__m64 m1, __m64 m2);

飽和演算を使用して、m1 の 4 つの符号付き 16 ビット値から、m2 の 4 つの符号付き 16 ビット値を引きます。

_mm_subs_pu8

__m64 _mm_subs_pu8(__m64 m1, __m64 m2);

飽和演算を使用して、m1 の 8 つの符号なし 8 ビット値から、m2 の 8 つの符号なし 8 ビット値を引きます。

_mm_subs_pu16

__m64 _mm_subs_pu16(__m64 m1, __m64 m2);

飽和演算を使用して、m1 の 4 つの符号なし 16 ビット値から、m2 の 4 つの符号なし 16 ビット値を引きます。

_mm_madd_pi16

__m64 _mm_madd_pi16(__m64 m1, __m64 m2);

m1 の 4 つの 16 ビット値に m2 の 4 つの 16 ビット値を掛けて、4 つの 32 ビット即値を求め、それらを 2 つずつ合計して 2 つの 32 ビットの結果を求めます。

_mm_mulhi_pi16

__m64 _mm_mulhi_pi16(__m64 m1, __m64 m2);

m1 の 4 つの符号付き 16 ビット値に m2 の 4 つの符号付き 16 ビット値を掛けて、4 つの結果の上位 16 ビットを求めます。

_mm_mullo_pi16

__m64 _mm_mullo_pi16(__m64 m1, __m64 m2);

m1 の 4 つの 16 ビット値に m2 の 4 つの 16 ビット値を掛けて、4 つの結果の下位 16 ビットを求めます。