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"), __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 _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__ unsigned int unsigned char __D
static __inline__ unsigned char int __C