次の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