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