インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
これらのインテル® ストリーミング SIMD 拡張命令 4 (インテル® SSE4) 組込み関数は、プロセッサー・ダイ上のパフォーマンスが最適化された、低レイテンシーで、低電圧の固定機能アクセラレーターを追加することにより、インテル® アーキテクチャー機能を拡張しています。これは、特定のアプリケーションに利点をもたらします。
これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
* が付いている組込み関数は、インテル® 64 アーキテクチャーのみに実装されます。残りの組込み関数は、IA-32 アーキテクチャーおよびインテル® 64 アーキテクチャーの両方に実装されます。
組込み関数名 |
演算 |
対応するインテル® SSE4 命令 |
---|---|---|
_mm_popcnt_u32 |
データ操作のセットビット数をカウントします。 |
POPCNT |
_mm_popcnt_u64* |
データ操作のセットビット数をカウントします。 |
POPCNT |
_mm_crc32_u8 |
巡回冗長検査を累積します。 |
CRC32 |
_mm_crc32_u16 |
巡回冗長検査を行います。 |
CRC32 |
_mm_crc32_u32 |
巡回冗長検査を行います。 |
CRC32 |
_mm_crc32_u64* |
巡回冗長検査を行います。 |
CRC32 |
unsigned int _mm_popcnt_u32(unsigned int v);
データ操作のセットビット数をカウントします。
__int64 _mm_popcnt_u64(unsigned __int64 v);
データ操作のセットビット数をカウントします。
インテル® 64 アーキテクチャーのみで使用します。
unsigned int _mm_crc32_u8(unsigned int crc, unsigned char v);
第 1 オペランドの最初の値から開始し、第 2 オペランドの CRC32 値を累積して、その結果をデスティネーション・オペランドに格納します。CRC32 を r/m8 に累積します。
unsigned int _mm_crc32_u16(unsigned int crc, unsigned short v);
第 1 オペランドの最初の値から開始し、第 2 オペランドの CRC32 値を累積して、その結果をデスティネーション・オペランドに格納します。CRC32 を r/m16 に累積します。
unsigned int _mm_crc32_u32(unsigned int crc, unsigned int v);
第 1 オペランドの最初の値から開始し、第 2 オペランドの CRC32 値を累積して、その結果をデスティネーション・オペランドに格納します。CRC32 を r/m32 に累積します。
unsigned __int64 _mm_crc32_u64(unsigned __int64 crc, unsigned __int64 v);
第 1 オペランドの最初の値から開始し、第 2 オペランドの CRC32 値を累積して、その結果をデスティネーション・オペランドに格納します。CRC32 を r/m64 に累積します。
インテル® 64 アーキテクチャーのみで使用します。