インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

移動組込み関数

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

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

組込み関数名

演算

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

_mm_cvtsi32_si128

最下位 32 ビットに移動し、上位ビットを 0 に設定する

MOVD

_mm_cvtsi64_si128

最下位 64 ビットに移動し、上位ビットを 0 に設定する

MOVQ

_mm_cvtsi128_si32

最下位 32 ビットを移動する

MOVD

_mm_cvtsi128_si64

最下位 64 ビットを移動する

MOVQ

_mm_cvtsi32_si128

__m128i _mm_cvtsi32_si128(int a);

32 ビット整数 a__m128i オブジェクトの最下位 32 ビットに移動し、__m128i オブジェクトの上位 96 ビットを 0 に設定します。

R0

R1

R2

R3

a

0x0

0x0

0x0

_mm_cvtsi64_si128

__m128i _mm_cvtsi64_si128(__int64 a);

64 ビット整数 a__m128i オブジェクトの下位 64 ビットに移動し、上位ビットを 0 に設定します。

R0

R1

a

0x0

_mm_cvtsi128_si32

int _mm_cvtsi128_si32(__m128i a);

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

R

a0

_mm_cvtsi128_si64

__int64 _mm_cvtsi128_si64(__m128i a);

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

R

a0