ストリーミング SIMD 拡張命令 2 の整数変換操作

次の変換組み込み関数とそれに対応する命令は、ストリーミング SIMD 拡張命令 2 (SSE2) をサポートするプロセッサー上で有効です。

次の表の組み込み関数名をクリックすると、その組み込み関数の詳細が表示されます。

各組み込み関数演算の結果はレジスターに配置されます。各レジスターに配置される値については、次の表の関数名の詳細で示します。R、R0、R1、R2、R3 は、結果が配置されるレジスターを表します。

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

組み込み関数名 操作 命令

_mm_cvtsi64_sd

64 ビット整数値から倍精度浮動小数点値に変換し、上位の倍精度浮動小数点値はそのまま渡す CVTSI2SD
_mm_cvtsd_si64 丸めモードに従って変換する CVTSD2SI
_mm_cvttsd_si64 切り捨てを使用して変換する CVTTSD2SI
_mm_cvtepi32_ps 単精度浮動小数点値に変換する なし
_mm_cvtps_epi32 単精度浮動小数点値から変換する なし
_mm_cvttps_epi32 切り捨てを使用して単精度浮動小数点値から変換する なし

 

__m128d _mm_cvtsi64_sd(__m128d a, __int64 b)

b の符号付き 64 ビット整数値を倍精度浮動小数点値に変換します。a の上位の倍精度浮動小数点値はそのまま渡されます。

R0 R1
(double)b a1

 

__int64 _mm_cvtsd_si64(__m128d a)

現在の丸めモードに従って、a の下位の倍精度浮動小数点値を符号付き 64 ビット整数値に変換します。

R
(__int64) a0

 

__int64 _mm_cvttsd_si64(__m128d a)

切り捨てを使用して、a の下位の倍精度浮動小数点値を符号付き 64 ビット整数値に変換します。

R
(__int64) a0

 

__m128 _mm_cvtepi32_ps(__m128i a)

a の 4 つの符号付き 32 ビット整数値を単精度浮動小数点値に変換します。

R0 R1 R2 R3
(float) a0 (float) a1 (float) a2 (float) a3

 

__m128i _mm_cvtps_epi32(__m128 a)

a の 4 つの単精度浮動小数点値を符号付き 32 ビット整数値に変換します。

R0 R1 R2 R3
(int) a0 (int) a1 (int) a2 (int) a3

 

__m128i _mm_cvttps_epi32(__m128 a)

切り捨てを使用して、a の 4 つの単精度浮動小数点値を符号付き 32 ビット整数値に変換します。

R0 R1 R2 R3
(int) a0 (int) a1 (int) a2 (int) a3