インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、実際にヘッダーをコードにインクルードする場合は、immintrin.h を使用します。
変数 | 定義 |
---|---|
src | 書き込みマスクの結果に応じて使用されるソース要素 |
k | セレクターとして使用される書き込みマスク |
a | 1 つ目のソースベクトルの要素 |
_mm_lzcnt_epi32
__m128i _mm_lzcnt_epi32(__m128i a)
CPUID フラグ: AVX512CD、AVX512VL
命令: vplzcntd
a の各パックド 32 ビット整数の先頭からのゼロ・ビットの数をカウントし、結果を返します。
_mm_mask_lzcnt_epi32
__m128i _mm_mask_lzcnt_epi32(__m128i src, __mmask8 k, __m128i a)
CPUID フラグ: AVX512CD、AVX512VL
命令: vplzcntd
a の各パックド 32 ビット整数の先頭からのゼロ・ビットの数をカウントし、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm_maskz_lzcnt_epi32
__m128i _mm_maskz_lzcnt_epi32(__mmask8 k, __m128i a)
CPUID フラグ: AVX512CD、AVX512VL
命令: vplzcntd
a の各パックド 32 ビット整数の先頭からのゼロ・ビットの数をカウントし、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm256_lzcnt_epi32
__m256i _mm256_lzcnt_epi32(__m256i a)
CPUID フラグ: AVX512CD、AVX512VL
命令: vplzcntd
a の各パックド 32 ビット整数の先頭からのゼロ・ビットの数をカウントし、結果を返します。
_mm256_mask_lzcnt_epi32
__m256i _mm256_mask_lzcnt_epi32(__m256i src, __mmask8 k, __m256i a)
CPUID フラグ: AVX512CD、AVX512VL
命令: vplzcntd
a の各パックド 32 ビット整数の先頭からのゼロ・ビットの数をカウントし、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm256_maskz_lzcnt_epi32
__m256i _mm256_maskz_lzcnt_epi32(__mmask8 k, __m256i a)
CPUID フラグ: AVX512CD、AVX512VL
命令: vplzcntd
a の各パックド 32 ビット整数の先頭からのゼロ・ビットの数をカウントし、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm_lzcnt_epi64
__m128i _mm_lzcnt_epi64(__m128i a)
CPUID フラグ: AVX512CD、AVX512VL
命令: vplzcntq
a の各パックド 64 ビット整数の先頭からのゼロ・ビットの数をカウントし、結果を返します。
_mm_mask_lzcnt_epi64
__m128i _mm_mask_lzcnt_epi64(__m128i src, __mmask8 k, __m128i a)
CPUID フラグ: AVX512CD、AVX512VL
命令: vplzcntq
a の各パックド 64 ビット整数の先頭からのゼロ・ビットの数をカウントし、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm_maskz_lzcnt_epi64
__m128i _mm_maskz_lzcnt_epi64(__mmask8 k, __m128i a)
CPUID フラグ: AVX512CD、AVX512VL
命令: vplzcntq
a の各パックド 64 ビット整数の先頭からのゼロ・ビットの数をカウントし、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm256_lzcnt_epi64
__m256i _mm256_lzcnt_epi64(__m256i a)
CPUID フラグ: AVX512CD、AVX512VL
命令: vplzcntq
a の各パックド 64 ビット整数の先頭からのゼロ・ビットの数をカウントし、結果を返します。
_mm256_mask_lzcnt_epi64
__m256i _mm256_mask_lzcnt_epi64(__m256i src, __mmask8 k, __m256i a)
CPUID フラグ: AVX512CD、AVX512VL
命令: vplzcntq
a の各パックド 64 ビット整数の先頭からのゼロ・ビットの数をカウントし、書き込みマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm256_maskz_lzcnt_epi64
__m256i _mm256_maskz_lzcnt_epi64(__mmask8 k, __m256i a)
CPUID フラグ: AVX512CD、AVX512VL
命令: vplzcntq
a の各パックド 64 ビット整数の先頭からのゼロ・ビットの数をカウントし、ゼロマスク k を使用して結果を返します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm_multishift_epi64_epi8
__m128i _mm_multishift_epi64_epi8(__m128i a, __m128i b)
CPUID フラグ: AVX512VBMI、AVX512VL
命令: vpmultishiftqb
b の各 64 ビット要素について、a の対応する 64 ビット要素内にあるバイト粒度のシフト・コントロールを使用して 8 つのアライメントされていないバイトを選択し、戻り値の対応する 64 ビット要素に格納します。
_mm_mask_multishift_epi64_epi8
__m128i _mm_mask_multishift_epi64_epi8(__m128i src, __mmask16 k, __m128i a, __m128i b)
CPUID フラグ: AVX512VBMI、AVX512VL
命令: vpmultishiftqb
b の各 64 ビット要素について、a の対応する 64 ビット要素内にあるバイト粒度のシフト・コントロールを使用して 8 つのアライメントされていないバイトを選択し、書き込みマスク k を使用して戻り値の対応する 64 ビット要素に格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm_maskz_multishift_epi64_epi8
__m128i _mm_maskz_multishift_epi64_epi8(__mmask16 k, __m128i a, __m128i b)
CPUID フラグ: AVX512VBMI、AVX512VL
命令: vpmultishiftqb
b の各 64 ビット要素について、a の対応する 64 ビット要素内にあるバイト粒度のシフト・コントロールを使用して 8 つのアライメントされていないバイトを選択し、ゼロマスク k を使用して戻り値の対応する 64 ビット要素に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm256_multishift_epi64_epi8
__m256i _mm256_multishift_epi64_epi8(__m256i a, __m256i b)
CPUID フラグ: AVX512VBMI、AVX512VL
命令: vpmultishiftqb
b の各 64 ビット要素について、a の対応する 64 ビット要素内にあるバイト粒度のシフト・コントロールを使用して 8 つのアライメントされていないバイトを選択し、戻り値の対応する 64 ビット要素に格納します。
_mm256_mask_multishift_epi64_epi8
__m256i _mm256_mask_multishift_epi64_epi8(__m256i src, __mmask32 k, __m256i a, __m256i b)
CPUID フラグ: AVX512VBMI、AVX512VL
命令: vpmultishiftqb
b の各 64 ビット要素について、a の対応する 64 ビット要素内にあるバイト粒度のシフト・コントロールを使用して 8 つのアライメントされていないバイトを選択し、書き込みマスク k を使用して戻り値の対応する 64 ビット要素に格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm256_maskz_multishift_epi64_epi8
__m256i _mm256_maskz_multishift_epi64_epi8(__mmask32 k, __m256i a, __m256i b)
CPUID フラグ: AVX512VBMI、AVX512VL
命令: vpmultishiftqb
b の各 64 ビット要素について、a の対応する 64 ビット要素内にあるバイト粒度のシフト・コントロールを使用して 8 つのアライメントされていないバイトを選択し、ゼロマスク k を使用して戻り値の対応する 64 ビット要素に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_multishift_epi64_epi8
__m512i _mm512_multishift_epi64_epi8(__m512i a, __m512i b)
CPUID フラグ: AVX512VBMI
命令: vpmultishiftqb
b の各 64 ビット要素について、a の対応する 64 ビット要素内にあるバイト粒度のシフト・コントロールを使用して 8 つのアライメントされていないバイトを選択し、戻り値の対応する 64 ビット要素に格納します。
_mm512_mask_multishift_epi64_epi8
__m512i _mm512_mask_multishift_epi64_epi8(__m512i src, __mmask64 k, __m512i a, __m512i b)
CPUID フラグ: AVX512VBMI
命令: vpmultishiftqb
b の各 64 ビット要素について、a の対応する 64 ビット要素内にあるバイト粒度のシフト・コントロールを使用して 8 つのアライメントされていないバイトを選択し、書き込みマスク k を使用して戻り値の対応する 64 ビット要素に格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_multishift_epi64_epi8
__m512i _mm512_maskz_multishift_epi64_epi8(__mmask64 k, __m512i a, __m512i b)
CPUID フラグ: AVX512VBMI
命令: vpmultishiftqb
b の各 64 ビット要素について、a の対応する 64 ビット要素内にあるバイト粒度のシフト・コントロールを使用して 8 つのアライメントされていないバイトを選択し、ゼロマスク k を使用して戻り値の対応する 64 ビット要素に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。