ストリーミング SIMD 拡張命令 2 (SSE2) に対応した比較演算組み込み関数とその説明を下表に示します。
次の表の組み込み関数名をクリックすると、その組み込み関数の詳細が表示されます。
各組み込み関数演算の結果はレジスターに配置されます。各レジスターに配置される値については、次の表の関数名の詳細で示します。R、R0、R1 〜 R15 は、結果が配置されるレジスターを表します。
SSE2 の組み込み関数のプロトタイプは、ヘッダーファイル emmintrin.h 内にあります。
組み込み関数名 | 操作 | 命令 |
---|---|---|
_mm_cmpeq_epi8 | 等しい | PCMPEQB |
_mm_cmpeq_epi16 | 等しい | PCMPEQW |
_mm_cmpeq_epi32 | 等しい | PCMPEQD |
_mm_cmpgt_epi8 | より大きい | PCMPGTB |
_mm_cmpgt_epi16 | より大きい | PCMPGTW |
_mm_cmpgt_epi32 | より大きい | PCMPGTD |
_mm_cmplt_epi8 | より小さい | PCMPGTBr |
_mm_cmplt_epi16 | より小さい | PCMPGTWr |
_mm_cmplt_epi32 | より小さい | PCMPGTDr |
__m128i _mm_cmpeq_epi8(__m128i a, __m128i b)
a の 16 の符号付きまたは符号なし 8 ビット整数と、b の 16 の符号付きまたは符号なし 8 ビット整数が等しいかどうか比較します。
R0 | R1 | ... | R15 |
---|---|---|---|
(a0 == b0) ? 0xff : 0x0 | (a1 == b1) ? 0xff : 0x0 | ... | (a15 == b15) ? 0xff : 0x0 |
__m128i _mm_cmpeq_epi16(__m128i a, __m128i b)
a の 8 つの符号付きまたは符号なし 16 ビット整数と、b の 8 つの符号付きまたは符号なし 16 ビット整数が等しいかどうか比較します。
R0 | R1 | ... | R7 |
---|---|---|---|
(a0 == b0) ? 0xffff : 0x0 | (a1 == b1) ? 0xffff : 0x0 | ... | (a7 == b7) ? 0xffff : 0x0 |
__m128i _mm_cmpeq_epi32(__m128i a, __m128i b)
a の 4 つの符号付きまたは符号なし 32 ビット整数と、b の 4 つの符号付きまたは符号なし 32 ビット整数が等しいかどうか比較します。
R0 | R1 | R2 | R3 |
---|---|---|---|
(a0 == b0) ? 0xffffffff : 0x0 | (a1 == b1) ? 0xffffffff : 0x0 | (a2 == b2) ? 0xffffffff : 0x0 | (a3 == b3) ? 0xffffffff : 0x0 |
__m128i _mm_cmpgt_epi8(__m128i a, __m128i b)
a の 16 の符号付き 8 ビット整数が、b の 16 の符号付き 8 ビット整数より大きいかどうか比較します。
R0 | R1 | ... | R15 |
---|---|---|---|
(a0 > b0) ? 0xff : 0x0 | (a1 > b1) ? 0xff : 0x0 | ... | (a15 > b15) ? 0xff : 0x0 |
__m128i _mm_cmpgt_epi16(__m128i a, __m128i b)
a の 8 つの符号付き 16 ビット整数が、b の 8 つの符号付き 16 ビット整数より大きいかどうか比較します。
R0 | R1 | ... | R7 |
---|---|---|---|
(a0 > b0) ? 0xffff : 0x0 | (a1 > b1) ? 0xffff : 0x0 | ... | (a7 > b7) ? 0xffff : 0x0 |
__m128i _mm_cmpgt_epi32(__m128i a, __m128i b)
a の 4 つの符号付き 32 ビット整数が、b の 4 つの符号付き 32 ビット整数より大きいかどうか比較します。
R0 | R1 | R2 | R3 |
---|---|---|---|
(a0 > b0) ? 0xffffffff : 0x0 | (a1 > b1) ? 0xffffffff : 0x0 | (a2 > b2) ? 0xffffffff : 0x0 | (a3 > b3) ? 0xffffffff : 0x0 |
__m128i _mm_cmplt_epi8( __m128i a, __m128i b)
a の 16 の符号付き 8 ビット整数が、b の 16 の符号付き 8 ビット整数より小さいかどうか比較します。
R0 | R1 | ... | R15 |
---|---|---|---|
(a0 < b0) ? 0xff : 0x0 | (a1 < b1) ? 0xff : 0x0 | ... | (a15 < b15) ? 0xff : 0x0 |
__m128i _mm_cmplt_epi16( __m128i a, __m128i b)
a の 8 つの符号付き 16 ビット整数が、b の 8 つの符号付き 16 ビット整数より小さいかどうか比較します。
R0 | R1 | ... | R7 |
---|---|---|---|
(a0 < b0) ? 0xffff : 0x0 | (a1 < b1) ? 0xffff : 0x0 | ... | (a7 < b7) ? 0xffff : 0x0 |
__m128i _mm_cmplt_epi32( __m128i a, __m128i b)
a の 4 つの符号付き 32 ビット整数が、b の 4 つの符号付き 32 ビット整数より小さいかどうか比較します。
R0 | R1 | R2 | R3 |
---|---|---|---|
(a0 < b0) ? 0xffffffff : 0x0 | (a1 < b1) ? 0xffffffff : 0x0 | (a2 < b2) ? 0xffffffff : 0x0 | (a3 < b3) ? 0xffffffff : 0x0 |