次の表に、変換操作のリストを示します。表の後に、最新のニーモニック命名規則に従って、各組込み関数の説明を示します。これらの組込み関数を以前に使用していた場合に備えて、別名を用意しています。
ストリーミング SIMD 拡張命令の組込み関数のプロトタイプは、ヘッダファイル xmmintrin.h 内にあります。
組込み関数 の名前 |
別名 |
対応する 命令 |
---|---|---|
_mm_cvt_ss2si | _mm_cvtss_si32 | CVTSS2SI |
_mm_cvt_ps2pi | _mm_cvtps_pi32 | CVTPS2PI |
_mm_cvtt_ss2si | _mm_cvttss_si32 | CVTTSS2SI |
_mm_cvtt_ps2pi | _mm_cvttps_pi32 | CVTTPS2PI |
_mm_cvt_si2ss | _mm_cvtsi32_ss | CVTSI2SS |
_mm_cvt_pi2ps | _mm_cvtpi32_ps | CVTTPS2PI |
_mm_cvtpi16_ps | 複合 | |
_mm_cvtpu16_ps | 複合 | |
_mm_cvtpi8_ps | 複合 | |
_mm_cvtpu8_ps | 複合 | |
_mm_cvtpi32x2_ps | 複合 | |
_mm_cvtps_pi16 | 複合 | |
_mm_cvtps_pi8 | 複合 |
int _mm_cvt_ss2si(__m128 a)
現在の丸めモードに従って、a の最下位の単精度浮動小数点値を 32 ビット整数に変換します。
r := (int)a0
__m64 _mm_cvt_ps2pi(__m128 a)
現在の丸めモードに従って、a の下位 2 つの単精度浮動小数点値を 2 つの 32 ビット整数に変換し、パックド形式で返します。
r0 := (int)a0
r1 := (int)a1
int _mm_cvtt_ss2si(__m128 a)
切り捨てを使用して、a の最下位の単精度浮動小数点値を 32 ビット整数に変換します。
r := (int)a0
__m64 _mm_cvtt_ps2pi(__m128 a)
切り捨てを使用して、a の下位 2 つの単精度浮動小数点値を 2 つの 32 ビット整数に変換し、パックド形式で返します。
r0 := (int)a0
r1 := (int)a1
__m128 _mm_cvt_si2ss(__m128, int)
32 ビット整数 b を単精度浮動小数点値に変換します。上位 3 つの単精度浮動小数点値は、a からそのまま渡されます。
r0 := (float)b
r1 := a1 ; r2 := a2 ; r3 := a3
__m128 _mm_cvt_pi2ps(__m128, __m64)
b のパックド形式の 2 つの 32 ビット整数値を、2 つの単精度浮動小数点値に変換します。上位 2 つの単精度浮動小数点値は、a からそのまま渡されます。
r0 := (float)b0
r1 := (float)b1
r2 := a2
r3 := a3
__inline __m128 _mm_cvtpi16_ps(__m64 a)
a の 4 つの符号付き 16 ビット整数値を、4 つの単精度浮動小数点値に変換します。
r0 := (float)a0
r1 := (float)a1
r2 := (float)a2
r3 := (float)a3
__inline __m128 _mm_cvtpu16_ps(__m64 a)
a の 4 つの符号なし 16 ビット整数値を、4 つの単精度浮動小数点値に変換します。
r0 := (float)a0
r1 := (float)a1
r2 := (float)a2
r3 := (float)a3
__inline __m128 _mm_cvtpi8_ps(__m64 a)
a の下位 4 つの符号付き 8 ビット整数値を、4 つの単精度浮動小数点値に変換します。
r0 := (float)a0
r1 := (float)a1
r2 := (float)a2
r3 := (float)a3
__inline __m128 _mm_cvtpu8_ps(__m64 a)
a の下位 4 つの符号なし 8 ビット整数値を、4 つの単精度浮動小数点値に変換します。
r0 := (float)a0
r1 := (float)a1
r2 := (float)a2
r3 := (float)a3
__inline __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b)
a の 2 つの符号付き 32 ビット整数値と b の 2 つの符号付き 32 ビット整数値を、4 つの単精度浮動小数点値に変換します。
r0 := (float)a0
r1 := (float)a1
r2 := (float)b0
r3 := (float)b1
__inline __m64 _mm_cvtps_pi16(__m128 a)
a の 4 つの単精度浮動小数点値を、4 つの符号付き 16 ビット整数値に変換します。
r0 := (short)a0
r1 := (short)a1
r2 := (short)a2
r3 := (short)a3
__inline __m64 _mm_cvtps_pi8(__m128 a)
a の 4 つの単精度浮動小数点値を、結果の下位 4 つの符号付き 8 ビット整数値に変換します。
r0 := (char)a0
r1 := (char)a1
r2 := (char)a2
r3 := (char)a3