インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
ここでは、整数移動操作用のインテル® ストリーミング 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 に設定します。
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 |