ストリーミング SIMD 拡張命令 2 の浮動小数点設定操作

次の設定操作組み込み関数とそれに対応する命令は、ストリーミング SIMD 拡張命令 2 (SSE2) をサポートするプロセッサー上で有効です。

ロード組み込み関数と設定組み込み関数はよく似ており、いずれも __m128d 型のデータを初期化します。しかし、設定組み込み関数は、データを定数で初期化するための関数で、double 引数を使用します。ロード組み込み関数は、メモリーからデータをロードする命令を模倣するための関数で、double ポインター引数を使用します。

次の表の組み込み関数名をクリックすると、その組み込み関数の詳細が表示されます。

各組み込み関数演算の結果はレジスターに配置されます。各レジスターに配置される値については、次の表の関数名の詳細で示します。R0 および R1 は、結果が配置されるレジスターを表します。

SSE2 の組み込み関数のプロトタイプは、ヘッダーファイル emmintrin.h 内にあります。

組み込み関数名 操作 対応する SSE2 命令
_mm_set_sd 下位の倍精度浮動小数点値を w に設定し、上位の倍精度浮動小数点値を 0 に設定する 複合
_mm_set1_pd 2 つの倍精度浮動小数点値を w に設定する 複合
_mm_set_pd 下位の倍精度浮動小数点値を x に設定し、上位の倍精度浮動小数点値を w に設定する 複合
_mm_setr_pd 下位の倍精度浮動小数点値を w に設定し、上位の倍精度浮動小数点値を x に設定する 複合
_mm_setzero_pd 2 つの倍精度浮動小数点値を 0 に設定する XORPD
_mm_move_sd 下位の倍精度浮動小数点値を、b の下位の倍精度浮動小数点値に設定します。 MOVSD

 

__m128d _mm_set_sd(double w)

下位の倍精度浮動小数点値を w に設定し、上位の倍精度浮動小数点値を 0 に設定します。

R0 R1
w 0.0

 

__m128d _mm_set1_pd(double w)

2 つの倍精度浮動小数点値を w に設定します。

R0 R1
w w

 

__m128d _mm_set_pd(double w, double x)

下位の倍精度浮動小数点値を x に設定し、上位の倍精度浮動小数点値を w に設定します。

R0 R1
x w

 

__m128d _mm_setr_pd(double w, double x)

下位の倍精度浮動小数点値を w に設定し、上位の倍精度浮動小数点値を x に設定します。
r0 := w
r1 := x

R0 R1
w x

 

__m128d _mm_setzero_pd(void)

2 つの倍精度浮動小数点値を 0 に設定します。

R0 R1
0.0 0.0

 

__m128d _mm_move_sd( __m128d a, __m128d b)

下位の倍精度浮動小数点値を、b の下位の倍精度浮動小数点値に設定します。上位の倍精度浮動小数点値は、a からそのまま渡されます。

R0 R1
b0 a1