Intel® C++ Compiler Classic Developer Guide and Reference

ID 767249
Date 7/13/2023
Public
Document Table of Contents

Packed Compare Intrinsics

These Intel® Streaming SIMD Extensions (Intel® SSE4) intrinsics perform packed comparisons. Some of these intrinsics could map to more than one instruction; the Intel® C++ Compiler selects the instruction to generate.

To use these intrinsics, include the immintrin.h file as follows:

#include <immintrin.h>

Intrinsic Name

Operation

Corresponding
Intel® SSE4 Instruction

_mm_cmpestri

Packed comparison, generates index

PCMPESTRI

_mm_cmpestrm

Packed comparison, generates mask

PCMPESTRM

_mm_cmpistri

Packed comparison, generates index

PCMPISTRI

_mm_cmpistrm

Packed comparison, generates mask

PCMPISTRM

_mm_cmpestrz

Packed comparison

PCMPESTRM or PCMPESTRI

_mm_cmpestrc

Packed comparison

PCMPESTRM or PCMPESTRI

_mm_cmpestrs

Packed comparison

PCMPESTRM or PCMPESTRI

_mm_cmpestro

Packed comparison

PCMPESTRM or PCMPESTRI

_mm_cmpestra

Packed comparison

PCMPESTRM or PCMPESTRI

_mm_cmpistrz

Packed comparison

PCMPISTRM orPCMPISTRI

_mm_cmpistrc

Packed comparison

PCMPISTRM or PCMPISTRI

_mm_cmpistrs

Packed comparison

PCMPISTRM or PCMPISTRI

_mm_cmpistro

Packed comparison

PCMPISTRM or PCMPISTRI

_mm_cmpistra

Packed comparison

PCMPISTRM or PCMPISTRI

_mm_cmpestri

int _mm_cmpestri(__m128i src1, int len1, __m128i src2, int len2, const int mode);

Performs a packed comparison of string data with explicit lengths, generating an index and storing the result in ECX.

_mm_cmpestrm

__m128i _mm_cmpestrm(__m128i src1, int len1, __m128i src2, int len2, const int mode);

Performs a packed comparison of string data with explicit lengths, generating a mask and storing the result in XMM0.

_mm_cmpistri

int _mm_cmpistri(__m128i src1, __m128i src2, const int mode);

Performs a packed comparison of string data with implicit lengths, generating an index and storing the result in ECX.

_mm_cmpistrm

__m128i _mm_cmpistrm(__m128i src1, __m128i src2, const int mode);

Performs a packed comparison of string data with implicit lengths, generating a mask and storing the result in XMM0.

_mm_cmpestrz

int _mm_cmpestrz(__m128i src1, int len1, __m128i src2, int len2, const int mode);

Performs a packed comparison of string data with explicit lengths. Returns '1' if ZFlag == 1, otherwise '0'.

_mm_cmpestrc

int _mm_cmpestrc(__m128i src1, int len1, __m128i src2, int len2, const int mode);

Performs a packed comparison of string data with explicit lengths. Returns '1' if CFlag == 1, otherwise '0'.

_mm_cmpestrs

int _mm_cmpestrs(__m128i src1, int len1, __m128i src2, int len2, const int mode);

Performs a packed comparison of string data with explicit lengths. Returns '1' if SFlag == 1, otherwise '0'.

_mm_cmpestro

int _mm_cmpestro(__m128i src1, int len1, __m128i src2, int len2, const int mode);

Performs a packed comparison of string data with explicit lengths. Returns '1' if OFlag == 1, otherwise '0'.

_mm_cmpestra

int _mm_cmpestra(__m128i src1, int len1, __m128i src2, int len2, const int mode);

Performs a packed comparison of string data with explicit lengths. Returns '1' if CFlag == 0 and ZFlag == 0, otherwise '0'.

_mm_cmpistrz

int _mm_cmpistrz(__m128i src1, __m128i src2, const int mode);

Performs a packed comparison of string data with implicit lengths. Returns '1' if (ZFlag == 1), otherwise '0'.

_mm_cmpistrc

int _mm_cmpistrc(__m128i src1, __m128i src2, const int mode);

Performs a packed comparison of string data with implicit lengths. Returns '1' if (CFlag == 1), otherwise '0'.

_mm_cmpistrs

int _mm_cmpistrs(__m128i src1, __m128i src2, const int mode);

Performs a packed comparison of string data with implicit lengths. Returns '1' if (SFlag == 1), otherwise '0'.

_mm_cmpistro

int _mm_cmpistro(__m128i src1, __m128i src2, const int mode);

Performs a packed comparison of string data with implicit lengths. Returns '1' if (OFlag == 1), otherwise '0'.

_mm_cmpistra

int _mm_cmpistra(__m128i src1, __m128i src2, const int mode);

Performs a packed comparison of string data with implicit lengths. Returns '1' if (ZFlag == 0 and CFlag == 0), otherwise '0'.