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

次の表に、ストリーミング SIMD 拡張命令 2の算術演算組込み関数のリストを示します。表の後に、各組込み関数の説明を示します。

ストリーミングSIMD拡張命令2の組込み関数のプロトタイプは、ヘッダ・ファイル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)