MMX® テクノロジの組込み関数のプロトタイプは、ヘッダファイル mmintrin.h 内にあります。
組込み関数 の名前 |
別名 | 対応する 命令 |
操作 | 符号 | 飽和 |
---|---|---|---|---|---|
_m_empty | _mm_empty | EMMS | MM ステートを空にする | -- | -- |
_m_from_int | _mm_cvtsi32_si64 | MOVD | int からの変換 | -- | -- |
_m_to_int | _mm_cvtsi64_si32 | MOVD | int からの変換 | -- | -- |
_m_packsswb | _mm_packs_pi16 | PACKSSWB | Pack | 符号付き | 可 |
_m_packssdw | _mm_packs_pi32 | PACKSSDW | Pack | 符号付き | 可 |
_m_packuswb | _mm_packs_pu16 | PACKUSWB | Pack | 符号なし | 可 |
_m_punpckhbw | _mm_unpackhi_pi8 | PUNPCKHBW | インターリーブ | -- | -- |
_m_punpckhwd | _mm_unpackhi_pi16 | PUNPCKHWD | インターリーブ | -- | -- |
_m_punpckhdq | _mm_unpackhi_pi32 | PUNPCKHDQ | インターリーブ | -- | -- |
_m_punpcklbw | _mm_unpacklo_pi8 | PUNPCKLBW | インターリーブ | -- | -- |
_m_punpcklwd | _mm_unpacklo_pi16 | PUNPCKLWD | インターリーブ | -- | -- |
_m_punpckldq | _mm_unpacklo_pi32 | PUNPCKLDQ | インターリーブ | -- | -- |
void _m_empty(void)
マルチメディア・ステートを空にします。
__m64 _m_from_int(int i)
整数オブジェクト i を、64 ビットの __m64 オブジェクトに変換します。整数値は 0 で拡張して 64 ビットに変換します。
int _m_to_int(__m64 m)
__m64 オブジェクト m の下位 32 ビットを、整数に変換します。
__m64 _m_packsswb(__m64 m1, __m64 m2)
符号付き飽和処理を使用して、m1 の 4 つの 16 ビット値を、結果の下位 4 つの 8 ビット値にパックします。符号付き飽和処理を使用して、m2 の 4 つの 16 ビット値を、結果の上位 4 つの 8 ビット値にパックします。
__m64 _m_packssdw(__m64 m1, __m64 m2)
符号付き飽和処理を使用して、m1 の 2 つの 32 ビット値を、結果の下位 2 つの 16 ビット値にパックします。符号付き飽和処理を使用して、m2 の 2 つの 32 ビット値を、結果の上位 2 つの 16 ビット値にパックします。
__m64 _m_packuswb(__m64 m1, __m64 m2)
符号なし飽和処理を使用して、m1 の 4 つの 16 ビット値を、結果の下位 4 つの 8 ビット値にパックします。符号なし飽和処理を使用して、m2 の 4 つの 16 ビット値を、結果の上位 4 つの 8 ビット値にパックします。
__m64 _m_punpckhbw(__m64 m1, __m64 m2)
m1 の上位半分の 4 つの 8 ビット値と、m2 の上位半分の 4 つの値をインターリーブ (交互に配置) します。インターリーブは m1 のデータから始めます。
__m64 _m_punpckhwd(__m64 m1, __m64 m2)
m1 の上位半分の 2 つの 16 ビット値と、m2 の上位半分の 2 つの値をインターリーブします。インターリーブは m1 のデータから始めます。
__m64 _m_punpckhdq(__m64 m1, __m64 m2)
m1 の上位半分の 32 ビット値と、m2 の上位半分の 32 ビット値をインターリーブします。インターリーブは m1 のデータから始めます。
__m64 _m_punpcklbw(__m64 m1, __m64 m2)
m1 の下位半分の 4 つの 8 ビット値と、m2 の下位半分の 4 つの値をインターリーブします。インターリーブは m1 のデータから始めます。
__m64 _m_punpcklwd(__m64 m1, __m64 m2)
m1 の下位半分の 2 つの 16 ビット値と、m2 の下位半分の 2 つの値をインターリーブします。インターリーブは m1 のデータから始めます。
__m64 _m_punpckldq(__m64 m1, __m64 m2)
m1 の下位半分の 32 ビット値と、m2 の下位半分の 32 ビット値をインターリーブします。インターリーブは m1 のデータから始めます。