組込み関数の種類

インテル® Pentium® 4 プロセッサおよびその他のインテル・プロセッサには、最適化されたマルチメディア・アプリケーションの開発用の命令を用意しています。これらの命令は、以前に実装した命令を拡張したものです。これらの命令は、SIMD (Single Instruction, Multiple Data)テクノロジを使用します。SIMD命令を使用してデータ要素を並列処理をすると、大量のマルチメディア・データ・ストリームを処理するアプリケーションのパフォーマンスが大きく向上します。インテル® Itanium® プロセッサもまた、そうした命令をサポートします。

これらの命令を使用する最も直接的な方法は、ソースコード内でインライン・アセンブリ言語命令を使用することです。しかし、これは時間のかかる作業です。また、一部のコンパイラは、アセンブリ言語のインライン・プログラミングに対応していません。そこで、インテルでは、組込み関数と呼ばれるAPI拡張機能セットを使用する方法を用意しました。

組込み関数は、ハードウェア・レジスタを直接操作するのではなく、C の関数呼び出しと C の変数の構文を使用できる、コーディング用の拡張機能です。組込み関数によって、プログラマは、アセンブリ言語のプログラミングとレジスタの管理を行う必要がなくなります。また、コンパイラは、命令のスケジューリングを最適化して、実行ファイルの処理速度を上げられます。

さらに、プログラマは、Itanium プロセッサ向けのネイティブ組込み関数を使用して、C および C++ 言語の標準的な構文では生成できない Itanium 命令を利用できます。また、インテル® C++ コンパイラは、すべての IA-32 プラットフォームおよび Itanium ベースのプラットフォーム上で動作する汎用組込み関数もサポートしています。

組込み関数の詳細については、次の参考資料を参照してください。

『インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、中巻:命令セット・リファレンス』インテル(資料番号243191J)を参照してください。

『Itanium-based Application Developer's Architecture Guide』(インテル)

各インテル・プロセッサの組込み関数への対応

プロセッサ: MMX テクノロジの組込み関数 ストリーミングSIMD拡張命令 ストリーミングSIMD拡張命令2 Itanium プロセッサ命令
Itanium プロセッサ X X N/A X
Pentium 4 プロセッサ 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