MMX® テクノロジの組込み関数のプロトタイプは、ヘッダファイル mmintrin.h 内にあります。
組込み関数 |
別名 | 対応する 命令 |
操作 | 符号 |
---|---|---|---|---|
_m_paddb | _mm_add_pi8 | PADDB | 加算 | -- |
_m_paddw | _mm_add_pi16 | PADDW | 加算 | -- |
_m_paddd | _mm_add_pi32 | PADDD | 加算 | -- |
_m_paddsb | _mm_adds_pi8 | PADDSB | 加算 | サポート |
_m_paddsw | _mm_adds_pi16 | PADDSW | 加算 | サポート |
_m_paddusb | _mm_adds_pu8 | PADDUSB | 加算 | 非サポート |
_m_paddusw | _mm_adds_pu16 | PADDUSW | 加算 | 非サポート |
_m_psubb | _mm_sub_pi8 | PSUBB | 減算 | -- |
_m_psubw | _mm_sub_pi16 | PSUBW | 減算 | -- |
_m_psubd | _mm_sub_pi32 | PSUBD | 減算 | -- |
_m_psubsb | _mm_subs_pi8 | PSUBSB | 減算 | サポート |
_m_psubsw | _mm_subs_pi16 | PSUBSW | 減算 | サポート |
_m_psubusb | _mm_subs_pu8 | PSUBUSB | 減算 | 非サポート |
_m_psubusw | _mm_subs_pu16 | PSUBUSW | 減算 | 非サポート |
_m_pmaddwd | _mm_madd_pi16 | PMADDWD | 乗算 | -- |
_m_pmulhw | _mm_mulhi_pi16 | PMULHW | 乗算 | サポート |
_m_pmullw | _mm_mullo_pi16 | PMULLW | 乗算 | -- |
組込み関数 |
別名 | 対応する 命令 |
引数 値の数/ビット数 |
結果 値の数/ビット数 |
---|---|---|---|---|
_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 つの符号なし 8 ビット値を引きます。
__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 ビットを求めます。