Visible to Intel only — GUID: GUID-8BF984F1-B22D-47F3-BFE8-4FB9F85B5C66
Visible to Intel only — GUID: GUID-8BF984F1-B22D-47F3-BFE8-4FB9F85B5C66
Application Targeted Accelerators Intrinsics
These Intel® Streaming SIMD Extensions (Intel® SSE4) intrinsics extend the capabilities of Intel® architectures by adding performance-optimized, low-latency, lower power fixed-function accelerators on the processor die to benefit specific applications.
To use these intrinsics, include the immintrin.h file as follows:
#include <immintrin.h>
Intrinsics marked with * are implemented only on Intel® 64 architecture. The rest of the intrinsics are implemented on both IA-32 and Intel® 64 architectures.
Intrinsic Name |
Operation |
Corresponding |
---|---|---|
_mm_popcnt_u32 |
Counts number of set bits in a data operation |
POPCNT |
_mm_popcnt_u64* |
Counts number of set bits in a data operation |
POPCNT |
_mm_crc32_u8 |
Accumulates cyclic redundancy check |
CRC32 |
_mm_crc32_u16 |
Performs cyclic redundancy check |
CRC32 |
_mm_crc32_u32 |
Performs cyclic redundancy check |
CRC32 |
_mm_crc32_u64* |
Performs cyclic redundancy check |
CRC32 |
_mm_popcnt_u32
unsigned int _mm_popcnt_u32(unsigned int v);
Counts the number of set bits in a data operation.
_mm_popcnt_u64
__int64 _mm_popcnt_u64(unsigned __int64 v);
Counts the number of set bits in a data operation.
Use only on Intel® 64 architecture.
_mm_crc32_u8
unsigned int _mm_crc32_u8(unsigned int crc, unsigned char v);
Starting with initial value in the first operand, accumulates CRC32 value for the second operand and stores the result in the destination operand. Accumulates CRC32 on r/m8.
_mm_crc32_u16
unsigned int _mm_crc32_u16(unsigned int crc, unsigned short v);
Starting with initial value in the first operand, accumulates CRC32 value for the second operand and stores the result in the destination operand. Accumulates CRC32 on r/m16.
_mm_crc32_u32
unsigned int _mm_crc32_u32(unsigned int crc, unsigned int v);
Starting with initial value in the first operand, accumulates CRC32 value for the second operand and stores the result in the destination operand. Accumulates CRC32 on r/m32.
_mm_crc32_u64
unsigned __int64 _mm_crc32_u64(unsigned __int64 crc, unsigned __int64 v);
Starting with initial value in the first operand, accumulates CRC32 value for the second operand and stores the result in the destination operand. Accumulates CRC32 on r/m64.
Use only on Intel® 64 architecture.