Available on x86 or x86-64 only.
Expand description
Bit-oriented Algorithms (BITALG)
The intrinsics here correspond to those in the immintrin.h
C header.
The reference is Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 2: Instruction Set Reference, A-Z.
Functions§
- bitshuffle_
128 🔒 ⚠ - bitshuffle_
256 🔒 ⚠ - bitshuffle_
512 🔒 ⚠ - _mm256_
bitshuffle_ ⚠epi64_ mask Experimental avx512bitalg,avx512vl
- Considers the input
b
as packed 64-bit integers andc
as packed 8-bit integers. Then groups 8 8-bit values fromc
as indices into the bits of the corresponding 64-bit integer. It then selects these bits and packs them into the output. - _mm256_
mask_ ⚠bitshuffle_ epi64_ mask Experimental avx512bitalg,avx512vl
- Considers the input
b
as packed 64-bit integers andc
as packed 8-bit integers. Then groups 8 8-bit values fromc
as indices into the bits of the corresponding 64-bit integer. It then selects these bits and packs them into the output. - _mm256_
mask_ ⚠popcnt_ epi8 Experimental avx512bitalg,avx512vl
- For each packed 8-bit integer maps the value to the number of logical 1 bits.
- _mm256_
mask_ ⚠popcnt_ epi16 Experimental avx512bitalg,avx512vl
- For each packed 16-bit integer maps the value to the number of logical 1 bits.
- _mm256_
maskz_ ⚠popcnt_ epi8 Experimental avx512bitalg,avx512vl
- For each packed 8-bit integer maps the value to the number of logical 1 bits.
- _mm256_
maskz_ ⚠popcnt_ epi16 Experimental avx512bitalg,avx512vl
- For each packed 16-bit integer maps the value to the number of logical 1 bits.
- _mm256_
popcnt_ ⚠epi8 Experimental avx512bitalg,avx512vl
- For each packed 8-bit integer maps the value to the number of logical 1 bits.
- _mm256_
popcnt_ ⚠epi16 Experimental avx512bitalg,avx512vl
- For each packed 16-bit integer maps the value to the number of logical 1 bits.
- _mm512_
bitshuffle_ ⚠epi64_ mask Experimental avx512bitalg
- Considers the input
b
as packed 64-bit integers andc
as packed 8-bit integers. Then groups 8 8-bit values fromc
as indices into the bits of the corresponding 64-bit integer. It then selects these bits and packs them into the output. - _mm512_
mask_ ⚠bitshuffle_ epi64_ mask Experimental avx512bitalg
- Considers the input
b
as packed 64-bit integers andc
as packed 8-bit integers. Then groups 8 8-bit values fromc
as indices into the bits of the corresponding 64-bit integer. It then selects these bits and packs them into the output. - _mm512_
mask_ ⚠popcnt_ epi8 Experimental avx512bitalg
- For each packed 8-bit integer maps the value to the number of logical 1 bits.
- _mm512_
mask_ ⚠popcnt_ epi16 Experimental avx512bitalg
- For each packed 16-bit integer maps the value to the number of logical 1 bits.
- _mm512_
maskz_ ⚠popcnt_ epi8 Experimental avx512bitalg
- For each packed 8-bit integer maps the value to the number of logical 1 bits.
- _mm512_
maskz_ ⚠popcnt_ epi16 Experimental avx512bitalg
- For each packed 16-bit integer maps the value to the number of logical 1 bits.
- _mm512_
popcnt_ ⚠epi8 Experimental avx512bitalg
- For each packed 8-bit integer maps the value to the number of logical 1 bits.
- _mm512_
popcnt_ ⚠epi16 Experimental avx512bitalg
- For each packed 16-bit integer maps the value to the number of logical 1 bits.
- _mm_
bitshuffle_ ⚠epi64_ mask Experimental avx512bitalg,avx512vl
- Considers the input
b
as packed 64-bit integers andc
as packed 8-bit integers. Then groups 8 8-bit values fromc
as indices into the bits of the corresponding 64-bit integer. It then selects these bits and packs them into the output. - _mm_
mask_ ⚠bitshuffle_ epi64_ mask Experimental avx512bitalg,avx512vl
- Considers the input
b
as packed 64-bit integers andc
as packed 8-bit integers. Then groups 8 8-bit values fromc
as indices into the bits of the corresponding 64-bit integer. It then selects these bits and packs them into the output. - _mm_
mask_ ⚠popcnt_ epi8 Experimental avx512bitalg,avx512vl
- For each packed 8-bit integer maps the value to the number of logical 1 bits.
- _mm_
mask_ ⚠popcnt_ epi16 Experimental avx512bitalg,avx512vl
- For each packed 16-bit integer maps the value to the number of logical 1 bits.
- _mm_
maskz_ ⚠popcnt_ epi8 Experimental avx512bitalg,avx512vl
- For each packed 8-bit integer maps the value to the number of logical 1 bits.
- _mm_
maskz_ ⚠popcnt_ epi16 Experimental avx512bitalg,avx512vl
- For each packed 16-bit integer maps the value to the number of logical 1 bits.
- _mm_
popcnt_ ⚠epi8 Experimental avx512bitalg,avx512vl
- For each packed 8-bit integer maps the value to the number of logical 1 bits.
- _mm_
popcnt_ ⚠epi16 Experimental avx512bitalg,avx512vl
- For each packed 16-bit integer maps the value to the number of logical 1 bits.