基本的な規則

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]

Microsoft 固有の仕様 →

組み込みは次の構文表記規則を使用して :

_mm_<intrin_op>_<suffix>

組み込みの基本操作を <intrin_op> ことを示す場合は (たとえば追加の add と減算の sub) と <suffix> は命令で処理できるデータの種類が表示されます。 各サフィックスの最初の文字はデータがパックされるかどうか ()p 拡張パックされる EP()またはスカラー ()s 表示します。

残りの文字は型を表示します :

  • s
    単精度の浮動小数点

  • d
    倍精度浮動小数点

  • i128
    符号付き 128 ビット整数

  • i64
    符号付き 64 ビット整数

  • u64
    符号なし 64 ビット整数

  • i32
    符号付き 32 ビット整数

  • u32
    符号なし 32 ビット整数

  • i16
    符号付き 16 ビット整数

  • u16
    符号なし 16 ビット整数

  • i8
    符号付き 8 ビット整数

  • u8
    符号なし 8 ビット整数

スカラー値はパックされた操作に使用される小さい値で右から左の順序で表されます。 次の例の操作を検討します :

double a[2] = {1.0, 2.0};
__m128d t = _mm_load_pd(a);

結果は次のいずれかと同じです :

__m128d t = _mm_set_pd(2.0, 1.0);
__m128d t = _mm_setr_pd(1.0, 2.0);

つまりt 値を保持する xmm の登録は次のようになります。:

XMM register グラフィック

スカラー要素は 1.0 です。 命令の種類ではいくつかの組み込みは引数が定数整数リテラル immediates () である必要があります。

基本的な構文

次に組み込みの構文です :

            data_type intrinsic_name (parameters)
          

data_type があり戻り値のデータ型 (void がint__m64 __m128 __m128dまたは __m128i なり無効 _mm_empty の主な場合のみ)(intrinsic_name 使用できる) C/C++ コードの実効命令をインライン展開はなく名前の関数と同様に動作して組み込まれています。

各セクションの表は主な名前と対応する方法を示します。 組み込みのプロトタイプと組み込みの詳細については対応する命令は各テーブルに従います。

終了 Microsoft 固有の仕様→

参照

Reference

新しい順序、および拡張機能の Intel の概要