インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

倍精度浮動小数点ベクトル組込み関数

次の倍精度浮動小数点組込み関数は、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3) 対応インテル® Pentium® 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

_mm_addsub_pd

extern __m128d _mm_addsub_pd(__m128d a, __m128d b);

下位ベクトル要素を引き、上位ベクトル要素を加えます。

R0

R1

a0 - b0;

a1 + b1;

_mm_hadd_pd

extern __m128d _mm_hadd_pd(__m128d a, __m128d b);

隣接したベクトル要素を加えます。

R0

R1

a0 + a1;

b0 + b1;

_mm_hsub_pd

extern __m128d _mm_hsub_pd(__m128d a, __m128d b);

隣接したベクトル要素を引きます。

R0

R1

a0 - a1;

b0 - b1;

_mm_loaddup_pd

extern __m128d _mm_loaddup_pd(double const * dp);

double の値を上位と下位ベクトル要素へ複製します。

R0

R1

*dp;

*dp;

_mm_movedup_pd

extern __m128d _mm_movedup_pd(__m128d a);

下位ベクトル要素を上位ベクトル要素へ複製します。

R0

R1

a0;

a0;