ここでは、整数移動操作用のインテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2) の組込み関数について説明します。インテル® SSE2 の組込み関数のプロトタイプは、ヘッダーファイル emmintrin.h 内にあります。
各組込み関数演算の結果はレジスターに配置されます。各レジスターに配置される値については、次の表の関数名の詳細で示します。R、R0、R1、R2、R3 は、結果が配置されるレジスターを表します。
組込み関数名
|
演算子
|
対応するインテル® SSE2 命令
|
_mm_cvtsi32_si128
|
最下位 32 ビットに移動し、上位ビットを 0 に設定する
|
MOVD
|
_mm_cvtsi64_si128
|
最下位 64 ビットに移動し、上位ビットを 0 に設定する
|
MOVQ
|
_mm_cvtsi128_si32
|
最下位 32 ビットを移動する
|
MOVD
|
_mm_cvtsi128_si64
|
最下位 64 ビットを移動する
|
MOVQ
|
__m128i _mm_cvtsi32_si128(int a)
32 ビット整数 a を __m128i オブジェクトの最下位 32 ビットに移動し、
__m128i オブジェクトの上位 96 ビットを 0 に設定します。
R0
|
R1
|
R2
|
R3
|
a
|
0x0
|
0x0
|
0x0
|
__m128i _mm_cvtsi64_si128(__int64 a)
64 ビット整数 a を__m128i オブジェクトの下位 64 ビットに移動し、上位ビットを 0 に設定します。
int _mm_cvtsi128_si32(__m128i a)
a の最下位 32 ビットを、32 ビット整数に移動します。
__int64 _mm_cvtsi128_si64(__m128i a)
a の最下位 64 ビットを、64 ビット整数に移動します。