移動組み込み関数

ここでは、整数移動操作用のインテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2) の組み込み関数について説明します。インテル® SSE2 の組み込み関数のプロトタイプは、ヘッダーファイル emmintrin.h 内にあります。

各組み込み関数演算の結果はレジスターに配置されます。各レジスターに配置される値については、次の表の関数名の詳細で示します。RR0R1R2R3 は、結果が配置されるレジスターを表します。

組み込み関数名

演算子

対応するインテル® SSE2 命令

_mm_cvtsi32_si128

最下位 64 ビットに移動し、上位ビットを 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 に設定します。

R0

R1

a

0x0

 

int _mm_cvtsi128_si32(__m128i a)

a の最下位 32 ビットを、32 ビット整数に移動します。

R

a0

 

__int64 _mm_cvtsi128_si64(__m128i a)

a の最下位 64 ビットを、64 ビット整数に移動します。

R

a0