11#error "Never use <avx512vbmi2intrin.h> directly; include <immintrin.h> instead."
14#ifndef __AVX512VBMI2INTRIN_H
15#define __AVX512VBMI2INTRIN_H
18#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2,evex512"), __min_vector_width__(512)))
24 return (__m512i) __builtin_ia32_compresshi512_mask ((__v32hi)
__D,
32 return (__m512i) __builtin_ia32_compresshi512_mask ((__v32hi)
__D,
40 return (__m512i) __builtin_ia32_compressqi512_mask ((__v64qi)
__D,
48 return (__m512i) __builtin_ia32_compressqi512_mask ((__v64qi)
__D,
56 __builtin_ia32_compressstorehi512_mask ((__v32hi *)
__P, (__v32hi)
__D,
63 __builtin_ia32_compressstoreqi512_mask ((__v64qi *)
__P, (__v64qi)
__D,
70 return (__m512i) __builtin_ia32_expandhi512_mask ((__v32hi)
__D,
78 return (__m512i) __builtin_ia32_expandhi512_mask ((__v32hi)
__D,
86 return (__m512i) __builtin_ia32_expandqi512_mask ((__v64qi)
__D,
94 return (__m512i) __builtin_ia32_expandqi512_mask ((__v64qi)
__D,
102 return (__m512i) __builtin_ia32_expandloadhi512_mask ((
const __v32hi *)
__P,
110 return (__m512i) __builtin_ia32_expandloadhi512_mask ((
const __v32hi *)
__P,
118 return (__m512i) __builtin_ia32_expandloadqi512_mask ((
const __v64qi *)
__P,
126 return (__m512i) __builtin_ia32_expandloadqi512_mask ((
const __v64qi *)
__P,
131#define _mm512_shldi_epi64(A, B, I) \
132 ((__m512i)__builtin_ia32_vpshldq512((__v8di)(__m512i)(A), \
133 (__v8di)(__m512i)(B), (int)(I)))
135#define _mm512_mask_shldi_epi64(S, U, A, B, I) \
136 ((__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
137 (__v8di)_mm512_shldi_epi64((A), (B), (I)), \
138 (__v8di)(__m512i)(S)))
140#define _mm512_maskz_shldi_epi64(U, A, B, I) \
141 ((__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
142 (__v8di)_mm512_shldi_epi64((A), (B), (I)), \
143 (__v8di)_mm512_setzero_si512()))
145#define _mm512_shldi_epi32(A, B, I) \
146 ((__m512i)__builtin_ia32_vpshldd512((__v16si)(__m512i)(A), \
147 (__v16si)(__m512i)(B), (int)(I)))
149#define _mm512_mask_shldi_epi32(S, U, A, B, I) \
150 ((__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
151 (__v16si)_mm512_shldi_epi32((A), (B), (I)), \
152 (__v16si)(__m512i)(S)))
154#define _mm512_maskz_shldi_epi32(U, A, B, I) \
155 ((__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
156 (__v16si)_mm512_shldi_epi32((A), (B), (I)), \
157 (__v16si)_mm512_setzero_si512()))
159#define _mm512_shldi_epi16(A, B, I) \
160 ((__m512i)__builtin_ia32_vpshldw512((__v32hi)(__m512i)(A), \
161 (__v32hi)(__m512i)(B), (int)(I)))
163#define _mm512_mask_shldi_epi16(S, U, A, B, I) \
164 ((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
165 (__v32hi)_mm512_shldi_epi16((A), (B), (I)), \
166 (__v32hi)(__m512i)(S)))
168#define _mm512_maskz_shldi_epi16(U, A, B, I) \
169 ((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
170 (__v32hi)_mm512_shldi_epi16((A), (B), (I)), \
171 (__v32hi)_mm512_setzero_si512()))
173#define _mm512_shrdi_epi64(A, B, I) \
174 ((__m512i)__builtin_ia32_vpshrdq512((__v8di)(__m512i)(A), \
175 (__v8di)(__m512i)(B), (int)(I)))
177#define _mm512_mask_shrdi_epi64(S, U, A, B, I) \
178 ((__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
179 (__v8di)_mm512_shrdi_epi64((A), (B), (I)), \
180 (__v8di)(__m512i)(S)))
182#define _mm512_maskz_shrdi_epi64(U, A, B, I) \
183 ((__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
184 (__v8di)_mm512_shrdi_epi64((A), (B), (I)), \
185 (__v8di)_mm512_setzero_si512()))
187#define _mm512_shrdi_epi32(A, B, I) \
188 ((__m512i)__builtin_ia32_vpshrdd512((__v16si)(__m512i)(A), \
189 (__v16si)(__m512i)(B), (int)(I)))
191#define _mm512_mask_shrdi_epi32(S, U, A, B, I) \
192 ((__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
193 (__v16si)_mm512_shrdi_epi32((A), (B), (I)), \
194 (__v16si)(__m512i)(S)))
196#define _mm512_maskz_shrdi_epi32(U, A, B, I) \
197 ((__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
198 (__v16si)_mm512_shrdi_epi32((A), (B), (I)), \
199 (__v16si)_mm512_setzero_si512()))
201#define _mm512_shrdi_epi16(A, B, I) \
202 ((__m512i)__builtin_ia32_vpshrdw512((__v32hi)(__m512i)(A), \
203 (__v32hi)(__m512i)(B), (int)(I)))
205#define _mm512_mask_shrdi_epi16(S, U, A, B, I) \
206 ((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
207 (__v32hi)_mm512_shrdi_epi16((A), (B), (I)), \
208 (__v32hi)(__m512i)(S)))
210#define _mm512_maskz_shrdi_epi16(U, A, B, I) \
211 ((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
212 (__v32hi)_mm512_shrdi_epi16((A), (B), (I)), \
213 (__v32hi)_mm512_setzero_si512()))
218 return (__m512i)__builtin_ia32_vpshldvq512((__v8di)__A, (__v8di)__B,
225 return (__m512i)__builtin_ia32_selectq_512(__U,
233 return (__m512i)__builtin_ia32_selectq_512(__U,
241 return (__m512i)__builtin_ia32_vpshldvd512((__v16si)__A, (__v16si)__B,
248 return (__m512i)__builtin_ia32_selectd_512(__U,
256 return (__m512i)__builtin_ia32_selectd_512(__U,
264 return (__m512i)__builtin_ia32_vpshldvw512((__v32hi)__A, (__v32hi)__B,
271 return (__m512i)__builtin_ia32_selectw_512(__U,
279 return (__m512i)__builtin_ia32_selectw_512(__U,
287 return (__m512i)__builtin_ia32_vpshrdvq512((__v8di)__A, (__v8di)__B,
294 return (__m512i)__builtin_ia32_selectq_512(__U,
302 return (__m512i)__builtin_ia32_selectq_512(__U,
310 return (__m512i)__builtin_ia32_vpshrdvd512((__v16si)__A, (__v16si)__B,
317 return (__m512i) __builtin_ia32_selectd_512(__U,
325 return (__m512i) __builtin_ia32_selectd_512(__U,
333 return (__m512i)__builtin_ia32_vpshrdvw512((__v32hi)__A, (__v32hi)__B,
340 return (__m512i)__builtin_ia32_selectw_512(__U,
348 return (__m512i)__builtin_ia32_selectw_512(__U,
354#undef __DEFAULT_FN_ATTRS
unsigned long long __mmask64
static __inline __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR _mm512_setzero_si512(void)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_compress_epi16(__m512i __S, __mmask32 __U, __m512i __D)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_shrdv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_shldv_epi64(__m512i __A, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_expandloadu_epi8(__mmask64 __U, void const *__P)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_shrdv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_shrdv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_shrdv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_compress_epi8(__mmask64 __U, __m512i __D)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_shldv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_shldv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_shrdv_epi16(__m512i __A, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_expandloadu_epi16(__m512i __S, __mmask32 __U, void const *__P)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_shrdv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C)
#define __DEFAULT_FN_ATTRS
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_shrdv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_shldv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_expand_epi16(__mmask32 __U, __m512i __D)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_shldv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_shldv_epi32(__m512i __A, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_shrdv_epi32(__m512i __A, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_expand_epi16(__m512i __S, __mmask32 __U, __m512i __D)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_expandloadu_epi8(__m512i __S, __mmask64 __U, void const *__P)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_shldv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_expandloadu_epi16(__mmask32 __U, void const *__P)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_shrdv_epi64(__m512i __A, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_expand_epi8(__m512i __S, __mmask64 __U, __m512i __D)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_shldv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_expand_epi8(__mmask64 __U, __m512i __D)
static __inline__ void __DEFAULT_FN_ATTRS _mm512_mask_compressstoreu_epi16(void *__P, __mmask32 __U, __m512i __D)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_compress_epi8(__m512i __S, __mmask64 __U, __m512i __D)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_shldv_epi16(__m512i __A, __m512i __B, __m512i __C)
static __inline__ void __DEFAULT_FN_ATTRS _mm512_mask_compressstoreu_epi8(void *__P, __mmask64 __U, __m512i __D)
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_compress_epi16(__mmask32 __U, __m512i __D)
static __inline__ void short __D
__inline unsigned int unsigned int unsigned int * __P