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