次の設定操作組み込み関数とそれに対応する命令は、ストリーミング 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 |