次の方法で共有


読み取り操作 (SSE2 浮動小数点組み込み)

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

Microsoft 固有の仕様 →

このトピックのコード例で使用されている構文の詳細については ストリーミング SIMD 拡張子のオーバーフローを使用して浮動小数点組み込み を参照してください。

SSE2 組み込み __m128__m128i とItanium Processor Family) プロセッサでサポートされていない __m128d のデータ型を使用 (IPF) します。 __m64 のデータ型を使う SSE2 組み込みが x64 のプロセッサではサポートされていません。

emmintrin.h のヘッダー ファイルはSSE2 命令の組み込みの宣言が含まれます。

__m128d _mm_load_pd (double *p);

            MOVAPD
          

2 つ倍精度浮動小数点値を読み込みます。 アドレス p が整列するバイトである必要があります。

r0 := p[0]
r1 := p[1]

__m128d _mm_load1_pd (double *p);

            (MOVSD + shuffling)
          

一つの倍精度両方の要素にコピー浮動小数点値を読み込みます。 アドレス p が整列するバイトである必要はありません。

r0 := *p
r1 := *p

__m128d _mm_loadr_pd (double *p);

            (MOVAPD + shuffling)
          

読み込み 2逆順の倍精度浮動小数点値。 アドレス p が整列するバイトである必要があります。

r0 := p[1]
r1 := p[0]

__m128d _mm_loadu_pd (double *p);

            MOVUPD
          

読み込み 2 倍精度浮動小数点値。 アドレス p が整列するバイトである必要はありません。

r0 := p[0]
r1 := p[1]

__m128d _mm_load_sd (double *p);

            MOVSD
          

倍精度浮動小数点値を読み込みます。 の上位倍精度浮動小数点数はゼロに設定されます。 アドレス p が整列するバイトである必要はありません。

r0 := *p
r1 := 0.0

__m128d _mm_loadh_pd (__m128d a, double *p);

            MOVHPD
          

倍精度の上位倍精度浮動小数点値として結果の浮動小数点値を読み込みます。 は下位倍精度浮動小数点値 a から渡されます。 アドレス p が整列するバイトである必要はありません。

r0 := a0
r1 := *p

__m128d _mm_loadl_pd (__m128d a, double *p);

            MOVLPD
          

倍精度下位倍精度浮動小数点値として結果の浮動小数点値を読み込みます。 上の a は倍精度浮動小数点値から渡されます。 アドレス p が整列するバイトである必要はありません。

r0 := *p
r1 := a1

参照

Reference

ストリーミング SIMD 拡張 2 のオーバーフローを使用して浮動小数点メモリと初期化の操作