xref: /aosp_15_r20/prebuilts/sdk/renderscript/clang-include/avx512vlcdintrin.h (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1*344a7f5eSAndroid Build Coastguard Worker /*===---- avx512vlcdintrin.h - AVX512VL and AVX512CD intrinsics ---------------------------===
2*344a7f5eSAndroid Build Coastguard Worker  *
3*344a7f5eSAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a copy
4*344a7f5eSAndroid Build Coastguard Worker  * of this software and associated documentation files (the "Software"), to deal
5*344a7f5eSAndroid Build Coastguard Worker  * in the Software without restriction, including without limitation the rights
6*344a7f5eSAndroid Build Coastguard Worker  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7*344a7f5eSAndroid Build Coastguard Worker  * copies of the Software, and to permit persons to whom the Software is
8*344a7f5eSAndroid Build Coastguard Worker  * furnished to do so, subject to the following conditions:
9*344a7f5eSAndroid Build Coastguard Worker  *
10*344a7f5eSAndroid Build Coastguard Worker  * The above copyright notice and this permission notice shall be included in
11*344a7f5eSAndroid Build Coastguard Worker  * all copies or substantial portions of the Software.
12*344a7f5eSAndroid Build Coastguard Worker  *
13*344a7f5eSAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14*344a7f5eSAndroid Build Coastguard Worker  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15*344a7f5eSAndroid Build Coastguard Worker  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16*344a7f5eSAndroid Build Coastguard Worker  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17*344a7f5eSAndroid Build Coastguard Worker  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18*344a7f5eSAndroid Build Coastguard Worker  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19*344a7f5eSAndroid Build Coastguard Worker  * THE SOFTWARE.
20*344a7f5eSAndroid Build Coastguard Worker  *
21*344a7f5eSAndroid Build Coastguard Worker  *===-----------------------------------------------------------------------===
22*344a7f5eSAndroid Build Coastguard Worker  */
23*344a7f5eSAndroid Build Coastguard Worker #ifndef __IMMINTRIN_H
24*344a7f5eSAndroid Build Coastguard Worker #error "Never use <avx512vlcdintrin.h> directly; include <immintrin.h> instead."
25*344a7f5eSAndroid Build Coastguard Worker #endif
26*344a7f5eSAndroid Build Coastguard Worker 
27*344a7f5eSAndroid Build Coastguard Worker #ifndef __AVX512VLCDINTRIN_H
28*344a7f5eSAndroid Build Coastguard Worker #define __AVX512VLCDINTRIN_H
29*344a7f5eSAndroid Build Coastguard Worker 
30*344a7f5eSAndroid Build Coastguard Worker /* Define the default attributes for the functions in this file. */
31*344a7f5eSAndroid Build Coastguard Worker #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd")))
32*344a7f5eSAndroid Build Coastguard Worker 
33*344a7f5eSAndroid Build Coastguard Worker 
34*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_broadcastmb_epi64(__mmask8 __A)35*344a7f5eSAndroid Build Coastguard Worker _mm_broadcastmb_epi64 (__mmask8 __A)
36*344a7f5eSAndroid Build Coastguard Worker {
37*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_broadcastmb128 (__A);
38*344a7f5eSAndroid Build Coastguard Worker }
39*344a7f5eSAndroid Build Coastguard Worker 
40*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_broadcastmb_epi64(__mmask8 __A)41*344a7f5eSAndroid Build Coastguard Worker _mm256_broadcastmb_epi64 (__mmask8 __A)
42*344a7f5eSAndroid Build Coastguard Worker {
43*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_broadcastmb256 (__A);
44*344a7f5eSAndroid Build Coastguard Worker }
45*344a7f5eSAndroid Build Coastguard Worker 
46*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_broadcastmw_epi32(__mmask16 __A)47*344a7f5eSAndroid Build Coastguard Worker _mm_broadcastmw_epi32 (__mmask16 __A)
48*344a7f5eSAndroid Build Coastguard Worker {
49*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_broadcastmw128 (__A);
50*344a7f5eSAndroid Build Coastguard Worker }
51*344a7f5eSAndroid Build Coastguard Worker 
52*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_broadcastmw_epi32(__mmask16 __A)53*344a7f5eSAndroid Build Coastguard Worker _mm256_broadcastmw_epi32 (__mmask16 __A)
54*344a7f5eSAndroid Build Coastguard Worker {
55*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_broadcastmw256 (__A);
56*344a7f5eSAndroid Build Coastguard Worker }
57*344a7f5eSAndroid Build Coastguard Worker 
58*344a7f5eSAndroid Build Coastguard Worker 
59*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_conflict_epi64(__m128i __A)60*344a7f5eSAndroid Build Coastguard Worker _mm_conflict_epi64 (__m128i __A)
61*344a7f5eSAndroid Build Coastguard Worker {
62*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
63*344a7f5eSAndroid Build Coastguard Worker                (__v2di) _mm_undefined_si128 (),
64*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) -1);
65*344a7f5eSAndroid Build Coastguard Worker }
66*344a7f5eSAndroid Build Coastguard Worker 
67*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_conflict_epi64(__m128i __W,__mmask8 __U,__m128i __A)68*344a7f5eSAndroid Build Coastguard Worker _mm_mask_conflict_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
69*344a7f5eSAndroid Build Coastguard Worker {
70*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
71*344a7f5eSAndroid Build Coastguard Worker                (__v2di) __W,
72*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) __U);
73*344a7f5eSAndroid Build Coastguard Worker }
74*344a7f5eSAndroid Build Coastguard Worker 
75*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_conflict_epi64(__mmask8 __U,__m128i __A)76*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_conflict_epi64 (__mmask8 __U, __m128i __A)
77*344a7f5eSAndroid Build Coastguard Worker {
78*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
79*344a7f5eSAndroid Build Coastguard Worker                (__v2di)
80*344a7f5eSAndroid Build Coastguard Worker                _mm_setzero_di (),
81*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) __U);
82*344a7f5eSAndroid Build Coastguard Worker }
83*344a7f5eSAndroid Build Coastguard Worker 
84*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_conflict_epi64(__m256i __A)85*344a7f5eSAndroid Build Coastguard Worker _mm256_conflict_epi64 (__m256i __A)
86*344a7f5eSAndroid Build Coastguard Worker {
87*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
88*344a7f5eSAndroid Build Coastguard Worker                (__v4di)  _mm256_undefined_si256 (),
89*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) -1);
90*344a7f5eSAndroid Build Coastguard Worker }
91*344a7f5eSAndroid Build Coastguard Worker 
92*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_conflict_epi64(__m256i __W,__mmask8 __U,__m256i __A)93*344a7f5eSAndroid Build Coastguard Worker _mm256_mask_conflict_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
94*344a7f5eSAndroid Build Coastguard Worker {
95*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
96*344a7f5eSAndroid Build Coastguard Worker                (__v4di) __W,
97*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) __U);
98*344a7f5eSAndroid Build Coastguard Worker }
99*344a7f5eSAndroid Build Coastguard Worker 
100*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_conflict_epi64(__mmask8 __U,__m256i __A)101*344a7f5eSAndroid Build Coastguard Worker _mm256_maskz_conflict_epi64 (__mmask8 __U, __m256i __A)
102*344a7f5eSAndroid Build Coastguard Worker {
103*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
104*344a7f5eSAndroid Build Coastguard Worker                (__v4di) _mm256_setzero_si256 (),
105*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) __U);
106*344a7f5eSAndroid Build Coastguard Worker }
107*344a7f5eSAndroid Build Coastguard Worker 
108*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_conflict_epi32(__m128i __A)109*344a7f5eSAndroid Build Coastguard Worker _mm_conflict_epi32 (__m128i __A)
110*344a7f5eSAndroid Build Coastguard Worker {
111*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
112*344a7f5eSAndroid Build Coastguard Worker                (__v4si) _mm_undefined_si128 (),
113*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) -1);
114*344a7f5eSAndroid Build Coastguard Worker }
115*344a7f5eSAndroid Build Coastguard Worker 
116*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_conflict_epi32(__m128i __W,__mmask8 __U,__m128i __A)117*344a7f5eSAndroid Build Coastguard Worker _mm_mask_conflict_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
118*344a7f5eSAndroid Build Coastguard Worker {
119*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
120*344a7f5eSAndroid Build Coastguard Worker                (__v4si) __W,
121*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) __U);
122*344a7f5eSAndroid Build Coastguard Worker }
123*344a7f5eSAndroid Build Coastguard Worker 
124*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_conflict_epi32(__mmask8 __U,__m128i __A)125*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_conflict_epi32 (__mmask8 __U, __m128i __A)
126*344a7f5eSAndroid Build Coastguard Worker {
127*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
128*344a7f5eSAndroid Build Coastguard Worker                (__v4si) _mm_setzero_si128 (),
129*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) __U);
130*344a7f5eSAndroid Build Coastguard Worker }
131*344a7f5eSAndroid Build Coastguard Worker 
132*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_conflict_epi32(__m256i __A)133*344a7f5eSAndroid Build Coastguard Worker _mm256_conflict_epi32 (__m256i __A)
134*344a7f5eSAndroid Build Coastguard Worker {
135*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
136*344a7f5eSAndroid Build Coastguard Worker                (__v8si) _mm256_undefined_si256 (),
137*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) -1);
138*344a7f5eSAndroid Build Coastguard Worker }
139*344a7f5eSAndroid Build Coastguard Worker 
140*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_conflict_epi32(__m256i __W,__mmask8 __U,__m256i __A)141*344a7f5eSAndroid Build Coastguard Worker _mm256_mask_conflict_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
142*344a7f5eSAndroid Build Coastguard Worker {
143*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
144*344a7f5eSAndroid Build Coastguard Worker                (__v8si) __W,
145*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) __U);
146*344a7f5eSAndroid Build Coastguard Worker }
147*344a7f5eSAndroid Build Coastguard Worker 
148*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_conflict_epi32(__mmask8 __U,__m256i __A)149*344a7f5eSAndroid Build Coastguard Worker _mm256_maskz_conflict_epi32 (__mmask8 __U, __m256i __A)
150*344a7f5eSAndroid Build Coastguard Worker {
151*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
152*344a7f5eSAndroid Build Coastguard Worker                (__v8si)
153*344a7f5eSAndroid Build Coastguard Worker                _mm256_setzero_si256 (),
154*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) __U);
155*344a7f5eSAndroid Build Coastguard Worker }
156*344a7f5eSAndroid Build Coastguard Worker 
157*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_lzcnt_epi32(__m128i __A)158*344a7f5eSAndroid Build Coastguard Worker _mm_lzcnt_epi32 (__m128i __A)
159*344a7f5eSAndroid Build Coastguard Worker {
160*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
161*344a7f5eSAndroid Build Coastguard Worker                  (__v4si)
162*344a7f5eSAndroid Build Coastguard Worker                  _mm_setzero_si128 (),
163*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) -1);
164*344a7f5eSAndroid Build Coastguard Worker }
165*344a7f5eSAndroid Build Coastguard Worker 
166*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_lzcnt_epi32(__m128i __W,__mmask8 __U,__m128i __A)167*344a7f5eSAndroid Build Coastguard Worker _mm_mask_lzcnt_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
168*344a7f5eSAndroid Build Coastguard Worker {
169*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
170*344a7f5eSAndroid Build Coastguard Worker                  (__v4si) __W,
171*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) __U);
172*344a7f5eSAndroid Build Coastguard Worker }
173*344a7f5eSAndroid Build Coastguard Worker 
174*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_lzcnt_epi32(__mmask8 __U,__m128i __A)175*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_lzcnt_epi32 (__mmask8 __U, __m128i __A)
176*344a7f5eSAndroid Build Coastguard Worker {
177*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
178*344a7f5eSAndroid Build Coastguard Worker                  (__v4si)
179*344a7f5eSAndroid Build Coastguard Worker                  _mm_setzero_si128 (),
180*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) __U);
181*344a7f5eSAndroid Build Coastguard Worker }
182*344a7f5eSAndroid Build Coastguard Worker 
183*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_lzcnt_epi32(__m256i __A)184*344a7f5eSAndroid Build Coastguard Worker _mm256_lzcnt_epi32 (__m256i __A)
185*344a7f5eSAndroid Build Coastguard Worker {
186*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
187*344a7f5eSAndroid Build Coastguard Worker                  (__v8si)
188*344a7f5eSAndroid Build Coastguard Worker                  _mm256_setzero_si256 (),
189*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) -1);
190*344a7f5eSAndroid Build Coastguard Worker }
191*344a7f5eSAndroid Build Coastguard Worker 
192*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_lzcnt_epi32(__m256i __W,__mmask8 __U,__m256i __A)193*344a7f5eSAndroid Build Coastguard Worker _mm256_mask_lzcnt_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
194*344a7f5eSAndroid Build Coastguard Worker {
195*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
196*344a7f5eSAndroid Build Coastguard Worker                  (__v8si) __W,
197*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) __U);
198*344a7f5eSAndroid Build Coastguard Worker }
199*344a7f5eSAndroid Build Coastguard Worker 
200*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_lzcnt_epi32(__mmask8 __U,__m256i __A)201*344a7f5eSAndroid Build Coastguard Worker _mm256_maskz_lzcnt_epi32 (__mmask8 __U, __m256i __A)
202*344a7f5eSAndroid Build Coastguard Worker {
203*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
204*344a7f5eSAndroid Build Coastguard Worker                  (__v8si)
205*344a7f5eSAndroid Build Coastguard Worker                  _mm256_setzero_si256 (),
206*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) __U);
207*344a7f5eSAndroid Build Coastguard Worker }
208*344a7f5eSAndroid Build Coastguard Worker 
209*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_lzcnt_epi64(__m128i __A)210*344a7f5eSAndroid Build Coastguard Worker _mm_lzcnt_epi64 (__m128i __A)
211*344a7f5eSAndroid Build Coastguard Worker {
212*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
213*344a7f5eSAndroid Build Coastguard Worker                  (__v2di)
214*344a7f5eSAndroid Build Coastguard Worker                  _mm_setzero_di (),
215*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) -1);
216*344a7f5eSAndroid Build Coastguard Worker }
217*344a7f5eSAndroid Build Coastguard Worker 
218*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_lzcnt_epi64(__m128i __W,__mmask8 __U,__m128i __A)219*344a7f5eSAndroid Build Coastguard Worker _mm_mask_lzcnt_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
220*344a7f5eSAndroid Build Coastguard Worker {
221*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
222*344a7f5eSAndroid Build Coastguard Worker                  (__v2di) __W,
223*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) __U);
224*344a7f5eSAndroid Build Coastguard Worker }
225*344a7f5eSAndroid Build Coastguard Worker 
226*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_lzcnt_epi64(__mmask8 __U,__m128i __A)227*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_lzcnt_epi64 (__mmask8 __U, __m128i __A)
228*344a7f5eSAndroid Build Coastguard Worker {
229*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
230*344a7f5eSAndroid Build Coastguard Worker                  (__v2di)
231*344a7f5eSAndroid Build Coastguard Worker                  _mm_setzero_di (),
232*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) __U);
233*344a7f5eSAndroid Build Coastguard Worker }
234*344a7f5eSAndroid Build Coastguard Worker 
235*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_lzcnt_epi64(__m256i __A)236*344a7f5eSAndroid Build Coastguard Worker _mm256_lzcnt_epi64 (__m256i __A)
237*344a7f5eSAndroid Build Coastguard Worker {
238*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
239*344a7f5eSAndroid Build Coastguard Worker                  (__v4di)
240*344a7f5eSAndroid Build Coastguard Worker                  _mm256_setzero_si256 (),
241*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) -1);
242*344a7f5eSAndroid Build Coastguard Worker }
243*344a7f5eSAndroid Build Coastguard Worker 
244*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_lzcnt_epi64(__m256i __W,__mmask8 __U,__m256i __A)245*344a7f5eSAndroid Build Coastguard Worker _mm256_mask_lzcnt_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
246*344a7f5eSAndroid Build Coastguard Worker {
247*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
248*344a7f5eSAndroid Build Coastguard Worker                  (__v4di) __W,
249*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) __U);
250*344a7f5eSAndroid Build Coastguard Worker }
251*344a7f5eSAndroid Build Coastguard Worker 
252*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_lzcnt_epi64(__mmask8 __U,__m256i __A)253*344a7f5eSAndroid Build Coastguard Worker _mm256_maskz_lzcnt_epi64 (__mmask8 __U, __m256i __A)
254*344a7f5eSAndroid Build Coastguard Worker {
255*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
256*344a7f5eSAndroid Build Coastguard Worker                  (__v4di)
257*344a7f5eSAndroid Build Coastguard Worker                  _mm256_setzero_si256 (),
258*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) __U);
259*344a7f5eSAndroid Build Coastguard Worker }
260*344a7f5eSAndroid Build Coastguard Worker 
261*344a7f5eSAndroid Build Coastguard Worker #undef __DEFAULT_FN_ATTRS
262*344a7f5eSAndroid Build Coastguard Worker 
263*344a7f5eSAndroid Build Coastguard Worker #endif /* __AVX512VLCDINTRIN_H */
264