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

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) VPOPCNTDQ Instructions 命令の組込み関数

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) VPOPCNTDQ 命令の組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、

これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。

#include <immintrin.h>


_mm512_popcnt_epi32

__mm512i _mm512_popcnt_epi32 (__m512i a)
変数 定義
a ソースベクトル

命令: vpopcntd zmm1, zmm2

a の各ダブルワード要素で 1 に設定されているビットの数をカウントして、結果の対応する要素に配置します。



_mm512_mask_popcnt_epi32

__mm512i _mm512_mask_popcnt_epi32 (__m512 b, __mmask16 k, __m512i a)
変数 定義
a ソースベクトル
b 2 つ目のソースベクトル
k セレクターとして使用されるマスク

命令: vpopcntd zmm1 {k}, zmm2

マスク k を使用して a の各ダブルワード要素で 1 に設定されているビットの数をカウントして、結果の対応する要素に配置します。マスクの対応するビットが設定されていない場合は b の要素がコピーされます。



_mm512_maskz_popcnt_epi32

__mm512i _mm512_maskz_popcnt_epi32 (__mmask16 k, __m512i a)
変数 定義
a ソースベクトル
k セレクターとして使用されるマスク

命令: vpopcntd zmm1 {k}, zmm2

マスク k を使用して a の各ダブルワード要素で 1 に設定されているビットの数をカウントして、結果の対応する要素に配置します。マスクの対応するビットが設定されていない場合は要素が 0 に設定されます。



_mm512_popcnt_epi64

__mm512i _mm512_popcnt_epi64 (__m512i a)
変数 定義
a ソースベクトル

命令: vpopcntd zmm1, zmm2

a の各クワッドワード要素で 1 に設定されているビットの数をカウントして、結果の対応する要素に配置します。



_mm512_mask_popcnt_epi64

__mm512i _mm512_mask_popcnt_epi64 (__m512 b, __mmask16 k, __m512i a)
変数 定義
a ソースベクトル
b 2 つ目のソースベクトル
k セレクターとして使用されるマスク

命令: vpopcntd zmm1 {k}, zmm2

マスク k を使用して a の各クワッドワード要素で 1 に設定されているビットの数をカウントして、結果の対応する要素に配置します。マスクの対応するビットが設定されていない場合は b の要素がコピーされます。



_mm512_maskz_popcnt_epi64

__mm512i _mm512_maskz_popcnt_epi64 (__m512 b, __mmask16 k, __m512 a)
変数 定義
a ソースベクトル
b 2 つ目のソースベクトル
k セレクターとして使用されるマスク

命令: vpopcntd zmm2 {k}, zmm2

マスク k を使用して a の各クワッドワード要素で 1 に設定されているビットの数をカウントして、結果の対応する要素に配置します。マスクの対応するビットが設定されていない場合は要素が 0 に設定されます。