xref: /NextBSD/contrib/llvm/tools/clang/lib/Headers/avx512vlintrin.h (revision 84d351007654069f9643c8e4b4802a7f5f08ee42)
1 /*===---- avx512vlintrin.h - AVX512VL intrinsics ---------------------------===
2  *
3  * Permission is hereby granted, free of charge, to any person obtaining a copy
4  * of this software and associated documentation files (the "Software"), to deal
5  * in the Software without restriction, including without limitation the rights
6  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7  * copies of the Software, and to permit persons to whom the Software is
8  * furnished to do so, subject to the following conditions:
9  *
10  * The above copyright notice and this permission notice shall be included in
11  * all copies or substantial portions of the Software.
12  *
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19  * THE SOFTWARE.
20  *
21  *===-----------------------------------------------------------------------===
22  */
23 
24 #ifndef __IMMINTRIN_H
25 #error "Never use <avx512vlintrin.h> directly; include <immintrin.h> instead."
26 #endif
27 
28 #ifndef __AVX512VLINTRIN_H
29 #define __AVX512VLINTRIN_H
30 
31 /* Define the default attributes for the functions in this file. */
32 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
33 
34 /* Integer compare */
35 
36 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpeq_epi32_mask(__m128i __a,__m128i __b)37 _mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) {
38   return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b,
39                                                   (__mmask8)-1);
40 }
41 
42 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpeq_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)43 _mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
44   return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b,
45                                                   __u);
46 }
47 
48 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpeq_epu32_mask(__m128i __a,__m128i __b)49 _mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) {
50   return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0,
51                                                 (__mmask8)-1);
52 }
53 
54 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpeq_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)55 _mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
56   return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0,
57                                                 __u);
58 }
59 
60 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpeq_epi32_mask(__m256i __a,__m256i __b)61 _mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) {
62   return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b,
63                                                   (__mmask8)-1);
64 }
65 
66 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpeq_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)67 _mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
68   return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b,
69                                                   __u);
70 }
71 
72 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpeq_epu32_mask(__m256i __a,__m256i __b)73 _mm256_cmpeq_epu32_mask(__m256i __a, __m256i __b) {
74   return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0,
75                                                 (__mmask8)-1);
76 }
77 
78 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpeq_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)79 _mm256_mask_cmpeq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
80   return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0,
81                                                 __u);
82 }
83 
84 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpeq_epi64_mask(__m128i __a,__m128i __b)85 _mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) {
86   return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b,
87                                                   (__mmask8)-1);
88 }
89 
90 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpeq_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)91 _mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
92   return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b,
93                                                   __u);
94 }
95 
96 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpeq_epu64_mask(__m128i __a,__m128i __b)97 _mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) {
98   return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0,
99                                                 (__mmask8)-1);
100 }
101 
102 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpeq_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)103 _mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
104   return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0,
105                                                 __u);
106 }
107 
108 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpeq_epi64_mask(__m256i __a,__m256i __b)109 _mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) {
110   return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b,
111                                                   (__mmask8)-1);
112 }
113 
114 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpeq_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)115 _mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
116   return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b,
117                                                   __u);
118 }
119 
120 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpeq_epu64_mask(__m256i __a,__m256i __b)121 _mm256_cmpeq_epu64_mask(__m256i __a, __m256i __b) {
122   return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0,
123                                                 (__mmask8)-1);
124 }
125 
126 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpeq_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)127 _mm256_mask_cmpeq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
128   return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0,
129                                                 __u);
130 }
131 
132 
133 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpge_epi32_mask(__m128i __a,__m128i __b)134 _mm_cmpge_epi32_mask(__m128i __a, __m128i __b) {
135   return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5,
136                                                (__mmask8)-1);
137 }
138 
139 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpge_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)140 _mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
141   return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5,
142                                                __u);
143 }
144 
145 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpge_epu32_mask(__m128i __a,__m128i __b)146 _mm_cmpge_epu32_mask(__m128i __a, __m128i __b) {
147   return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5,
148                                                 (__mmask8)-1);
149 }
150 
151 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpge_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)152 _mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
153   return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5,
154                                                 __u);
155 }
156 
157 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpge_epi32_mask(__m256i __a,__m256i __b)158 _mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) {
159   return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5,
160                                                (__mmask8)-1);
161 }
162 
163 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpge_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)164 _mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
165   return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5,
166                                                __u);
167 }
168 
169 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpge_epu32_mask(__m256i __a,__m256i __b)170 _mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) {
171   return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5,
172                                                 (__mmask8)-1);
173 }
174 
175 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpge_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)176 _mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
177   return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5,
178                                                 __u);
179 }
180 
181 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpge_epi64_mask(__m128i __a,__m128i __b)182 _mm_cmpge_epi64_mask(__m128i __a, __m128i __b) {
183   return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5,
184                                                (__mmask8)-1);
185 }
186 
187 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpge_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)188 _mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
189   return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5,
190                                                __u);
191 }
192 
193 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpge_epu64_mask(__m128i __a,__m128i __b)194 _mm_cmpge_epu64_mask(__m128i __a, __m128i __b) {
195   return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5,
196                                                 (__mmask8)-1);
197 }
198 
199 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpge_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)200 _mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
201   return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5,
202                                                 __u);
203 }
204 
205 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpge_epi64_mask(__m256i __a,__m256i __b)206 _mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) {
207   return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5,
208                                                (__mmask8)-1);
209 }
210 
211 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpge_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)212 _mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
213   return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5,
214                                                __u);
215 }
216 
217 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpge_epu64_mask(__m256i __a,__m256i __b)218 _mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) {
219   return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5,
220                                                 (__mmask8)-1);
221 }
222 
223 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpge_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)224 _mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
225   return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5,
226                                                 __u);
227 }
228 
229 
230 
231 
232 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpgt_epi32_mask(__m128i __a,__m128i __b)233 _mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) {
234   return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b,
235                                                   (__mmask8)-1);
236 }
237 
238 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpgt_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)239 _mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
240   return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b,
241                                                   __u);
242 }
243 
244 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpgt_epu32_mask(__m128i __a,__m128i __b)245 _mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) {
246   return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6,
247                                                 (__mmask8)-1);
248 }
249 
250 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpgt_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)251 _mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
252   return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6,
253                                                 __u);
254 }
255 
256 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpgt_epi32_mask(__m256i __a,__m256i __b)257 _mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) {
258   return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b,
259                                                   (__mmask8)-1);
260 }
261 
262 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpgt_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)263 _mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
264   return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b,
265                                                   __u);
266 }
267 
268 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpgt_epu32_mask(__m256i __a,__m256i __b)269 _mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) {
270   return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6,
271                                                 (__mmask8)-1);
272 }
273 
274 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpgt_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)275 _mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
276   return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6,
277                                                 __u);
278 }
279 
280 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpgt_epi64_mask(__m128i __a,__m128i __b)281 _mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) {
282   return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b,
283                                                   (__mmask8)-1);
284 }
285 
286 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpgt_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)287 _mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
288   return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b,
289                                                   __u);
290 }
291 
292 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpgt_epu64_mask(__m128i __a,__m128i __b)293 _mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) {
294   return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6,
295                                                 (__mmask8)-1);
296 }
297 
298 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpgt_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)299 _mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
300   return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6,
301                                                 __u);
302 }
303 
304 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpgt_epi64_mask(__m256i __a,__m256i __b)305 _mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) {
306   return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b,
307                                                   (__mmask8)-1);
308 }
309 
310 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpgt_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)311 _mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
312   return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b,
313                                                   __u);
314 }
315 
316 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpgt_epu64_mask(__m256i __a,__m256i __b)317 _mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) {
318   return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6,
319                                                 (__mmask8)-1);
320 }
321 
322 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpgt_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)323 _mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
324   return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6,
325                                                 __u);
326 }
327 
328 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmple_epi32_mask(__m128i __a,__m128i __b)329 _mm_cmple_epi32_mask(__m128i __a, __m128i __b) {
330   return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2,
331                                                (__mmask8)-1);
332 }
333 
334 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmple_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)335 _mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
336   return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2,
337                                                __u);
338 }
339 
340 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmple_epu32_mask(__m128i __a,__m128i __b)341 _mm_cmple_epu32_mask(__m128i __a, __m128i __b) {
342   return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2,
343                                                 (__mmask8)-1);
344 }
345 
346 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmple_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)347 _mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
348   return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2,
349                                                 __u);
350 }
351 
352 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmple_epi32_mask(__m256i __a,__m256i __b)353 _mm256_cmple_epi32_mask(__m256i __a, __m256i __b) {
354   return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2,
355                                                (__mmask8)-1);
356 }
357 
358 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmple_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)359 _mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
360   return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2,
361                                                __u);
362 }
363 
364 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmple_epu32_mask(__m256i __a,__m256i __b)365 _mm256_cmple_epu32_mask(__m256i __a, __m256i __b) {
366   return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2,
367                                                 (__mmask8)-1);
368 }
369 
370 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmple_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)371 _mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
372   return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2,
373                                                 __u);
374 }
375 
376 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmple_epi64_mask(__m128i __a,__m128i __b)377 _mm_cmple_epi64_mask(__m128i __a, __m128i __b) {
378   return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2,
379                                                (__mmask8)-1);
380 }
381 
382 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmple_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)383 _mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
384   return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2,
385                                                __u);
386 }
387 
388 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmple_epu64_mask(__m128i __a,__m128i __b)389 _mm_cmple_epu64_mask(__m128i __a, __m128i __b) {
390   return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2,
391                                                 (__mmask8)-1);
392 }
393 
394 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmple_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)395 _mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
396   return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2,
397                                                 __u);
398 }
399 
400 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmple_epi64_mask(__m256i __a,__m256i __b)401 _mm256_cmple_epi64_mask(__m256i __a, __m256i __b) {
402   return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2,
403                                                (__mmask8)-1);
404 }
405 
406 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmple_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)407 _mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
408   return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2,
409                                                __u);
410 }
411 
412 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmple_epu64_mask(__m256i __a,__m256i __b)413 _mm256_cmple_epu64_mask(__m256i __a, __m256i __b) {
414   return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2,
415                                                 (__mmask8)-1);
416 }
417 
418 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmple_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)419 _mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
420   return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2,
421                                                 __u);
422 }
423 
424 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmplt_epi32_mask(__m128i __a,__m128i __b)425 _mm_cmplt_epi32_mask(__m128i __a, __m128i __b) {
426   return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1,
427                                                (__mmask8)-1);
428 }
429 
430 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmplt_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)431 _mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
432   return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1,
433                                                __u);
434 }
435 
436 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmplt_epu32_mask(__m128i __a,__m128i __b)437 _mm_cmplt_epu32_mask(__m128i __a, __m128i __b) {
438   return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1,
439                                                 (__mmask8)-1);
440 }
441 
442 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmplt_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)443 _mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
444   return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1,
445                                                 __u);
446 }
447 
448 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmplt_epi32_mask(__m256i __a,__m256i __b)449 _mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) {
450   return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1,
451                                                (__mmask8)-1);
452 }
453 
454 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmplt_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)455 _mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
456   return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1,
457                                                __u);
458 }
459 
460 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmplt_epu32_mask(__m256i __a,__m256i __b)461 _mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) {
462   return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1,
463                                                 (__mmask8)-1);
464 }
465 
466 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmplt_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)467 _mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
468   return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1,
469                                                 __u);
470 }
471 
472 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmplt_epi64_mask(__m128i __a,__m128i __b)473 _mm_cmplt_epi64_mask(__m128i __a, __m128i __b) {
474   return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1,
475                                                (__mmask8)-1);
476 }
477 
478 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmplt_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)479 _mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
480   return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1,
481                                                __u);
482 }
483 
484 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmplt_epu64_mask(__m128i __a,__m128i __b)485 _mm_cmplt_epu64_mask(__m128i __a, __m128i __b) {
486   return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1,
487                                                 (__mmask8)-1);
488 }
489 
490 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmplt_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)491 _mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
492   return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1,
493                                                 __u);
494 }
495 
496 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmplt_epi64_mask(__m256i __a,__m256i __b)497 _mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) {
498   return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1,
499                                                (__mmask8)-1);
500 }
501 
502 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmplt_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)503 _mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
504   return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1,
505                                                __u);
506 }
507 
508 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmplt_epu64_mask(__m256i __a,__m256i __b)509 _mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) {
510   return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1,
511                                                 (__mmask8)-1);
512 }
513 
514 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmplt_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)515 _mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
516   return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1,
517                                                 __u);
518 }
519 
520 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpneq_epi32_mask(__m128i __a,__m128i __b)521 _mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) {
522   return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4,
523                                                (__mmask8)-1);
524 }
525 
526 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpneq_epi32_mask(__mmask8 __u,__m128i __a,__m128i __b)527 _mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
528   return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4,
529                                                __u);
530 }
531 
532 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpneq_epu32_mask(__m128i __a,__m128i __b)533 _mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) {
534   return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4,
535                                                 (__mmask8)-1);
536 }
537 
538 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpneq_epu32_mask(__mmask8 __u,__m128i __a,__m128i __b)539 _mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
540   return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4,
541                                                 __u);
542 }
543 
544 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpneq_epi32_mask(__m256i __a,__m256i __b)545 _mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) {
546   return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4,
547                                                (__mmask8)-1);
548 }
549 
550 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpneq_epi32_mask(__mmask8 __u,__m256i __a,__m256i __b)551 _mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
552   return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4,
553                                                __u);
554 }
555 
556 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpneq_epu32_mask(__m256i __a,__m256i __b)557 _mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) {
558   return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4,
559                                                 (__mmask8)-1);
560 }
561 
562 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpneq_epu32_mask(__mmask8 __u,__m256i __a,__m256i __b)563 _mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
564   return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4,
565                                                 __u);
566 }
567 
568 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpneq_epi64_mask(__m128i __a,__m128i __b)569 _mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) {
570   return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4,
571                                                (__mmask8)-1);
572 }
573 
574 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpneq_epi64_mask(__mmask8 __u,__m128i __a,__m128i __b)575 _mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
576   return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4,
577                                                __u);
578 }
579 
580 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpneq_epu64_mask(__m128i __a,__m128i __b)581 _mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) {
582   return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4,
583                                                 (__mmask8)-1);
584 }
585 
586 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpneq_epu64_mask(__mmask8 __u,__m128i __a,__m128i __b)587 _mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
588   return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4,
589                                                 __u);
590 }
591 
592 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpneq_epi64_mask(__m256i __a,__m256i __b)593 _mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) {
594   return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4,
595                                                (__mmask8)-1);
596 }
597 
598 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpneq_epi64_mask(__mmask8 __u,__m256i __a,__m256i __b)599 _mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
600   return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4,
601                                                __u);
602 }
603 
604 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_cmpneq_epu64_mask(__m256i __a,__m256i __b)605 _mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) {
606   return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4,
607                                                 (__mmask8)-1);
608 }
609 
610 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm256_mask_cmpneq_epu64_mask(__mmask8 __u,__m256i __a,__m256i __b)611 _mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
612   return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4,
613                                                 __u);
614 }
615 
616 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_add_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)617 _mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
618            __m256i __B)
619 {
620   return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
621              (__v8si) __B,
622              (__v8si) __W,
623              (__mmask8) __U);
624 }
625 
626 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_add_epi32(__mmask8 __U,__m256i __A,__m256i __B)627 _mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
628 {
629   return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
630              (__v8si) __B,
631              (__v8si)
632              _mm256_setzero_si256 (),
633              (__mmask8) __U);
634 }
635 
636 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_add_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)637 _mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
638            __m256i __B)
639 {
640   return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
641              (__v4di) __B,
642              (__v4di) __W,
643              (__mmask8) __U);
644 }
645 
646 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_add_epi64(__mmask8 __U,__m256i __A,__m256i __B)647 _mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
648 {
649   return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
650              (__v4di) __B,
651              (__v4di)
652              _mm256_setzero_si256 (),
653              (__mmask8) __U);
654 }
655 
656 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_sub_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)657 _mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
658            __m256i __B)
659 {
660   return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
661              (__v8si) __B,
662              (__v8si) __W,
663              (__mmask8) __U);
664 }
665 
666 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_sub_epi32(__mmask8 __U,__m256i __A,__m256i __B)667 _mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
668 {
669   return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
670              (__v8si) __B,
671              (__v8si)
672              _mm256_setzero_si256 (),
673              (__mmask8) __U);
674 }
675 
676 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_sub_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)677 _mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
678            __m256i __B)
679 {
680   return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
681              (__v4di) __B,
682              (__v4di) __W,
683              (__mmask8) __U);
684 }
685 
686 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_sub_epi64(__mmask8 __U,__m256i __A,__m256i __B)687 _mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
688 {
689   return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
690              (__v4di) __B,
691              (__v4di)
692              _mm256_setzero_si256 (),
693              (__mmask8) __U);
694 }
695 
696 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_add_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)697 _mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
698         __m128i __B)
699 {
700   return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
701              (__v4si) __B,
702              (__v4si) __W,
703              (__mmask8) __U);
704 }
705 
706 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_add_epi32(__mmask8 __U,__m128i __A,__m128i __B)707 _mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
708 {
709   return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
710              (__v4si) __B,
711              (__v4si)
712              _mm_setzero_si128 (),
713              (__mmask8) __U);
714 }
715 
716 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_add_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)717 _mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
718         __m128i __B)
719 {
720   return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
721              (__v2di) __B,
722              (__v2di) __W,
723              (__mmask8) __U);
724 }
725 
726 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_add_epi64(__mmask8 __U,__m128i __A,__m128i __B)727 _mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
728 {
729   return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
730              (__v2di) __B,
731              (__v2di)
732              _mm_setzero_si128 (),
733              (__mmask8) __U);
734 }
735 
736 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_sub_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)737 _mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
738         __m128i __B)
739 {
740   return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
741              (__v4si) __B,
742              (__v4si) __W,
743              (__mmask8) __U);
744 }
745 
746 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_sub_epi32(__mmask8 __U,__m128i __A,__m128i __B)747 _mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
748 {
749   return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
750              (__v4si) __B,
751              (__v4si)
752              _mm_setzero_si128 (),
753              (__mmask8) __U);
754 }
755 
756 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_sub_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)757 _mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
758         __m128i __B)
759 {
760   return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
761              (__v2di) __B,
762              (__v2di) __W,
763              (__mmask8) __U);
764 }
765 
766 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_sub_epi64(__mmask8 __U,__m128i __A,__m128i __B)767 _mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
768 {
769   return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
770              (__v2di) __B,
771              (__v2di)
772              _mm_setzero_si128 (),
773              (__mmask8) __U);
774 }
775 
776 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mul_epi32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)777 _mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
778            __m256i __Y)
779 {
780   return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
781               (__v8si) __Y,
782               (__v4di) __W, __M);
783 }
784 
785 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mul_epi32(__mmask8 __M,__m256i __X,__m256i __Y)786 _mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
787 {
788   return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
789               (__v8si) __Y,
790               (__v4di)
791               _mm256_setzero_si256 (),
792               __M);
793 }
794 
795 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mul_epi32(__m128i __W,__mmask8 __M,__m128i __X,__m128i __Y)796 _mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X,
797         __m128i __Y)
798 {
799   return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
800               (__v4si) __Y,
801               (__v2di) __W, __M);
802 }
803 
804 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mul_epi32(__mmask8 __M,__m128i __X,__m128i __Y)805 _mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y)
806 {
807   return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
808               (__v4si) __Y,
809               (__v2di)
810               _mm_setzero_si128 (),
811               __M);
812 }
813 
814 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mul_epu32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)815 _mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X,
816            __m256i __Y)
817 {
818   return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
819                (__v8si) __Y,
820                (__v4di) __W, __M);
821 }
822 
823 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mul_epu32(__mmask8 __M,__m256i __X,__m256i __Y)824 _mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y)
825 {
826   return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
827                (__v8si) __Y,
828                (__v4di)
829                _mm256_setzero_si256 (),
830                __M);
831 }
832 
833 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mul_epu32(__m128i __W,__mmask8 __M,__m128i __X,__m128i __Y)834 _mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X,
835         __m128i __Y)
836 {
837   return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
838                (__v4si) __Y,
839                (__v2di) __W, __M);
840 }
841 
842 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mul_epu32(__mmask8 __M,__m128i __X,__m128i __Y)843 _mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y)
844 {
845   return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
846                (__v4si) __Y,
847                (__v2di)
848                _mm_setzero_si128 (),
849                __M);
850 }
851 
852 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mullo_epi32(__mmask8 __M,__m256i __A,__m256i __B)853 _mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B)
854 {
855   return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
856               (__v8si) __B,
857               (__v8si)
858               _mm256_setzero_si256 (),
859               __M);
860 }
861 
862 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mullo_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)863 _mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
864        __m256i __B)
865 {
866   return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
867               (__v8si) __B,
868               (__v8si) __W, __M);
869 }
870 
871 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mullo_epi32(__mmask8 __M,__m128i __A,__m128i __B)872 _mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
873 {
874   return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
875               (__v4si) __B,
876               (__v4si)
877               _mm_setzero_si128 (),
878               __M);
879 }
880 
881 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mullo_epi32(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)882 _mm_mask_mullo_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
883           __m128i __B)
884 {
885   return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
886               (__v4si) __B,
887               (__v4si) __W, __M);
888 }
889 
890 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_and_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)891 _mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
892            __m256i __B)
893 {
894   return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
895              (__v8si) __B,
896              (__v8si) __W,
897              (__mmask8) __U);
898 }
899 
900 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_and_epi32(__mmask8 __U,__m256i __A,__m256i __B)901 _mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
902 {
903   return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
904              (__v8si) __B,
905              (__v8si)
906              _mm256_setzero_si256 (),
907              (__mmask8) __U);
908 }
909 
910 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_and_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)911 _mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
912 {
913   return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
914              (__v4si) __B,
915              (__v4si) __W,
916              (__mmask8) __U);
917 }
918 
919 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_and_epi32(__mmask8 __U,__m128i __A,__m128i __B)920 _mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
921 {
922   return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
923              (__v4si) __B,
924              (__v4si)
925              _mm_setzero_si128 (),
926              (__mmask8) __U);
927 }
928 
929 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_andnot_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)930 _mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
931         __m256i __B)
932 {
933   return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
934               (__v8si) __B,
935               (__v8si) __W,
936               (__mmask8) __U);
937 }
938 
939 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_andnot_epi32(__mmask8 __U,__m256i __A,__m256i __B)940 _mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
941 {
942   return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
943               (__v8si) __B,
944               (__v8si)
945               _mm256_setzero_si256 (),
946               (__mmask8) __U);
947 }
948 
949 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_andnot_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)950 _mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
951            __m128i __B)
952 {
953   return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
954               (__v4si) __B,
955               (__v4si) __W,
956               (__mmask8) __U);
957 }
958 
959 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_andnot_epi32(__mmask8 __U,__m128i __A,__m128i __B)960 _mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
961 {
962   return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
963               (__v4si) __B,
964               (__v4si)
965               _mm_setzero_si128 (),
966               (__mmask8) __U);
967 }
968 
969 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_or_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)970 _mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
971           __m256i __B)
972 {
973   return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
974             (__v8si) __B,
975             (__v8si) __W,
976             (__mmask8) __U);
977 }
978 
979 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_or_epi32(__mmask8 __U,__m256i __A,__m256i __B)980 _mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
981 {
982   return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
983             (__v8si) __B,
984             (__v8si)
985             _mm256_setzero_si256 (),
986             (__mmask8) __U);
987 }
988 
989 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_or_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)990 _mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
991 {
992   return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
993             (__v4si) __B,
994             (__v4si) __W,
995             (__mmask8) __U);
996 }
997 
998 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_or_epi32(__mmask8 __U,__m128i __A,__m128i __B)999 _mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
1000 {
1001   return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
1002             (__v4si) __B,
1003             (__v4si)
1004             _mm_setzero_si128 (),
1005             (__mmask8) __U);
1006 }
1007 
1008 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_xor_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1009 _mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
1010            __m256i __B)
1011 {
1012   return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
1013              (__v8si) __B,
1014              (__v8si) __W,
1015              (__mmask8) __U);
1016 }
1017 
1018 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_xor_epi32(__mmask8 __U,__m256i __A,__m256i __B)1019 _mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
1020 {
1021   return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
1022              (__v8si) __B,
1023              (__v8si)
1024              _mm256_setzero_si256 (),
1025              (__mmask8) __U);
1026 }
1027 
1028 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_xor_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1029 _mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
1030         __m128i __B)
1031 {
1032   return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
1033              (__v4si) __B,
1034              (__v4si) __W,
1035              (__mmask8) __U);
1036 }
1037 
1038 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_xor_epi32(__mmask8 __U,__m128i __A,__m128i __B)1039 _mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
1040 {
1041   return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
1042              (__v4si) __B,
1043              (__v4si)
1044              _mm_setzero_si128 (),
1045              (__mmask8) __U);
1046 }
1047 
1048 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_and_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1049 _mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1050            __m256i __B)
1051 {
1052   return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
1053              (__v4di) __B,
1054              (__v4di) __W, __U);
1055 }
1056 
1057 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_and_epi64(__mmask8 __U,__m256i __A,__m256i __B)1058 _mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1059 {
1060   return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
1061              (__v4di) __B,
1062              (__v4di)
1063              _mm256_setzero_pd (),
1064              __U);
1065 }
1066 
1067 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_and_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1068 _mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1069         __m128i __B)
1070 {
1071   return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
1072              (__v2di) __B,
1073              (__v2di) __W, __U);
1074 }
1075 
1076 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_and_epi64(__mmask8 __U,__m128i __A,__m128i __B)1077 _mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1078 {
1079   return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
1080              (__v2di) __B,
1081              (__v2di)
1082              _mm_setzero_pd (),
1083              __U);
1084 }
1085 
1086 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_andnot_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1087 _mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1088         __m256i __B)
1089 {
1090   return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
1091               (__v4di) __B,
1092               (__v4di) __W, __U);
1093 }
1094 
1095 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_andnot_epi64(__mmask8 __U,__m256i __A,__m256i __B)1096 _mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1097 {
1098   return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
1099               (__v4di) __B,
1100               (__v4di)
1101               _mm256_setzero_pd (),
1102               __U);
1103 }
1104 
1105 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_andnot_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1106 _mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1107            __m128i __B)
1108 {
1109   return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
1110               (__v2di) __B,
1111               (__v2di) __W, __U);
1112 }
1113 
1114 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_andnot_epi64(__mmask8 __U,__m128i __A,__m128i __B)1115 _mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1116 {
1117   return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
1118               (__v2di) __B,
1119               (__v2di)
1120               _mm_setzero_pd (),
1121               __U);
1122 }
1123 
1124 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_or_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1125 _mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1126           __m256i __B)
1127 {
1128   return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
1129             (__v4di) __B,
1130             (__v4di) __W,
1131             (__mmask8) __U);
1132 }
1133 
1134 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_or_epi64(__mmask8 __U,__m256i __A,__m256i __B)1135 _mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1136 {
1137   return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
1138             (__v4di) __B,
1139             (__v4di)
1140             _mm256_setzero_si256 (),
1141             (__mmask8) __U);
1142 }
1143 
1144 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_or_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1145 _mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1146 {
1147   return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
1148             (__v2di) __B,
1149             (__v2di) __W,
1150             (__mmask8) __U);
1151 }
1152 
1153 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_or_epi64(__mmask8 __U,__m128i __A,__m128i __B)1154 _mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1155 {
1156   return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
1157             (__v2di) __B,
1158             (__v2di)
1159             _mm_setzero_si128 (),
1160             (__mmask8) __U);
1161 }
1162 
1163 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_xor_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1164 _mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1165            __m256i __B)
1166 {
1167   return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
1168              (__v4di) __B,
1169              (__v4di) __W,
1170              (__mmask8) __U);
1171 }
1172 
1173 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_xor_epi64(__mmask8 __U,__m256i __A,__m256i __B)1174 _mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1175 {
1176   return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
1177              (__v4di) __B,
1178              (__v4di)
1179              _mm256_setzero_si256 (),
1180              (__mmask8) __U);
1181 }
1182 
1183 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_xor_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1184 _mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1185         __m128i __B)
1186 {
1187   return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
1188              (__v2di) __B,
1189              (__v2di) __W,
1190              (__mmask8) __U);
1191 }
1192 
1193 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_xor_epi64(__mmask8 __U,__m128i __A,__m128i __B)1194 _mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1195 {
1196   return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
1197              (__v2di) __B,
1198              (__v2di)
1199              _mm_setzero_si128 (),
1200              (__mmask8) __U);
1201 }
1202 
1203 #define _mm_cmp_epi32_mask(a, b, p) __extension__ ({ \
1204   (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
1205                                         (__v4si)(__m128i)(b), \
1206                                         (p), (__mmask8)-1); })
1207 
1208 #define _mm_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1209   (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
1210                                         (__v4si)(__m128i)(b), \
1211                                         (p), (__mmask8)(m)); })
1212 
1213 #define _mm_cmp_epu32_mask(a, b, p) __extension__ ({ \
1214   (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
1215                                          (__v4si)(__m128i)(b), \
1216                                          (p), (__mmask8)-1); })
1217 
1218 #define _mm_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1219   (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
1220                                          (__v4si)(__m128i)(b), \
1221                                          (p), (__mmask8)(m)); })
1222 
1223 #define _mm256_cmp_epi32_mask(a, b, p) __extension__ ({ \
1224   (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
1225                                         (__v8si)(__m256i)(b), \
1226                                         (p), (__mmask8)-1); })
1227 
1228 #define _mm256_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1229   (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
1230                                         (__v8si)(__m256i)(b), \
1231                                         (p), (__mmask8)(m)); })
1232 
1233 #define _mm256_cmp_epu32_mask(a, b, p) __extension__ ({ \
1234   (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
1235                                          (__v8si)(__m256i)(b), \
1236                                          (p), (__mmask8)-1); })
1237 
1238 #define _mm256_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1239   (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
1240                                          (__v8si)(__m256i)(b), \
1241                                          (p), (__mmask8)(m)); })
1242 
1243 #define _mm_cmp_epi64_mask(a, b, p) __extension__ ({ \
1244   (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
1245                                         (__v2di)(__m128i)(b), \
1246                                         (p), (__mmask8)-1); })
1247 
1248 #define _mm_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1249   (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
1250                                         (__v2di)(__m128i)(b), \
1251                                         (p), (__mmask8)(m)); })
1252 
1253 #define _mm_cmp_epu64_mask(a, b, p) __extension__ ({ \
1254   (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
1255                                          (__v2di)(__m128i)(b), \
1256                                          (p), (__mmask8)-1); })
1257 
1258 #define _mm_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1259   (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
1260                                          (__v2di)(__m128i)(b), \
1261                                          (p), (__mmask8)(m)); })
1262 
1263 #define _mm256_cmp_epi64_mask(a, b, p) __extension__ ({ \
1264   (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
1265                                         (__v4di)(__m256i)(b), \
1266                                         (p), (__mmask8)-1); })
1267 
1268 #define _mm256_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1269   (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
1270                                         (__v4di)(__m256i)(b), \
1271                                         (p), (__mmask8)(m)); })
1272 
1273 #define _mm256_cmp_epu64_mask(a, b, p) __extension__ ({ \
1274   (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
1275                                          (__v4di)(__m256i)(b), \
1276                                          (p), (__mmask8)-1); })
1277 
1278 #define _mm256_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1279   (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
1280                                          (__v4di)(__m256i)(b), \
1281                                          (p), (__mmask8)(m)); })
1282 
1283 #define _mm256_cmp_ps_mask(a, b, p)  __extension__ ({ \
1284   (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
1285                                          (__v8sf)(__m256)(b), \
1286                                          (p), (__mmask8)-1); })
1287 
1288 #define _mm256_mask_cmp_ps_mask(m, a, b, p)  __extension__ ({ \
1289   (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
1290                                          (__v8sf)(__m256)(b), \
1291                                          (p), (__mmask8)(m)); })
1292 
1293 #define _mm256_cmp_pd_mask(a, b, p)  __extension__ ({ \
1294   (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256)(a), \
1295                                          (__v4df)(__m256)(b), \
1296                                          (p), (__mmask8)-1); })
1297 
1298 #define _mm256_mask_cmp_pd_mask(m, a, b, p)  __extension__ ({ \
1299   (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256)(a), \
1300                                          (__v4df)(__m256)(b), \
1301                                          (p), (__mmask8)(m)); })
1302 
1303 #define _mm128_cmp_ps_mask(a, b, p)  __extension__ ({ \
1304   (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
1305                                          (__v4sf)(__m128)(b), \
1306                                          (p), (__mmask8)-1); })
1307 
1308 #define _mm128_mask_cmp_ps_mask(m, a, b, p)  __extension__ ({ \
1309   (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
1310                                          (__v4sf)(__m128)(b), \
1311                                          (p), (__mmask8)(m)); })
1312 
1313 #define _mm128_cmp_pd_mask(a, b, p)  __extension__ ({ \
1314   (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128)(a), \
1315                                          (__v2df)(__m128)(b), \
1316                                          (p), (__mmask8)-1); })
1317 
1318 #define _mm128_mask_cmp_pd_mask(m, a, b, p)  __extension__ ({ \
1319   (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128)(a), \
1320                                          (__v2df)(__m128)(b), \
1321                                          (p), (__mmask8)(m)); })
1322 
1323 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_fmadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)1324 _mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1325 {
1326   return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1327                                                     (__v2df) __B,
1328                                                     (__v2df) __C,
1329                                                     (__mmask8) __U);
1330 }
1331 
1332 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask3_fmadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)1333 _mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1334 {
1335   return (__m128d) __builtin_ia32_vfmaddpd128_mask3 ((__v2df) __A,
1336                                                      (__v2df) __B,
1337                                                      (__v2df) __C,
1338                                                      (__mmask8) __U);
1339 }
1340 
1341 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_fmadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)1342 _mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1343 {
1344   return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1345                                                      (__v2df) __B,
1346                                                      (__v2df) __C,
1347                                                      (__mmask8) __U);
1348 }
1349 
1350 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_fmsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)1351 _mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1352 {
1353   return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1354                                                     (__v2df) __B,
1355                                                     -(__v2df) __C,
1356                                                     (__mmask8) __U);
1357 }
1358 
1359 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_fmsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)1360 _mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1361 {
1362   return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1363                                                      (__v2df) __B,
1364                                                      -(__v2df) __C,
1365                                                      (__mmask8) __U);
1366 }
1367 
1368 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask3_fnmadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)1369 _mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1370 {
1371   return (__m128d) __builtin_ia32_vfmaddpd128_mask3 (-(__v2df) __A,
1372                                                      (__v2df) __B,
1373                                                      (__v2df) __C,
1374                                                      (__mmask8) __U);
1375 }
1376 
1377 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_fnmadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)1378 _mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1379 {
1380   return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1381                                                      (__v2df) __B,
1382                                                      (__v2df) __C,
1383                                                      (__mmask8) __U);
1384 }
1385 
1386 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_fnmsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)1387 _mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1388 {
1389   return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1390                                                      (__v2df) __B,
1391                                                      -(__v2df) __C,
1392                                                      (__mmask8) __U);
1393 }
1394 
1395 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_mask_fmadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)1396 _mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1397 {
1398   return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1399                                                     (__v4df) __B,
1400                                                     (__v4df) __C,
1401                                                     (__mmask8) __U);
1402 }
1403 
1404 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_mask3_fmadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)1405 _mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1406 {
1407   return (__m256d) __builtin_ia32_vfmaddpd256_mask3 ((__v4df) __A,
1408                                                      (__v4df) __B,
1409                                                      (__v4df) __C,
1410                                                      (__mmask8) __U);
1411 }
1412 
1413 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_maskz_fmadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)1414 _mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1415 {
1416   return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1417                                                      (__v4df) __B,
1418                                                      (__v4df) __C,
1419                                                      (__mmask8) __U);
1420 }
1421 
1422 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_mask_fmsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)1423 _mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1424 {
1425   return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1426                                                     (__v4df) __B,
1427                                                     -(__v4df) __C,
1428                                                     (__mmask8) __U);
1429 }
1430 
1431 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_maskz_fmsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)1432 _mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1433 {
1434   return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1435                                                      (__v4df) __B,
1436                                                      -(__v4df) __C,
1437                                                      (__mmask8) __U);
1438 }
1439 
1440 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_mask3_fnmadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)1441 _mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1442 {
1443   return (__m256d) __builtin_ia32_vfmaddpd256_mask3 (-(__v4df) __A,
1444                                                      (__v4df) __B,
1445                                                      (__v4df) __C,
1446                                                      (__mmask8) __U);
1447 }
1448 
1449 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_maskz_fnmadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)1450 _mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1451 {
1452   return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1453                                                      (__v4df) __B,
1454                                                      (__v4df) __C,
1455                                                      (__mmask8) __U);
1456 }
1457 
1458 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_maskz_fnmsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)1459 _mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1460 {
1461   return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1462                                                      (__v4df) __B,
1463                                                      -(__v4df) __C,
1464                                                      (__mmask8) __U);
1465 }
1466 
1467 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_fmadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)1468 _mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1469 {
1470   return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1471                                                    (__v4sf) __B,
1472                                                    (__v4sf) __C,
1473                                                    (__mmask8) __U);
1474 }
1475 
1476 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask3_fmadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)1477 _mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1478 {
1479   return (__m128) __builtin_ia32_vfmaddps128_mask3 ((__v4sf) __A,
1480                                                     (__v4sf) __B,
1481                                                     (__v4sf) __C,
1482                                                     (__mmask8) __U);
1483 }
1484 
1485 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_fmadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)1486 _mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1487 {
1488   return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1489                                                     (__v4sf) __B,
1490                                                     (__v4sf) __C,
1491                                                     (__mmask8) __U);
1492 }
1493 
1494 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_fmsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)1495 _mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1496 {
1497   return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1498                                                    (__v4sf) __B,
1499                                                    -(__v4sf) __C,
1500                                                    (__mmask8) __U);
1501 }
1502 
1503 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_fmsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)1504 _mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1505 {
1506   return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1507                                                     (__v4sf) __B,
1508                                                     -(__v4sf) __C,
1509                                                     (__mmask8) __U);
1510 }
1511 
1512 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask3_fnmadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)1513 _mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1514 {
1515   return (__m128) __builtin_ia32_vfmaddps128_mask3 (-(__v4sf) __A,
1516                                                     (__v4sf) __B,
1517                                                     (__v4sf) __C,
1518                                                     (__mmask8) __U);
1519 }
1520 
1521 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_fnmadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)1522 _mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1523 {
1524   return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1525                                                     (__v4sf) __B,
1526                                                     (__v4sf) __C,
1527                                                     (__mmask8) __U);
1528 }
1529 
1530 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_fnmsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)1531 _mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1532 {
1533   return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1534                                                     (__v4sf) __B,
1535                                                     -(__v4sf) __C,
1536                                                     (__mmask8) __U);
1537 }
1538 
1539 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_mask_fmadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)1540 _mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1541 {
1542   return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1543                                                    (__v8sf) __B,
1544                                                    (__v8sf) __C,
1545                                                    (__mmask8) __U);
1546 }
1547 
1548 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_mask3_fmadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)1549 _mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1550 {
1551   return (__m256) __builtin_ia32_vfmaddps256_mask3 ((__v8sf) __A,
1552                                                     (__v8sf) __B,
1553                                                     (__v8sf) __C,
1554                                                     (__mmask8) __U);
1555 }
1556 
1557 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_maskz_fmadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)1558 _mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1559 {
1560   return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1561                                                     (__v8sf) __B,
1562                                                     (__v8sf) __C,
1563                                                     (__mmask8) __U);
1564 }
1565 
1566 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_mask_fmsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)1567 _mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1568 {
1569   return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1570                                                    (__v8sf) __B,
1571                                                    -(__v8sf) __C,
1572                                                    (__mmask8) __U);
1573 }
1574 
1575 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_maskz_fmsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)1576 _mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1577 {
1578   return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1579                                                     (__v8sf) __B,
1580                                                     -(__v8sf) __C,
1581                                                     (__mmask8) __U);
1582 }
1583 
1584 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_mask3_fnmadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)1585 _mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1586 {
1587   return (__m256) __builtin_ia32_vfmaddps256_mask3 (-(__v8sf) __A,
1588                                                     (__v8sf) __B,
1589                                                     (__v8sf) __C,
1590                                                     (__mmask8) __U);
1591 }
1592 
1593 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_maskz_fnmadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)1594 _mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1595 {
1596   return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1597                                                     (__v8sf) __B,
1598                                                     (__v8sf) __C,
1599                                                     (__mmask8) __U);
1600 }
1601 
1602 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_maskz_fnmsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)1603 _mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1604 {
1605   return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1606                                                     (__v8sf) __B,
1607                                                     -(__v8sf) __C,
1608                                                     (__mmask8) __U);
1609 }
1610 
1611 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_fmaddsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)1612 _mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1613 {
1614   return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1615                                                        (__v2df) __B,
1616                                                        (__v2df) __C,
1617                                                        (__mmask8) __U);
1618 }
1619 
1620 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask3_fmaddsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)1621 _mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1622 {
1623   return (__m128d) __builtin_ia32_vfmaddsubpd128_mask3 ((__v2df) __A,
1624                                                         (__v2df) __B,
1625                                                         (__v2df) __C,
1626                                                         (__mmask8)
1627                                                         __U);
1628 }
1629 
1630 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_fmaddsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)1631 _mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1632 {
1633   return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1634                                                         (__v2df) __B,
1635                                                         (__v2df) __C,
1636                                                         (__mmask8)
1637                                                         __U);
1638 }
1639 
1640 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_fmsubadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)1641 _mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1642 {
1643   return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1644                                                        (__v2df) __B,
1645                                                        -(__v2df) __C,
1646                                                        (__mmask8) __U);
1647 }
1648 
1649 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_fmsubadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)1650 _mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1651 {
1652   return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1653                                                         (__v2df) __B,
1654                                                         -(__v2df) __C,
1655                                                         (__mmask8)
1656                                                         __U);
1657 }
1658 
1659 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_mask_fmaddsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)1660 _mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1661 {
1662   return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1663                                                        (__v4df) __B,
1664                                                        (__v4df) __C,
1665                                                        (__mmask8) __U);
1666 }
1667 
1668 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_mask3_fmaddsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)1669 _mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1670 {
1671   return (__m256d) __builtin_ia32_vfmaddsubpd256_mask3 ((__v4df) __A,
1672                                                         (__v4df) __B,
1673                                                         (__v4df) __C,
1674                                                         (__mmask8)
1675                                                         __U);
1676 }
1677 
1678 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_maskz_fmaddsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)1679 _mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1680 {
1681   return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1682                                                         (__v4df) __B,
1683                                                         (__v4df) __C,
1684                                                         (__mmask8)
1685                                                         __U);
1686 }
1687 
1688 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_mask_fmsubadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)1689 _mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1690 {
1691   return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1692                                                        (__v4df) __B,
1693                                                        -(__v4df) __C,
1694                                                        (__mmask8) __U);
1695 }
1696 
1697 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_maskz_fmsubadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)1698 _mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1699 {
1700   return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1701                                                         (__v4df) __B,
1702                                                         -(__v4df) __C,
1703                                                         (__mmask8)
1704                                                         __U);
1705 }
1706 
1707 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_fmaddsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)1708 _mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1709 {
1710   return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1711                                                       (__v4sf) __B,
1712                                                       (__v4sf) __C,
1713                                                       (__mmask8) __U);
1714 }
1715 
1716 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask3_fmaddsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)1717 _mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1718 {
1719   return (__m128) __builtin_ia32_vfmaddsubps128_mask3 ((__v4sf) __A,
1720                                                        (__v4sf) __B,
1721                                                        (__v4sf) __C,
1722                                                        (__mmask8) __U);
1723 }
1724 
1725 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_fmaddsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)1726 _mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1727 {
1728   return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1729                                                        (__v4sf) __B,
1730                                                        (__v4sf) __C,
1731                                                        (__mmask8) __U);
1732 }
1733 
1734 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_fmsubadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)1735 _mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1736 {
1737   return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1738                                                       (__v4sf) __B,
1739                                                       -(__v4sf) __C,
1740                                                       (__mmask8) __U);
1741 }
1742 
1743 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_fmsubadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)1744 _mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1745 {
1746   return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1747                                                        (__v4sf) __B,
1748                                                        -(__v4sf) __C,
1749                                                        (__mmask8) __U);
1750 }
1751 
1752 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_mask_fmaddsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)1753 _mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B,
1754                          __m256 __C)
1755 {
1756   return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1757                                                       (__v8sf) __B,
1758                                                       (__v8sf) __C,
1759                                                       (__mmask8) __U);
1760 }
1761 
1762 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_mask3_fmaddsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)1763 _mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1764 {
1765   return (__m256) __builtin_ia32_vfmaddsubps256_mask3 ((__v8sf) __A,
1766                                                        (__v8sf) __B,
1767                                                        (__v8sf) __C,
1768                                                        (__mmask8) __U);
1769 }
1770 
1771 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_maskz_fmaddsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)1772 _mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1773 {
1774   return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1775                                                        (__v8sf) __B,
1776                                                        (__v8sf) __C,
1777                                                        (__mmask8) __U);
1778 }
1779 
1780 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_mask_fmsubadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)1781 _mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1782 {
1783   return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1784                                                       (__v8sf) __B,
1785                                                       -(__v8sf) __C,
1786                                                       (__mmask8) __U);
1787 }
1788 
1789 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_maskz_fmsubadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)1790 _mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1791 {
1792   return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1793                                                        (__v8sf) __B,
1794                                                        -(__v8sf) __C,
1795                                                        (__mmask8) __U);
1796 }
1797 
1798 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask3_fmsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)1799 _mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1800 {
1801   return (__m128d) __builtin_ia32_vfmsubpd128_mask3 ((__v2df) __A,
1802                                                      (__v2df) __B,
1803                                                      (__v2df) __C,
1804                                                      (__mmask8) __U);
1805 }
1806 
1807 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_mask3_fmsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)1808 _mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1809 {
1810   return (__m256d) __builtin_ia32_vfmsubpd256_mask3 ((__v4df) __A,
1811                                                      (__v4df) __B,
1812                                                      (__v4df) __C,
1813                                                      (__mmask8) __U);
1814 }
1815 
1816 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask3_fmsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)1817 _mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1818 {
1819   return (__m128) __builtin_ia32_vfmsubps128_mask3 ((__v4sf) __A,
1820                                                     (__v4sf) __B,
1821                                                     (__v4sf) __C,
1822                                                     (__mmask8) __U);
1823 }
1824 
1825 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_mask3_fmsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)1826 _mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1827 {
1828   return (__m256) __builtin_ia32_vfmsubps256_mask3 ((__v8sf) __A,
1829                                                     (__v8sf) __B,
1830                                                     (__v8sf) __C,
1831                                                     (__mmask8) __U);
1832 }
1833 
1834 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask3_fmsubadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)1835 _mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1836 {
1837   return (__m128d) __builtin_ia32_vfmsubaddpd128_mask3 ((__v2df) __A,
1838                                                         (__v2df) __B,
1839                                                         (__v2df) __C,
1840                                                         (__mmask8)
1841                                                         __U);
1842 }
1843 
1844 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_mask3_fmsubadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)1845 _mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1846 {
1847   return (__m256d) __builtin_ia32_vfmsubaddpd256_mask3 ((__v4df) __A,
1848                                                         (__v4df) __B,
1849                                                         (__v4df) __C,
1850                                                         (__mmask8)
1851                                                         __U);
1852 }
1853 
1854 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask3_fmsubadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)1855 _mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1856 {
1857   return (__m128) __builtin_ia32_vfmsubaddps128_mask3 ((__v4sf) __A,
1858                                                        (__v4sf) __B,
1859                                                        (__v4sf) __C,
1860                                                        (__mmask8) __U);
1861 }
1862 
1863 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_mask3_fmsubadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)1864 _mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1865 {
1866   return (__m256) __builtin_ia32_vfmsubaddps256_mask3 ((__v8sf) __A,
1867                                                        (__v8sf) __B,
1868                                                        (__v8sf) __C,
1869                                                        (__mmask8) __U);
1870 }
1871 
1872 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_fnmadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)1873 _mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1874 {
1875   return (__m128d) __builtin_ia32_vfnmaddpd128_mask ((__v2df) __A,
1876                                                      (__v2df) __B,
1877                                                      (__v2df) __C,
1878                                                      (__mmask8) __U);
1879 }
1880 
1881 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_mask_fnmadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)1882 _mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1883 {
1884   return (__m256d) __builtin_ia32_vfnmaddpd256_mask ((__v4df) __A,
1885                                                      (__v4df) __B,
1886                                                      (__v4df) __C,
1887                                                      (__mmask8) __U);
1888 }
1889 
1890 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_fnmadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)1891 _mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1892 {
1893   return (__m128) __builtin_ia32_vfnmaddps128_mask ((__v4sf) __A,
1894                                                     (__v4sf) __B,
1895                                                     (__v4sf) __C,
1896                                                     (__mmask8) __U);
1897 }
1898 
1899 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_mask_fnmadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)1900 _mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1901 {
1902   return (__m256) __builtin_ia32_vfnmaddps256_mask ((__v8sf) __A,
1903                                                     (__v8sf) __B,
1904                                                     (__v8sf) __C,
1905                                                     (__mmask8) __U);
1906 }
1907 
1908 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_fnmsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)1909 _mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1910 {
1911   return (__m128d) __builtin_ia32_vfnmsubpd128_mask ((__v2df) __A,
1912                                                      (__v2df) __B,
1913                                                      (__v2df) __C,
1914                                                      (__mmask8) __U);
1915 }
1916 
1917 static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask3_fnmsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)1918 _mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1919 {
1920   return (__m128d) __builtin_ia32_vfnmsubpd128_mask3 ((__v2df) __A,
1921                                                       (__v2df) __B,
1922                                                       (__v2df) __C,
1923                                                       (__mmask8) __U);
1924 }
1925 
1926 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_mask_fnmsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)1927 _mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1928 {
1929   return (__m256d) __builtin_ia32_vfnmsubpd256_mask ((__v4df) __A,
1930                                                      (__v4df) __B,
1931                                                      (__v4df) __C,
1932                                                      (__mmask8) __U);
1933 }
1934 
1935 static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_mask3_fnmsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)1936 _mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1937 {
1938   return (__m256d) __builtin_ia32_vfnmsubpd256_mask3 ((__v4df) __A,
1939                                                       (__v4df) __B,
1940                                                       (__v4df) __C,
1941                                                       (__mmask8) __U);
1942 }
1943 
1944 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_fnmsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)1945 _mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1946 {
1947   return (__m128) __builtin_ia32_vfnmsubps128_mask ((__v4sf) __A,
1948                                                     (__v4sf) __B,
1949                                                     (__v4sf) __C,
1950                                                     (__mmask8) __U);
1951 }
1952 
1953 static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask3_fnmsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)1954 _mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1955 {
1956   return (__m128) __builtin_ia32_vfnmsubps128_mask3 ((__v4sf) __A,
1957                                                      (__v4sf) __B,
1958                                                      (__v4sf) __C,
1959                                                      (__mmask8) __U);
1960 }
1961 
1962 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_mask_fnmsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)1963 _mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1964 {
1965   return (__m256) __builtin_ia32_vfnmsubps256_mask ((__v8sf) __A,
1966                                                     (__v8sf) __B,
1967                                                     (__v8sf) __C,
1968                                                     (__mmask8) __U);
1969 }
1970 
1971 static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_mask3_fnmsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)1972 _mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1973 {
1974   return (__m256) __builtin_ia32_vfnmsubps256_mask3 ((__v8sf) __A,
1975                                                      (__v8sf) __B,
1976                                                      (__v8sf) __C,
1977                                                      (__mmask8) __U);
1978 }
1979 
1980 #undef __DEFAULT_FN_ATTRS
1981 
1982 #endif /* __AVX512VLINTRIN_H */
1983