ストリーミング SIMD 拡張命令 2 の浮動小数点算術演算

次の表に、ストリーミング SIMD 拡張命令 2 (SSE2) の算術演算組込み関数のリストを示します。SSE2 の組込み関数のプロトタイプは、ヘッダファイル emmintrin.h 内にあります。

組込み関数
対応する
命令
操作 R0 の値
R1 の値
_mm_add_sd ADDSD 加算 a0 [op] b0 a1
_mm_add_pd ADDPD 加算 a0 [op] b0 a1 [op] b1
_mm_sub_sd SUBSD 減算 a0 [op] b0 a1
_mm_sub_pd SUBPD 減算 a0 [op] b0 a1 [op] b1
_mm_mul_sd MULSD 乗算 a0 [op] b0 a1
_mm_mul_pd MULPD 乗算 a0 [op] b0 a1 [op] b1
_mm_div_sd DIVSD 除算 a0 [op] b0 a1
_mm_div_pd DIVPD 除算 a0 [op] b0 a1 [op] b1
_mm_sqrt_sd SQRTSD 平方根の計算 a0 [op] b0 a1
_mm_sqrt_pd SQRTPD 平方根の計算 a0 [op] b0 a1 [op] b1
_mm_min_sd MINSD 最小値の計算 a0 [op] b0 a1
_mm_min_pd MINPD 最小値の計算 a0 [op] b0 a1 [op] b1
_mm_max_sd MAXSD 最大値の計算 a0 [op] b0 a1
_mm_max_pd MAXPD 最大値の計算 a0 [op] b0 a1 [op] b1

__m128d _mm_add_sd(__m128d a, __m128d b)

ab の下位の倍精度浮動小数点値を加算します。上位の倍精度浮動小数点値は、a からそのまま渡されます。
r0 := a0 + b0
r1 := a1

__m128d _mm_add_pd(__m128d a, __m128d b)

ab の 2 つの倍精度浮動小数点値を加算します。
r0 := a0 + b0
r1 := a1 + b1

__m128d _mm_sub_sd(__m128d a, __m128d b)

a の下位の倍精度浮動小数点値から、b の下位の倍精度浮動小数点値を引きます。上位の倍精度浮動小数点値は、a からそのまま渡されます。
r0 := a0 - b0
r1 := a1

__m128d _mm_sub_pd(__m128d a, __m128d b)

a の 2 つの倍精度浮動小数点値から、b の 2 つの倍精度浮動小数点値を引きます。
r0 := a0 - b0
r1 := a1 - b1

__m128d _mm_mul_sd(__m128d a, __m128d b)

ab の下位の倍精度浮動小数点値を乗算します。上位の倍精度浮動小数点値は、a からそのまま渡されます。
r0 := a0 * b0
r1 := a1

__m128d _mm_mul_pd(__m128d a, __m128d b)

ab の 2 つの倍精度浮動小数点値を乗算します。
r0 := a0 * b0
r1 := a1 * b1

__m128d _mm_div_sd(__m128d a, __m128d b)

a の下位の倍精度浮動小数点値を、b の下位の倍精度浮動小数点値で割ります。上位の倍精度浮動小数点値は、a からそのまま渡されます。
r0 := a0 / b0
r1 := a1

__m128d _mm_div_pd(__m128d a, __m128d b)

a の 2 つの倍精度浮動小数点値を、b の 2 つの倍精度浮動小数点値で割ります。
r0 := a0 / b0
r1 := a1 / b1

__m128d _mm_sqrt_sd(__m128d a, __m128d b)

b の下位の倍精度浮動小数点値の平方根を計算します。上位の倍精度浮動小数点値は、a からそのまま渡されます。
r0 := sqrt(b0)
r1 := a1

__m128d _mm_sqrt_pd(__m128d a)

a の 2 つの倍精度浮動小数点値の平方根を計算します。
r0 := sqrt(a0)
r1 := sqrt(a1)

__m128d _mm_min_sd(__m128d a, __m128d b)

ab の下位の倍精度浮動小数点値について、小さい方の値を計算します。上位の倍精度浮動小数点値は、a からそのまま渡されます。
r0 := min (a0, b0)
r1 := a1

__m128d _mm_min_pd(__m128d a, __m128d b)

ab の 2 つの倍精度浮動小数点値について、それぞれ小さい方の値を計算します。
r0 := min(a0, b0)
r1 := min(a1, b1)

__m128d _mm_max_sd(__m128d a, __m128d b)

ab の下位の倍精度浮動小数点値について、大きい方の値を計算します。上位の倍精度浮動小数点値は、a からそのまま渡されます。
r0 := max (a0, b0)
r1 := a1

__m128d _mm_max_pd(__m128d a, __m128d b)

ab の 2 つの倍精度浮動小数点値について、それぞれ大きい方の値を計算します。
r0 := max(a0, b0)
r1 := max(a1, b1)