インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
ここでは、整数設定操作用のインテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2) の組込み関数について説明します。これらの組込み関数は、2 つ以上の命令で実行するため、"複合組込み関数" と呼ばれます。インテル® SSE2 の組込み関数のプロトタイプは、ヘッダーファイル emmintrin.h 内にあります。
各組込み関数演算の結果はレジスターに配置されます。各レジスターに配置される値については、次の表の関数名の詳細で示します。R、R0、R1、... R15 は、結果が配置されるレジスターを表します。
組込み関数名 |
演算 |
対応するインテル® SSE2 命令 |
---|---|---|
_mm_set_epi64 |
2 つの整数値の設定 |
複合 |
_mm_set_epi64x |
2 つの整数値の設定 |
複合 |
_mm_set_epi32 |
4 つの整数値の設定 |
複合 |
_mm_set_epi16 |
8 つの整数値の設定 |
複合 |
_mm_set_epi8 |
16 の整数値の設定 |
複合 |
_mm_set1_epi64 |
2 つの整数値の設定 |
複合 |
_mm_set1_epi64x |
2 つの整数値の設定 |
複合 |
_mm_set1_epi32 |
4 つの整数値の設定 |
複合 |
_mm_set1_epi16 |
8 つの整数値の設定 |
複合 |
_mm_set1_epi8 |
16 の整数値の設定 |
複合 |
_mm_setr_epi64 |
2 つの整数値を逆順で設定 |
複合 |
_mm_setr_epi32 |
4 つの整数値を逆順で設定 |
複合 |
_mm_setr_epi16 |
8 つの整数値を逆順で設定 |
複合 |
_mm_setr_epi8 |
16 の整数値を逆順で設定 |
複合 |
_mm_setzero_si128 |
0 に設定 |
複合 |
__m128i _mm_set_epi64(__m64 q1, __m64 q0);
2 つの 64 ビット整数値を設定します。
R0 |
R1 |
---|---|
q0 |
q1 |
__m128i _mm_set_epi64x(__int64 b, __int64 a);
2 つの 64 ビット整数値を設定します。
R0 |
R1 |
---|---|
a |
b |
__m128i _mm_set_epi32(int i3, int i2, int i1, int i0);
4 つの符号付き 32 ビット整数値を設定します。
R0 |
R1 |
R2 |
R3 |
---|---|---|---|
i0 |
i1 |
i2 |
i3 |
__m128i _mm_set_epi16(short w7, short w6, short w5, short w4, short w3, short w2, short w1, short w0);
8 つの符号付き 16 ビット整数値を設定します。
R0 |
R1 |
... |
R7 |
---|---|---|---|
w0 |
w1 |
... |
w7 |
__m128i _mm_set_epi8(char b15, char b14, char b13, char b12, char b11, char b10, char b9, char b8, char b7, char b6, char b5, char b4, char b3, char b2, char b1, char b0);
16 の符号付き 8 ビット整数値を設定します。
R0 |
R1 |
... |
R15 |
---|---|---|---|
b0 |
b1 |
... |
b15 |
__m128i _mm_set1_epi64(__m64 q);
2 つの 64 ビット整数値を q に設定します。
R0 |
R1 |
---|---|
q |
q |
__m128i _mm_set1_epi64x(__int64 a);
2 つの 64 ビット整数値を a に設定します。
R0 |
R1 |
---|---|
a |
a |
__m128i _mm_set1_epi32(int i);
4 つの符号付き 32 ビット整数値を i に設定します。
R0 |
R1 |
R2 |
R3 |
---|---|---|---|
i |
i |
i |
i |
__m128i _mm_set1_epi16(short w);
8 つの符号付き 16 ビット整数値を w に設定します。
R0 |
R1 |
... |
R7 |
---|---|---|---|
w |
w |
w |
w |
__m128i _mm_set1_epi8(char b);
16 の符号付き 8 ビット整数値を b に設定します。
R0 |
R1 |
... |
R15 |
---|---|---|---|
b |
b |
b |
b |
__m128i _mm_setr_epi64(__m64 q0, __m64 q1);
2 つの 64 ビット整数値を逆順で設定します。
R0 |
R1 |
---|---|
q0 |
q1 |
__m128i _mm_setr_epi32(int i0, int i1, int i2, int i3);
4 つの符号付き 32 ビット整数値を逆順で設定します。
R0 |
R1 |
R2 |
R3 |
---|---|---|---|
i0 |
i1 |
i2 |
i3 |
__m128i _mm_setr_epi16(short w0, short w1, short w2, short w3, short w4, short w5, short w6, short w7);
8 つの符号付き 16 ビット整数値を逆順で設定します。
R0 |
R1 |
... |
R7 |
---|---|---|---|
w0 |
w1 |
... |
w7 |
__m128i _mm_setr_epi8(char b0, char b1, char b2, char b3, char b4, char b5, char b6, char b7, char b8, char b9, char b10, char b11, char b12, char b13, char b14, char b15);
16 の符号付き 8 ビット整数値を逆順で設定します。
R0 |
R1 |
... |
R15 |
---|---|---|---|
b0 |
b1 |
... |
b15 |
__m128i _mm_setzero_si128();
128 ビット値を 0 に設定します。
R |
---|
0x0 |