インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

アプリケーション固有アクセラレーター組込み関数

これらのインテル® ストリーミング SIMD 拡張命令 4 (インテル® SSE4) 組込み関数は、プロセッサー・ダイ上のパフォーマンスが最適化された、低レイテンシーで、低電圧の固定機能アクセラレーターを追加することにより、インテル® アーキテクチャー機能を拡張しています。これは、特定のアプリケーションに利点をもたらします。

アプリケーション固有アクセラレーター組込み関数のプロトタイプは、nmmintrin.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

_mm_popcnt_u32

unsigned int _mm_popcnt_u32(unsigned int v);

データ操作のセットビット数をカウントします。

_mm_popcnt_u64

__int64 _mm_popcnt_u64(unsigned __int64 v);

データ操作のセットビット数をカウントします。

インテル® 64 アーキテクチャーのみで使用します。

_mm_crc32_u8

unsigned int _mm_crc32_u8(unsigned int crc, unsigned char v);

第 1 オペランドの最初の値から開始し、第 2 オペランドの CRC32 値を累積して、その結果をデスティネーション・オペランドに格納します。CRC32 を r/m8 に累積します。

_mm_crc32_u16

unsigned int _mm_crc32_u16(unsigned int crc, unsigned short v);

第 1 オペランドの最初の値から開始し、第 2 オペランドの CRC32 値を累積して、その結果をデスティネーション・オペランドに格納します。CRC32 を r/m16 に累積します。

_mm_crc32_u32

unsigned int _mm_crc32_u32(unsigned int crc, unsigned int v);

第 1 オペランドの最初の値から開始し、第 2 オペランドの CRC32 値を累積して、その結果をデスティネーション・オペランドに格納します。CRC32 を r/m32 に累積します。

_mm_crc32_u64

unsigned __int64 _mm_crc32_u64(unsigned __int64 crc, unsigned __int64 v);

第 1 オペランドの最初の値から開始し、第 2 オペランドの CRC32 値を累積して、その結果をデスティネーション・オペランドに格納します。CRC32 を r/m64 に累積します。

インテル® 64 アーキテクチャーのみで使用します。