次の 2 つの変換組込み関数とそれに対応する命令は、ストリーミング SIMD 拡張命令 2 をサポートするプロセッサ上で有効です。
ストリーミング SIMD 拡張命令 2 の組込み関数のプロトタイプは、ヘッダファイル emmintrin.h 内にあります。
__m128i _mm_cvtsi32_si128(int a)
(MOVD を使用) 32 ビット整数 a を __m128i オブジェクトの最下位 32 ビットに移動し、a の符号ビットを __m128i オブジェクトの上位 96 ビットにコピーします。
r0 := a
r1 := 0x0 ; r2 := 0x0 ; r3 := 0x0
int _mm_cvtsi128_si32(__m128i a)
(MOVD を使用) a の最下位 32 ビットを、32 ビット整数に移動します。
r := a0
__m128 _mm_cvtepi32_ps(__m128i a)
a の 4 つの符号付き 32 ビット整数値を単精度浮動小数点値に変換します。
r0 := (float) a0
r1 := (float) a1
r2 := (float) a2
r3 := (float) a3
__m128i _mm_cvtps_epi32(__m128 a)
a の 4 つの単精度浮動小数点値を符号付き 32 ビット整数値に変換します。
r0 := (int) a0
r1 := (int) a1
r2 := (int) a2
r3 := (int) a3
__m128i _mm_cvttps_epi32(__m128 a)
切り捨てを使用して、a の 4 つの単精度浮動小数点値を符号付き 32 ビット整数値に変換します。
r0 := (int) a0
r1 := (int) a1
r2 := (int) a2
r3 := (int) a3