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