組み込みを使用する利点
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]
Microsoft 固有の仕様 →
組み込みを使用する主な利点は従来のコーディング手法を使用しては使用できない主要機能にアクセスできることです :
ストリーミング SIMD 最適の処理の最大 128 ビットの有効 新しい登録 (データの長さ。
1 ビットのレジスタ データの最大 16 個の要素の 新しいデータ型 のパッキング。
新しい登録
新しいレジスタ セット主要な機能はプロセッサのアーキテクチャによって提供されます。
MMX テクノロジの登録
MMX テクノロジの組み込みは 64 ビットである 8 個の新しい MM0 への登録 (MM7) を提供します (0 ~ 63)。
ストリーミング SIMD 拡張 (SSE) およびストリーミング SIMD 拡張 2 個 (SSE2) 命令レジスタ
SSE 命令および SSE2 命令は長さが 128 ビットであるさらに別の 8 種類の登録 (をに XMM7) を使用します。
これらの新しいデータ レジスタはデータ要素の操作を並列実行できます。 各レジスタは複数のデータ要素を保持できるためプロセッサは複数のデータ要素を同時に処理できます。 この処理はストリーミング SIMD の処理です。 C/C++ コンパイラによって処理する SIMD を有効にするには新しいデータ型新しい登録の配置サイズを作成するときに定義されます。
組み込みを使用してアセンブリ言語ではなく C の関数はを呼び出し変数の構文とコーディングすることができます。 新しい拡張機能のセットの計算やデータ操作についてはその直接対応する C の組み込み実装方法があります。 これはマネージ アセンブリの登録とのプログラミングがありません。 さらにコンパイラはスケジュールする方法をより高速に実行できるように最適化します。
新しいデータ型
新しい登録を表す新しい C データ型はこれらの組み込み関数のオペランドとして使用されます。 これらのデータ型は固有拡張の表で使用できる新しいデータ型に示します。
固有拡張に使用できる新しいデータ型
新しいデータ型 |
MMX テクノロジ |
ストリーミング SIMD 拡張子 |
ストリーミング SIMD 拡張命令 2 桁 |
---|---|---|---|
__m64 |
○ |
○ |
○ |
__m128 |
使用できません。 |
○ |
○ |
__m128d |
使用できません。 |
使用できません。 |
○ |
__m128i |
使用できません。 |
使用できません。 |
○ |
__m64 データ型
__m64 のデータ型が組み込み MMX テクノロジで使用されるレジスタとなる MMX レジスタの内容を表すために使用されます。 __m64 のデータ型に 8 個の 8 ビット値4 個の 16 ビット値2 個の 32 ビット値1 個の 64 ビット値を保持できます。
__m128 データ型
コンパイラはスタックの 16 バイト境界に __m128 のローカル データを配置します。 これらの型のグローバル データは配置されたバイトです。
整数浮動配置するにはまたは double 型の配列declspec の 配置を使用できます。
新しい SSE 命令セットを処理するために予期する可能性があります。パックされるように使用するかスカラー データかどうかと同様にスカラーためデータを表す __m32 のデータ型の登録は行いません。 スカラー操作では組み込みの __m128 のオブジェクトとスカラー フォームを使用する必要があります。; コンパイラは32 ビット プロセッサとメモリ参照のこれらの操作を実行します。
新しいデータ型の使用方法のガイドライン
固有拡張の表で使用できる新しいデータ型の一覧を表示する新しいデータ型は基本的な ANSI C データ型ではないため次の制限を確認する必要があります :
戻り値またはパラメーターとして割り当ての左側にのみ新しいデータ型を使用します。 他の算術式で使用できません (」 + 「」など)。
バイトの要素と構造体にアクセスするにはオブジェクトの配列として新しいデータ型を共用体など) を使用します。 __m64 または __m128 のオブジェクトのアドレスが取得されることがあります。
このガイドで説明した各組み込みのに新しいデータ型を使用します。
ハードウェア命令の完全な詳細についてはIntel アーキテクチャ MMX テクノロジ Programmer's Reference " の手動を 参照してください。 データ型の詳細についてはIntel アーキテクチャのソフトウェア開発者の手動 2: 音量を参照してください。 命令セットのリファレンス マニュアル 。