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 (下位) |
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ビットを求めます。