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

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