インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

インテル® MMX® テクノロジーの一般的な組込み関数

インテル® MMX® テクノロジーの一般的な組込み関数のプロトタイプは、ヘッダーファイル 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

_mm_empty

void _mm_empty(void);

マルチメディア・ステートを空にします。support operation

_mm_cvtsi32_si64

__m64 _mm_cvtsi32_si64(int i);

整数オブジェクト i を、64 ビットの __m64 オブジェクトに変換します。整数値は 0 で拡張して 64 ビットに変換します。

_mm_cvtsi64_si32

int _mm_cvtsi64_si32(__m64 m);

__m64 オブジェクト m の下位 32 ビットを、整数に変換します。

_mm_cvtsi64_m64

__m64 _mm_cvtsi64_m64(__int64 i);

整数オブジェクト i を、64 ビットの __m64 オブジェクトに移動します。

_mm_cvtm64_si64

__m64 _mm_cvtm64_si64(__m64 m);

__m64 オブジェクト m を、64 ビットの整数に移動します。

_mm_packs_pi16

__m64 _mm_packs_pi16(__m64 m1, __m64 m2);

符号付き飽和処理を使用して、m1 の 4 つの 16 ビット値を、結果の下位 4 つの 8 ビット値にパックします。符号付き飽和処理を使用して、m2 の 4 つの 16 ビット値を、結果の上位 4 つの 8 ビット値にパックします。

_mm_packs_pi32

__m64 _mm_packs_pi32(__m64 m1, __m64 m2);

符号付き飽和処理を使用して、m1 の 2 つの 32 ビット値を、結果の下位 2 つの 16 ビット値にパックします。符号付き飽和処理を使用して、m2 の 2 つの 32 ビット値を、結果の上位 2 つの 16 ビット値にパックします。

_mm_packs_pu16

__m64 _mm_packs_pu16(__m64 m1, __m64 m2);

符号なし飽和処理を使用して、m1 の 4 つの 16 ビット値を、結果の下位 4 つの 8 ビット値にパックします。符号なし飽和処理を使用して、m2 の 4 つの 16 ビット値を、結果の上位 4 つの 8 ビット値にパックします。

_mm_unpackhi_pi8

__m64 _mm_unpackhi_pi8(__m64 m1, __m64 m2);

m1 の上位半分の 4 つの 8 ビット値と、m2 の上位半分の 4 つの値をインターリーブ (交互に配置) します。インターリーブは m1 のデータから始めます。

_mm_unpackhi_pi16

__m64 _mm_unpackhi_pi16(__m64 m1, __m64 m2);

m1 の上位半分の 2 つの 16 ビット値と、m2 の上位半分の 2 つの値をインターリーブします。インターリーブは m1 のデータから始めます。

_mm_unpackhi_pi32

__m64 _mm_unpackhi_pi32(__m64 m1, __m64 m2);

m1 の上位半分の 32 ビット値と、m2 の上位半分の 32 ビット値をインターリーブします。インターリーブは m1 のデータから始めます。

_mm_unpacklo_pi8

__m64 _mm_unpacklo_pi8(__m64 m1, __m64 m2);

m1 の下位半分の 4 つの 8 ビット値と、m2 の下位半分の 4 つの値をインターリーブします。インターリーブは m1 のデータから始めます。

_mm_unpacklo_pi16

__m64 _mm_unpacklo_pi16(__m64 m1, __m64 m2);

m1 の下位半分の 2 つの 16 ビット値と、m2 の下位半分の 2 つの値をインターリーブします。インターリーブは m1 のデータから始めます。

_mm_unpacklo_pi32

__m64 _mm_unpacklo_pi32(__m64 m1, __m64 m2);

m1 の下位半分の 32 ビット値と、m2 の下位半分の 32 ビット値をインターリーブします。インターリーブは m1 のデータから始めます。