インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 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 に設定されます。