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

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

組込み関数名 別名 対応する
命令
操作 符号 引数 -
値の数/ビット数
結果
値の数/ビット数
_m_paddb _mm_add_pi8 PADDB 加算 -- 8/8 8/8
_m_paddw _mm_add_pi16 PADDW 加算 -- 4/16 4/16
_m_paddd _mm_add_pi32 PADDD 加算 -- 2/32 2/32
_m_paddsb _mm_adds_pi8 PADDSB 加算 8/8 8/8
_m_paddsw _mm_adds_pi16 PADDSW 加算 4/16 4/16
_m_paddusb _mm_adds_pu8 PADDUSB 加算 符号なし 8/8 8/8
_m_paddusw _mm_adds_pu16 PADDUSW 加算 符号なし 4/16 4/16
_m_psubb _mm_sub_pi8 PSUBB 減算 -- 8/8 8/8
_m_psubw _mm_sub_pi16 PSUBW 減算 -- 4/16 4/16
_m_psubd _mm_sub_pi32 PSUBD 減算 -- 2/32 2/32
_m_psubsb _mm_subs_pi8 PSUBSB 減算 8/8 8/8
_m_psubsw _mm_subs_pi16 PSUBSW 減算 4/16 4/16
_m_psubusb _mm_subs_pu8 PSUBUSB 減算 符号なし 8/8 8/8
_m_psubusw _mm_subs_pu16 PSUBUSW 減算 符号なし 4/16 4/16
_m_pmaddwd _mm_madd_pi16 PMADDWD 乗算 -- 4/16 2/32
_m_pmulhw _mm_mulhi_pi16 PMULHW 乗算 4/16 4/16 (上位)
_m_pmullw _mm_mullo_pi16 PMULLW 乗算 -- 4/16 4/16 (下位)
 
__m64 _m_paddb(__m64 m1, __m64 m2)

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

__m64 _m_paddw(__m64 m1, __m64 m2)

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

__m64 _m_paddd (__m64 m1, __m64 m2)

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

__m64 _m_paddsb(__m64 m1, __m64 m2)

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

__m64 _m_paddsw(__m64 m1, __m64 m2)

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

__m64 _m_paddusb(__m64 m1, __m64 m2)

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

__m64 _m_paddusw(__m64 m1, __m64 m2)

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

__m64 _m_psubb(__m64 m1, __m64 m2)

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

__m64 _m_psubw(__m64 m1, __m64 m2)

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

__m64 _m_psubd(__m64 m1, __m64 m2)

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

__m64 _m_psubsb(__m64 m1, __m64 m2)

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

__m64 _m_psubsw(__m64 m1, __m64 m2)

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

__m64 _m_psubusb(__m64 m1, __m64 m2)

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

__m64 _m_psubusw(__m64 m1, __m64 m2)

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

__m64 _m_pmaddwd(__m64 m1, __m64 m2)

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

__m64 _m_pmulhw(__m64 m1, __m64 m2)

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

__m64 _m_pmullw(__m64 m1, __m64 m2)

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