ストリーミング SIMD 拡張命令 3 を使用する倍精度浮動小数点ベクトル組み込み関数

次の浮動小数点組み込み関数は、ストリーミング 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;