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

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

次の単精度浮動小数点ベクトル組込み関数は、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3) 対応インテル® Pentium® 4 プロセッサー用に設計されたものです。

各組込み関数演算の結果は、R0R1R2、および R3 レジスターに配置されます。

これらの組込み関数のプロトタイプは、ヘッダーファイル pmmintrin.h 内にあります。

組込み関数名

演算

対応するインテル® SSE3 命令

_mm_addsub_ps

減算および加算

ADDSUBPS

_mm_hadd_ps

加算

HADDPS

_mm_hsub_ps

減算

HSUBPS

_mm_movehdup_ps

複製

MOVSHDUP

_mm_moveldup_ps

複製

MOVSLDUP

_mm_addsub_ps

extern __m128 _mm_addsub_ps(__m128 a, __m128 b);

奇数ベクトル要素を加え、偶数ベクトル要素を引きます。

R0

R1

R2

R3

a0 - b0;

a1 + b1;

a2 - b2;

a3 + b3;

_mm_hadd_ps

extern __m128 _mm_hadd_ps(__m128 a, __m128 b);

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

R0

R1

R2

R3

a0 + a1;

a2 + a3;

b0 + b1;

b2 + b3;

_mm_hsub_ps

extern __m128 _mm_hsub_ps(__m128 a, __m128 b);

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

R0

R1

R2

R3

a0 - a1;

a2 - a3;

b0 - b1;

b2 - b3;

_mm_movehdup_ps

extern __m128 _mm_movehdup_ps(__m128 a);

奇数ベクトル要素を偶数ベクトル要素へ複製します。

R0

R1

R2

R3

a1;

a1;

a3;

a3;

_mm_moveldup_ps

extern __m128 _mm_moveldup_ps(__m128 a);

偶数ベクトル要素を奇数ベクトル要素へ複製します。

R0

R1

R2

R3

a0;

a0;

a2;

a2;