次の浮動小数点組み込み関数は、ストリーミング SIMD 拡張命令 3 (SSE3) 対応のインテル(R) Pentium(R) 4 プロセッサー用に設計されたものです。
各組み込み関数演算の結果は、R0、R1、R2、および R3 レジスターに配置されます。
次の表の組み込み関数名をクリックすると、その組み込み関数の詳細が表示されます。
これらの組み込み関数のプロトタイプは、ヘッダーファイル pmmintrin.h 内にあります。
組み込み関数名 | 操作 | 対応する SSE3 命令 |
---|---|---|
_mm_addsub_ps | 減算および加算 | ADDSUBPS |
_mm_hadd_ps | 加算 | HADDPS |
_mm_hsub_ps | 減算 | HSUBPS |
_mm_movehdup_ps | 複製 | MOVSHDUP |
_mm_moveldup_ps | 複製 | MOVSLDUP |
extern __m128 _mm_addsub_ps(__m128 a, __m128 b);
奇数ベクトル要素を加え、偶数ベクトル要素を引きます。
R0 | R1 | R2 | R3 |
---|---|---|---|
a0 - b0; | a1 + b1; | a2 - b2; | a3 + b3; |
extern __m128 _mm_hadd_ps(__m128 a, __m128 b);
隣接したベクトル要素を加えます。
R0 | R1 | R2 | R3 |
---|---|---|---|
a0 + a1; | a2 + a3; | b0 + b1; | b2 + b3; |
extern __m128 _mm_hsub_ps(__m128 a, __m128 b);
隣接したベクトル要素を引きます。
R0 | R1 | R2 | R3 |
---|---|---|---|
a0 - a1; | a2 - a3; | b0 - b1; | b2 - b3; |
extern __m128 _mm_movehdup_ps(__m128 a);
奇数ベクトル要素を偶数ベクトル要素へ複製します。
R0 | R1 | R2 | R3 |
---|---|---|---|
a1; | a1; | a3; | a3; |
extern __m128 _mm_moveldup_ps(__m128 a);
偶数ベクトル要素を奇数ベクトル要素へ複製します。
R0 | R1 | R2 | R3 |
---|---|---|---|
a0; | a0; | a2; | a2; |