一部のインテル(R) プロセッサーでは、以前に実装した命令を拡張し、最適化されたマルチメディア・アプリケーションを開発することができます。SIMD (Single Instruction, Multiple Data) 命令を使用してデータ要素を並列処理すると、大量のマルチメディア・データ・ストリームを処理するアプリケーションのパフォーマンスが大きく向上します。
これらの命令を使用する最も直接的な方法は、ソースコード内でインライン・アセンブリー言語命令を使用することです。しかし、これは時間のかかる作業です。また、一部のコンパイラーは、アセンブリー言語のインライン・プログラミングに対応していません。インテル(R) C++ コンパイラーでは、コンパイラーに組み込まれている API 拡張機能セットを使用して、これらの命令を簡単に実装することができます。この拡張機能セットを組み込み関数と呼びます。
インテル C++ コンパイラーは、特定のアーキテクチャー上で動作する組み込み関数と、すべての IA-32 プラットフォームおよび Itanium(R) ベースのプラットフォーム上で動作する組み込み関数の両方をサポートします。
組み込み関数には次のような利点があります。
コンパイラーは、命令のスケジューリングを最適化して、実行ファイルの処理速度を上げられます。
組み込み関数を使用すると、アセンブリー言語でコーディングしたり、ハードウェア・レジスターを直接操作する代わりに、C の関数呼び出しと変数の構文を使用できます。
組み込み関数によって、C および C++ 言語の標準的な構文では生成できない命令を利用できます。
次の表に、各プロセッサーでサポートされる組み込み関数を示します。
ストリーミング SIMD 拡張命令 2 (SSE2) 命令をサポートせず、MMX(R) テクノロジーをサポートするプロセッサーでは、sse2mmx.h エミュレーション・パックを使用して SSE2 命令をサポートすることができます。次のプロセッサーでは、sse2mmx.h ヘッダーファイルを使用することができます。
インテル Itanium アセンブラー
Pentium(R) III プロセッサー
Pentium II プロセッサー
MMX テクノロジー インテル Pentium プロセッサー
プロセッサー | MMX テクノロジー命令 | ストリーミング SIMD 拡張命令 | ストリーミング SIMD 拡張命令 2 | ストリーミング SIMD 拡張命令 3 | Itanium プロセッサー命令 |
---|---|---|---|---|---|
Itanium プロセッサー | X |
X |
N/A |
|
X |
Pentium 4 プロセッサー |
X |
X |
X |
X |
N/A |
Pentium III プロセッサー |
X |
X |
N/A |
|
N/A |
Pentium II プロセッサー |
X |
N/A |
N/A |
|
N/A |
MMX テクノロジー インテル Pentium プロセッサー |
X |
N/A |
N/A |
|
N/A |
Pentium Pro プロセッサー |
N/A |
N/A |
N/A |
|
N/A |
Pentium プロセッサー |
N/A |
N/A |
N/A |
|
N/A |