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

インテル® MMX® テクノロジーの組込み関数の詳細

インテル® MMX® 命令では、次の機能を使用します。

レジスター

インテル® MMX® 命令は、8 個の 64 ビット・レジスター (mm0mm7) を使用します。これらのレジスターは、浮動小数点スタックレジスターに別名を付けて使用されます。

各レジスターは複数のデータ要素を保持できるため、プロセッサーは複数のデータ要素を同時に処理できます。このような処理方法は、SIMD (Single Instruction Multiple Data) 処理と呼ばれます。

新しい拡張命令セットのそれぞれの計算命令とデータ操作命令について、その命令を直接実装する C 組込み関数が用意されています。これにより、プログラマーは、レジスターの管理とアセンブリー言語のプログラミングを行う必要がなくなります。また、コンパイラーは、命令のスケジュールを最適化して、実行ファイルの処理速度を上げることができます。

データ型

組込み関数は、4 つの新しい C データ型をオペランドとして使用します。4 つのデータ型は、組込み関数に対するオペランドとして使用される新しいレジスターを表しています。

__m64 データ型

__m64 データ型は、インテル® MMX® テクノロジーの組込み関数に使用される MMX レジスターの内容を表します。__m64 データ型は、8 個の 8 ビット値、4 個の 16 ビット値、2 個の 32 ビット値、または 1 個の 64 ビット値を保持できます。

データ型を使用する際のガイドライン

これらの新しいデータ型は、基本的な ANSI C データ型ではありません。このため、次のような使用上の制限があります。