インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
これらのインテル® ストリーミング SIMD 拡張命令 4 (インテル® SSE4) 組込み関数は、パックド比較を行います。一部の組込み関数は、複数の命令にマップすることができます。インテル® C++ コンパイラーは生成する命令を選択します。
これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
組込み関数名 |
演算 |
対応するインテル® SSE4 命令 |
---|---|---|
_mm_cmpestri |
パックド比較、インデックスの生成 |
PCMPESTRI |
_mm_cmpestrm |
パックド比較、マスクの生成 |
PCMPESTRM |
_mm_cmpistri |
パックド比較、インデックスの生成 |
PCMPISTRI |
_mm_cmpistrm |
パックド比較、マスクの生成 |
PCMPISTRM |
_mm_cmpestrz |
パックド比較 |
PCMPESTRM または PCMPESTRI |
_mm_cmpestrc |
パックド比較 |
PCMPESTRM または PCMPESTRI |
_mm_cmpestrs |
パックド比較 |
PCMPESTRM または PCMPESTRI |
_mm_cmpestro |
パックド比較 |
PCMPESTRM または PCMPESTRI |
_mm_cmpestra |
パックド比較 |
PCMPESTRM または PCMPESTRI |
_mm_cmpistrz |
パックド比較 |
PCMPISTRM または PCMPISTRI |
_mm_cmpistrc |
パックド比較 |
PCMPISTRM または PCMPISTRI |
_mm_cmpistrs |
パックド比較 |
PCMPISTRM または PCMPISTRI |
_mm_cmpistro |
パックド比較 |
PCMPISTRM または PCMPISTRI |
_mm_cmpistra |
パックド比較 |
PCMPISTRM または PCMPISTRI |
int _mm_cmpestri(__m128i src1, int len1, __m128i src2, int len2, const int mode);
明示的な長さを持つ文字列データとパックド比較を行い、インデックスを生成し、結果を ECX に格納します。
__m128i _mm_cmpestrm(__m128i src1, int len1, __m128i src2, int len2, const int mode);
明示的な長さを持つ文字列データのパックド比較を行い、マスクを生成し、結果を XMM0 に格納します。
int _mm_cmpistri(__m128i src1, __m128i src2, const int mode);
暗黙的な長さを持つ文字列データとパックド比較を行い、インデックスを生成し、結果を ECX に格納します。
__m128i _mm_cmpistrm(__m128i src1, __m128i src2, const int mode);
暗黙的な長さを持つ文字列データのパックド比較を行い、マスクを生成し、結果を XMM0 に格納します。
int _mm_cmpestrz(__m128i src1, int len1, __m128i src2, int len2, const int mode);
明示的な長さを持つ文字列データのパックド比較を行います。ZFlag == 1 の場合は '1' を返し、そうでない場合は '0' を返します。
int _mm_cmpestrc(__m128i src1, int len1, __m128i src2, int len2, const int mode);
明示的な長さを持つ文字列データのパックド比較を行います。CFlag == 1 の場合は '1' を返し、そうでない場合は '0' を返します。
int _mm_cmpestrs(__m128i src1, int len1, __m128i src2, int len2, const int mode);
明示的な長さを持つ文字列データのパックド比較を行います。SFlag == 1 の場合は '1' を返し、そうでない場合は '0' を返します。
int _mm_cmpestro(__m128i src1, int len1, __m128i src2, int len2, const int mode);
明示的な長さを持つ文字列データのパックド比較を行います。OFlag == 1 の場合は '1' を返し、そうでない場合は '0' を返します。
int _mm_cmpestra(__m128i src1, int len1, __m128i src2, int len2, const int mode);
明示的な長さを持つ文字列データのパックド比較を行います。CFlag == 0 および ZFlag == 0 の場合は '1' を返し、そうでない場合は '0' を返します。
int _mm_cmpistrz(__m128i src1, __m128i src2, const int mode);
暗黙的な長さを持つ文字列データのパックド比較を行います。(ZFlag == 1) の場合は '1' を返し、そうでない場合は '0' を返します。
int _mm_cmpistrc(__m128i src1, __m128i src2, const int mode);
暗黙的な長さを持つ文字列データのパックド比較を行います。(CFlag == 1) の場合は '1' を返し、そうでない場合は '0' を返します。
int _mm_cmpistrs(__m128i src1, __m128i src2, const int mode);
暗黙的な長さを持つ文字列データのパックド比較を行います。(SFlag == 1) の場合は '1' を返し、そうでない場合は '0' を返します。
int _mm_cmpistro(__m128i src1, __m128i src2, const int mode);
暗黙的な長さを持つ文字列データのパックド比較を行います。(OFlag == 1) の場合は '1' を返し、そうでない場合は '0' を返します。
int _mm_cmpistra(__m128i src1, __m128i src2, const int mode);
暗黙的な長さを持つ文字列データのパックド比較を行います。(ZFlag == 0 および CFlag == 0) の場合は '1' を返し、そうでない場合は '0' を返します。