12 "Never use <avx512bmmvlintrin.h> directly; include <immintrin.h> instead."
15#ifndef __BMMVLINTRIN_H
16#define __BMMVLINTRIN_H
19#define __DEFAULT_FN_ATTRS128 \
20 __attribute__((__always_inline__, __nodebug__, \
21 __target__("avx512bmm,avx512vl"), __min_vector_width__(128)))
22#define __DEFAULT_FN_ATTRS256 \
23 __attribute__((__always_inline__, __nodebug__, \
24 __target__("avx512bmm,avx512vl"), __min_vector_width__(256)))
26#if defined(__cplusplus) && (__cplusplus >= 201103L)
27#define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128 constexpr
28#define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256 constexpr
30#define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128
31#define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256
65 return (__m256i)__builtin_ia32_bmacor16x16x16_v16hi(
66 (__v16hi)__A, (__v16hi)__B, (__v16hi)__C);
100 return (__m256i)__builtin_ia32_bmacxor16x16x16_v16hi(
101 (__v16hi)__A, (__v16hi)__B, (__v16hi)__C);
120 return (__m128i)__builtin_elementwise_bitreverse((__v16qi)__A);
139 return (__m256i)__builtin_elementwise_bitreverse((__v32qi)__A);
163 return (__m128i)__builtin_ia32_selectb_128(
188 return (__m256i)__builtin_ia32_selectb_256(
211 return (__m128i)__builtin_ia32_selectb_128((
__mmask16)__U,
235 return (__m256i)__builtin_ia32_selectb_256((
__mmask32)__U,
240#undef __DEFAULT_FN_ATTRS128_CONSTEXPR
241#undef __DEFAULT_FN_ATTRS256_CONSTEXPR
242#undef __DEFAULT_FN_ATTRS128
243#undef __DEFAULT_FN_ATTRS256
#define __DEFAULT_FN_ATTRS128_CONSTEXPR
#define __DEFAULT_FN_ATTRS256_CONSTEXPR
static __inline __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR _mm128_maskz_bitrev_epi8(__mmask16 __U, __m128i __A)
Reverses the bits within each byte of the source vector, zeroing elements based on the writemask.
static __inline __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR _mm128_mask_bitrev_epi8(__mmask16 __U, __m128i __A, __m128i __B)
Reverses the bits within each byte of the source vector, using a writemask to conditionally select el...
static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_bitrev_epi8(__m256i __A)
Reverses the bits within each byte of the source vector.
static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_maskz_bitrev_epi8(__mmask32 __U, __m256i __A)
Reverses the bits within each byte of the source vector, zeroing elements based on the writemask.
static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_bmacxor16x16x16(__m256i __A, __m256i __B, __m256i __C)
Multiplies two 16x16 bit matrices using XOR reduction and XORs the product into a third 16x16 bit mat...
static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_mask_bitrev_epi8(__mmask32 __U, __m256i __A, __m256i __B)
Reverses the bits within each byte of the source vector, using a writemask to conditionally select el...
static __inline __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR _mm128_bitrev_epi8(__m128i __A)
Reverses the bits within each byte of the source vector.
static __inline __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_bmacor16x16x16(__m256i __A, __m256i __B, __m256i __C)
Multiplies two 16x16 bit matrices using OR reduction and ORs the product into a third 16x16 bit matri...
static __inline __m256i __DEFAULT_FN_ATTRS_CONSTEXPR _mm256_setzero_si256(void)
Constructs a 256-bit integer vector initialized to zero.
static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setzero_si128(void)
Creates a 128-bit integer vector initialized to zero.