次の浮動小数点組み込み関数は、ストリーミング SIMD 拡張命令 3 (SSE3) 対応のインテル(R) Pentium(R) 4 プロセッサー用に設計されたものです。
各組み込み関数演算の結果は、R0 レジスターおよび R1 レジスターに配置されます。
次の表の組み込み関数名をクリックすると、その組み込み関数の詳細が表示されます。
これらの組み込み関数のプロトタイプは、ヘッダーファイル pmmintrin.h 内にあります。
組み込み関数名 | 操作 | 対応する SSE3 命令 |
---|---|---|
_mm_addsub_pd | 減算および加算 | ADDSUBPD |
_mm_hadd_pd | 加算 | HADDPD |
_mm_hsub_pd | 減算 | HSUBPD |
_mm_loaddup_pd | 複製 | MOVDDUP |
_mm_movedup_pd | 複製 | MOVDDUP |
extern __m128d _mm_addsub_pd(__m128d a, __m128d b);
下位ベクトル要素を引き、上位ベクトル要素を加えます。
R0 | R1 |
---|---|
a0 - b0; | a1 + b1; |
extern __m128d _mm_hadd_pd(__m128d a, __m128d b);
隣接したベクトル要素を加えます。
R0 | R1 |
---|---|
a0 + a1; | b0 + b1; |
extern __m128d _mm_hsub_pd(__m128d a, __m128d b);
隣接したベクトル要素を引きます。
R0 | R1 |
---|---|
a0 - a1; | b0 - b1; |
extern __m128d _mm_loaddup_pd(double const * dp);
double の値を上位と下位ベクトル要素へ複製します。
R0 | R1 |
---|---|
*dp; | *dp; |
extern __m128d _mm_movedup_pd(__m128d a);
下位ベクトル要素を上位ベクトル要素へ複製します。
R0 | R1 |
---|---|
a0; | a0; |