1 /*===---- avx512vlintrin.h - AVX512VL intrinsics ---------------------------===
2 *
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 *
7 *===-----------------------------------------------------------------------===
8 */
9
10 #ifndef __IMMINTRIN_H
11 #error "Never use <avx512vlintrin.h> directly; include <immintrin.h> instead."
12 #endif
13
14 #ifndef __AVX512VLINTRIN_H
15 #define __AVX512VLINTRIN_H
16
17 #define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128)))
18 #define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256)))
19
20 typedef short __v2hi __attribute__((__vector_size__(4)));
21 typedef char __v4qi __attribute__((__vector_size__(4)));
22 typedef char __v2qi __attribute__((__vector_size__(2)));
23
24 /* Integer compare */
25
26 #define _mm_cmpeq_epi32_mask(A, B) \
27 _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_EQ)
28 #define _mm_mask_cmpeq_epi32_mask(k, A, B) \
29 _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_EQ)
30 #define _mm_cmpge_epi32_mask(A, B) \
31 _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_GE)
32 #define _mm_mask_cmpge_epi32_mask(k, A, B) \
33 _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GE)
34 #define _mm_cmpgt_epi32_mask(A, B) \
35 _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_GT)
36 #define _mm_mask_cmpgt_epi32_mask(k, A, B) \
37 _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GT)
38 #define _mm_cmple_epi32_mask(A, B) \
39 _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_LE)
40 #define _mm_mask_cmple_epi32_mask(k, A, B) \
41 _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LE)
42 #define _mm_cmplt_epi32_mask(A, B) \
43 _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_LT)
44 #define _mm_mask_cmplt_epi32_mask(k, A, B) \
45 _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LT)
46 #define _mm_cmpneq_epi32_mask(A, B) \
47 _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_NE)
48 #define _mm_mask_cmpneq_epi32_mask(k, A, B) \
49 _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_NE)
50
51 #define _mm256_cmpeq_epi32_mask(A, B) \
52 _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_EQ)
53 #define _mm256_mask_cmpeq_epi32_mask(k, A, B) \
54 _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_EQ)
55 #define _mm256_cmpge_epi32_mask(A, B) \
56 _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_GE)
57 #define _mm256_mask_cmpge_epi32_mask(k, A, B) \
58 _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GE)
59 #define _mm256_cmpgt_epi32_mask(A, B) \
60 _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_GT)
61 #define _mm256_mask_cmpgt_epi32_mask(k, A, B) \
62 _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GT)
63 #define _mm256_cmple_epi32_mask(A, B) \
64 _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_LE)
65 #define _mm256_mask_cmple_epi32_mask(k, A, B) \
66 _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LE)
67 #define _mm256_cmplt_epi32_mask(A, B) \
68 _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_LT)
69 #define _mm256_mask_cmplt_epi32_mask(k, A, B) \
70 _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LT)
71 #define _mm256_cmpneq_epi32_mask(A, B) \
72 _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_NE)
73 #define _mm256_mask_cmpneq_epi32_mask(k, A, B) \
74 _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_NE)
75
76 #define _mm_cmpeq_epu32_mask(A, B) \
77 _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_EQ)
78 #define _mm_mask_cmpeq_epu32_mask(k, A, B) \
79 _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_EQ)
80 #define _mm_cmpge_epu32_mask(A, B) \
81 _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_GE)
82 #define _mm_mask_cmpge_epu32_mask(k, A, B) \
83 _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GE)
84 #define _mm_cmpgt_epu32_mask(A, B) \
85 _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_GT)
86 #define _mm_mask_cmpgt_epu32_mask(k, A, B) \
87 _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GT)
88 #define _mm_cmple_epu32_mask(A, B) \
89 _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_LE)
90 #define _mm_mask_cmple_epu32_mask(k, A, B) \
91 _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LE)
92 #define _mm_cmplt_epu32_mask(A, B) \
93 _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_LT)
94 #define _mm_mask_cmplt_epu32_mask(k, A, B) \
95 _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LT)
96 #define _mm_cmpneq_epu32_mask(A, B) \
97 _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_NE)
98 #define _mm_mask_cmpneq_epu32_mask(k, A, B) \
99 _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_NE)
100
101 #define _mm256_cmpeq_epu32_mask(A, B) \
102 _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_EQ)
103 #define _mm256_mask_cmpeq_epu32_mask(k, A, B) \
104 _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_EQ)
105 #define _mm256_cmpge_epu32_mask(A, B) \
106 _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_GE)
107 #define _mm256_mask_cmpge_epu32_mask(k, A, B) \
108 _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GE)
109 #define _mm256_cmpgt_epu32_mask(A, B) \
110 _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_GT)
111 #define _mm256_mask_cmpgt_epu32_mask(k, A, B) \
112 _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GT)
113 #define _mm256_cmple_epu32_mask(A, B) \
114 _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_LE)
115 #define _mm256_mask_cmple_epu32_mask(k, A, B) \
116 _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LE)
117 #define _mm256_cmplt_epu32_mask(A, B) \
118 _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_LT)
119 #define _mm256_mask_cmplt_epu32_mask(k, A, B) \
120 _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LT)
121 #define _mm256_cmpneq_epu32_mask(A, B) \
122 _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_NE)
123 #define _mm256_mask_cmpneq_epu32_mask(k, A, B) \
124 _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_NE)
125
126 #define _mm_cmpeq_epi64_mask(A, B) \
127 _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_EQ)
128 #define _mm_mask_cmpeq_epi64_mask(k, A, B) \
129 _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_EQ)
130 #define _mm_cmpge_epi64_mask(A, B) \
131 _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_GE)
132 #define _mm_mask_cmpge_epi64_mask(k, A, B) \
133 _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GE)
134 #define _mm_cmpgt_epi64_mask(A, B) \
135 _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_GT)
136 #define _mm_mask_cmpgt_epi64_mask(k, A, B) \
137 _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GT)
138 #define _mm_cmple_epi64_mask(A, B) \
139 _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_LE)
140 #define _mm_mask_cmple_epi64_mask(k, A, B) \
141 _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LE)
142 #define _mm_cmplt_epi64_mask(A, B) \
143 _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_LT)
144 #define _mm_mask_cmplt_epi64_mask(k, A, B) \
145 _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LT)
146 #define _mm_cmpneq_epi64_mask(A, B) \
147 _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_NE)
148 #define _mm_mask_cmpneq_epi64_mask(k, A, B) \
149 _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_NE)
150
151 #define _mm256_cmpeq_epi64_mask(A, B) \
152 _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_EQ)
153 #define _mm256_mask_cmpeq_epi64_mask(k, A, B) \
154 _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_EQ)
155 #define _mm256_cmpge_epi64_mask(A, B) \
156 _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_GE)
157 #define _mm256_mask_cmpge_epi64_mask(k, A, B) \
158 _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GE)
159 #define _mm256_cmpgt_epi64_mask(A, B) \
160 _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_GT)
161 #define _mm256_mask_cmpgt_epi64_mask(k, A, B) \
162 _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GT)
163 #define _mm256_cmple_epi64_mask(A, B) \
164 _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_LE)
165 #define _mm256_mask_cmple_epi64_mask(k, A, B) \
166 _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LE)
167 #define _mm256_cmplt_epi64_mask(A, B) \
168 _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_LT)
169 #define _mm256_mask_cmplt_epi64_mask(k, A, B) \
170 _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LT)
171 #define _mm256_cmpneq_epi64_mask(A, B) \
172 _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_NE)
173 #define _mm256_mask_cmpneq_epi64_mask(k, A, B) \
174 _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_NE)
175
176 #define _mm_cmpeq_epu64_mask(A, B) \
177 _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_EQ)
178 #define _mm_mask_cmpeq_epu64_mask(k, A, B) \
179 _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_EQ)
180 #define _mm_cmpge_epu64_mask(A, B) \
181 _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_GE)
182 #define _mm_mask_cmpge_epu64_mask(k, A, B) \
183 _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GE)
184 #define _mm_cmpgt_epu64_mask(A, B) \
185 _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_GT)
186 #define _mm_mask_cmpgt_epu64_mask(k, A, B) \
187 _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GT)
188 #define _mm_cmple_epu64_mask(A, B) \
189 _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_LE)
190 #define _mm_mask_cmple_epu64_mask(k, A, B) \
191 _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LE)
192 #define _mm_cmplt_epu64_mask(A, B) \
193 _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_LT)
194 #define _mm_mask_cmplt_epu64_mask(k, A, B) \
195 _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LT)
196 #define _mm_cmpneq_epu64_mask(A, B) \
197 _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_NE)
198 #define _mm_mask_cmpneq_epu64_mask(k, A, B) \
199 _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_NE)
200
201 #define _mm256_cmpeq_epu64_mask(A, B) \
202 _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_EQ)
203 #define _mm256_mask_cmpeq_epu64_mask(k, A, B) \
204 _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_EQ)
205 #define _mm256_cmpge_epu64_mask(A, B) \
206 _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_GE)
207 #define _mm256_mask_cmpge_epu64_mask(k, A, B) \
208 _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GE)
209 #define _mm256_cmpgt_epu64_mask(A, B) \
210 _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_GT)
211 #define _mm256_mask_cmpgt_epu64_mask(k, A, B) \
212 _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GT)
213 #define _mm256_cmple_epu64_mask(A, B) \
214 _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_LE)
215 #define _mm256_mask_cmple_epu64_mask(k, A, B) \
216 _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LE)
217 #define _mm256_cmplt_epu64_mask(A, B) \
218 _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_LT)
219 #define _mm256_mask_cmplt_epu64_mask(k, A, B) \
220 _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LT)
221 #define _mm256_cmpneq_epu64_mask(A, B) \
222 _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_NE)
223 #define _mm256_mask_cmpneq_epu64_mask(k, A, B) \
224 _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_NE)
225
226 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_add_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)227 _mm256_mask_add_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
228 {
229 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
230 (__v8si)_mm256_add_epi32(__A, __B),
231 (__v8si)__W);
232 }
233
234 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_add_epi32(__mmask8 __U,__m256i __A,__m256i __B)235 _mm256_maskz_add_epi32(__mmask8 __U, __m256i __A, __m256i __B)
236 {
237 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
238 (__v8si)_mm256_add_epi32(__A, __B),
239 (__v8si)_mm256_setzero_si256());
240 }
241
242 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_add_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)243 _mm256_mask_add_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
244 {
245 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
246 (__v4di)_mm256_add_epi64(__A, __B),
247 (__v4di)__W);
248 }
249
250 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_add_epi64(__mmask8 __U,__m256i __A,__m256i __B)251 _mm256_maskz_add_epi64(__mmask8 __U, __m256i __A, __m256i __B)
252 {
253 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
254 (__v4di)_mm256_add_epi64(__A, __B),
255 (__v4di)_mm256_setzero_si256());
256 }
257
258 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_sub_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)259 _mm256_mask_sub_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
260 {
261 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
262 (__v8si)_mm256_sub_epi32(__A, __B),
263 (__v8si)__W);
264 }
265
266 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_sub_epi32(__mmask8 __U,__m256i __A,__m256i __B)267 _mm256_maskz_sub_epi32(__mmask8 __U, __m256i __A, __m256i __B)
268 {
269 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
270 (__v8si)_mm256_sub_epi32(__A, __B),
271 (__v8si)_mm256_setzero_si256());
272 }
273
274 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_sub_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)275 _mm256_mask_sub_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
276 {
277 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
278 (__v4di)_mm256_sub_epi64(__A, __B),
279 (__v4di)__W);
280 }
281
282 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_sub_epi64(__mmask8 __U,__m256i __A,__m256i __B)283 _mm256_maskz_sub_epi64(__mmask8 __U, __m256i __A, __m256i __B)
284 {
285 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
286 (__v4di)_mm256_sub_epi64(__A, __B),
287 (__v4di)_mm256_setzero_si256());
288 }
289
290 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_add_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)291 _mm_mask_add_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
292 {
293 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
294 (__v4si)_mm_add_epi32(__A, __B),
295 (__v4si)__W);
296 }
297
298 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_add_epi32(__mmask8 __U,__m128i __A,__m128i __B)299 _mm_maskz_add_epi32(__mmask8 __U, __m128i __A, __m128i __B)
300 {
301 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
302 (__v4si)_mm_add_epi32(__A, __B),
303 (__v4si)_mm_setzero_si128());
304 }
305
306 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_add_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)307 _mm_mask_add_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
308 {
309 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
310 (__v2di)_mm_add_epi64(__A, __B),
311 (__v2di)__W);
312 }
313
314 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_add_epi64(__mmask8 __U,__m128i __A,__m128i __B)315 _mm_maskz_add_epi64(__mmask8 __U, __m128i __A, __m128i __B)
316 {
317 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
318 (__v2di)_mm_add_epi64(__A, __B),
319 (__v2di)_mm_setzero_si128());
320 }
321
322 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_sub_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)323 _mm_mask_sub_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
324 {
325 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
326 (__v4si)_mm_sub_epi32(__A, __B),
327 (__v4si)__W);
328 }
329
330 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_sub_epi32(__mmask8 __U,__m128i __A,__m128i __B)331 _mm_maskz_sub_epi32(__mmask8 __U, __m128i __A, __m128i __B)
332 {
333 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
334 (__v4si)_mm_sub_epi32(__A, __B),
335 (__v4si)_mm_setzero_si128());
336 }
337
338 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_sub_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)339 _mm_mask_sub_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
340 {
341 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
342 (__v2di)_mm_sub_epi64(__A, __B),
343 (__v2di)__W);
344 }
345
346 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_sub_epi64(__mmask8 __U,__m128i __A,__m128i __B)347 _mm_maskz_sub_epi64(__mmask8 __U, __m128i __A, __m128i __B)
348 {
349 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
350 (__v2di)_mm_sub_epi64(__A, __B),
351 (__v2di)_mm_setzero_si128());
352 }
353
354 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_mul_epi32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)355 _mm256_mask_mul_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y)
356 {
357 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
358 (__v4di)_mm256_mul_epi32(__X, __Y),
359 (__v4di)__W);
360 }
361
362 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_mul_epi32(__mmask8 __M,__m256i __X,__m256i __Y)363 _mm256_maskz_mul_epi32(__mmask8 __M, __m256i __X, __m256i __Y)
364 {
365 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
366 (__v4di)_mm256_mul_epi32(__X, __Y),
367 (__v4di)_mm256_setzero_si256());
368 }
369
370 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_mul_epi32(__m128i __W,__mmask8 __M,__m128i __X,__m128i __Y)371 _mm_mask_mul_epi32(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y)
372 {
373 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
374 (__v2di)_mm_mul_epi32(__X, __Y),
375 (__v2di)__W);
376 }
377
378 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_mul_epi32(__mmask8 __M,__m128i __X,__m128i __Y)379 _mm_maskz_mul_epi32(__mmask8 __M, __m128i __X, __m128i __Y)
380 {
381 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
382 (__v2di)_mm_mul_epi32(__X, __Y),
383 (__v2di)_mm_setzero_si128());
384 }
385
386 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_mul_epu32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)387 _mm256_mask_mul_epu32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y)
388 {
389 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
390 (__v4di)_mm256_mul_epu32(__X, __Y),
391 (__v4di)__W);
392 }
393
394 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_mul_epu32(__mmask8 __M,__m256i __X,__m256i __Y)395 _mm256_maskz_mul_epu32(__mmask8 __M, __m256i __X, __m256i __Y)
396 {
397 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
398 (__v4di)_mm256_mul_epu32(__X, __Y),
399 (__v4di)_mm256_setzero_si256());
400 }
401
402 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_mul_epu32(__m128i __W,__mmask8 __M,__m128i __X,__m128i __Y)403 _mm_mask_mul_epu32(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y)
404 {
405 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
406 (__v2di)_mm_mul_epu32(__X, __Y),
407 (__v2di)__W);
408 }
409
410 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_mul_epu32(__mmask8 __M,__m128i __X,__m128i __Y)411 _mm_maskz_mul_epu32(__mmask8 __M, __m128i __X, __m128i __Y)
412 {
413 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
414 (__v2di)_mm_mul_epu32(__X, __Y),
415 (__v2di)_mm_setzero_si128());
416 }
417
418 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_mullo_epi32(__mmask8 __M,__m256i __A,__m256i __B)419 _mm256_maskz_mullo_epi32(__mmask8 __M, __m256i __A, __m256i __B)
420 {
421 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
422 (__v8si)_mm256_mullo_epi32(__A, __B),
423 (__v8si)_mm256_setzero_si256());
424 }
425
426 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_mullo_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)427 _mm256_mask_mullo_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B)
428 {
429 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
430 (__v8si)_mm256_mullo_epi32(__A, __B),
431 (__v8si)__W);
432 }
433
434 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_mullo_epi32(__mmask8 __M,__m128i __A,__m128i __B)435 _mm_maskz_mullo_epi32(__mmask8 __M, __m128i __A, __m128i __B)
436 {
437 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
438 (__v4si)_mm_mullo_epi32(__A, __B),
439 (__v4si)_mm_setzero_si128());
440 }
441
442 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_mullo_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)443 _mm_mask_mullo_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
444 {
445 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
446 (__v4si)_mm_mullo_epi32(__A, __B),
447 (__v4si)__W);
448 }
449
450 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_and_epi32(__m256i __a,__m256i __b)451 _mm256_and_epi32(__m256i __a, __m256i __b)
452 {
453 return (__m256i)((__v8su)__a & (__v8su)__b);
454 }
455
456 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_and_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)457 _mm256_mask_and_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
458 {
459 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
460 (__v8si)_mm256_and_epi32(__A, __B),
461 (__v8si)__W);
462 }
463
464 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_and_epi32(__mmask8 __U,__m256i __A,__m256i __B)465 _mm256_maskz_and_epi32(__mmask8 __U, __m256i __A, __m256i __B)
466 {
467 return (__m256i)_mm256_mask_and_epi32(_mm256_setzero_si256(), __U, __A, __B);
468 }
469
470 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_and_epi32(__m128i __a,__m128i __b)471 _mm_and_epi32(__m128i __a, __m128i __b)
472 {
473 return (__m128i)((__v4su)__a & (__v4su)__b);
474 }
475
476 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_and_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)477 _mm_mask_and_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
478 {
479 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
480 (__v4si)_mm_and_epi32(__A, __B),
481 (__v4si)__W);
482 }
483
484 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_and_epi32(__mmask8 __U,__m128i __A,__m128i __B)485 _mm_maskz_and_epi32(__mmask8 __U, __m128i __A, __m128i __B)
486 {
487 return (__m128i)_mm_mask_and_epi32(_mm_setzero_si128(), __U, __A, __B);
488 }
489
490 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_andnot_epi32(__m256i __A,__m256i __B)491 _mm256_andnot_epi32(__m256i __A, __m256i __B)
492 {
493 return (__m256i)(~(__v8su)__A & (__v8su)__B);
494 }
495
496 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_andnot_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)497 _mm256_mask_andnot_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
498 {
499 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
500 (__v8si)_mm256_andnot_epi32(__A, __B),
501 (__v8si)__W);
502 }
503
504 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_andnot_epi32(__mmask8 __U,__m256i __A,__m256i __B)505 _mm256_maskz_andnot_epi32(__mmask8 __U, __m256i __A, __m256i __B)
506 {
507 return (__m256i)_mm256_mask_andnot_epi32(_mm256_setzero_si256(),
508 __U, __A, __B);
509 }
510
511 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_andnot_epi32(__m128i __A,__m128i __B)512 _mm_andnot_epi32(__m128i __A, __m128i __B)
513 {
514 return (__m128i)(~(__v4su)__A & (__v4su)__B);
515 }
516
517 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_andnot_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)518 _mm_mask_andnot_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
519 {
520 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
521 (__v4si)_mm_andnot_epi32(__A, __B),
522 (__v4si)__W);
523 }
524
525 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_andnot_epi32(__mmask8 __U,__m128i __A,__m128i __B)526 _mm_maskz_andnot_epi32(__mmask8 __U, __m128i __A, __m128i __B)
527 {
528 return (__m128i)_mm_mask_andnot_epi32(_mm_setzero_si128(), __U, __A, __B);
529 }
530
531 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_or_epi32(__m256i __a,__m256i __b)532 _mm256_or_epi32(__m256i __a, __m256i __b)
533 {
534 return (__m256i)((__v8su)__a | (__v8su)__b);
535 }
536
537 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_or_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)538 _mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
539 {
540 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
541 (__v8si)_mm256_or_epi32(__A, __B),
542 (__v8si)__W);
543 }
544
545 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_or_epi32(__mmask8 __U,__m256i __A,__m256i __B)546 _mm256_maskz_or_epi32(__mmask8 __U, __m256i __A, __m256i __B)
547 {
548 return (__m256i)_mm256_mask_or_epi32(_mm256_setzero_si256(), __U, __A, __B);
549 }
550
551 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_or_epi32(__m128i __a,__m128i __b)552 _mm_or_epi32(__m128i __a, __m128i __b)
553 {
554 return (__m128i)((__v4su)__a | (__v4su)__b);
555 }
556
557 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_or_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)558 _mm_mask_or_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
559 {
560 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
561 (__v4si)_mm_or_epi32(__A, __B),
562 (__v4si)__W);
563 }
564
565 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_or_epi32(__mmask8 __U,__m128i __A,__m128i __B)566 _mm_maskz_or_epi32(__mmask8 __U, __m128i __A, __m128i __B)
567 {
568 return (__m128i)_mm_mask_or_epi32(_mm_setzero_si128(), __U, __A, __B);
569 }
570
571 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_xor_epi32(__m256i __a,__m256i __b)572 _mm256_xor_epi32(__m256i __a, __m256i __b)
573 {
574 return (__m256i)((__v8su)__a ^ (__v8su)__b);
575 }
576
577 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_xor_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)578 _mm256_mask_xor_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
579 {
580 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
581 (__v8si)_mm256_xor_epi32(__A, __B),
582 (__v8si)__W);
583 }
584
585 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_xor_epi32(__mmask8 __U,__m256i __A,__m256i __B)586 _mm256_maskz_xor_epi32(__mmask8 __U, __m256i __A, __m256i __B)
587 {
588 return (__m256i)_mm256_mask_xor_epi32(_mm256_setzero_si256(), __U, __A, __B);
589 }
590
591 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_xor_epi32(__m128i __a,__m128i __b)592 _mm_xor_epi32(__m128i __a, __m128i __b)
593 {
594 return (__m128i)((__v4su)__a ^ (__v4su)__b);
595 }
596
597 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_xor_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)598 _mm_mask_xor_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
599 {
600 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
601 (__v4si)_mm_xor_epi32(__A, __B),
602 (__v4si)__W);
603 }
604
605 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_xor_epi32(__mmask8 __U,__m128i __A,__m128i __B)606 _mm_maskz_xor_epi32(__mmask8 __U, __m128i __A, __m128i __B)
607 {
608 return (__m128i)_mm_mask_xor_epi32(_mm_setzero_si128(), __U, __A, __B);
609 }
610
611 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_and_epi64(__m256i __a,__m256i __b)612 _mm256_and_epi64(__m256i __a, __m256i __b)
613 {
614 return (__m256i)((__v4du)__a & (__v4du)__b);
615 }
616
617 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_and_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)618 _mm256_mask_and_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
619 {
620 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
621 (__v4di)_mm256_and_epi64(__A, __B),
622 (__v4di)__W);
623 }
624
625 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_and_epi64(__mmask8 __U,__m256i __A,__m256i __B)626 _mm256_maskz_and_epi64(__mmask8 __U, __m256i __A, __m256i __B)
627 {
628 return (__m256i)_mm256_mask_and_epi64(_mm256_setzero_si256(), __U, __A, __B);
629 }
630
631 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_and_epi64(__m128i __a,__m128i __b)632 _mm_and_epi64(__m128i __a, __m128i __b)
633 {
634 return (__m128i)((__v2du)__a & (__v2du)__b);
635 }
636
637 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_and_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)638 _mm_mask_and_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
639 {
640 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
641 (__v2di)_mm_and_epi64(__A, __B),
642 (__v2di)__W);
643 }
644
645 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_and_epi64(__mmask8 __U,__m128i __A,__m128i __B)646 _mm_maskz_and_epi64(__mmask8 __U, __m128i __A, __m128i __B)
647 {
648 return (__m128i)_mm_mask_and_epi64(_mm_setzero_si128(), __U, __A, __B);
649 }
650
651 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_andnot_epi64(__m256i __A,__m256i __B)652 _mm256_andnot_epi64(__m256i __A, __m256i __B)
653 {
654 return (__m256i)(~(__v4du)__A & (__v4du)__B);
655 }
656
657 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_andnot_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)658 _mm256_mask_andnot_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
659 {
660 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
661 (__v4di)_mm256_andnot_epi64(__A, __B),
662 (__v4di)__W);
663 }
664
665 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_andnot_epi64(__mmask8 __U,__m256i __A,__m256i __B)666 _mm256_maskz_andnot_epi64(__mmask8 __U, __m256i __A, __m256i __B)
667 {
668 return (__m256i)_mm256_mask_andnot_epi64(_mm256_setzero_si256(),
669 __U, __A, __B);
670 }
671
672 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_andnot_epi64(__m128i __A,__m128i __B)673 _mm_andnot_epi64(__m128i __A, __m128i __B)
674 {
675 return (__m128i)(~(__v2du)__A & (__v2du)__B);
676 }
677
678 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_andnot_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)679 _mm_mask_andnot_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
680 {
681 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
682 (__v2di)_mm_andnot_epi64(__A, __B),
683 (__v2di)__W);
684 }
685
686 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_andnot_epi64(__mmask8 __U,__m128i __A,__m128i __B)687 _mm_maskz_andnot_epi64(__mmask8 __U, __m128i __A, __m128i __B)
688 {
689 return (__m128i)_mm_mask_andnot_epi64(_mm_setzero_si128(), __U, __A, __B);
690 }
691
692 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_or_epi64(__m256i __a,__m256i __b)693 _mm256_or_epi64(__m256i __a, __m256i __b)
694 {
695 return (__m256i)((__v4du)__a | (__v4du)__b);
696 }
697
698 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_or_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)699 _mm256_mask_or_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
700 {
701 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
702 (__v4di)_mm256_or_epi64(__A, __B),
703 (__v4di)__W);
704 }
705
706 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_or_epi64(__mmask8 __U,__m256i __A,__m256i __B)707 _mm256_maskz_or_epi64(__mmask8 __U, __m256i __A, __m256i __B)
708 {
709 return (__m256i)_mm256_mask_or_epi64(_mm256_setzero_si256(), __U, __A, __B);
710 }
711
712 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_or_epi64(__m128i __a,__m128i __b)713 _mm_or_epi64(__m128i __a, __m128i __b)
714 {
715 return (__m128i)((__v2du)__a | (__v2du)__b);
716 }
717
718 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_or_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)719 _mm_mask_or_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
720 {
721 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
722 (__v2di)_mm_or_epi64(__A, __B),
723 (__v2di)__W);
724 }
725
726 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_or_epi64(__mmask8 __U,__m128i __A,__m128i __B)727 _mm_maskz_or_epi64(__mmask8 __U, __m128i __A, __m128i __B)
728 {
729 return (__m128i)_mm_mask_or_epi64(_mm_setzero_si128(), __U, __A, __B);
730 }
731
732 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_xor_epi64(__m256i __a,__m256i __b)733 _mm256_xor_epi64(__m256i __a, __m256i __b)
734 {
735 return (__m256i)((__v4du)__a ^ (__v4du)__b);
736 }
737
738 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_xor_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)739 _mm256_mask_xor_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
740 {
741 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
742 (__v4di)_mm256_xor_epi64(__A, __B),
743 (__v4di)__W);
744 }
745
746 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_xor_epi64(__mmask8 __U,__m256i __A,__m256i __B)747 _mm256_maskz_xor_epi64(__mmask8 __U, __m256i __A, __m256i __B)
748 {
749 return (__m256i)_mm256_mask_xor_epi64(_mm256_setzero_si256(), __U, __A, __B);
750 }
751
752 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_xor_epi64(__m128i __a,__m128i __b)753 _mm_xor_epi64(__m128i __a, __m128i __b)
754 {
755 return (__m128i)((__v2du)__a ^ (__v2du)__b);
756 }
757
758 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_xor_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)759 _mm_mask_xor_epi64(__m128i __W, __mmask8 __U, __m128i __A,
760 __m128i __B)
761 {
762 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
763 (__v2di)_mm_xor_epi64(__A, __B),
764 (__v2di)__W);
765 }
766
767 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_xor_epi64(__mmask8 __U,__m128i __A,__m128i __B)768 _mm_maskz_xor_epi64(__mmask8 __U, __m128i __A, __m128i __B)
769 {
770 return (__m128i)_mm_mask_xor_epi64(_mm_setzero_si128(), __U, __A, __B);
771 }
772
773 #define _mm_cmp_epi32_mask(a, b, p) \
774 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
775 (__v4si)(__m128i)(b), (int)(p), \
776 (__mmask8)-1)
777
778 #define _mm_mask_cmp_epi32_mask(m, a, b, p) \
779 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
780 (__v4si)(__m128i)(b), (int)(p), \
781 (__mmask8)(m))
782
783 #define _mm_cmp_epu32_mask(a, b, p) \
784 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
785 (__v4si)(__m128i)(b), (int)(p), \
786 (__mmask8)-1)
787
788 #define _mm_mask_cmp_epu32_mask(m, a, b, p) \
789 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
790 (__v4si)(__m128i)(b), (int)(p), \
791 (__mmask8)(m))
792
793 #define _mm256_cmp_epi32_mask(a, b, p) \
794 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
795 (__v8si)(__m256i)(b), (int)(p), \
796 (__mmask8)-1)
797
798 #define _mm256_mask_cmp_epi32_mask(m, a, b, p) \
799 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
800 (__v8si)(__m256i)(b), (int)(p), \
801 (__mmask8)(m))
802
803 #define _mm256_cmp_epu32_mask(a, b, p) \
804 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
805 (__v8si)(__m256i)(b), (int)(p), \
806 (__mmask8)-1)
807
808 #define _mm256_mask_cmp_epu32_mask(m, a, b, p) \
809 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
810 (__v8si)(__m256i)(b), (int)(p), \
811 (__mmask8)(m))
812
813 #define _mm_cmp_epi64_mask(a, b, p) \
814 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
815 (__v2di)(__m128i)(b), (int)(p), \
816 (__mmask8)-1)
817
818 #define _mm_mask_cmp_epi64_mask(m, a, b, p) \
819 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
820 (__v2di)(__m128i)(b), (int)(p), \
821 (__mmask8)(m))
822
823 #define _mm_cmp_epu64_mask(a, b, p) \
824 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
825 (__v2di)(__m128i)(b), (int)(p), \
826 (__mmask8)-1)
827
828 #define _mm_mask_cmp_epu64_mask(m, a, b, p) \
829 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
830 (__v2di)(__m128i)(b), (int)(p), \
831 (__mmask8)(m))
832
833 #define _mm256_cmp_epi64_mask(a, b, p) \
834 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
835 (__v4di)(__m256i)(b), (int)(p), \
836 (__mmask8)-1)
837
838 #define _mm256_mask_cmp_epi64_mask(m, a, b, p) \
839 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
840 (__v4di)(__m256i)(b), (int)(p), \
841 (__mmask8)(m))
842
843 #define _mm256_cmp_epu64_mask(a, b, p) \
844 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
845 (__v4di)(__m256i)(b), (int)(p), \
846 (__mmask8)-1)
847
848 #define _mm256_mask_cmp_epu64_mask(m, a, b, p) \
849 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
850 (__v4di)(__m256i)(b), (int)(p), \
851 (__mmask8)(m))
852
853 #define _mm256_cmp_ps_mask(a, b, p) \
854 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
855 (__v8sf)(__m256)(b), (int)(p), \
856 (__mmask8)-1)
857
858 #define _mm256_mask_cmp_ps_mask(m, a, b, p) \
859 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
860 (__v8sf)(__m256)(b), (int)(p), \
861 (__mmask8)(m))
862
863 #define _mm256_cmp_pd_mask(a, b, p) \
864 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
865 (__v4df)(__m256d)(b), (int)(p), \
866 (__mmask8)-1)
867
868 #define _mm256_mask_cmp_pd_mask(m, a, b, p) \
869 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
870 (__v4df)(__m256d)(b), (int)(p), \
871 (__mmask8)(m))
872
873 #define _mm_cmp_ps_mask(a, b, p) \
874 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
875 (__v4sf)(__m128)(b), (int)(p), \
876 (__mmask8)-1)
877
878 #define _mm_mask_cmp_ps_mask(m, a, b, p) \
879 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
880 (__v4sf)(__m128)(b), (int)(p), \
881 (__mmask8)(m))
882
883 #define _mm_cmp_pd_mask(a, b, p) \
884 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
885 (__v2df)(__m128d)(b), (int)(p), \
886 (__mmask8)-1)
887
888 #define _mm_mask_cmp_pd_mask(m, a, b, p) \
889 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
890 (__v2df)(__m128d)(b), (int)(p), \
891 (__mmask8)(m))
892
893 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_fmadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)894 _mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
895 {
896 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
897 __builtin_ia32_vfmaddpd ((__v2df) __A,
898 (__v2df) __B,
899 (__v2df) __C),
900 (__v2df) __A);
901 }
902
903 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask3_fmadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)904 _mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
905 {
906 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
907 __builtin_ia32_vfmaddpd ((__v2df) __A,
908 (__v2df) __B,
909 (__v2df) __C),
910 (__v2df) __C);
911 }
912
913 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_fmadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)914 _mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
915 {
916 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
917 __builtin_ia32_vfmaddpd ((__v2df) __A,
918 (__v2df) __B,
919 (__v2df) __C),
920 (__v2df)_mm_setzero_pd());
921 }
922
923 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_fmsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)924 _mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
925 {
926 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
927 __builtin_ia32_vfmaddpd ((__v2df) __A,
928 (__v2df) __B,
929 -(__v2df) __C),
930 (__v2df) __A);
931 }
932
933 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_fmsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)934 _mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
935 {
936 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
937 __builtin_ia32_vfmaddpd ((__v2df) __A,
938 (__v2df) __B,
939 -(__v2df) __C),
940 (__v2df)_mm_setzero_pd());
941 }
942
943 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask3_fnmadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)944 _mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
945 {
946 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
947 __builtin_ia32_vfmaddpd (-(__v2df) __A,
948 (__v2df) __B,
949 (__v2df) __C),
950 (__v2df) __C);
951 }
952
953 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_fnmadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)954 _mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
955 {
956 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
957 __builtin_ia32_vfmaddpd (-(__v2df) __A,
958 (__v2df) __B,
959 (__v2df) __C),
960 (__v2df)_mm_setzero_pd());
961 }
962
963 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_fnmsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)964 _mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
965 {
966 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
967 __builtin_ia32_vfmaddpd (-(__v2df) __A,
968 (__v2df) __B,
969 -(__v2df) __C),
970 (__v2df)_mm_setzero_pd());
971 }
972
973 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_fmadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)974 _mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
975 {
976 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
977 __builtin_ia32_vfmaddpd256 ((__v4df) __A,
978 (__v4df) __B,
979 (__v4df) __C),
980 (__v4df) __A);
981 }
982
983 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask3_fmadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)984 _mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
985 {
986 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
987 __builtin_ia32_vfmaddpd256 ((__v4df) __A,
988 (__v4df) __B,
989 (__v4df) __C),
990 (__v4df) __C);
991 }
992
993 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_fmadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)994 _mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
995 {
996 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
997 __builtin_ia32_vfmaddpd256 ((__v4df) __A,
998 (__v4df) __B,
999 (__v4df) __C),
1000 (__v4df)_mm256_setzero_pd());
1001 }
1002
1003 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_fmsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)1004 _mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1005 {
1006 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1007 __builtin_ia32_vfmaddpd256 ((__v4df) __A,
1008 (__v4df) __B,
1009 -(__v4df) __C),
1010 (__v4df) __A);
1011 }
1012
1013 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_fmsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)1014 _mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1015 {
1016 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1017 __builtin_ia32_vfmaddpd256 ((__v4df) __A,
1018 (__v4df) __B,
1019 -(__v4df) __C),
1020 (__v4df)_mm256_setzero_pd());
1021 }
1022
1023 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask3_fnmadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)1024 _mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1025 {
1026 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1027 __builtin_ia32_vfmaddpd256 (-(__v4df) __A,
1028 (__v4df) __B,
1029 (__v4df) __C),
1030 (__v4df) __C);
1031 }
1032
1033 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_fnmadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)1034 _mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1035 {
1036 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1037 __builtin_ia32_vfmaddpd256 (-(__v4df) __A,
1038 (__v4df) __B,
1039 (__v4df) __C),
1040 (__v4df)_mm256_setzero_pd());
1041 }
1042
1043 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_fnmsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)1044 _mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1045 {
1046 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1047 __builtin_ia32_vfmaddpd256 (-(__v4df) __A,
1048 (__v4df) __B,
1049 -(__v4df) __C),
1050 (__v4df)_mm256_setzero_pd());
1051 }
1052
1053 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_fmadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)1054 _mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1055 {
1056 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1057 __builtin_ia32_vfmaddps ((__v4sf) __A,
1058 (__v4sf) __B,
1059 (__v4sf) __C),
1060 (__v4sf) __A);
1061 }
1062
1063 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask3_fmadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)1064 _mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1065 {
1066 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1067 __builtin_ia32_vfmaddps ((__v4sf) __A,
1068 (__v4sf) __B,
1069 (__v4sf) __C),
1070 (__v4sf) __C);
1071 }
1072
1073 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_fmadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)1074 _mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1075 {
1076 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1077 __builtin_ia32_vfmaddps ((__v4sf) __A,
1078 (__v4sf) __B,
1079 (__v4sf) __C),
1080 (__v4sf)_mm_setzero_ps());
1081 }
1082
1083 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_fmsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)1084 _mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1085 {
1086 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1087 __builtin_ia32_vfmaddps ((__v4sf) __A,
1088 (__v4sf) __B,
1089 -(__v4sf) __C),
1090 (__v4sf) __A);
1091 }
1092
1093 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_fmsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)1094 _mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1095 {
1096 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1097 __builtin_ia32_vfmaddps ((__v4sf) __A,
1098 (__v4sf) __B,
1099 -(__v4sf) __C),
1100 (__v4sf)_mm_setzero_ps());
1101 }
1102
1103 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask3_fnmadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)1104 _mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1105 {
1106 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1107 __builtin_ia32_vfmaddps (-(__v4sf) __A,
1108 (__v4sf) __B,
1109 (__v4sf) __C),
1110 (__v4sf) __C);
1111 }
1112
1113 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_fnmadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)1114 _mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1115 {
1116 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1117 __builtin_ia32_vfmaddps (-(__v4sf) __A,
1118 (__v4sf) __B,
1119 (__v4sf) __C),
1120 (__v4sf)_mm_setzero_ps());
1121 }
1122
1123 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_fnmsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)1124 _mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1125 {
1126 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1127 __builtin_ia32_vfmaddps (-(__v4sf) __A,
1128 (__v4sf) __B,
1129 -(__v4sf) __C),
1130 (__v4sf)_mm_setzero_ps());
1131 }
1132
1133 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_fmadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)1134 _mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1135 {
1136 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1137 __builtin_ia32_vfmaddps256 ((__v8sf) __A,
1138 (__v8sf) __B,
1139 (__v8sf) __C),
1140 (__v8sf) __A);
1141 }
1142
1143 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask3_fmadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)1144 _mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1145 {
1146 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1147 __builtin_ia32_vfmaddps256 ((__v8sf) __A,
1148 (__v8sf) __B,
1149 (__v8sf) __C),
1150 (__v8sf) __C);
1151 }
1152
1153 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_fmadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)1154 _mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1155 {
1156 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1157 __builtin_ia32_vfmaddps256 ((__v8sf) __A,
1158 (__v8sf) __B,
1159 (__v8sf) __C),
1160 (__v8sf)_mm256_setzero_ps());
1161 }
1162
1163 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_fmsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)1164 _mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1165 {
1166 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1167 __builtin_ia32_vfmaddps256 ((__v8sf) __A,
1168 (__v8sf) __B,
1169 -(__v8sf) __C),
1170 (__v8sf) __A);
1171 }
1172
1173 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_fmsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)1174 _mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1175 {
1176 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1177 __builtin_ia32_vfmaddps256 ((__v8sf) __A,
1178 (__v8sf) __B,
1179 -(__v8sf) __C),
1180 (__v8sf)_mm256_setzero_ps());
1181 }
1182
1183 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask3_fnmadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)1184 _mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1185 {
1186 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1187 __builtin_ia32_vfmaddps256 (-(__v8sf) __A,
1188 (__v8sf) __B,
1189 (__v8sf) __C),
1190 (__v8sf) __C);
1191 }
1192
1193 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_fnmadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)1194 _mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1195 {
1196 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1197 __builtin_ia32_vfmaddps256 (-(__v8sf) __A,
1198 (__v8sf) __B,
1199 (__v8sf) __C),
1200 (__v8sf)_mm256_setzero_ps());
1201 }
1202
1203 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_fnmsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)1204 _mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1205 {
1206 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1207 __builtin_ia32_vfmaddps256 (-(__v8sf) __A,
1208 (__v8sf) __B,
1209 -(__v8sf) __C),
1210 (__v8sf)_mm256_setzero_ps());
1211 }
1212
1213 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_fmaddsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)1214 _mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1215 {
1216 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
1217 __builtin_ia32_vfmaddsubpd ((__v2df) __A,
1218 (__v2df) __B,
1219 (__v2df) __C),
1220 (__v2df) __A);
1221 }
1222
1223 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask3_fmaddsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)1224 _mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1225 {
1226 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
1227 __builtin_ia32_vfmaddsubpd ((__v2df) __A,
1228 (__v2df) __B,
1229 (__v2df) __C),
1230 (__v2df) __C);
1231 }
1232
1233 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_fmaddsub_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)1234 _mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1235 {
1236 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
1237 __builtin_ia32_vfmaddsubpd ((__v2df) __A,
1238 (__v2df) __B,
1239 (__v2df) __C),
1240 (__v2df)_mm_setzero_pd());
1241 }
1242
1243 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_fmsubadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)1244 _mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1245 {
1246 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
1247 __builtin_ia32_vfmaddsubpd ((__v2df) __A,
1248 (__v2df) __B,
1249 -(__v2df) __C),
1250 (__v2df) __A);
1251 }
1252
1253 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_fmsubadd_pd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)1254 _mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1255 {
1256 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
1257 __builtin_ia32_vfmaddsubpd ((__v2df) __A,
1258 (__v2df) __B,
1259 -(__v2df) __C),
1260 (__v2df)_mm_setzero_pd());
1261 }
1262
1263 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_fmaddsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)1264 _mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1265 {
1266 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1267 __builtin_ia32_vfmaddsubpd256 ((__v4df) __A,
1268 (__v4df) __B,
1269 (__v4df) __C),
1270 (__v4df) __A);
1271 }
1272
1273 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask3_fmaddsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)1274 _mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1275 {
1276 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1277 __builtin_ia32_vfmaddsubpd256 ((__v4df) __A,
1278 (__v4df) __B,
1279 (__v4df) __C),
1280 (__v4df) __C);
1281 }
1282
1283 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_fmaddsub_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)1284 _mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1285 {
1286 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1287 __builtin_ia32_vfmaddsubpd256 ((__v4df) __A,
1288 (__v4df) __B,
1289 (__v4df) __C),
1290 (__v4df)_mm256_setzero_pd());
1291 }
1292
1293 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_fmsubadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)1294 _mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1295 {
1296 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1297 __builtin_ia32_vfmaddsubpd256 ((__v4df) __A,
1298 (__v4df) __B,
1299 -(__v4df) __C),
1300 (__v4df) __A);
1301 }
1302
1303 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_fmsubadd_pd(__mmask8 __U,__m256d __A,__m256d __B,__m256d __C)1304 _mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1305 {
1306 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1307 __builtin_ia32_vfmaddsubpd256 ((__v4df) __A,
1308 (__v4df) __B,
1309 -(__v4df) __C),
1310 (__v4df)_mm256_setzero_pd());
1311 }
1312
1313 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_fmaddsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)1314 _mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1315 {
1316 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1317 __builtin_ia32_vfmaddsubps ((__v4sf) __A,
1318 (__v4sf) __B,
1319 (__v4sf) __C),
1320 (__v4sf) __A);
1321 }
1322
1323 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask3_fmaddsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)1324 _mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1325 {
1326 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1327 __builtin_ia32_vfmaddsubps ((__v4sf) __A,
1328 (__v4sf) __B,
1329 (__v4sf) __C),
1330 (__v4sf) __C);
1331 }
1332
1333 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_fmaddsub_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)1334 _mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1335 {
1336 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1337 __builtin_ia32_vfmaddsubps ((__v4sf) __A,
1338 (__v4sf) __B,
1339 (__v4sf) __C),
1340 (__v4sf)_mm_setzero_ps());
1341 }
1342
1343 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_fmsubadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)1344 _mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1345 {
1346 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1347 __builtin_ia32_vfmaddsubps ((__v4sf) __A,
1348 (__v4sf) __B,
1349 -(__v4sf) __C),
1350 (__v4sf) __A);
1351 }
1352
1353 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_fmsubadd_ps(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)1354 _mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1355 {
1356 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1357 __builtin_ia32_vfmaddsubps ((__v4sf) __A,
1358 (__v4sf) __B,
1359 -(__v4sf) __C),
1360 (__v4sf)_mm_setzero_ps());
1361 }
1362
1363 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_fmaddsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)1364 _mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B,
1365 __m256 __C)
1366 {
1367 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1368 __builtin_ia32_vfmaddsubps256 ((__v8sf) __A,
1369 (__v8sf) __B,
1370 (__v8sf) __C),
1371 (__v8sf) __A);
1372 }
1373
1374 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask3_fmaddsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)1375 _mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1376 {
1377 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1378 __builtin_ia32_vfmaddsubps256 ((__v8sf) __A,
1379 (__v8sf) __B,
1380 (__v8sf) __C),
1381 (__v8sf) __C);
1382 }
1383
1384 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_fmaddsub_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)1385 _mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1386 {
1387 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1388 __builtin_ia32_vfmaddsubps256 ((__v8sf) __A,
1389 (__v8sf) __B,
1390 (__v8sf) __C),
1391 (__v8sf)_mm256_setzero_ps());
1392 }
1393
1394 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_fmsubadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)1395 _mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1396 {
1397 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1398 __builtin_ia32_vfmaddsubps256 ((__v8sf) __A,
1399 (__v8sf) __B,
1400 -(__v8sf) __C),
1401 (__v8sf) __A);
1402 }
1403
1404 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_fmsubadd_ps(__mmask8 __U,__m256 __A,__m256 __B,__m256 __C)1405 _mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1406 {
1407 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1408 __builtin_ia32_vfmaddsubps256 ((__v8sf) __A,
1409 (__v8sf) __B,
1410 -(__v8sf) __C),
1411 (__v8sf)_mm256_setzero_ps());
1412 }
1413
1414 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask3_fmsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)1415 _mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1416 {
1417 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
1418 __builtin_ia32_vfmaddpd ((__v2df) __A,
1419 (__v2df) __B,
1420 -(__v2df) __C),
1421 (__v2df) __C);
1422 }
1423
1424 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask3_fmsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)1425 _mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1426 {
1427 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1428 __builtin_ia32_vfmaddpd256 ((__v4df) __A,
1429 (__v4df) __B,
1430 -(__v4df) __C),
1431 (__v4df) __C);
1432 }
1433
1434 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask3_fmsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)1435 _mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1436 {
1437 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1438 __builtin_ia32_vfmaddps ((__v4sf) __A,
1439 (__v4sf) __B,
1440 -(__v4sf) __C),
1441 (__v4sf) __C);
1442 }
1443
1444 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask3_fmsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)1445 _mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1446 {
1447 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1448 __builtin_ia32_vfmaddps256 ((__v8sf) __A,
1449 (__v8sf) __B,
1450 -(__v8sf) __C),
1451 (__v8sf) __C);
1452 }
1453
1454 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask3_fmsubadd_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)1455 _mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1456 {
1457 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
1458 __builtin_ia32_vfmaddsubpd ((__v2df) __A,
1459 (__v2df) __B,
1460 -(__v2df) __C),
1461 (__v2df) __C);
1462 }
1463
1464 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask3_fmsubadd_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)1465 _mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1466 {
1467 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1468 __builtin_ia32_vfmaddsubpd256 ((__v4df) __A,
1469 (__v4df) __B,
1470 -(__v4df) __C),
1471 (__v4df) __C);
1472 }
1473
1474 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask3_fmsubadd_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)1475 _mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1476 {
1477 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1478 __builtin_ia32_vfmaddsubps ((__v4sf) __A,
1479 (__v4sf) __B,
1480 -(__v4sf) __C),
1481 (__v4sf) __C);
1482 }
1483
1484 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask3_fmsubadd_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)1485 _mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1486 {
1487 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1488 __builtin_ia32_vfmaddsubps256 ((__v8sf) __A,
1489 (__v8sf) __B,
1490 -(__v8sf) __C),
1491 (__v8sf) __C);
1492 }
1493
1494 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_fnmadd_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)1495 _mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1496 {
1497 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
1498 __builtin_ia32_vfmaddpd ((__v2df) __A,
1499 -(__v2df) __B,
1500 (__v2df) __C),
1501 (__v2df) __A);
1502 }
1503
1504 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_fnmadd_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)1505 _mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1506 {
1507 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1508 __builtin_ia32_vfmaddpd256 ((__v4df) __A,
1509 -(__v4df) __B,
1510 (__v4df) __C),
1511 (__v4df) __A);
1512 }
1513
1514 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_fnmadd_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)1515 _mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1516 {
1517 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1518 __builtin_ia32_vfmaddps ((__v4sf) __A,
1519 -(__v4sf) __B,
1520 (__v4sf) __C),
1521 (__v4sf) __A);
1522 }
1523
1524 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_fnmadd_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)1525 _mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1526 {
1527 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1528 __builtin_ia32_vfmaddps256 ((__v8sf) __A,
1529 -(__v8sf) __B,
1530 (__v8sf) __C),
1531 (__v8sf) __A);
1532 }
1533
1534 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_fnmsub_pd(__m128d __A,__mmask8 __U,__m128d __B,__m128d __C)1535 _mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1536 {
1537 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
1538 __builtin_ia32_vfmaddpd ((__v2df) __A,
1539 -(__v2df) __B,
1540 -(__v2df) __C),
1541 (__v2df) __A);
1542 }
1543
1544 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask3_fnmsub_pd(__m128d __A,__m128d __B,__m128d __C,__mmask8 __U)1545 _mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1546 {
1547 return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
1548 __builtin_ia32_vfmaddpd ((__v2df) __A,
1549 -(__v2df) __B,
1550 -(__v2df) __C),
1551 (__v2df) __C);
1552 }
1553
1554 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_fnmsub_pd(__m256d __A,__mmask8 __U,__m256d __B,__m256d __C)1555 _mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1556 {
1557 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1558 __builtin_ia32_vfmaddpd256 ((__v4df) __A,
1559 -(__v4df) __B,
1560 -(__v4df) __C),
1561 (__v4df) __A);
1562 }
1563
1564 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask3_fnmsub_pd(__m256d __A,__m256d __B,__m256d __C,__mmask8 __U)1565 _mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1566 {
1567 return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
1568 __builtin_ia32_vfmaddpd256 ((__v4df) __A,
1569 -(__v4df) __B,
1570 -(__v4df) __C),
1571 (__v4df) __C);
1572 }
1573
1574 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_fnmsub_ps(__m128 __A,__mmask8 __U,__m128 __B,__m128 __C)1575 _mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1576 {
1577 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1578 __builtin_ia32_vfmaddps ((__v4sf) __A,
1579 -(__v4sf) __B,
1580 -(__v4sf) __C),
1581 (__v4sf) __A);
1582 }
1583
1584 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask3_fnmsub_ps(__m128 __A,__m128 __B,__m128 __C,__mmask8 __U)1585 _mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1586 {
1587 return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
1588 __builtin_ia32_vfmaddps ((__v4sf) __A,
1589 -(__v4sf) __B,
1590 -(__v4sf) __C),
1591 (__v4sf) __C);
1592 }
1593
1594 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_fnmsub_ps(__m256 __A,__mmask8 __U,__m256 __B,__m256 __C)1595 _mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1596 {
1597 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1598 __builtin_ia32_vfmaddps256 ((__v8sf) __A,
1599 -(__v8sf) __B,
1600 -(__v8sf) __C),
1601 (__v8sf) __A);
1602 }
1603
1604 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask3_fnmsub_ps(__m256 __A,__m256 __B,__m256 __C,__mmask8 __U)1605 _mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1606 {
1607 return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
1608 __builtin_ia32_vfmaddps256 ((__v8sf) __A,
1609 -(__v8sf) __B,
1610 -(__v8sf) __C),
1611 (__v8sf) __C);
1612 }
1613
1614 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_add_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1615 _mm_mask_add_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1616 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
1617 (__v2df)_mm_add_pd(__A, __B),
1618 (__v2df)__W);
1619 }
1620
1621 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_add_pd(__mmask8 __U,__m128d __A,__m128d __B)1622 _mm_maskz_add_pd(__mmask8 __U, __m128d __A, __m128d __B) {
1623 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
1624 (__v2df)_mm_add_pd(__A, __B),
1625 (__v2df)_mm_setzero_pd());
1626 }
1627
1628 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_add_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)1629 _mm256_mask_add_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
1630 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
1631 (__v4df)_mm256_add_pd(__A, __B),
1632 (__v4df)__W);
1633 }
1634
1635 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_add_pd(__mmask8 __U,__m256d __A,__m256d __B)1636 _mm256_maskz_add_pd(__mmask8 __U, __m256d __A, __m256d __B) {
1637 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
1638 (__v4df)_mm256_add_pd(__A, __B),
1639 (__v4df)_mm256_setzero_pd());
1640 }
1641
1642 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_add_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1643 _mm_mask_add_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1644 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
1645 (__v4sf)_mm_add_ps(__A, __B),
1646 (__v4sf)__W);
1647 }
1648
1649 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_add_ps(__mmask8 __U,__m128 __A,__m128 __B)1650 _mm_maskz_add_ps(__mmask8 __U, __m128 __A, __m128 __B) {
1651 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
1652 (__v4sf)_mm_add_ps(__A, __B),
1653 (__v4sf)_mm_setzero_ps());
1654 }
1655
1656 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_add_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)1657 _mm256_mask_add_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
1658 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
1659 (__v8sf)_mm256_add_ps(__A, __B),
1660 (__v8sf)__W);
1661 }
1662
1663 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_add_ps(__mmask8 __U,__m256 __A,__m256 __B)1664 _mm256_maskz_add_ps(__mmask8 __U, __m256 __A, __m256 __B) {
1665 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
1666 (__v8sf)_mm256_add_ps(__A, __B),
1667 (__v8sf)_mm256_setzero_ps());
1668 }
1669
1670 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_blend_epi32(__mmask8 __U,__m128i __A,__m128i __W)1671 _mm_mask_blend_epi32 (__mmask8 __U, __m128i __A, __m128i __W) {
1672 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
1673 (__v4si) __W,
1674 (__v4si) __A);
1675 }
1676
1677 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_blend_epi32(__mmask8 __U,__m256i __A,__m256i __W)1678 _mm256_mask_blend_epi32 (__mmask8 __U, __m256i __A, __m256i __W) {
1679 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
1680 (__v8si) __W,
1681 (__v8si) __A);
1682 }
1683
1684 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_blend_pd(__mmask8 __U,__m128d __A,__m128d __W)1685 _mm_mask_blend_pd (__mmask8 __U, __m128d __A, __m128d __W) {
1686 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
1687 (__v2df) __W,
1688 (__v2df) __A);
1689 }
1690
1691 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_blend_pd(__mmask8 __U,__m256d __A,__m256d __W)1692 _mm256_mask_blend_pd (__mmask8 __U, __m256d __A, __m256d __W) {
1693 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
1694 (__v4df) __W,
1695 (__v4df) __A);
1696 }
1697
1698 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_blend_ps(__mmask8 __U,__m128 __A,__m128 __W)1699 _mm_mask_blend_ps (__mmask8 __U, __m128 __A, __m128 __W) {
1700 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
1701 (__v4sf) __W,
1702 (__v4sf) __A);
1703 }
1704
1705 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_blend_ps(__mmask8 __U,__m256 __A,__m256 __W)1706 _mm256_mask_blend_ps (__mmask8 __U, __m256 __A, __m256 __W) {
1707 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
1708 (__v8sf) __W,
1709 (__v8sf) __A);
1710 }
1711
1712 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_blend_epi64(__mmask8 __U,__m128i __A,__m128i __W)1713 _mm_mask_blend_epi64 (__mmask8 __U, __m128i __A, __m128i __W) {
1714 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
1715 (__v2di) __W,
1716 (__v2di) __A);
1717 }
1718
1719 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_blend_epi64(__mmask8 __U,__m256i __A,__m256i __W)1720 _mm256_mask_blend_epi64 (__mmask8 __U, __m256i __A, __m256i __W) {
1721 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
1722 (__v4di) __W,
1723 (__v4di) __A);
1724 }
1725
1726 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_compress_pd(__m128d __W,__mmask8 __U,__m128d __A)1727 _mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A) {
1728 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
1729 (__v2df) __W,
1730 (__mmask8) __U);
1731 }
1732
1733 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_compress_pd(__mmask8 __U,__m128d __A)1734 _mm_maskz_compress_pd (__mmask8 __U, __m128d __A) {
1735 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
1736 (__v2df)
1737 _mm_setzero_pd (),
1738 (__mmask8) __U);
1739 }
1740
1741 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_compress_pd(__m256d __W,__mmask8 __U,__m256d __A)1742 _mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A) {
1743 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
1744 (__v4df) __W,
1745 (__mmask8) __U);
1746 }
1747
1748 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_compress_pd(__mmask8 __U,__m256d __A)1749 _mm256_maskz_compress_pd (__mmask8 __U, __m256d __A) {
1750 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
1751 (__v4df)
1752 _mm256_setzero_pd (),
1753 (__mmask8) __U);
1754 }
1755
1756 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_compress_epi64(__m128i __W,__mmask8 __U,__m128i __A)1757 _mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
1758 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
1759 (__v2di) __W,
1760 (__mmask8) __U);
1761 }
1762
1763 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_compress_epi64(__mmask8 __U,__m128i __A)1764 _mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A) {
1765 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
1766 (__v2di)
1767 _mm_setzero_si128 (),
1768 (__mmask8) __U);
1769 }
1770
1771 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_compress_epi64(__m256i __W,__mmask8 __U,__m256i __A)1772 _mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
1773 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
1774 (__v4di) __W,
1775 (__mmask8) __U);
1776 }
1777
1778 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_compress_epi64(__mmask8 __U,__m256i __A)1779 _mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A) {
1780 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
1781 (__v4di)
1782 _mm256_setzero_si256 (),
1783 (__mmask8) __U);
1784 }
1785
1786 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_compress_ps(__m128 __W,__mmask8 __U,__m128 __A)1787 _mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A) {
1788 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
1789 (__v4sf) __W,
1790 (__mmask8) __U);
1791 }
1792
1793 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_compress_ps(__mmask8 __U,__m128 __A)1794 _mm_maskz_compress_ps (__mmask8 __U, __m128 __A) {
1795 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
1796 (__v4sf)
1797 _mm_setzero_ps (),
1798 (__mmask8) __U);
1799 }
1800
1801 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_compress_ps(__m256 __W,__mmask8 __U,__m256 __A)1802 _mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A) {
1803 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
1804 (__v8sf) __W,
1805 (__mmask8) __U);
1806 }
1807
1808 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_compress_ps(__mmask8 __U,__m256 __A)1809 _mm256_maskz_compress_ps (__mmask8 __U, __m256 __A) {
1810 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
1811 (__v8sf)
1812 _mm256_setzero_ps (),
1813 (__mmask8) __U);
1814 }
1815
1816 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_compress_epi32(__m128i __W,__mmask8 __U,__m128i __A)1817 _mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
1818 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
1819 (__v4si) __W,
1820 (__mmask8) __U);
1821 }
1822
1823 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_compress_epi32(__mmask8 __U,__m128i __A)1824 _mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A) {
1825 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
1826 (__v4si)
1827 _mm_setzero_si128 (),
1828 (__mmask8) __U);
1829 }
1830
1831 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_compress_epi32(__m256i __W,__mmask8 __U,__m256i __A)1832 _mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
1833 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
1834 (__v8si) __W,
1835 (__mmask8) __U);
1836 }
1837
1838 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_compress_epi32(__mmask8 __U,__m256i __A)1839 _mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A) {
1840 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
1841 (__v8si)
1842 _mm256_setzero_si256 (),
1843 (__mmask8) __U);
1844 }
1845
1846 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m128d __A)1847 _mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A) {
1848 __builtin_ia32_compressstoredf128_mask ((__v2df *) __P,
1849 (__v2df) __A,
1850 (__mmask8) __U);
1851 }
1852
1853 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m256d __A)1854 _mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A) {
1855 __builtin_ia32_compressstoredf256_mask ((__v4df *) __P,
1856 (__v4df) __A,
1857 (__mmask8) __U);
1858 }
1859
1860 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m128i __A)1861 _mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A) {
1862 __builtin_ia32_compressstoredi128_mask ((__v2di *) __P,
1863 (__v2di) __A,
1864 (__mmask8) __U);
1865 }
1866
1867 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m256i __A)1868 _mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A) {
1869 __builtin_ia32_compressstoredi256_mask ((__v4di *) __P,
1870 (__v4di) __A,
1871 (__mmask8) __U);
1872 }
1873
1874 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_compressstoreu_ps(void * __P,__mmask8 __U,__m128 __A)1875 _mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A) {
1876 __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P,
1877 (__v4sf) __A,
1878 (__mmask8) __U);
1879 }
1880
1881 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_compressstoreu_ps(void * __P,__mmask8 __U,__m256 __A)1882 _mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A) {
1883 __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P,
1884 (__v8sf) __A,
1885 (__mmask8) __U);
1886 }
1887
1888 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_compressstoreu_epi32(void * __P,__mmask8 __U,__m128i __A)1889 _mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A) {
1890 __builtin_ia32_compressstoresi128_mask ((__v4si *) __P,
1891 (__v4si) __A,
1892 (__mmask8) __U);
1893 }
1894
1895 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_compressstoreu_epi32(void * __P,__mmask8 __U,__m256i __A)1896 _mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A) {
1897 __builtin_ia32_compressstoresi256_mask ((__v8si *) __P,
1898 (__v8si) __A,
1899 (__mmask8) __U);
1900 }
1901
1902 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi32_pd(__m128d __W,__mmask8 __U,__m128i __A)1903 _mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
1904 return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U,
1905 (__v2df)_mm_cvtepi32_pd(__A),
1906 (__v2df)__W);
1907 }
1908
1909 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepi32_pd(__mmask8 __U,__m128i __A)1910 _mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
1911 return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U,
1912 (__v2df)_mm_cvtepi32_pd(__A),
1913 (__v2df)_mm_setzero_pd());
1914 }
1915
1916 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi32_pd(__m256d __W,__mmask8 __U,__m128i __A)1917 _mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
1918 return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U,
1919 (__v4df)_mm256_cvtepi32_pd(__A),
1920 (__v4df)__W);
1921 }
1922
1923 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi32_pd(__mmask8 __U,__m128i __A)1924 _mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
1925 return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U,
1926 (__v4df)_mm256_cvtepi32_pd(__A),
1927 (__v4df)_mm256_setzero_pd());
1928 }
1929
1930 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi32_ps(__m128 __W,__mmask8 __U,__m128i __A)1931 _mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
1932 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
1933 (__v4sf)_mm_cvtepi32_ps(__A),
1934 (__v4sf)__W);
1935 }
1936
1937 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepi32_ps(__mmask8 __U,__m128i __A)1938 _mm_maskz_cvtepi32_ps (__mmask8 __U, __m128i __A) {
1939 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
1940 (__v4sf)_mm_cvtepi32_ps(__A),
1941 (__v4sf)_mm_setzero_ps());
1942 }
1943
1944 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi32_ps(__m256 __W,__mmask8 __U,__m256i __A)1945 _mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
1946 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
1947 (__v8sf)_mm256_cvtepi32_ps(__A),
1948 (__v8sf)__W);
1949 }
1950
1951 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi32_ps(__mmask8 __U,__m256i __A)1952 _mm256_maskz_cvtepi32_ps (__mmask8 __U, __m256i __A) {
1953 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
1954 (__v8sf)_mm256_cvtepi32_ps(__A),
1955 (__v8sf)_mm256_setzero_ps());
1956 }
1957
1958 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtpd_epi32(__m128i __W,__mmask8 __U,__m128d __A)1959 _mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
1960 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
1961 (__v4si) __W,
1962 (__mmask8) __U);
1963 }
1964
1965 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtpd_epi32(__mmask8 __U,__m128d __A)1966 _mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) {
1967 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
1968 (__v4si)
1969 _mm_setzero_si128 (),
1970 (__mmask8) __U);
1971 }
1972
1973 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtpd_epi32(__m128i __W,__mmask8 __U,__m256d __A)1974 _mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
1975 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
1976 (__v4si)_mm256_cvtpd_epi32(__A),
1977 (__v4si)__W);
1978 }
1979
1980 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtpd_epi32(__mmask8 __U,__m256d __A)1981 _mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) {
1982 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
1983 (__v4si)_mm256_cvtpd_epi32(__A),
1984 (__v4si)_mm_setzero_si128());
1985 }
1986
1987 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_cvtpd_ps(__m128 __W,__mmask8 __U,__m128d __A)1988 _mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) {
1989 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
1990 (__v4sf) __W,
1991 (__mmask8) __U);
1992 }
1993
1994 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_cvtpd_ps(__mmask8 __U,__m128d __A)1995 _mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) {
1996 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
1997 (__v4sf)
1998 _mm_setzero_ps (),
1999 (__mmask8) __U);
2000 }
2001
2002 static __inline__ __m128 __DEFAULT_FN_ATTRS256
_mm256_mask_cvtpd_ps(__m128 __W,__mmask8 __U,__m256d __A)2003 _mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) {
2004 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2005 (__v4sf)_mm256_cvtpd_ps(__A),
2006 (__v4sf)__W);
2007 }
2008
2009 static __inline__ __m128 __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtpd_ps(__mmask8 __U,__m256d __A)2010 _mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) {
2011 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2012 (__v4sf)_mm256_cvtpd_ps(__A),
2013 (__v4sf)_mm_setzero_ps());
2014 }
2015
2016 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtpd_epu32(__m128d __A)2017 _mm_cvtpd_epu32 (__m128d __A) {
2018 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2019 (__v4si)
2020 _mm_setzero_si128 (),
2021 (__mmask8) -1);
2022 }
2023
2024 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtpd_epu32(__m128i __W,__mmask8 __U,__m128d __A)2025 _mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2026 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2027 (__v4si) __W,
2028 (__mmask8) __U);
2029 }
2030
2031 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtpd_epu32(__mmask8 __U,__m128d __A)2032 _mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) {
2033 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2034 (__v4si)
2035 _mm_setzero_si128 (),
2036 (__mmask8) __U);
2037 }
2038
2039 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtpd_epu32(__m256d __A)2040 _mm256_cvtpd_epu32 (__m256d __A) {
2041 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2042 (__v4si)
2043 _mm_setzero_si128 (),
2044 (__mmask8) -1);
2045 }
2046
2047 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtpd_epu32(__m128i __W,__mmask8 __U,__m256d __A)2048 _mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2049 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2050 (__v4si) __W,
2051 (__mmask8) __U);
2052 }
2053
2054 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtpd_epu32(__mmask8 __U,__m256d __A)2055 _mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) {
2056 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2057 (__v4si)
2058 _mm_setzero_si128 (),
2059 (__mmask8) __U);
2060 }
2061
2062 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtps_epi32(__m128i __W,__mmask8 __U,__m128 __A)2063 _mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2064 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
2065 (__v4si)_mm_cvtps_epi32(__A),
2066 (__v4si)__W);
2067 }
2068
2069 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtps_epi32(__mmask8 __U,__m128 __A)2070 _mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) {
2071 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
2072 (__v4si)_mm_cvtps_epi32(__A),
2073 (__v4si)_mm_setzero_si128());
2074 }
2075
2076 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtps_epi32(__m256i __W,__mmask8 __U,__m256 __A)2077 _mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2078 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
2079 (__v8si)_mm256_cvtps_epi32(__A),
2080 (__v8si)__W);
2081 }
2082
2083 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtps_epi32(__mmask8 __U,__m256 __A)2084 _mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) {
2085 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
2086 (__v8si)_mm256_cvtps_epi32(__A),
2087 (__v8si)_mm256_setzero_si256());
2088 }
2089
2090 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_cvtps_pd(__m128d __W,__mmask8 __U,__m128 __A)2091 _mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) {
2092 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2093 (__v2df)_mm_cvtps_pd(__A),
2094 (__v2df)__W);
2095 }
2096
2097 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_cvtps_pd(__mmask8 __U,__m128 __A)2098 _mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2099 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2100 (__v2df)_mm_cvtps_pd(__A),
2101 (__v2df)_mm_setzero_pd());
2102 }
2103
2104 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_cvtps_pd(__m256d __W,__mmask8 __U,__m128 __A)2105 _mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) {
2106 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2107 (__v4df)_mm256_cvtps_pd(__A),
2108 (__v4df)__W);
2109 }
2110
2111 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtps_pd(__mmask8 __U,__m128 __A)2112 _mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2113 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2114 (__v4df)_mm256_cvtps_pd(__A),
2115 (__v4df)_mm256_setzero_pd());
2116 }
2117
2118 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtps_epu32(__m128 __A)2119 _mm_cvtps_epu32 (__m128 __A) {
2120 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2121 (__v4si)
2122 _mm_setzero_si128 (),
2123 (__mmask8) -1);
2124 }
2125
2126 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtps_epu32(__m128i __W,__mmask8 __U,__m128 __A)2127 _mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2128 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2129 (__v4si) __W,
2130 (__mmask8) __U);
2131 }
2132
2133 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtps_epu32(__mmask8 __U,__m128 __A)2134 _mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) {
2135 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2136 (__v4si)
2137 _mm_setzero_si128 (),
2138 (__mmask8) __U);
2139 }
2140
2141 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_cvtps_epu32(__m256 __A)2142 _mm256_cvtps_epu32 (__m256 __A) {
2143 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2144 (__v8si)
2145 _mm256_setzero_si256 (),
2146 (__mmask8) -1);
2147 }
2148
2149 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtps_epu32(__m256i __W,__mmask8 __U,__m256 __A)2150 _mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2151 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2152 (__v8si) __W,
2153 (__mmask8) __U);
2154 }
2155
2156 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtps_epu32(__mmask8 __U,__m256 __A)2157 _mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) {
2158 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2159 (__v8si)
2160 _mm256_setzero_si256 (),
2161 (__mmask8) __U);
2162 }
2163
2164 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvttpd_epi32(__m128i __W,__mmask8 __U,__m128d __A)2165 _mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2166 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2167 (__v4si) __W,
2168 (__mmask8) __U);
2169 }
2170
2171 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvttpd_epi32(__mmask8 __U,__m128d __A)2172 _mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) {
2173 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2174 (__v4si)
2175 _mm_setzero_si128 (),
2176 (__mmask8) __U);
2177 }
2178
2179 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvttpd_epi32(__m128i __W,__mmask8 __U,__m256d __A)2180 _mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2181 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
2182 (__v4si)_mm256_cvttpd_epi32(__A),
2183 (__v4si)__W);
2184 }
2185
2186 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvttpd_epi32(__mmask8 __U,__m256d __A)2187 _mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) {
2188 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
2189 (__v4si)_mm256_cvttpd_epi32(__A),
2190 (__v4si)_mm_setzero_si128());
2191 }
2192
2193 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvttpd_epu32(__m128d __A)2194 _mm_cvttpd_epu32 (__m128d __A) {
2195 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2196 (__v4si)
2197 _mm_setzero_si128 (),
2198 (__mmask8) -1);
2199 }
2200
2201 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvttpd_epu32(__m128i __W,__mmask8 __U,__m128d __A)2202 _mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2203 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2204 (__v4si) __W,
2205 (__mmask8) __U);
2206 }
2207
2208 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvttpd_epu32(__mmask8 __U,__m128d __A)2209 _mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) {
2210 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2211 (__v4si)
2212 _mm_setzero_si128 (),
2213 (__mmask8) __U);
2214 }
2215
2216 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvttpd_epu32(__m256d __A)2217 _mm256_cvttpd_epu32 (__m256d __A) {
2218 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2219 (__v4si)
2220 _mm_setzero_si128 (),
2221 (__mmask8) -1);
2222 }
2223
2224 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvttpd_epu32(__m128i __W,__mmask8 __U,__m256d __A)2225 _mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2226 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2227 (__v4si) __W,
2228 (__mmask8) __U);
2229 }
2230
2231 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvttpd_epu32(__mmask8 __U,__m256d __A)2232 _mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) {
2233 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2234 (__v4si)
2235 _mm_setzero_si128 (),
2236 (__mmask8) __U);
2237 }
2238
2239 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvttps_epi32(__m128i __W,__mmask8 __U,__m128 __A)2240 _mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2241 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
2242 (__v4si)_mm_cvttps_epi32(__A),
2243 (__v4si)__W);
2244 }
2245
2246 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvttps_epi32(__mmask8 __U,__m128 __A)2247 _mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) {
2248 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
2249 (__v4si)_mm_cvttps_epi32(__A),
2250 (__v4si)_mm_setzero_si128());
2251 }
2252
2253 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvttps_epi32(__m256i __W,__mmask8 __U,__m256 __A)2254 _mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2255 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
2256 (__v8si)_mm256_cvttps_epi32(__A),
2257 (__v8si)__W);
2258 }
2259
2260 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvttps_epi32(__mmask8 __U,__m256 __A)2261 _mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) {
2262 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
2263 (__v8si)_mm256_cvttps_epi32(__A),
2264 (__v8si)_mm256_setzero_si256());
2265 }
2266
2267 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvttps_epu32(__m128 __A)2268 _mm_cvttps_epu32 (__m128 __A) {
2269 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2270 (__v4si)
2271 _mm_setzero_si128 (),
2272 (__mmask8) -1);
2273 }
2274
2275 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvttps_epu32(__m128i __W,__mmask8 __U,__m128 __A)2276 _mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2277 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2278 (__v4si) __W,
2279 (__mmask8) __U);
2280 }
2281
2282 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvttps_epu32(__mmask8 __U,__m128 __A)2283 _mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) {
2284 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2285 (__v4si)
2286 _mm_setzero_si128 (),
2287 (__mmask8) __U);
2288 }
2289
2290 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_cvttps_epu32(__m256 __A)2291 _mm256_cvttps_epu32 (__m256 __A) {
2292 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2293 (__v8si)
2294 _mm256_setzero_si256 (),
2295 (__mmask8) -1);
2296 }
2297
2298 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvttps_epu32(__m256i __W,__mmask8 __U,__m256 __A)2299 _mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2300 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2301 (__v8si) __W,
2302 (__mmask8) __U);
2303 }
2304
2305 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvttps_epu32(__mmask8 __U,__m256 __A)2306 _mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) {
2307 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2308 (__v8si)
2309 _mm256_setzero_si256 (),
2310 (__mmask8) __U);
2311 }
2312
2313 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_cvtepu32_pd(__m128i __A)2314 _mm_cvtepu32_pd (__m128i __A) {
2315 return (__m128d) __builtin_convertvector(
2316 __builtin_shufflevector((__v4su)__A, (__v4su)__A, 0, 1), __v2df);
2317 }
2318
2319 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_cvtepu32_pd(__m128d __W,__mmask8 __U,__m128i __A)2320 _mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2321 return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U,
2322 (__v2df)_mm_cvtepu32_pd(__A),
2323 (__v2df)__W);
2324 }
2325
2326 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepu32_pd(__mmask8 __U,__m128i __A)2327 _mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2328 return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U,
2329 (__v2df)_mm_cvtepu32_pd(__A),
2330 (__v2df)_mm_setzero_pd());
2331 }
2332
2333 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_cvtepu32_pd(__m128i __A)2334 _mm256_cvtepu32_pd (__m128i __A) {
2335 return (__m256d)__builtin_convertvector((__v4su)__A, __v4df);
2336 }
2337
2338 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepu32_pd(__m256d __W,__mmask8 __U,__m128i __A)2339 _mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2340 return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U,
2341 (__v4df)_mm256_cvtepu32_pd(__A),
2342 (__v4df)__W);
2343 }
2344
2345 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepu32_pd(__mmask8 __U,__m128i __A)2346 _mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2347 return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U,
2348 (__v4df)_mm256_cvtepu32_pd(__A),
2349 (__v4df)_mm256_setzero_pd());
2350 }
2351
2352 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_cvtepu32_ps(__m128i __A)2353 _mm_cvtepu32_ps (__m128i __A) {
2354 return (__m128)__builtin_convertvector((__v4su)__A, __v4sf);
2355 }
2356
2357 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_cvtepu32_ps(__m128 __W,__mmask8 __U,__m128i __A)2358 _mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2359 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2360 (__v4sf)_mm_cvtepu32_ps(__A),
2361 (__v4sf)__W);
2362 }
2363
2364 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepu32_ps(__mmask8 __U,__m128i __A)2365 _mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) {
2366 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2367 (__v4sf)_mm_cvtepu32_ps(__A),
2368 (__v4sf)_mm_setzero_ps());
2369 }
2370
2371 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_cvtepu32_ps(__m256i __A)2372 _mm256_cvtepu32_ps (__m256i __A) {
2373 return (__m256)__builtin_convertvector((__v8su)__A, __v8sf);
2374 }
2375
2376 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepu32_ps(__m256 __W,__mmask8 __U,__m256i __A)2377 _mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2378 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2379 (__v8sf)_mm256_cvtepu32_ps(__A),
2380 (__v8sf)__W);
2381 }
2382
2383 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepu32_ps(__mmask8 __U,__m256i __A)2384 _mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) {
2385 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2386 (__v8sf)_mm256_cvtepu32_ps(__A),
2387 (__v8sf)_mm256_setzero_ps());
2388 }
2389
2390 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_div_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2391 _mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2392 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2393 (__v2df)_mm_div_pd(__A, __B),
2394 (__v2df)__W);
2395 }
2396
2397 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_div_pd(__mmask8 __U,__m128d __A,__m128d __B)2398 _mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) {
2399 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2400 (__v2df)_mm_div_pd(__A, __B),
2401 (__v2df)_mm_setzero_pd());
2402 }
2403
2404 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_div_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)2405 _mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2406 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2407 (__v4df)_mm256_div_pd(__A, __B),
2408 (__v4df)__W);
2409 }
2410
2411 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_div_pd(__mmask8 __U,__m256d __A,__m256d __B)2412 _mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2413 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2414 (__v4df)_mm256_div_pd(__A, __B),
2415 (__v4df)_mm256_setzero_pd());
2416 }
2417
2418 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_div_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2419 _mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2420 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2421 (__v4sf)_mm_div_ps(__A, __B),
2422 (__v4sf)__W);
2423 }
2424
2425 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_div_ps(__mmask8 __U,__m128 __A,__m128 __B)2426 _mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) {
2427 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2428 (__v4sf)_mm_div_ps(__A, __B),
2429 (__v4sf)_mm_setzero_ps());
2430 }
2431
2432 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_div_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)2433 _mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2434 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2435 (__v8sf)_mm256_div_ps(__A, __B),
2436 (__v8sf)__W);
2437 }
2438
2439 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_div_ps(__mmask8 __U,__m256 __A,__m256 __B)2440 _mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2441 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2442 (__v8sf)_mm256_div_ps(__A, __B),
2443 (__v8sf)_mm256_setzero_ps());
2444 }
2445
2446 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_expand_pd(__m128d __W,__mmask8 __U,__m128d __A)2447 _mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2448 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2449 (__v2df) __W,
2450 (__mmask8) __U);
2451 }
2452
2453 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_expand_pd(__mmask8 __U,__m128d __A)2454 _mm_maskz_expand_pd (__mmask8 __U, __m128d __A) {
2455 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2456 (__v2df)
2457 _mm_setzero_pd (),
2458 (__mmask8) __U);
2459 }
2460
2461 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_expand_pd(__m256d __W,__mmask8 __U,__m256d __A)2462 _mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2463 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2464 (__v4df) __W,
2465 (__mmask8) __U);
2466 }
2467
2468 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_expand_pd(__mmask8 __U,__m256d __A)2469 _mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) {
2470 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2471 (__v4df)
2472 _mm256_setzero_pd (),
2473 (__mmask8) __U);
2474 }
2475
2476 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_expand_epi64(__m128i __W,__mmask8 __U,__m128i __A)2477 _mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2478 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2479 (__v2di) __W,
2480 (__mmask8) __U);
2481 }
2482
2483 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_expand_epi64(__mmask8 __U,__m128i __A)2484 _mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) {
2485 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2486 (__v2di)
2487 _mm_setzero_si128 (),
2488 (__mmask8) __U);
2489 }
2490
2491 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_expand_epi64(__m256i __W,__mmask8 __U,__m256i __A)2492 _mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2493 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2494 (__v4di) __W,
2495 (__mmask8) __U);
2496 }
2497
2498 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_expand_epi64(__mmask8 __U,__m256i __A)2499 _mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) {
2500 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2501 (__v4di)
2502 _mm256_setzero_si256 (),
2503 (__mmask8) __U);
2504 }
2505
2506 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_expandloadu_pd(__m128d __W,__mmask8 __U,void const * __P)2507 _mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) {
2508 return (__m128d) __builtin_ia32_expandloaddf128_mask ((const __v2df *) __P,
2509 (__v2df) __W,
2510 (__mmask8)
2511 __U);
2512 }
2513
2514 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_expandloadu_pd(__mmask8 __U,void const * __P)2515 _mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2516 return (__m128d) __builtin_ia32_expandloaddf128_mask ((const __v2df *) __P,
2517 (__v2df)
2518 _mm_setzero_pd (),
2519 (__mmask8)
2520 __U);
2521 }
2522
2523 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_expandloadu_pd(__m256d __W,__mmask8 __U,void const * __P)2524 _mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) {
2525 return (__m256d) __builtin_ia32_expandloaddf256_mask ((const __v4df *) __P,
2526 (__v4df) __W,
2527 (__mmask8)
2528 __U);
2529 }
2530
2531 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_expandloadu_pd(__mmask8 __U,void const * __P)2532 _mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2533 return (__m256d) __builtin_ia32_expandloaddf256_mask ((const __v4df *) __P,
2534 (__v4df)
2535 _mm256_setzero_pd (),
2536 (__mmask8)
2537 __U);
2538 }
2539
2540 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_expandloadu_epi64(__m128i __W,__mmask8 __U,void const * __P)2541 _mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) {
2542 return (__m128i) __builtin_ia32_expandloaddi128_mask ((const __v2di *) __P,
2543 (__v2di) __W,
2544 (__mmask8)
2545 __U);
2546 }
2547
2548 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)2549 _mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2550 return (__m128i) __builtin_ia32_expandloaddi128_mask ((const __v2di *) __P,
2551 (__v2di)
2552 _mm_setzero_si128 (),
2553 (__mmask8)
2554 __U);
2555 }
2556
2557 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_expandloadu_epi64(__m256i __W,__mmask8 __U,void const * __P)2558 _mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U,
2559 void const *__P) {
2560 return (__m256i) __builtin_ia32_expandloaddi256_mask ((const __v4di *) __P,
2561 (__v4di) __W,
2562 (__mmask8)
2563 __U);
2564 }
2565
2566 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)2567 _mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2568 return (__m256i) __builtin_ia32_expandloaddi256_mask ((const __v4di *) __P,
2569 (__v4di)
2570 _mm256_setzero_si256 (),
2571 (__mmask8)
2572 __U);
2573 }
2574
2575 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_expandloadu_ps(__m128 __W,__mmask8 __U,void const * __P)2576 _mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) {
2577 return (__m128) __builtin_ia32_expandloadsf128_mask ((const __v4sf *) __P,
2578 (__v4sf) __W,
2579 (__mmask8) __U);
2580 }
2581
2582 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_expandloadu_ps(__mmask8 __U,void const * __P)2583 _mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
2584 return (__m128) __builtin_ia32_expandloadsf128_mask ((const __v4sf *) __P,
2585 (__v4sf)
2586 _mm_setzero_ps (),
2587 (__mmask8)
2588 __U);
2589 }
2590
2591 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_expandloadu_ps(__m256 __W,__mmask8 __U,void const * __P)2592 _mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) {
2593 return (__m256) __builtin_ia32_expandloadsf256_mask ((const __v8sf *) __P,
2594 (__v8sf) __W,
2595 (__mmask8) __U);
2596 }
2597
2598 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_expandloadu_ps(__mmask8 __U,void const * __P)2599 _mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
2600 return (__m256) __builtin_ia32_expandloadsf256_mask ((const __v8sf *) __P,
2601 (__v8sf)
2602 _mm256_setzero_ps (),
2603 (__mmask8)
2604 __U);
2605 }
2606
2607 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_expandloadu_epi32(__m128i __W,__mmask8 __U,void const * __P)2608 _mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) {
2609 return (__m128i) __builtin_ia32_expandloadsi128_mask ((const __v4si *) __P,
2610 (__v4si) __W,
2611 (__mmask8)
2612 __U);
2613 }
2614
2615 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_expandloadu_epi32(__mmask8 __U,void const * __P)2616 _mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
2617 return (__m128i) __builtin_ia32_expandloadsi128_mask ((const __v4si *) __P,
2618 (__v4si)
2619 _mm_setzero_si128 (),
2620 (__mmask8) __U);
2621 }
2622
2623 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_expandloadu_epi32(__m256i __W,__mmask8 __U,void const * __P)2624 _mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U,
2625 void const *__P) {
2626 return (__m256i) __builtin_ia32_expandloadsi256_mask ((const __v8si *) __P,
2627 (__v8si) __W,
2628 (__mmask8)
2629 __U);
2630 }
2631
2632 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_expandloadu_epi32(__mmask8 __U,void const * __P)2633 _mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
2634 return (__m256i) __builtin_ia32_expandloadsi256_mask ((const __v8si *) __P,
2635 (__v8si)
2636 _mm256_setzero_si256 (),
2637 (__mmask8)
2638 __U);
2639 }
2640
2641 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_expand_ps(__m128 __W,__mmask8 __U,__m128 __A)2642 _mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) {
2643 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
2644 (__v4sf) __W,
2645 (__mmask8) __U);
2646 }
2647
2648 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_expand_ps(__mmask8 __U,__m128 __A)2649 _mm_maskz_expand_ps (__mmask8 __U, __m128 __A) {
2650 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
2651 (__v4sf)
2652 _mm_setzero_ps (),
2653 (__mmask8) __U);
2654 }
2655
2656 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_expand_ps(__m256 __W,__mmask8 __U,__m256 __A)2657 _mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) {
2658 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
2659 (__v8sf) __W,
2660 (__mmask8) __U);
2661 }
2662
2663 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_expand_ps(__mmask8 __U,__m256 __A)2664 _mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) {
2665 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
2666 (__v8sf)
2667 _mm256_setzero_ps (),
2668 (__mmask8) __U);
2669 }
2670
2671 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_expand_epi32(__m128i __W,__mmask8 __U,__m128i __A)2672 _mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
2673 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
2674 (__v4si) __W,
2675 (__mmask8) __U);
2676 }
2677
2678 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_expand_epi32(__mmask8 __U,__m128i __A)2679 _mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) {
2680 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
2681 (__v4si)
2682 _mm_setzero_si128 (),
2683 (__mmask8) __U);
2684 }
2685
2686 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_expand_epi32(__m256i __W,__mmask8 __U,__m256i __A)2687 _mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
2688 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
2689 (__v8si) __W,
2690 (__mmask8) __U);
2691 }
2692
2693 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_expand_epi32(__mmask8 __U,__m256i __A)2694 _mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) {
2695 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
2696 (__v8si)
2697 _mm256_setzero_si256 (),
2698 (__mmask8) __U);
2699 }
2700
2701 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_getexp_pd(__m128d __A)2702 _mm_getexp_pd (__m128d __A) {
2703 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
2704 (__v2df)
2705 _mm_setzero_pd (),
2706 (__mmask8) -1);
2707 }
2708
2709 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_getexp_pd(__m128d __W,__mmask8 __U,__m128d __A)2710 _mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2711 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
2712 (__v2df) __W,
2713 (__mmask8) __U);
2714 }
2715
2716 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_getexp_pd(__mmask8 __U,__m128d __A)2717 _mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) {
2718 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
2719 (__v2df)
2720 _mm_setzero_pd (),
2721 (__mmask8) __U);
2722 }
2723
2724 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_getexp_pd(__m256d __A)2725 _mm256_getexp_pd (__m256d __A) {
2726 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
2727 (__v4df)
2728 _mm256_setzero_pd (),
2729 (__mmask8) -1);
2730 }
2731
2732 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_getexp_pd(__m256d __W,__mmask8 __U,__m256d __A)2733 _mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2734 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
2735 (__v4df) __W,
2736 (__mmask8) __U);
2737 }
2738
2739 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_getexp_pd(__mmask8 __U,__m256d __A)2740 _mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) {
2741 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
2742 (__v4df)
2743 _mm256_setzero_pd (),
2744 (__mmask8) __U);
2745 }
2746
2747 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_getexp_ps(__m128 __A)2748 _mm_getexp_ps (__m128 __A) {
2749 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
2750 (__v4sf)
2751 _mm_setzero_ps (),
2752 (__mmask8) -1);
2753 }
2754
2755 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_getexp_ps(__m128 __W,__mmask8 __U,__m128 __A)2756 _mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) {
2757 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
2758 (__v4sf) __W,
2759 (__mmask8) __U);
2760 }
2761
2762 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_getexp_ps(__mmask8 __U,__m128 __A)2763 _mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) {
2764 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
2765 (__v4sf)
2766 _mm_setzero_ps (),
2767 (__mmask8) __U);
2768 }
2769
2770 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_getexp_ps(__m256 __A)2771 _mm256_getexp_ps (__m256 __A) {
2772 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
2773 (__v8sf)
2774 _mm256_setzero_ps (),
2775 (__mmask8) -1);
2776 }
2777
2778 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_getexp_ps(__m256 __W,__mmask8 __U,__m256 __A)2779 _mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) {
2780 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
2781 (__v8sf) __W,
2782 (__mmask8) __U);
2783 }
2784
2785 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_getexp_ps(__mmask8 __U,__m256 __A)2786 _mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) {
2787 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
2788 (__v8sf)
2789 _mm256_setzero_ps (),
2790 (__mmask8) __U);
2791 }
2792
2793 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_max_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2794 _mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2795 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2796 (__v2df)_mm_max_pd(__A, __B),
2797 (__v2df)__W);
2798 }
2799
2800 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_max_pd(__mmask8 __U,__m128d __A,__m128d __B)2801 _mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) {
2802 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2803 (__v2df)_mm_max_pd(__A, __B),
2804 (__v2df)_mm_setzero_pd());
2805 }
2806
2807 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_max_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)2808 _mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2809 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2810 (__v4df)_mm256_max_pd(__A, __B),
2811 (__v4df)__W);
2812 }
2813
2814 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_max_pd(__mmask8 __U,__m256d __A,__m256d __B)2815 _mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2816 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2817 (__v4df)_mm256_max_pd(__A, __B),
2818 (__v4df)_mm256_setzero_pd());
2819 }
2820
2821 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_max_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2822 _mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2823 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2824 (__v4sf)_mm_max_ps(__A, __B),
2825 (__v4sf)__W);
2826 }
2827
2828 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_max_ps(__mmask8 __U,__m128 __A,__m128 __B)2829 _mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) {
2830 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2831 (__v4sf)_mm_max_ps(__A, __B),
2832 (__v4sf)_mm_setzero_ps());
2833 }
2834
2835 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_max_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)2836 _mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2837 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2838 (__v8sf)_mm256_max_ps(__A, __B),
2839 (__v8sf)__W);
2840 }
2841
2842 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_max_ps(__mmask8 __U,__m256 __A,__m256 __B)2843 _mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2844 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2845 (__v8sf)_mm256_max_ps(__A, __B),
2846 (__v8sf)_mm256_setzero_ps());
2847 }
2848
2849 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_min_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2850 _mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2851 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2852 (__v2df)_mm_min_pd(__A, __B),
2853 (__v2df)__W);
2854 }
2855
2856 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_min_pd(__mmask8 __U,__m128d __A,__m128d __B)2857 _mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) {
2858 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2859 (__v2df)_mm_min_pd(__A, __B),
2860 (__v2df)_mm_setzero_pd());
2861 }
2862
2863 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_min_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)2864 _mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2865 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2866 (__v4df)_mm256_min_pd(__A, __B),
2867 (__v4df)__W);
2868 }
2869
2870 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_min_pd(__mmask8 __U,__m256d __A,__m256d __B)2871 _mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2872 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2873 (__v4df)_mm256_min_pd(__A, __B),
2874 (__v4df)_mm256_setzero_pd());
2875 }
2876
2877 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_min_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2878 _mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2879 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2880 (__v4sf)_mm_min_ps(__A, __B),
2881 (__v4sf)__W);
2882 }
2883
2884 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_min_ps(__mmask8 __U,__m128 __A,__m128 __B)2885 _mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) {
2886 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2887 (__v4sf)_mm_min_ps(__A, __B),
2888 (__v4sf)_mm_setzero_ps());
2889 }
2890
2891 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_min_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)2892 _mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2893 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2894 (__v8sf)_mm256_min_ps(__A, __B),
2895 (__v8sf)__W);
2896 }
2897
2898 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_min_ps(__mmask8 __U,__m256 __A,__m256 __B)2899 _mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2900 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2901 (__v8sf)_mm256_min_ps(__A, __B),
2902 (__v8sf)_mm256_setzero_ps());
2903 }
2904
2905 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_mul_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2906 _mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2907 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2908 (__v2df)_mm_mul_pd(__A, __B),
2909 (__v2df)__W);
2910 }
2911
2912 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_mul_pd(__mmask8 __U,__m128d __A,__m128d __B)2913 _mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) {
2914 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2915 (__v2df)_mm_mul_pd(__A, __B),
2916 (__v2df)_mm_setzero_pd());
2917 }
2918
2919 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_mul_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)2920 _mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2921 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2922 (__v4df)_mm256_mul_pd(__A, __B),
2923 (__v4df)__W);
2924 }
2925
2926 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_mul_pd(__mmask8 __U,__m256d __A,__m256d __B)2927 _mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2928 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2929 (__v4df)_mm256_mul_pd(__A, __B),
2930 (__v4df)_mm256_setzero_pd());
2931 }
2932
2933 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_mul_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2934 _mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2935 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2936 (__v4sf)_mm_mul_ps(__A, __B),
2937 (__v4sf)__W);
2938 }
2939
2940 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_mul_ps(__mmask8 __U,__m128 __A,__m128 __B)2941 _mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) {
2942 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2943 (__v4sf)_mm_mul_ps(__A, __B),
2944 (__v4sf)_mm_setzero_ps());
2945 }
2946
2947 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_mul_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)2948 _mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2949 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2950 (__v8sf)_mm256_mul_ps(__A, __B),
2951 (__v8sf)__W);
2952 }
2953
2954 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_mul_ps(__mmask8 __U,__m256 __A,__m256 __B)2955 _mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2956 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2957 (__v8sf)_mm256_mul_ps(__A, __B),
2958 (__v8sf)_mm256_setzero_ps());
2959 }
2960
2961 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_abs_epi32(__m128i __W,__mmask8 __U,__m128i __A)2962 _mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
2963 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
2964 (__v4si)_mm_abs_epi32(__A),
2965 (__v4si)__W);
2966 }
2967
2968 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_abs_epi32(__mmask8 __U,__m128i __A)2969 _mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) {
2970 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
2971 (__v4si)_mm_abs_epi32(__A),
2972 (__v4si)_mm_setzero_si128());
2973 }
2974
2975 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_abs_epi32(__m256i __W,__mmask8 __U,__m256i __A)2976 _mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
2977 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
2978 (__v8si)_mm256_abs_epi32(__A),
2979 (__v8si)__W);
2980 }
2981
2982 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_abs_epi32(__mmask8 __U,__m256i __A)2983 _mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) {
2984 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
2985 (__v8si)_mm256_abs_epi32(__A),
2986 (__v8si)_mm256_setzero_si256());
2987 }
2988
2989 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_abs_epi64(__m128i __A)2990 _mm_abs_epi64 (__m128i __A) {
2991 return (__m128i)__builtin_ia32_pabsq128((__v2di)__A);
2992 }
2993
2994 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_abs_epi64(__m128i __W,__mmask8 __U,__m128i __A)2995 _mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2996 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
2997 (__v2di)_mm_abs_epi64(__A),
2998 (__v2di)__W);
2999 }
3000
3001 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_abs_epi64(__mmask8 __U,__m128i __A)3002 _mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) {
3003 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
3004 (__v2di)_mm_abs_epi64(__A),
3005 (__v2di)_mm_setzero_si128());
3006 }
3007
3008 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_abs_epi64(__m256i __A)3009 _mm256_abs_epi64 (__m256i __A) {
3010 return (__m256i)__builtin_ia32_pabsq256 ((__v4di)__A);
3011 }
3012
3013 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_abs_epi64(__m256i __W,__mmask8 __U,__m256i __A)3014 _mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
3015 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
3016 (__v4di)_mm256_abs_epi64(__A),
3017 (__v4di)__W);
3018 }
3019
3020 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_abs_epi64(__mmask8 __U,__m256i __A)3021 _mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) {
3022 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
3023 (__v4di)_mm256_abs_epi64(__A),
3024 (__v4di)_mm256_setzero_si256());
3025 }
3026
3027 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_max_epi32(__mmask8 __M,__m128i __A,__m128i __B)3028 _mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
3029 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3030 (__v4si)_mm_max_epi32(__A, __B),
3031 (__v4si)_mm_setzero_si128());
3032 }
3033
3034 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_max_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)3035 _mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3036 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3037 (__v4si)_mm_max_epi32(__A, __B),
3038 (__v4si)__W);
3039 }
3040
3041 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_max_epi32(__mmask8 __M,__m256i __A,__m256i __B)3042 _mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
3043 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3044 (__v8si)_mm256_max_epi32(__A, __B),
3045 (__v8si)_mm256_setzero_si256());
3046 }
3047
3048 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_max_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)3049 _mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3050 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3051 (__v8si)_mm256_max_epi32(__A, __B),
3052 (__v8si)__W);
3053 }
3054
3055 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_max_epi64(__m128i __A,__m128i __B)3056 _mm_max_epi64 (__m128i __A, __m128i __B) {
3057 return (__m128i)__builtin_ia32_pmaxsq128((__v2di)__A, (__v2di)__B);
3058 }
3059
3060 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_max_epi64(__mmask8 __M,__m128i __A,__m128i __B)3061 _mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3062 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
3063 (__v2di)_mm_max_epi64(__A, __B),
3064 (__v2di)_mm_setzero_si128());
3065 }
3066
3067 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_max_epi64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)3068 _mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3069 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
3070 (__v2di)_mm_max_epi64(__A, __B),
3071 (__v2di)__W);
3072 }
3073
3074 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_max_epi64(__m256i __A,__m256i __B)3075 _mm256_max_epi64 (__m256i __A, __m256i __B) {
3076 return (__m256i)__builtin_ia32_pmaxsq256((__v4di)__A, (__v4di)__B);
3077 }
3078
3079 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_max_epi64(__mmask8 __M,__m256i __A,__m256i __B)3080 _mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3081 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
3082 (__v4di)_mm256_max_epi64(__A, __B),
3083 (__v4di)_mm256_setzero_si256());
3084 }
3085
3086 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_max_epi64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)3087 _mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3088 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
3089 (__v4di)_mm256_max_epi64(__A, __B),
3090 (__v4di)__W);
3091 }
3092
3093 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_max_epu32(__mmask8 __M,__m128i __A,__m128i __B)3094 _mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
3095 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3096 (__v4si)_mm_max_epu32(__A, __B),
3097 (__v4si)_mm_setzero_si128());
3098 }
3099
3100 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_max_epu32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)3101 _mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3102 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3103 (__v4si)_mm_max_epu32(__A, __B),
3104 (__v4si)__W);
3105 }
3106
3107 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_max_epu32(__mmask8 __M,__m256i __A,__m256i __B)3108 _mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
3109 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3110 (__v8si)_mm256_max_epu32(__A, __B),
3111 (__v8si)_mm256_setzero_si256());
3112 }
3113
3114 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_max_epu32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)3115 _mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3116 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3117 (__v8si)_mm256_max_epu32(__A, __B),
3118 (__v8si)__W);
3119 }
3120
3121 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_max_epu64(__m128i __A,__m128i __B)3122 _mm_max_epu64 (__m128i __A, __m128i __B) {
3123 return (__m128i)__builtin_ia32_pmaxuq128((__v2di)__A, (__v2di)__B);
3124 }
3125
3126 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_max_epu64(__mmask8 __M,__m128i __A,__m128i __B)3127 _mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3128 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
3129 (__v2di)_mm_max_epu64(__A, __B),
3130 (__v2di)_mm_setzero_si128());
3131 }
3132
3133 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_max_epu64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)3134 _mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3135 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
3136 (__v2di)_mm_max_epu64(__A, __B),
3137 (__v2di)__W);
3138 }
3139
3140 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_max_epu64(__m256i __A,__m256i __B)3141 _mm256_max_epu64 (__m256i __A, __m256i __B) {
3142 return (__m256i)__builtin_ia32_pmaxuq256((__v4di)__A, (__v4di)__B);
3143 }
3144
3145 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_max_epu64(__mmask8 __M,__m256i __A,__m256i __B)3146 _mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3147 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
3148 (__v4di)_mm256_max_epu64(__A, __B),
3149 (__v4di)_mm256_setzero_si256());
3150 }
3151
3152 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_max_epu64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)3153 _mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3154 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
3155 (__v4di)_mm256_max_epu64(__A, __B),
3156 (__v4di)__W);
3157 }
3158
3159 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_min_epi32(__mmask8 __M,__m128i __A,__m128i __B)3160 _mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
3161 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3162 (__v4si)_mm_min_epi32(__A, __B),
3163 (__v4si)_mm_setzero_si128());
3164 }
3165
3166 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_min_epi32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)3167 _mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3168 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3169 (__v4si)_mm_min_epi32(__A, __B),
3170 (__v4si)__W);
3171 }
3172
3173 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_min_epi32(__mmask8 __M,__m256i __A,__m256i __B)3174 _mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
3175 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3176 (__v8si)_mm256_min_epi32(__A, __B),
3177 (__v8si)_mm256_setzero_si256());
3178 }
3179
3180 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_min_epi32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)3181 _mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3182 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3183 (__v8si)_mm256_min_epi32(__A, __B),
3184 (__v8si)__W);
3185 }
3186
3187 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_min_epi64(__m128i __A,__m128i __B)3188 _mm_min_epi64 (__m128i __A, __m128i __B) {
3189 return (__m128i)__builtin_ia32_pminsq128((__v2di)__A, (__v2di)__B);
3190 }
3191
3192 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_min_epi64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)3193 _mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3194 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
3195 (__v2di)_mm_min_epi64(__A, __B),
3196 (__v2di)__W);
3197 }
3198
3199 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_min_epi64(__mmask8 __M,__m128i __A,__m128i __B)3200 _mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3201 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
3202 (__v2di)_mm_min_epi64(__A, __B),
3203 (__v2di)_mm_setzero_si128());
3204 }
3205
3206 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_min_epi64(__m256i __A,__m256i __B)3207 _mm256_min_epi64 (__m256i __A, __m256i __B) {
3208 return (__m256i)__builtin_ia32_pminsq256((__v4di)__A, (__v4di)__B);
3209 }
3210
3211 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_min_epi64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)3212 _mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3213 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
3214 (__v4di)_mm256_min_epi64(__A, __B),
3215 (__v4di)__W);
3216 }
3217
3218 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_min_epi64(__mmask8 __M,__m256i __A,__m256i __B)3219 _mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3220 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
3221 (__v4di)_mm256_min_epi64(__A, __B),
3222 (__v4di)_mm256_setzero_si256());
3223 }
3224
3225 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_min_epu32(__mmask8 __M,__m128i __A,__m128i __B)3226 _mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
3227 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3228 (__v4si)_mm_min_epu32(__A, __B),
3229 (__v4si)_mm_setzero_si128());
3230 }
3231
3232 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_min_epu32(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)3233 _mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3234 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3235 (__v4si)_mm_min_epu32(__A, __B),
3236 (__v4si)__W);
3237 }
3238
3239 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_min_epu32(__mmask8 __M,__m256i __A,__m256i __B)3240 _mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
3241 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3242 (__v8si)_mm256_min_epu32(__A, __B),
3243 (__v8si)_mm256_setzero_si256());
3244 }
3245
3246 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_min_epu32(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)3247 _mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3248 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3249 (__v8si)_mm256_min_epu32(__A, __B),
3250 (__v8si)__W);
3251 }
3252
3253 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_min_epu64(__m128i __A,__m128i __B)3254 _mm_min_epu64 (__m128i __A, __m128i __B) {
3255 return (__m128i)__builtin_ia32_pminuq128((__v2di)__A, (__v2di)__B);
3256 }
3257
3258 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_min_epu64(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)3259 _mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3260 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
3261 (__v2di)_mm_min_epu64(__A, __B),
3262 (__v2di)__W);
3263 }
3264
3265 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_min_epu64(__mmask8 __M,__m128i __A,__m128i __B)3266 _mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3267 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
3268 (__v2di)_mm_min_epu64(__A, __B),
3269 (__v2di)_mm_setzero_si128());
3270 }
3271
3272 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_min_epu64(__m256i __A,__m256i __B)3273 _mm256_min_epu64 (__m256i __A, __m256i __B) {
3274 return (__m256i)__builtin_ia32_pminuq256((__v4di)__A, (__v4di)__B);
3275 }
3276
3277 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_min_epu64(__m256i __W,__mmask8 __M,__m256i __A,__m256i __B)3278 _mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3279 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
3280 (__v4di)_mm256_min_epu64(__A, __B),
3281 (__v4di)__W);
3282 }
3283
3284 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_min_epu64(__mmask8 __M,__m256i __A,__m256i __B)3285 _mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3286 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
3287 (__v4di)_mm256_min_epu64(__A, __B),
3288 (__v4di)_mm256_setzero_si256());
3289 }
3290
3291 #define _mm_roundscale_pd(A, imm) \
3292 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3293 (int)(imm), \
3294 (__v2df)_mm_setzero_pd(), \
3295 (__mmask8)-1)
3296
3297
3298 #define _mm_mask_roundscale_pd(W, U, A, imm) \
3299 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3300 (int)(imm), \
3301 (__v2df)(__m128d)(W), \
3302 (__mmask8)(U))
3303
3304
3305 #define _mm_maskz_roundscale_pd(U, A, imm) \
3306 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3307 (int)(imm), \
3308 (__v2df)_mm_setzero_pd(), \
3309 (__mmask8)(U))
3310
3311
3312 #define _mm256_roundscale_pd(A, imm) \
3313 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3314 (int)(imm), \
3315 (__v4df)_mm256_setzero_pd(), \
3316 (__mmask8)-1)
3317
3318
3319 #define _mm256_mask_roundscale_pd(W, U, A, imm) \
3320 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3321 (int)(imm), \
3322 (__v4df)(__m256d)(W), \
3323 (__mmask8)(U))
3324
3325
3326 #define _mm256_maskz_roundscale_pd(U, A, imm) \
3327 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3328 (int)(imm), \
3329 (__v4df)_mm256_setzero_pd(), \
3330 (__mmask8)(U))
3331
3332 #define _mm_roundscale_ps(A, imm) \
3333 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3334 (__v4sf)_mm_setzero_ps(), \
3335 (__mmask8)-1)
3336
3337
3338 #define _mm_mask_roundscale_ps(W, U, A, imm) \
3339 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3340 (__v4sf)(__m128)(W), \
3341 (__mmask8)(U))
3342
3343
3344 #define _mm_maskz_roundscale_ps(U, A, imm) \
3345 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3346 (__v4sf)_mm_setzero_ps(), \
3347 (__mmask8)(U))
3348
3349 #define _mm256_roundscale_ps(A, imm) \
3350 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3351 (__v8sf)_mm256_setzero_ps(), \
3352 (__mmask8)-1)
3353
3354 #define _mm256_mask_roundscale_ps(W, U, A, imm) \
3355 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3356 (__v8sf)(__m256)(W), \
3357 (__mmask8)(U))
3358
3359
3360 #define _mm256_maskz_roundscale_ps(U, A, imm) \
3361 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3362 (__v8sf)_mm256_setzero_ps(), \
3363 (__mmask8)(U))
3364
3365 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_scalef_pd(__m128d __A,__m128d __B)3366 _mm_scalef_pd (__m128d __A, __m128d __B) {
3367 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3368 (__v2df) __B,
3369 (__v2df)
3370 _mm_setzero_pd (),
3371 (__mmask8) -1);
3372 }
3373
3374 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_scalef_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3375 _mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A,
3376 __m128d __B) {
3377 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3378 (__v2df) __B,
3379 (__v2df) __W,
3380 (__mmask8) __U);
3381 }
3382
3383 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_scalef_pd(__mmask8 __U,__m128d __A,__m128d __B)3384 _mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3385 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3386 (__v2df) __B,
3387 (__v2df)
3388 _mm_setzero_pd (),
3389 (__mmask8) __U);
3390 }
3391
3392 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_scalef_pd(__m256d __A,__m256d __B)3393 _mm256_scalef_pd (__m256d __A, __m256d __B) {
3394 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3395 (__v4df) __B,
3396 (__v4df)
3397 _mm256_setzero_pd (),
3398 (__mmask8) -1);
3399 }
3400
3401 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_scalef_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)3402 _mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A,
3403 __m256d __B) {
3404 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3405 (__v4df) __B,
3406 (__v4df) __W,
3407 (__mmask8) __U);
3408 }
3409
3410 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_scalef_pd(__mmask8 __U,__m256d __A,__m256d __B)3411 _mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3412 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3413 (__v4df) __B,
3414 (__v4df)
3415 _mm256_setzero_pd (),
3416 (__mmask8) __U);
3417 }
3418
3419 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_scalef_ps(__m128 __A,__m128 __B)3420 _mm_scalef_ps (__m128 __A, __m128 __B) {
3421 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3422 (__v4sf) __B,
3423 (__v4sf)
3424 _mm_setzero_ps (),
3425 (__mmask8) -1);
3426 }
3427
3428 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_scalef_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)3429 _mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3430 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3431 (__v4sf) __B,
3432 (__v4sf) __W,
3433 (__mmask8) __U);
3434 }
3435
3436 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_scalef_ps(__mmask8 __U,__m128 __A,__m128 __B)3437 _mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3438 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3439 (__v4sf) __B,
3440 (__v4sf)
3441 _mm_setzero_ps (),
3442 (__mmask8) __U);
3443 }
3444
3445 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_scalef_ps(__m256 __A,__m256 __B)3446 _mm256_scalef_ps (__m256 __A, __m256 __B) {
3447 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3448 (__v8sf) __B,
3449 (__v8sf)
3450 _mm256_setzero_ps (),
3451 (__mmask8) -1);
3452 }
3453
3454 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_scalef_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)3455 _mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A,
3456 __m256 __B) {
3457 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3458 (__v8sf) __B,
3459 (__v8sf) __W,
3460 (__mmask8) __U);
3461 }
3462
3463 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_scalef_ps(__mmask8 __U,__m256 __A,__m256 __B)3464 _mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3465 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3466 (__v8sf) __B,
3467 (__v8sf)
3468 _mm256_setzero_ps (),
3469 (__mmask8) __U);
3470 }
3471
3472 #define _mm_i64scatter_pd(addr, index, v1, scale) \
3473 __builtin_ia32_scatterdiv2df((void *)(addr), (__mmask8)-1, \
3474 (__v2di)(__m128i)(index), \
3475 (__v2df)(__m128d)(v1), (int)(scale))
3476
3477 #define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) \
3478 __builtin_ia32_scatterdiv2df((void *)(addr), (__mmask8)(mask), \
3479 (__v2di)(__m128i)(index), \
3480 (__v2df)(__m128d)(v1), (int)(scale))
3481
3482 #define _mm_i64scatter_epi64(addr, index, v1, scale) \
3483 __builtin_ia32_scatterdiv2di((void *)(addr), (__mmask8)-1, \
3484 (__v2di)(__m128i)(index), \
3485 (__v2di)(__m128i)(v1), (int)(scale))
3486
3487 #define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) \
3488 __builtin_ia32_scatterdiv2di((void *)(addr), (__mmask8)(mask), \
3489 (__v2di)(__m128i)(index), \
3490 (__v2di)(__m128i)(v1), (int)(scale))
3491
3492 #define _mm256_i64scatter_pd(addr, index, v1, scale) \
3493 __builtin_ia32_scatterdiv4df((void *)(addr), (__mmask8)-1, \
3494 (__v4di)(__m256i)(index), \
3495 (__v4df)(__m256d)(v1), (int)(scale))
3496
3497 #define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) \
3498 __builtin_ia32_scatterdiv4df((void *)(addr), (__mmask8)(mask), \
3499 (__v4di)(__m256i)(index), \
3500 (__v4df)(__m256d)(v1), (int)(scale))
3501
3502 #define _mm256_i64scatter_epi64(addr, index, v1, scale) \
3503 __builtin_ia32_scatterdiv4di((void *)(addr), (__mmask8)-1, \
3504 (__v4di)(__m256i)(index), \
3505 (__v4di)(__m256i)(v1), (int)(scale))
3506
3507 #define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) \
3508 __builtin_ia32_scatterdiv4di((void *)(addr), (__mmask8)(mask), \
3509 (__v4di)(__m256i)(index), \
3510 (__v4di)(__m256i)(v1), (int)(scale))
3511
3512 #define _mm_i64scatter_ps(addr, index, v1, scale) \
3513 __builtin_ia32_scatterdiv4sf((void *)(addr), (__mmask8)-1, \
3514 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
3515 (int)(scale))
3516
3517 #define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) \
3518 __builtin_ia32_scatterdiv4sf((void *)(addr), (__mmask8)(mask), \
3519 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
3520 (int)(scale))
3521
3522 #define _mm_i64scatter_epi32(addr, index, v1, scale) \
3523 __builtin_ia32_scatterdiv4si((void *)(addr), (__mmask8)-1, \
3524 (__v2di)(__m128i)(index), \
3525 (__v4si)(__m128i)(v1), (int)(scale))
3526
3527 #define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) \
3528 __builtin_ia32_scatterdiv4si((void *)(addr), (__mmask8)(mask), \
3529 (__v2di)(__m128i)(index), \
3530 (__v4si)(__m128i)(v1), (int)(scale))
3531
3532 #define _mm256_i64scatter_ps(addr, index, v1, scale) \
3533 __builtin_ia32_scatterdiv8sf((void *)(addr), (__mmask8)-1, \
3534 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
3535 (int)(scale))
3536
3537 #define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) \
3538 __builtin_ia32_scatterdiv8sf((void *)(addr), (__mmask8)(mask), \
3539 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
3540 (int)(scale))
3541
3542 #define _mm256_i64scatter_epi32(addr, index, v1, scale) \
3543 __builtin_ia32_scatterdiv8si((void *)(addr), (__mmask8)-1, \
3544 (__v4di)(__m256i)(index), \
3545 (__v4si)(__m128i)(v1), (int)(scale))
3546
3547 #define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) \
3548 __builtin_ia32_scatterdiv8si((void *)(addr), (__mmask8)(mask), \
3549 (__v4di)(__m256i)(index), \
3550 (__v4si)(__m128i)(v1), (int)(scale))
3551
3552 #define _mm_i32scatter_pd(addr, index, v1, scale) \
3553 __builtin_ia32_scattersiv2df((void *)(addr), (__mmask8)-1, \
3554 (__v4si)(__m128i)(index), \
3555 (__v2df)(__m128d)(v1), (int)(scale))
3556
3557 #define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) \
3558 __builtin_ia32_scattersiv2df((void *)(addr), (__mmask8)(mask), \
3559 (__v4si)(__m128i)(index), \
3560 (__v2df)(__m128d)(v1), (int)(scale))
3561
3562 #define _mm_i32scatter_epi64(addr, index, v1, scale) \
3563 __builtin_ia32_scattersiv2di((void *)(addr), (__mmask8)-1, \
3564 (__v4si)(__m128i)(index), \
3565 (__v2di)(__m128i)(v1), (int)(scale))
3566
3567 #define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) \
3568 __builtin_ia32_scattersiv2di((void *)(addr), (__mmask8)(mask), \
3569 (__v4si)(__m128i)(index), \
3570 (__v2di)(__m128i)(v1), (int)(scale))
3571
3572 #define _mm256_i32scatter_pd(addr, index, v1, scale) \
3573 __builtin_ia32_scattersiv4df((void *)(addr), (__mmask8)-1, \
3574 (__v4si)(__m128i)(index), \
3575 (__v4df)(__m256d)(v1), (int)(scale))
3576
3577 #define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) \
3578 __builtin_ia32_scattersiv4df((void *)(addr), (__mmask8)(mask), \
3579 (__v4si)(__m128i)(index), \
3580 (__v4df)(__m256d)(v1), (int)(scale))
3581
3582 #define _mm256_i32scatter_epi64(addr, index, v1, scale) \
3583 __builtin_ia32_scattersiv4di((void *)(addr), (__mmask8)-1, \
3584 (__v4si)(__m128i)(index), \
3585 (__v4di)(__m256i)(v1), (int)(scale))
3586
3587 #define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) \
3588 __builtin_ia32_scattersiv4di((void *)(addr), (__mmask8)(mask), \
3589 (__v4si)(__m128i)(index), \
3590 (__v4di)(__m256i)(v1), (int)(scale))
3591
3592 #define _mm_i32scatter_ps(addr, index, v1, scale) \
3593 __builtin_ia32_scattersiv4sf((void *)(addr), (__mmask8)-1, \
3594 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
3595 (int)(scale))
3596
3597 #define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) \
3598 __builtin_ia32_scattersiv4sf((void *)(addr), (__mmask8)(mask), \
3599 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
3600 (int)(scale))
3601
3602 #define _mm_i32scatter_epi32(addr, index, v1, scale) \
3603 __builtin_ia32_scattersiv4si((void *)(addr), (__mmask8)-1, \
3604 (__v4si)(__m128i)(index), \
3605 (__v4si)(__m128i)(v1), (int)(scale))
3606
3607 #define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) \
3608 __builtin_ia32_scattersiv4si((void *)(addr), (__mmask8)(mask), \
3609 (__v4si)(__m128i)(index), \
3610 (__v4si)(__m128i)(v1), (int)(scale))
3611
3612 #define _mm256_i32scatter_ps(addr, index, v1, scale) \
3613 __builtin_ia32_scattersiv8sf((void *)(addr), (__mmask8)-1, \
3614 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
3615 (int)(scale))
3616
3617 #define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) \
3618 __builtin_ia32_scattersiv8sf((void *)(addr), (__mmask8)(mask), \
3619 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
3620 (int)(scale))
3621
3622 #define _mm256_i32scatter_epi32(addr, index, v1, scale) \
3623 __builtin_ia32_scattersiv8si((void *)(addr), (__mmask8)-1, \
3624 (__v8si)(__m256i)(index), \
3625 (__v8si)(__m256i)(v1), (int)(scale))
3626
3627 #define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) \
3628 __builtin_ia32_scattersiv8si((void *)(addr), (__mmask8)(mask), \
3629 (__v8si)(__m256i)(index), \
3630 (__v8si)(__m256i)(v1), (int)(scale))
3631
3632 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_sqrt_pd(__m128d __W,__mmask8 __U,__m128d __A)3633 _mm_mask_sqrt_pd(__m128d __W, __mmask8 __U, __m128d __A) {
3634 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3635 (__v2df)_mm_sqrt_pd(__A),
3636 (__v2df)__W);
3637 }
3638
3639 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_sqrt_pd(__mmask8 __U,__m128d __A)3640 _mm_maskz_sqrt_pd(__mmask8 __U, __m128d __A) {
3641 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3642 (__v2df)_mm_sqrt_pd(__A),
3643 (__v2df)_mm_setzero_pd());
3644 }
3645
3646 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_sqrt_pd(__m256d __W,__mmask8 __U,__m256d __A)3647 _mm256_mask_sqrt_pd(__m256d __W, __mmask8 __U, __m256d __A) {
3648 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3649 (__v4df)_mm256_sqrt_pd(__A),
3650 (__v4df)__W);
3651 }
3652
3653 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_sqrt_pd(__mmask8 __U,__m256d __A)3654 _mm256_maskz_sqrt_pd(__mmask8 __U, __m256d __A) {
3655 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3656 (__v4df)_mm256_sqrt_pd(__A),
3657 (__v4df)_mm256_setzero_pd());
3658 }
3659
3660 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_sqrt_ps(__m128 __W,__mmask8 __U,__m128 __A)3661 _mm_mask_sqrt_ps(__m128 __W, __mmask8 __U, __m128 __A) {
3662 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3663 (__v4sf)_mm_sqrt_ps(__A),
3664 (__v4sf)__W);
3665 }
3666
3667 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_sqrt_ps(__mmask8 __U,__m128 __A)3668 _mm_maskz_sqrt_ps(__mmask8 __U, __m128 __A) {
3669 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3670 (__v4sf)_mm_sqrt_ps(__A),
3671 (__v4sf)_mm_setzero_ps());
3672 }
3673
3674 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_sqrt_ps(__m256 __W,__mmask8 __U,__m256 __A)3675 _mm256_mask_sqrt_ps(__m256 __W, __mmask8 __U, __m256 __A) {
3676 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3677 (__v8sf)_mm256_sqrt_ps(__A),
3678 (__v8sf)__W);
3679 }
3680
3681 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_sqrt_ps(__mmask8 __U,__m256 __A)3682 _mm256_maskz_sqrt_ps(__mmask8 __U, __m256 __A) {
3683 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3684 (__v8sf)_mm256_sqrt_ps(__A),
3685 (__v8sf)_mm256_setzero_ps());
3686 }
3687
3688 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_sub_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)3689 _mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3690 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3691 (__v2df)_mm_sub_pd(__A, __B),
3692 (__v2df)__W);
3693 }
3694
3695 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_sub_pd(__mmask8 __U,__m128d __A,__m128d __B)3696 _mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) {
3697 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3698 (__v2df)_mm_sub_pd(__A, __B),
3699 (__v2df)_mm_setzero_pd());
3700 }
3701
3702 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_sub_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)3703 _mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
3704 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3705 (__v4df)_mm256_sub_pd(__A, __B),
3706 (__v4df)__W);
3707 }
3708
3709 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_sub_pd(__mmask8 __U,__m256d __A,__m256d __B)3710 _mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) {
3711 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3712 (__v4df)_mm256_sub_pd(__A, __B),
3713 (__v4df)_mm256_setzero_pd());
3714 }
3715
3716 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_sub_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)3717 _mm_mask_sub_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3718 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3719 (__v4sf)_mm_sub_ps(__A, __B),
3720 (__v4sf)__W);
3721 }
3722
3723 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_sub_ps(__mmask8 __U,__m128 __A,__m128 __B)3724 _mm_maskz_sub_ps(__mmask8 __U, __m128 __A, __m128 __B) {
3725 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3726 (__v4sf)_mm_sub_ps(__A, __B),
3727 (__v4sf)_mm_setzero_ps());
3728 }
3729
3730 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_sub_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)3731 _mm256_mask_sub_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3732 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3733 (__v8sf)_mm256_sub_ps(__A, __B),
3734 (__v8sf)__W);
3735 }
3736
3737 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_sub_ps(__mmask8 __U,__m256 __A,__m256 __B)3738 _mm256_maskz_sub_ps(__mmask8 __U, __m256 __A, __m256 __B) {
3739 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3740 (__v8sf)_mm256_sub_ps(__A, __B),
3741 (__v8sf)_mm256_setzero_ps());
3742 }
3743
3744 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_permutex2var_epi32(__m128i __A,__m128i __I,__m128i __B)3745 _mm_permutex2var_epi32(__m128i __A, __m128i __I, __m128i __B) {
3746 return (__m128i)__builtin_ia32_vpermi2vard128((__v4si) __A, (__v4si)__I,
3747 (__v4si)__B);
3748 }
3749
3750 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_permutex2var_epi32(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)3751 _mm_mask_permutex2var_epi32(__m128i __A, __mmask8 __U, __m128i __I,
3752 __m128i __B) {
3753 return (__m128i)__builtin_ia32_selectd_128(__U,
3754 (__v4si)_mm_permutex2var_epi32(__A, __I, __B),
3755 (__v4si)__A);
3756 }
3757
3758 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask2_permutex2var_epi32(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)3759 _mm_mask2_permutex2var_epi32(__m128i __A, __m128i __I, __mmask8 __U,
3760 __m128i __B) {
3761 return (__m128i)__builtin_ia32_selectd_128(__U,
3762 (__v4si)_mm_permutex2var_epi32(__A, __I, __B),
3763 (__v4si)__I);
3764 }
3765
3766 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_permutex2var_epi32(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)3767 _mm_maskz_permutex2var_epi32(__mmask8 __U, __m128i __A, __m128i __I,
3768 __m128i __B) {
3769 return (__m128i)__builtin_ia32_selectd_128(__U,
3770 (__v4si)_mm_permutex2var_epi32(__A, __I, __B),
3771 (__v4si)_mm_setzero_si128());
3772 }
3773
3774 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_permutex2var_epi32(__m256i __A,__m256i __I,__m256i __B)3775 _mm256_permutex2var_epi32(__m256i __A, __m256i __I, __m256i __B) {
3776 return (__m256i)__builtin_ia32_vpermi2vard256((__v8si)__A, (__v8si) __I,
3777 (__v8si) __B);
3778 }
3779
3780 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_permutex2var_epi32(__m256i __A,__mmask8 __U,__m256i __I,__m256i __B)3781 _mm256_mask_permutex2var_epi32(__m256i __A, __mmask8 __U, __m256i __I,
3782 __m256i __B) {
3783 return (__m256i)__builtin_ia32_selectd_256(__U,
3784 (__v8si)_mm256_permutex2var_epi32(__A, __I, __B),
3785 (__v8si)__A);
3786 }
3787
3788 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask2_permutex2var_epi32(__m256i __A,__m256i __I,__mmask8 __U,__m256i __B)3789 _mm256_mask2_permutex2var_epi32(__m256i __A, __m256i __I, __mmask8 __U,
3790 __m256i __B) {
3791 return (__m256i)__builtin_ia32_selectd_256(__U,
3792 (__v8si)_mm256_permutex2var_epi32(__A, __I, __B),
3793 (__v8si)__I);
3794 }
3795
3796 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_permutex2var_epi32(__mmask8 __U,__m256i __A,__m256i __I,__m256i __B)3797 _mm256_maskz_permutex2var_epi32(__mmask8 __U, __m256i __A, __m256i __I,
3798 __m256i __B) {
3799 return (__m256i)__builtin_ia32_selectd_256(__U,
3800 (__v8si)_mm256_permutex2var_epi32(__A, __I, __B),
3801 (__v8si)_mm256_setzero_si256());
3802 }
3803
3804 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_permutex2var_pd(__m128d __A,__m128i __I,__m128d __B)3805 _mm_permutex2var_pd(__m128d __A, __m128i __I, __m128d __B) {
3806 return (__m128d)__builtin_ia32_vpermi2varpd128((__v2df)__A, (__v2di)__I,
3807 (__v2df)__B);
3808 }
3809
3810 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_permutex2var_pd(__m128d __A,__mmask8 __U,__m128i __I,__m128d __B)3811 _mm_mask_permutex2var_pd(__m128d __A, __mmask8 __U, __m128i __I, __m128d __B) {
3812 return (__m128d)__builtin_ia32_selectpd_128(__U,
3813 (__v2df)_mm_permutex2var_pd(__A, __I, __B),
3814 (__v2df)__A);
3815 }
3816
3817 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask2_permutex2var_pd(__m128d __A,__m128i __I,__mmask8 __U,__m128d __B)3818 _mm_mask2_permutex2var_pd(__m128d __A, __m128i __I, __mmask8 __U, __m128d __B) {
3819 return (__m128d)__builtin_ia32_selectpd_128(__U,
3820 (__v2df)_mm_permutex2var_pd(__A, __I, __B),
3821 (__v2df)(__m128d)__I);
3822 }
3823
3824 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_permutex2var_pd(__mmask8 __U,__m128d __A,__m128i __I,__m128d __B)3825 _mm_maskz_permutex2var_pd(__mmask8 __U, __m128d __A, __m128i __I, __m128d __B) {
3826 return (__m128d)__builtin_ia32_selectpd_128(__U,
3827 (__v2df)_mm_permutex2var_pd(__A, __I, __B),
3828 (__v2df)_mm_setzero_pd());
3829 }
3830
3831 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_permutex2var_pd(__m256d __A,__m256i __I,__m256d __B)3832 _mm256_permutex2var_pd(__m256d __A, __m256i __I, __m256d __B) {
3833 return (__m256d)__builtin_ia32_vpermi2varpd256((__v4df)__A, (__v4di)__I,
3834 (__v4df)__B);
3835 }
3836
3837 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_permutex2var_pd(__m256d __A,__mmask8 __U,__m256i __I,__m256d __B)3838 _mm256_mask_permutex2var_pd(__m256d __A, __mmask8 __U, __m256i __I,
3839 __m256d __B) {
3840 return (__m256d)__builtin_ia32_selectpd_256(__U,
3841 (__v4df)_mm256_permutex2var_pd(__A, __I, __B),
3842 (__v4df)__A);
3843 }
3844
3845 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask2_permutex2var_pd(__m256d __A,__m256i __I,__mmask8 __U,__m256d __B)3846 _mm256_mask2_permutex2var_pd(__m256d __A, __m256i __I, __mmask8 __U,
3847 __m256d __B) {
3848 return (__m256d)__builtin_ia32_selectpd_256(__U,
3849 (__v4df)_mm256_permutex2var_pd(__A, __I, __B),
3850 (__v4df)(__m256d)__I);
3851 }
3852
3853 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_permutex2var_pd(__mmask8 __U,__m256d __A,__m256i __I,__m256d __B)3854 _mm256_maskz_permutex2var_pd(__mmask8 __U, __m256d __A, __m256i __I,
3855 __m256d __B) {
3856 return (__m256d)__builtin_ia32_selectpd_256(__U,
3857 (__v4df)_mm256_permutex2var_pd(__A, __I, __B),
3858 (__v4df)_mm256_setzero_pd());
3859 }
3860
3861 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_permutex2var_ps(__m128 __A,__m128i __I,__m128 __B)3862 _mm_permutex2var_ps(__m128 __A, __m128i __I, __m128 __B) {
3863 return (__m128)__builtin_ia32_vpermi2varps128((__v4sf)__A, (__v4si)__I,
3864 (__v4sf)__B);
3865 }
3866
3867 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_permutex2var_ps(__m128 __A,__mmask8 __U,__m128i __I,__m128 __B)3868 _mm_mask_permutex2var_ps(__m128 __A, __mmask8 __U, __m128i __I, __m128 __B) {
3869 return (__m128)__builtin_ia32_selectps_128(__U,
3870 (__v4sf)_mm_permutex2var_ps(__A, __I, __B),
3871 (__v4sf)__A);
3872 }
3873
3874 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask2_permutex2var_ps(__m128 __A,__m128i __I,__mmask8 __U,__m128 __B)3875 _mm_mask2_permutex2var_ps(__m128 __A, __m128i __I, __mmask8 __U, __m128 __B) {
3876 return (__m128)__builtin_ia32_selectps_128(__U,
3877 (__v4sf)_mm_permutex2var_ps(__A, __I, __B),
3878 (__v4sf)(__m128)__I);
3879 }
3880
3881 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_permutex2var_ps(__mmask8 __U,__m128 __A,__m128i __I,__m128 __B)3882 _mm_maskz_permutex2var_ps(__mmask8 __U, __m128 __A, __m128i __I, __m128 __B) {
3883 return (__m128)__builtin_ia32_selectps_128(__U,
3884 (__v4sf)_mm_permutex2var_ps(__A, __I, __B),
3885 (__v4sf)_mm_setzero_ps());
3886 }
3887
3888 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_permutex2var_ps(__m256 __A,__m256i __I,__m256 __B)3889 _mm256_permutex2var_ps(__m256 __A, __m256i __I, __m256 __B) {
3890 return (__m256)__builtin_ia32_vpermi2varps256((__v8sf)__A, (__v8si)__I,
3891 (__v8sf) __B);
3892 }
3893
3894 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_permutex2var_ps(__m256 __A,__mmask8 __U,__m256i __I,__m256 __B)3895 _mm256_mask_permutex2var_ps(__m256 __A, __mmask8 __U, __m256i __I, __m256 __B) {
3896 return (__m256)__builtin_ia32_selectps_256(__U,
3897 (__v8sf)_mm256_permutex2var_ps(__A, __I, __B),
3898 (__v8sf)__A);
3899 }
3900
3901 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask2_permutex2var_ps(__m256 __A,__m256i __I,__mmask8 __U,__m256 __B)3902 _mm256_mask2_permutex2var_ps(__m256 __A, __m256i __I, __mmask8 __U,
3903 __m256 __B) {
3904 return (__m256)__builtin_ia32_selectps_256(__U,
3905 (__v8sf)_mm256_permutex2var_ps(__A, __I, __B),
3906 (__v8sf)(__m256)__I);
3907 }
3908
3909 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_permutex2var_ps(__mmask8 __U,__m256 __A,__m256i __I,__m256 __B)3910 _mm256_maskz_permutex2var_ps(__mmask8 __U, __m256 __A, __m256i __I,
3911 __m256 __B) {
3912 return (__m256)__builtin_ia32_selectps_256(__U,
3913 (__v8sf)_mm256_permutex2var_ps(__A, __I, __B),
3914 (__v8sf)_mm256_setzero_ps());
3915 }
3916
3917 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_permutex2var_epi64(__m128i __A,__m128i __I,__m128i __B)3918 _mm_permutex2var_epi64(__m128i __A, __m128i __I, __m128i __B) {
3919 return (__m128i)__builtin_ia32_vpermi2varq128((__v2di)__A, (__v2di)__I,
3920 (__v2di)__B);
3921 }
3922
3923 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_permutex2var_epi64(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)3924 _mm_mask_permutex2var_epi64(__m128i __A, __mmask8 __U, __m128i __I,
3925 __m128i __B) {
3926 return (__m128i)__builtin_ia32_selectq_128(__U,
3927 (__v2di)_mm_permutex2var_epi64(__A, __I, __B),
3928 (__v2di)__A);
3929 }
3930
3931 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask2_permutex2var_epi64(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)3932 _mm_mask2_permutex2var_epi64(__m128i __A, __m128i __I, __mmask8 __U,
3933 __m128i __B) {
3934 return (__m128i)__builtin_ia32_selectq_128(__U,
3935 (__v2di)_mm_permutex2var_epi64(__A, __I, __B),
3936 (__v2di)__I);
3937 }
3938
3939 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_permutex2var_epi64(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)3940 _mm_maskz_permutex2var_epi64(__mmask8 __U, __m128i __A, __m128i __I,
3941 __m128i __B) {
3942 return (__m128i)__builtin_ia32_selectq_128(__U,
3943 (__v2di)_mm_permutex2var_epi64(__A, __I, __B),
3944 (__v2di)_mm_setzero_si128());
3945 }
3946
3947
3948 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_permutex2var_epi64(__m256i __A,__m256i __I,__m256i __B)3949 _mm256_permutex2var_epi64(__m256i __A, __m256i __I, __m256i __B) {
3950 return (__m256i)__builtin_ia32_vpermi2varq256((__v4di)__A, (__v4di) __I,
3951 (__v4di) __B);
3952 }
3953
3954 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_permutex2var_epi64(__m256i __A,__mmask8 __U,__m256i __I,__m256i __B)3955 _mm256_mask_permutex2var_epi64(__m256i __A, __mmask8 __U, __m256i __I,
3956 __m256i __B) {
3957 return (__m256i)__builtin_ia32_selectq_256(__U,
3958 (__v4di)_mm256_permutex2var_epi64(__A, __I, __B),
3959 (__v4di)__A);
3960 }
3961
3962 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask2_permutex2var_epi64(__m256i __A,__m256i __I,__mmask8 __U,__m256i __B)3963 _mm256_mask2_permutex2var_epi64(__m256i __A, __m256i __I, __mmask8 __U,
3964 __m256i __B) {
3965 return (__m256i)__builtin_ia32_selectq_256(__U,
3966 (__v4di)_mm256_permutex2var_epi64(__A, __I, __B),
3967 (__v4di)__I);
3968 }
3969
3970 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_permutex2var_epi64(__mmask8 __U,__m256i __A,__m256i __I,__m256i __B)3971 _mm256_maskz_permutex2var_epi64(__mmask8 __U, __m256i __A, __m256i __I,
3972 __m256i __B) {
3973 return (__m256i)__builtin_ia32_selectq_256(__U,
3974 (__v4di)_mm256_permutex2var_epi64(__A, __I, __B),
3975 (__v4di)_mm256_setzero_si256());
3976 }
3977
3978 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi8_epi32(__m128i __W,__mmask8 __U,__m128i __A)3979 _mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A)
3980 {
3981 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
3982 (__v4si)_mm_cvtepi8_epi32(__A),
3983 (__v4si)__W);
3984 }
3985
3986 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepi8_epi32(__mmask8 __U,__m128i __A)3987 _mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A)
3988 {
3989 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
3990 (__v4si)_mm_cvtepi8_epi32(__A),
3991 (__v4si)_mm_setzero_si128());
3992 }
3993
3994 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi8_epi32(__m256i __W,__mmask8 __U,__m128i __A)3995 _mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
3996 {
3997 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
3998 (__v8si)_mm256_cvtepi8_epi32(__A),
3999 (__v8si)__W);
4000 }
4001
4002 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi8_epi32(__mmask8 __U,__m128i __A)4003 _mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4004 {
4005 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4006 (__v8si)_mm256_cvtepi8_epi32(__A),
4007 (__v8si)_mm256_setzero_si256());
4008 }
4009
4010 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi8_epi64(__m128i __W,__mmask8 __U,__m128i __A)4011 _mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A)
4012 {
4013 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4014 (__v2di)_mm_cvtepi8_epi64(__A),
4015 (__v2di)__W);
4016 }
4017
4018 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)4019 _mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A)
4020 {
4021 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4022 (__v2di)_mm_cvtepi8_epi64(__A),
4023 (__v2di)_mm_setzero_si128());
4024 }
4025
4026 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi8_epi64(__m256i __W,__mmask8 __U,__m128i __A)4027 _mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A)
4028 {
4029 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4030 (__v4di)_mm256_cvtepi8_epi64(__A),
4031 (__v4di)__W);
4032 }
4033
4034 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)4035 _mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A)
4036 {
4037 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4038 (__v4di)_mm256_cvtepi8_epi64(__A),
4039 (__v4di)_mm256_setzero_si256());
4040 }
4041
4042 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi32_epi64(__m128i __W,__mmask8 __U,__m128i __X)4043 _mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X)
4044 {
4045 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4046 (__v2di)_mm_cvtepi32_epi64(__X),
4047 (__v2di)__W);
4048 }
4049
4050 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepi32_epi64(__mmask8 __U,__m128i __X)4051 _mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X)
4052 {
4053 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4054 (__v2di)_mm_cvtepi32_epi64(__X),
4055 (__v2di)_mm_setzero_si128());
4056 }
4057
4058 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi32_epi64(__m256i __W,__mmask8 __U,__m128i __X)4059 _mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X)
4060 {
4061 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4062 (__v4di)_mm256_cvtepi32_epi64(__X),
4063 (__v4di)__W);
4064 }
4065
4066 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi32_epi64(__mmask8 __U,__m128i __X)4067 _mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X)
4068 {
4069 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4070 (__v4di)_mm256_cvtepi32_epi64(__X),
4071 (__v4di)_mm256_setzero_si256());
4072 }
4073
4074 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi16_epi32(__m128i __W,__mmask8 __U,__m128i __A)4075 _mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A)
4076 {
4077 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4078 (__v4si)_mm_cvtepi16_epi32(__A),
4079 (__v4si)__W);
4080 }
4081
4082 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepi16_epi32(__mmask8 __U,__m128i __A)4083 _mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A)
4084 {
4085 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4086 (__v4si)_mm_cvtepi16_epi32(__A),
4087 (__v4si)_mm_setzero_si128());
4088 }
4089
4090 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi16_epi32(__m256i __W,__mmask8 __U,__m128i __A)4091 _mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A)
4092 {
4093 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4094 (__v8si)_mm256_cvtepi16_epi32(__A),
4095 (__v8si)__W);
4096 }
4097
4098 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi16_epi32(__mmask8 __U,__m128i __A)4099 _mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4100 {
4101 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4102 (__v8si)_mm256_cvtepi16_epi32(__A),
4103 (__v8si)_mm256_setzero_si256());
4104 }
4105
4106 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi16_epi64(__m128i __W,__mmask8 __U,__m128i __A)4107 _mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A)
4108 {
4109 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4110 (__v2di)_mm_cvtepi16_epi64(__A),
4111 (__v2di)__W);
4112 }
4113
4114 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)4115 _mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A)
4116 {
4117 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4118 (__v2di)_mm_cvtepi16_epi64(__A),
4119 (__v2di)_mm_setzero_si128());
4120 }
4121
4122 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi16_epi64(__m256i __W,__mmask8 __U,__m128i __A)4123 _mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A)
4124 {
4125 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4126 (__v4di)_mm256_cvtepi16_epi64(__A),
4127 (__v4di)__W);
4128 }
4129
4130 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)4131 _mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A)
4132 {
4133 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4134 (__v4di)_mm256_cvtepi16_epi64(__A),
4135 (__v4di)_mm256_setzero_si256());
4136 }
4137
4138
4139 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepu8_epi32(__m128i __W,__mmask8 __U,__m128i __A)4140 _mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A)
4141 {
4142 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4143 (__v4si)_mm_cvtepu8_epi32(__A),
4144 (__v4si)__W);
4145 }
4146
4147 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepu8_epi32(__mmask8 __U,__m128i __A)4148 _mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A)
4149 {
4150 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4151 (__v4si)_mm_cvtepu8_epi32(__A),
4152 (__v4si)_mm_setzero_si128());
4153 }
4154
4155 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepu8_epi32(__m256i __W,__mmask8 __U,__m128i __A)4156 _mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A)
4157 {
4158 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4159 (__v8si)_mm256_cvtepu8_epi32(__A),
4160 (__v8si)__W);
4161 }
4162
4163 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepu8_epi32(__mmask8 __U,__m128i __A)4164 _mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A)
4165 {
4166 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4167 (__v8si)_mm256_cvtepu8_epi32(__A),
4168 (__v8si)_mm256_setzero_si256());
4169 }
4170
4171 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepu8_epi64(__m128i __W,__mmask8 __U,__m128i __A)4172 _mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A)
4173 {
4174 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4175 (__v2di)_mm_cvtepu8_epi64(__A),
4176 (__v2di)__W);
4177 }
4178
4179 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)4180 _mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A)
4181 {
4182 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4183 (__v2di)_mm_cvtepu8_epi64(__A),
4184 (__v2di)_mm_setzero_si128());
4185 }
4186
4187 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepu8_epi64(__m256i __W,__mmask8 __U,__m128i __A)4188 _mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A)
4189 {
4190 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4191 (__v4di)_mm256_cvtepu8_epi64(__A),
4192 (__v4di)__W);
4193 }
4194
4195 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)4196 _mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
4197 {
4198 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4199 (__v4di)_mm256_cvtepu8_epi64(__A),
4200 (__v4di)_mm256_setzero_si256());
4201 }
4202
4203 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepu32_epi64(__m128i __W,__mmask8 __U,__m128i __X)4204 _mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X)
4205 {
4206 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4207 (__v2di)_mm_cvtepu32_epi64(__X),
4208 (__v2di)__W);
4209 }
4210
4211 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepu32_epi64(__mmask8 __U,__m128i __X)4212 _mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X)
4213 {
4214 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4215 (__v2di)_mm_cvtepu32_epi64(__X),
4216 (__v2di)_mm_setzero_si128());
4217 }
4218
4219 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepu32_epi64(__m256i __W,__mmask8 __U,__m128i __X)4220 _mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X)
4221 {
4222 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4223 (__v4di)_mm256_cvtepu32_epi64(__X),
4224 (__v4di)__W);
4225 }
4226
4227 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepu32_epi64(__mmask8 __U,__m128i __X)4228 _mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X)
4229 {
4230 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4231 (__v4di)_mm256_cvtepu32_epi64(__X),
4232 (__v4di)_mm256_setzero_si256());
4233 }
4234
4235 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepu16_epi32(__m128i __W,__mmask8 __U,__m128i __A)4236 _mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A)
4237 {
4238 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4239 (__v4si)_mm_cvtepu16_epi32(__A),
4240 (__v4si)__W);
4241 }
4242
4243 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepu16_epi32(__mmask8 __U,__m128i __A)4244 _mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A)
4245 {
4246 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4247 (__v4si)_mm_cvtepu16_epi32(__A),
4248 (__v4si)_mm_setzero_si128());
4249 }
4250
4251 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepu16_epi32(__m256i __W,__mmask8 __U,__m128i __A)4252 _mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A)
4253 {
4254 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4255 (__v8si)_mm256_cvtepu16_epi32(__A),
4256 (__v8si)__W);
4257 }
4258
4259 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepu16_epi32(__mmask8 __U,__m128i __A)4260 _mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A)
4261 {
4262 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4263 (__v8si)_mm256_cvtepu16_epi32(__A),
4264 (__v8si)_mm256_setzero_si256());
4265 }
4266
4267 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepu16_epi64(__m128i __W,__mmask8 __U,__m128i __A)4268 _mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A)
4269 {
4270 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4271 (__v2di)_mm_cvtepu16_epi64(__A),
4272 (__v2di)__W);
4273 }
4274
4275 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)4276 _mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
4277 {
4278 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4279 (__v2di)_mm_cvtepu16_epi64(__A),
4280 (__v2di)_mm_setzero_si128());
4281 }
4282
4283 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepu16_epi64(__m256i __W,__mmask8 __U,__m128i __A)4284 _mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A)
4285 {
4286 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4287 (__v4di)_mm256_cvtepu16_epi64(__A),
4288 (__v4di)__W);
4289 }
4290
4291 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)4292 _mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
4293 {
4294 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4295 (__v4di)_mm256_cvtepu16_epi64(__A),
4296 (__v4di)_mm256_setzero_si256());
4297 }
4298
4299
4300 #define _mm_rol_epi32(a, b) \
4301 (__m128i)__builtin_ia32_prold128((__v4si)(__m128i)(a), (int)(b))
4302
4303 #define _mm_mask_rol_epi32(w, u, a, b) \
4304 (__m128i)__builtin_ia32_selectd_128((__mmask8)(u), \
4305 (__v4si)_mm_rol_epi32((a), (b)), \
4306 (__v4si)(__m128i)(w))
4307
4308 #define _mm_maskz_rol_epi32(u, a, b) \
4309 (__m128i)__builtin_ia32_selectd_128((__mmask8)(u), \
4310 (__v4si)_mm_rol_epi32((a), (b)), \
4311 (__v4si)_mm_setzero_si128())
4312
4313 #define _mm256_rol_epi32(a, b) \
4314 (__m256i)__builtin_ia32_prold256((__v8si)(__m256i)(a), (int)(b))
4315
4316 #define _mm256_mask_rol_epi32(w, u, a, b) \
4317 (__m256i)__builtin_ia32_selectd_256((__mmask8)(u), \
4318 (__v8si)_mm256_rol_epi32((a), (b)), \
4319 (__v8si)(__m256i)(w))
4320
4321 #define _mm256_maskz_rol_epi32(u, a, b) \
4322 (__m256i)__builtin_ia32_selectd_256((__mmask8)(u), \
4323 (__v8si)_mm256_rol_epi32((a), (b)), \
4324 (__v8si)_mm256_setzero_si256())
4325
4326 #define _mm_rol_epi64(a, b) \
4327 (__m128i)__builtin_ia32_prolq128((__v2di)(__m128i)(a), (int)(b))
4328
4329 #define _mm_mask_rol_epi64(w, u, a, b) \
4330 (__m128i)__builtin_ia32_selectq_128((__mmask8)(u), \
4331 (__v2di)_mm_rol_epi64((a), (b)), \
4332 (__v2di)(__m128i)(w))
4333
4334 #define _mm_maskz_rol_epi64(u, a, b) \
4335 (__m128i)__builtin_ia32_selectq_128((__mmask8)(u), \
4336 (__v2di)_mm_rol_epi64((a), (b)), \
4337 (__v2di)_mm_setzero_si128())
4338
4339 #define _mm256_rol_epi64(a, b) \
4340 (__m256i)__builtin_ia32_prolq256((__v4di)(__m256i)(a), (int)(b))
4341
4342 #define _mm256_mask_rol_epi64(w, u, a, b) \
4343 (__m256i)__builtin_ia32_selectq_256((__mmask8)(u), \
4344 (__v4di)_mm256_rol_epi64((a), (b)), \
4345 (__v4di)(__m256i)(w))
4346
4347 #define _mm256_maskz_rol_epi64(u, a, b) \
4348 (__m256i)__builtin_ia32_selectq_256((__mmask8)(u), \
4349 (__v4di)_mm256_rol_epi64((a), (b)), \
4350 (__v4di)_mm256_setzero_si256())
4351
4352 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_rolv_epi32(__m128i __A,__m128i __B)4353 _mm_rolv_epi32 (__m128i __A, __m128i __B)
4354 {
4355 return (__m128i)__builtin_ia32_prolvd128((__v4si)__A, (__v4si)__B);
4356 }
4357
4358 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_rolv_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)4359 _mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
4360 {
4361 return (__m128i)__builtin_ia32_selectd_128(__U,
4362 (__v4si)_mm_rolv_epi32(__A, __B),
4363 (__v4si)__W);
4364 }
4365
4366 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_rolv_epi32(__mmask8 __U,__m128i __A,__m128i __B)4367 _mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
4368 {
4369 return (__m128i)__builtin_ia32_selectd_128(__U,
4370 (__v4si)_mm_rolv_epi32(__A, __B),
4371 (__v4si)_mm_setzero_si128());
4372 }
4373
4374 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_rolv_epi32(__m256i __A,__m256i __B)4375 _mm256_rolv_epi32 (__m256i __A, __m256i __B)
4376 {
4377 return (__m256i)__builtin_ia32_prolvd256((__v8si)__A, (__v8si)__B);
4378 }
4379
4380 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_rolv_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)4381 _mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
4382 {
4383 return (__m256i)__builtin_ia32_selectd_256(__U,
4384 (__v8si)_mm256_rolv_epi32(__A, __B),
4385 (__v8si)__W);
4386 }
4387
4388 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_rolv_epi32(__mmask8 __U,__m256i __A,__m256i __B)4389 _mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
4390 {
4391 return (__m256i)__builtin_ia32_selectd_256(__U,
4392 (__v8si)_mm256_rolv_epi32(__A, __B),
4393 (__v8si)_mm256_setzero_si256());
4394 }
4395
4396 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_rolv_epi64(__m128i __A,__m128i __B)4397 _mm_rolv_epi64 (__m128i __A, __m128i __B)
4398 {
4399 return (__m128i)__builtin_ia32_prolvq128((__v2di)__A, (__v2di)__B);
4400 }
4401
4402 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_rolv_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)4403 _mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
4404 {
4405 return (__m128i)__builtin_ia32_selectq_128(__U,
4406 (__v2di)_mm_rolv_epi64(__A, __B),
4407 (__v2di)__W);
4408 }
4409
4410 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_rolv_epi64(__mmask8 __U,__m128i __A,__m128i __B)4411 _mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
4412 {
4413 return (__m128i)__builtin_ia32_selectq_128(__U,
4414 (__v2di)_mm_rolv_epi64(__A, __B),
4415 (__v2di)_mm_setzero_si128());
4416 }
4417
4418 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_rolv_epi64(__m256i __A,__m256i __B)4419 _mm256_rolv_epi64 (__m256i __A, __m256i __B)
4420 {
4421 return (__m256i)__builtin_ia32_prolvq256((__v4di)__A, (__v4di)__B);
4422 }
4423
4424 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_rolv_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)4425 _mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
4426 {
4427 return (__m256i)__builtin_ia32_selectq_256(__U,
4428 (__v4di)_mm256_rolv_epi64(__A, __B),
4429 (__v4di)__W);
4430 }
4431
4432 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_rolv_epi64(__mmask8 __U,__m256i __A,__m256i __B)4433 _mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
4434 {
4435 return (__m256i)__builtin_ia32_selectq_256(__U,
4436 (__v4di)_mm256_rolv_epi64(__A, __B),
4437 (__v4di)_mm256_setzero_si256());
4438 }
4439
4440 #define _mm_ror_epi32(a, b) \
4441 (__m128i)__builtin_ia32_prord128((__v4si)(__m128i)(a), (int)(b))
4442
4443 #define _mm_mask_ror_epi32(w, u, a, b) \
4444 (__m128i)__builtin_ia32_selectd_128((__mmask8)(u), \
4445 (__v4si)_mm_ror_epi32((a), (b)), \
4446 (__v4si)(__m128i)(w))
4447
4448 #define _mm_maskz_ror_epi32(u, a, b) \
4449 (__m128i)__builtin_ia32_selectd_128((__mmask8)(u), \
4450 (__v4si)_mm_ror_epi32((a), (b)), \
4451 (__v4si)_mm_setzero_si128())
4452
4453 #define _mm256_ror_epi32(a, b) \
4454 (__m256i)__builtin_ia32_prord256((__v8si)(__m256i)(a), (int)(b))
4455
4456 #define _mm256_mask_ror_epi32(w, u, a, b) \
4457 (__m256i)__builtin_ia32_selectd_256((__mmask8)(u), \
4458 (__v8si)_mm256_ror_epi32((a), (b)), \
4459 (__v8si)(__m256i)(w))
4460
4461 #define _mm256_maskz_ror_epi32(u, a, b) \
4462 (__m256i)__builtin_ia32_selectd_256((__mmask8)(u), \
4463 (__v8si)_mm256_ror_epi32((a), (b)), \
4464 (__v8si)_mm256_setzero_si256())
4465
4466 #define _mm_ror_epi64(a, b) \
4467 (__m128i)__builtin_ia32_prorq128((__v2di)(__m128i)(a), (int)(b))
4468
4469 #define _mm_mask_ror_epi64(w, u, a, b) \
4470 (__m128i)__builtin_ia32_selectq_128((__mmask8)(u), \
4471 (__v2di)_mm_ror_epi64((a), (b)), \
4472 (__v2di)(__m128i)(w))
4473
4474 #define _mm_maskz_ror_epi64(u, a, b) \
4475 (__m128i)__builtin_ia32_selectq_128((__mmask8)(u), \
4476 (__v2di)_mm_ror_epi64((a), (b)), \
4477 (__v2di)_mm_setzero_si128())
4478
4479 #define _mm256_ror_epi64(a, b) \
4480 (__m256i)__builtin_ia32_prorq256((__v4di)(__m256i)(a), (int)(b))
4481
4482 #define _mm256_mask_ror_epi64(w, u, a, b) \
4483 (__m256i)__builtin_ia32_selectq_256((__mmask8)(u), \
4484 (__v4di)_mm256_ror_epi64((a), (b)), \
4485 (__v4di)(__m256i)(w))
4486
4487 #define _mm256_maskz_ror_epi64(u, a, b) \
4488 (__m256i)__builtin_ia32_selectq_256((__mmask8)(u), \
4489 (__v4di)_mm256_ror_epi64((a), (b)), \
4490 (__v4di)_mm256_setzero_si256())
4491
4492 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_sll_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)4493 _mm_mask_sll_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
4494 {
4495 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4496 (__v4si)_mm_sll_epi32(__A, __B),
4497 (__v4si)__W);
4498 }
4499
4500 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_sll_epi32(__mmask8 __U,__m128i __A,__m128i __B)4501 _mm_maskz_sll_epi32(__mmask8 __U, __m128i __A, __m128i __B)
4502 {
4503 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4504 (__v4si)_mm_sll_epi32(__A, __B),
4505 (__v4si)_mm_setzero_si128());
4506 }
4507
4508 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_sll_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)4509 _mm256_mask_sll_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
4510 {
4511 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4512 (__v8si)_mm256_sll_epi32(__A, __B),
4513 (__v8si)__W);
4514 }
4515
4516 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_sll_epi32(__mmask8 __U,__m256i __A,__m128i __B)4517 _mm256_maskz_sll_epi32(__mmask8 __U, __m256i __A, __m128i __B)
4518 {
4519 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4520 (__v8si)_mm256_sll_epi32(__A, __B),
4521 (__v8si)_mm256_setzero_si256());
4522 }
4523
4524 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_slli_epi32(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)4525 _mm_mask_slli_epi32(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B)
4526 {
4527 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4528 (__v4si)_mm_slli_epi32(__A, __B),
4529 (__v4si)__W);
4530 }
4531
4532 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_slli_epi32(__mmask8 __U,__m128i __A,unsigned int __B)4533 _mm_maskz_slli_epi32(__mmask8 __U, __m128i __A, unsigned int __B)
4534 {
4535 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4536 (__v4si)_mm_slli_epi32(__A, __B),
4537 (__v4si)_mm_setzero_si128());
4538 }
4539
4540 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_slli_epi32(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)4541 _mm256_mask_slli_epi32(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B)
4542 {
4543 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4544 (__v8si)_mm256_slli_epi32(__A, __B),
4545 (__v8si)__W);
4546 }
4547
4548 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_slli_epi32(__mmask8 __U,__m256i __A,unsigned int __B)4549 _mm256_maskz_slli_epi32(__mmask8 __U, __m256i __A, unsigned int __B)
4550 {
4551 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4552 (__v8si)_mm256_slli_epi32(__A, __B),
4553 (__v8si)_mm256_setzero_si256());
4554 }
4555
4556 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_sll_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)4557 _mm_mask_sll_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
4558 {
4559 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4560 (__v2di)_mm_sll_epi64(__A, __B),
4561 (__v2di)__W);
4562 }
4563
4564 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_sll_epi64(__mmask8 __U,__m128i __A,__m128i __B)4565 _mm_maskz_sll_epi64(__mmask8 __U, __m128i __A, __m128i __B)
4566 {
4567 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4568 (__v2di)_mm_sll_epi64(__A, __B),
4569 (__v2di)_mm_setzero_si128());
4570 }
4571
4572 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_sll_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)4573 _mm256_mask_sll_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
4574 {
4575 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4576 (__v4di)_mm256_sll_epi64(__A, __B),
4577 (__v4di)__W);
4578 }
4579
4580 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_sll_epi64(__mmask8 __U,__m256i __A,__m128i __B)4581 _mm256_maskz_sll_epi64(__mmask8 __U, __m256i __A, __m128i __B)
4582 {
4583 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4584 (__v4di)_mm256_sll_epi64(__A, __B),
4585 (__v4di)_mm256_setzero_si256());
4586 }
4587
4588 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_slli_epi64(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)4589 _mm_mask_slli_epi64(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B)
4590 {
4591 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4592 (__v2di)_mm_slli_epi64(__A, __B),
4593 (__v2di)__W);
4594 }
4595
4596 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_slli_epi64(__mmask8 __U,__m128i __A,unsigned int __B)4597 _mm_maskz_slli_epi64(__mmask8 __U, __m128i __A, unsigned int __B)
4598 {
4599 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4600 (__v2di)_mm_slli_epi64(__A, __B),
4601 (__v2di)_mm_setzero_si128());
4602 }
4603
4604 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_slli_epi64(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)4605 _mm256_mask_slli_epi64(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B)
4606 {
4607 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4608 (__v4di)_mm256_slli_epi64(__A, __B),
4609 (__v4di)__W);
4610 }
4611
4612 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_slli_epi64(__mmask8 __U,__m256i __A,unsigned int __B)4613 _mm256_maskz_slli_epi64(__mmask8 __U, __m256i __A, unsigned int __B)
4614 {
4615 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4616 (__v4di)_mm256_slli_epi64(__A, __B),
4617 (__v4di)_mm256_setzero_si256());
4618 }
4619
4620 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_rorv_epi32(__m128i __A,__m128i __B)4621 _mm_rorv_epi32 (__m128i __A, __m128i __B)
4622 {
4623 return (__m128i)__builtin_ia32_prorvd128((__v4si)__A, (__v4si)__B);
4624 }
4625
4626 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_rorv_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)4627 _mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
4628 {
4629 return (__m128i)__builtin_ia32_selectd_128(__U,
4630 (__v4si)_mm_rorv_epi32(__A, __B),
4631 (__v4si)__W);
4632 }
4633
4634 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_rorv_epi32(__mmask8 __U,__m128i __A,__m128i __B)4635 _mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
4636 {
4637 return (__m128i)__builtin_ia32_selectd_128(__U,
4638 (__v4si)_mm_rorv_epi32(__A, __B),
4639 (__v4si)_mm_setzero_si128());
4640 }
4641
4642 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_rorv_epi32(__m256i __A,__m256i __B)4643 _mm256_rorv_epi32 (__m256i __A, __m256i __B)
4644 {
4645 return (__m256i)__builtin_ia32_prorvd256((__v8si)__A, (__v8si)__B);
4646 }
4647
4648 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_rorv_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)4649 _mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
4650 {
4651 return (__m256i)__builtin_ia32_selectd_256(__U,
4652 (__v8si)_mm256_rorv_epi32(__A, __B),
4653 (__v8si)__W);
4654 }
4655
4656 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_rorv_epi32(__mmask8 __U,__m256i __A,__m256i __B)4657 _mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
4658 {
4659 return (__m256i)__builtin_ia32_selectd_256(__U,
4660 (__v8si)_mm256_rorv_epi32(__A, __B),
4661 (__v8si)_mm256_setzero_si256());
4662 }
4663
4664 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_rorv_epi64(__m128i __A,__m128i __B)4665 _mm_rorv_epi64 (__m128i __A, __m128i __B)
4666 {
4667 return (__m128i)__builtin_ia32_prorvq128((__v2di)__A, (__v2di)__B);
4668 }
4669
4670 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_rorv_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)4671 _mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
4672 {
4673 return (__m128i)__builtin_ia32_selectq_128(__U,
4674 (__v2di)_mm_rorv_epi64(__A, __B),
4675 (__v2di)__W);
4676 }
4677
4678 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_rorv_epi64(__mmask8 __U,__m128i __A,__m128i __B)4679 _mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
4680 {
4681 return (__m128i)__builtin_ia32_selectq_128(__U,
4682 (__v2di)_mm_rorv_epi64(__A, __B),
4683 (__v2di)_mm_setzero_si128());
4684 }
4685
4686 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_rorv_epi64(__m256i __A,__m256i __B)4687 _mm256_rorv_epi64 (__m256i __A, __m256i __B)
4688 {
4689 return (__m256i)__builtin_ia32_prorvq256((__v4di)__A, (__v4di)__B);
4690 }
4691
4692 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_rorv_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)4693 _mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
4694 {
4695 return (__m256i)__builtin_ia32_selectq_256(__U,
4696 (__v4di)_mm256_rorv_epi64(__A, __B),
4697 (__v4di)__W);
4698 }
4699
4700 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_rorv_epi64(__mmask8 __U,__m256i __A,__m256i __B)4701 _mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
4702 {
4703 return (__m256i)__builtin_ia32_selectq_256(__U,
4704 (__v4di)_mm256_rorv_epi64(__A, __B),
4705 (__v4di)_mm256_setzero_si256());
4706 }
4707
4708 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_sllv_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)4709 _mm_mask_sllv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
4710 {
4711 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4712 (__v2di)_mm_sllv_epi64(__X, __Y),
4713 (__v2di)__W);
4714 }
4715
4716 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_sllv_epi64(__mmask8 __U,__m128i __X,__m128i __Y)4717 _mm_maskz_sllv_epi64(__mmask8 __U, __m128i __X, __m128i __Y)
4718 {
4719 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4720 (__v2di)_mm_sllv_epi64(__X, __Y),
4721 (__v2di)_mm_setzero_si128());
4722 }
4723
4724 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_sllv_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)4725 _mm256_mask_sllv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
4726 {
4727 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4728 (__v4di)_mm256_sllv_epi64(__X, __Y),
4729 (__v4di)__W);
4730 }
4731
4732 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_sllv_epi64(__mmask8 __U,__m256i __X,__m256i __Y)4733 _mm256_maskz_sllv_epi64(__mmask8 __U, __m256i __X, __m256i __Y)
4734 {
4735 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4736 (__v4di)_mm256_sllv_epi64(__X, __Y),
4737 (__v4di)_mm256_setzero_si256());
4738 }
4739
4740 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_sllv_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)4741 _mm_mask_sllv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
4742 {
4743 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4744 (__v4si)_mm_sllv_epi32(__X, __Y),
4745 (__v4si)__W);
4746 }
4747
4748 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_sllv_epi32(__mmask8 __U,__m128i __X,__m128i __Y)4749 _mm_maskz_sllv_epi32(__mmask8 __U, __m128i __X, __m128i __Y)
4750 {
4751 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4752 (__v4si)_mm_sllv_epi32(__X, __Y),
4753 (__v4si)_mm_setzero_si128());
4754 }
4755
4756 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_sllv_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)4757 _mm256_mask_sllv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
4758 {
4759 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4760 (__v8si)_mm256_sllv_epi32(__X, __Y),
4761 (__v8si)__W);
4762 }
4763
4764 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_sllv_epi32(__mmask8 __U,__m256i __X,__m256i __Y)4765 _mm256_maskz_sllv_epi32(__mmask8 __U, __m256i __X, __m256i __Y)
4766 {
4767 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4768 (__v8si)_mm256_sllv_epi32(__X, __Y),
4769 (__v8si)_mm256_setzero_si256());
4770 }
4771
4772 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_srlv_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)4773 _mm_mask_srlv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
4774 {
4775 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4776 (__v2di)_mm_srlv_epi64(__X, __Y),
4777 (__v2di)__W);
4778 }
4779
4780 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_srlv_epi64(__mmask8 __U,__m128i __X,__m128i __Y)4781 _mm_maskz_srlv_epi64(__mmask8 __U, __m128i __X, __m128i __Y)
4782 {
4783 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4784 (__v2di)_mm_srlv_epi64(__X, __Y),
4785 (__v2di)_mm_setzero_si128());
4786 }
4787
4788 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_srlv_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)4789 _mm256_mask_srlv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
4790 {
4791 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4792 (__v4di)_mm256_srlv_epi64(__X, __Y),
4793 (__v4di)__W);
4794 }
4795
4796 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_srlv_epi64(__mmask8 __U,__m256i __X,__m256i __Y)4797 _mm256_maskz_srlv_epi64(__mmask8 __U, __m256i __X, __m256i __Y)
4798 {
4799 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4800 (__v4di)_mm256_srlv_epi64(__X, __Y),
4801 (__v4di)_mm256_setzero_si256());
4802 }
4803
4804 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_srlv_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)4805 _mm_mask_srlv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
4806 {
4807 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4808 (__v4si)_mm_srlv_epi32(__X, __Y),
4809 (__v4si)__W);
4810 }
4811
4812 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_srlv_epi32(__mmask8 __U,__m128i __X,__m128i __Y)4813 _mm_maskz_srlv_epi32(__mmask8 __U, __m128i __X, __m128i __Y)
4814 {
4815 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4816 (__v4si)_mm_srlv_epi32(__X, __Y),
4817 (__v4si)_mm_setzero_si128());
4818 }
4819
4820 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_srlv_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)4821 _mm256_mask_srlv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
4822 {
4823 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4824 (__v8si)_mm256_srlv_epi32(__X, __Y),
4825 (__v8si)__W);
4826 }
4827
4828 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_srlv_epi32(__mmask8 __U,__m256i __X,__m256i __Y)4829 _mm256_maskz_srlv_epi32(__mmask8 __U, __m256i __X, __m256i __Y)
4830 {
4831 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4832 (__v8si)_mm256_srlv_epi32(__X, __Y),
4833 (__v8si)_mm256_setzero_si256());
4834 }
4835
4836 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_srl_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)4837 _mm_mask_srl_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
4838 {
4839 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4840 (__v4si)_mm_srl_epi32(__A, __B),
4841 (__v4si)__W);
4842 }
4843
4844 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_srl_epi32(__mmask8 __U,__m128i __A,__m128i __B)4845 _mm_maskz_srl_epi32(__mmask8 __U, __m128i __A, __m128i __B)
4846 {
4847 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4848 (__v4si)_mm_srl_epi32(__A, __B),
4849 (__v4si)_mm_setzero_si128());
4850 }
4851
4852 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_srl_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)4853 _mm256_mask_srl_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
4854 {
4855 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4856 (__v8si)_mm256_srl_epi32(__A, __B),
4857 (__v8si)__W);
4858 }
4859
4860 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_srl_epi32(__mmask8 __U,__m256i __A,__m128i __B)4861 _mm256_maskz_srl_epi32(__mmask8 __U, __m256i __A, __m128i __B)
4862 {
4863 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4864 (__v8si)_mm256_srl_epi32(__A, __B),
4865 (__v8si)_mm256_setzero_si256());
4866 }
4867
4868 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_srli_epi32(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)4869 _mm_mask_srli_epi32(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B)
4870 {
4871 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4872 (__v4si)_mm_srli_epi32(__A, __B),
4873 (__v4si)__W);
4874 }
4875
4876 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_srli_epi32(__mmask8 __U,__m128i __A,unsigned int __B)4877 _mm_maskz_srli_epi32(__mmask8 __U, __m128i __A, unsigned int __B)
4878 {
4879 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4880 (__v4si)_mm_srli_epi32(__A, __B),
4881 (__v4si)_mm_setzero_si128());
4882 }
4883
4884 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_srli_epi32(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)4885 _mm256_mask_srli_epi32(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B)
4886 {
4887 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4888 (__v8si)_mm256_srli_epi32(__A, __B),
4889 (__v8si)__W);
4890 }
4891
4892 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_srli_epi32(__mmask8 __U,__m256i __A,unsigned int __B)4893 _mm256_maskz_srli_epi32(__mmask8 __U, __m256i __A, unsigned int __B)
4894 {
4895 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4896 (__v8si)_mm256_srli_epi32(__A, __B),
4897 (__v8si)_mm256_setzero_si256());
4898 }
4899
4900 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_srl_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)4901 _mm_mask_srl_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
4902 {
4903 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4904 (__v2di)_mm_srl_epi64(__A, __B),
4905 (__v2di)__W);
4906 }
4907
4908 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_srl_epi64(__mmask8 __U,__m128i __A,__m128i __B)4909 _mm_maskz_srl_epi64(__mmask8 __U, __m128i __A, __m128i __B)
4910 {
4911 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4912 (__v2di)_mm_srl_epi64(__A, __B),
4913 (__v2di)_mm_setzero_si128());
4914 }
4915
4916 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_srl_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)4917 _mm256_mask_srl_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
4918 {
4919 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4920 (__v4di)_mm256_srl_epi64(__A, __B),
4921 (__v4di)__W);
4922 }
4923
4924 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_srl_epi64(__mmask8 __U,__m256i __A,__m128i __B)4925 _mm256_maskz_srl_epi64(__mmask8 __U, __m256i __A, __m128i __B)
4926 {
4927 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4928 (__v4di)_mm256_srl_epi64(__A, __B),
4929 (__v4di)_mm256_setzero_si256());
4930 }
4931
4932 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_srli_epi64(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)4933 _mm_mask_srli_epi64(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B)
4934 {
4935 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4936 (__v2di)_mm_srli_epi64(__A, __B),
4937 (__v2di)__W);
4938 }
4939
4940 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_srli_epi64(__mmask8 __U,__m128i __A,unsigned int __B)4941 _mm_maskz_srli_epi64(__mmask8 __U, __m128i __A, unsigned int __B)
4942 {
4943 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4944 (__v2di)_mm_srli_epi64(__A, __B),
4945 (__v2di)_mm_setzero_si128());
4946 }
4947
4948 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_srli_epi64(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)4949 _mm256_mask_srli_epi64(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B)
4950 {
4951 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4952 (__v4di)_mm256_srli_epi64(__A, __B),
4953 (__v4di)__W);
4954 }
4955
4956 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_srli_epi64(__mmask8 __U,__m256i __A,unsigned int __B)4957 _mm256_maskz_srli_epi64(__mmask8 __U, __m256i __A, unsigned int __B)
4958 {
4959 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4960 (__v4di)_mm256_srli_epi64(__A, __B),
4961 (__v4di)_mm256_setzero_si256());
4962 }
4963
4964 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_srav_epi32(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)4965 _mm_mask_srav_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
4966 {
4967 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4968 (__v4si)_mm_srav_epi32(__X, __Y),
4969 (__v4si)__W);
4970 }
4971
4972 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_srav_epi32(__mmask8 __U,__m128i __X,__m128i __Y)4973 _mm_maskz_srav_epi32(__mmask8 __U, __m128i __X, __m128i __Y)
4974 {
4975 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4976 (__v4si)_mm_srav_epi32(__X, __Y),
4977 (__v4si)_mm_setzero_si128());
4978 }
4979
4980 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_srav_epi32(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)4981 _mm256_mask_srav_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
4982 {
4983 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4984 (__v8si)_mm256_srav_epi32(__X, __Y),
4985 (__v8si)__W);
4986 }
4987
4988 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_srav_epi32(__mmask8 __U,__m256i __X,__m256i __Y)4989 _mm256_maskz_srav_epi32(__mmask8 __U, __m256i __X, __m256i __Y)
4990 {
4991 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4992 (__v8si)_mm256_srav_epi32(__X, __Y),
4993 (__v8si)_mm256_setzero_si256());
4994 }
4995
4996 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_srav_epi64(__m128i __X,__m128i __Y)4997 _mm_srav_epi64(__m128i __X, __m128i __Y)
4998 {
4999 return (__m128i)__builtin_ia32_psravq128((__v2di)__X, (__v2di)__Y);
5000 }
5001
5002 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_srav_epi64(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)5003 _mm_mask_srav_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
5004 {
5005 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5006 (__v2di)_mm_srav_epi64(__X, __Y),
5007 (__v2di)__W);
5008 }
5009
5010 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_srav_epi64(__mmask8 __U,__m128i __X,__m128i __Y)5011 _mm_maskz_srav_epi64(__mmask8 __U, __m128i __X, __m128i __Y)
5012 {
5013 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5014 (__v2di)_mm_srav_epi64(__X, __Y),
5015 (__v2di)_mm_setzero_si128());
5016 }
5017
5018 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_srav_epi64(__m256i __X,__m256i __Y)5019 _mm256_srav_epi64(__m256i __X, __m256i __Y)
5020 {
5021 return (__m256i)__builtin_ia32_psravq256((__v4di)__X, (__v4di) __Y);
5022 }
5023
5024 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_srav_epi64(__m256i __W,__mmask8 __U,__m256i __X,__m256i __Y)5025 _mm256_mask_srav_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
5026 {
5027 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5028 (__v4di)_mm256_srav_epi64(__X, __Y),
5029 (__v4di)__W);
5030 }
5031
5032 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_srav_epi64(__mmask8 __U,__m256i __X,__m256i __Y)5033 _mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5034 {
5035 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5036 (__v4di)_mm256_srav_epi64(__X, __Y),
5037 (__v4di)_mm256_setzero_si256());
5038 }
5039
5040 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_mov_epi32(__m128i __W,__mmask8 __U,__m128i __A)5041 _mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
5042 {
5043 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5044 (__v4si) __A,
5045 (__v4si) __W);
5046 }
5047
5048 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_mov_epi32(__mmask8 __U,__m128i __A)5049 _mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A)
5050 {
5051 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5052 (__v4si) __A,
5053 (__v4si) _mm_setzero_si128 ());
5054 }
5055
5056
5057 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_mov_epi32(__m256i __W,__mmask8 __U,__m256i __A)5058 _mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
5059 {
5060 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5061 (__v8si) __A,
5062 (__v8si) __W);
5063 }
5064
5065 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_mov_epi32(__mmask8 __U,__m256i __A)5066 _mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A)
5067 {
5068 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5069 (__v8si) __A,
5070 (__v8si) _mm256_setzero_si256 ());
5071 }
5072
5073 static __inline __m128i __DEFAULT_FN_ATTRS128
_mm_load_epi32(void const * __P)5074 _mm_load_epi32 (void const *__P)
5075 {
5076 return *(const __m128i *) __P;
5077 }
5078
5079 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_load_epi32(__m128i __W,__mmask8 __U,void const * __P)5080 _mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P)
5081 {
5082 return (__m128i) __builtin_ia32_movdqa32load128_mask ((const __v4si *) __P,
5083 (__v4si) __W,
5084 (__mmask8)
5085 __U);
5086 }
5087
5088 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_load_epi32(__mmask8 __U,void const * __P)5089 _mm_maskz_load_epi32 (__mmask8 __U, void const *__P)
5090 {
5091 return (__m128i) __builtin_ia32_movdqa32load128_mask ((const __v4si *) __P,
5092 (__v4si)
5093 _mm_setzero_si128 (),
5094 (__mmask8)
5095 __U);
5096 }
5097
5098 static __inline __m256i __DEFAULT_FN_ATTRS256
_mm256_load_epi32(void const * __P)5099 _mm256_load_epi32 (void const *__P)
5100 {
5101 return *(const __m256i *) __P;
5102 }
5103
5104 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_load_epi32(__m256i __W,__mmask8 __U,void const * __P)5105 _mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P)
5106 {
5107 return (__m256i) __builtin_ia32_movdqa32load256_mask ((const __v8si *) __P,
5108 (__v8si) __W,
5109 (__mmask8)
5110 __U);
5111 }
5112
5113 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_load_epi32(__mmask8 __U,void const * __P)5114 _mm256_maskz_load_epi32 (__mmask8 __U, void const *__P)
5115 {
5116 return (__m256i) __builtin_ia32_movdqa32load256_mask ((const __v8si *) __P,
5117 (__v8si)
5118 _mm256_setzero_si256 (),
5119 (__mmask8)
5120 __U);
5121 }
5122
5123 static __inline void __DEFAULT_FN_ATTRS128
_mm_store_epi32(void * __P,__m128i __A)5124 _mm_store_epi32 (void *__P, __m128i __A)
5125 {
5126 *(__m128i *) __P = __A;
5127 }
5128
5129 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_store_epi32(void * __P,__mmask8 __U,__m128i __A)5130 _mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
5131 {
5132 __builtin_ia32_movdqa32store128_mask ((__v4si *) __P,
5133 (__v4si) __A,
5134 (__mmask8) __U);
5135 }
5136
5137 static __inline void __DEFAULT_FN_ATTRS256
_mm256_store_epi32(void * __P,__m256i __A)5138 _mm256_store_epi32 (void *__P, __m256i __A)
5139 {
5140 *(__m256i *) __P = __A;
5141 }
5142
5143 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_store_epi32(void * __P,__mmask8 __U,__m256i __A)5144 _mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A)
5145 {
5146 __builtin_ia32_movdqa32store256_mask ((__v8si *) __P,
5147 (__v8si) __A,
5148 (__mmask8) __U);
5149 }
5150
5151 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_mov_epi64(__m128i __W,__mmask8 __U,__m128i __A)5152 _mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
5153 {
5154 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5155 (__v2di) __A,
5156 (__v2di) __W);
5157 }
5158
5159 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_mov_epi64(__mmask8 __U,__m128i __A)5160 _mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A)
5161 {
5162 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5163 (__v2di) __A,
5164 (__v2di) _mm_setzero_si128 ());
5165 }
5166
5167 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_mov_epi64(__m256i __W,__mmask8 __U,__m256i __A)5168 _mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
5169 {
5170 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5171 (__v4di) __A,
5172 (__v4di) __W);
5173 }
5174
5175 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_mov_epi64(__mmask8 __U,__m256i __A)5176 _mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A)
5177 {
5178 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5179 (__v4di) __A,
5180 (__v4di) _mm256_setzero_si256 ());
5181 }
5182
5183 static __inline __m128i __DEFAULT_FN_ATTRS128
_mm_load_epi64(void const * __P)5184 _mm_load_epi64 (void const *__P)
5185 {
5186 return *(const __m128i *) __P;
5187 }
5188
5189 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_load_epi64(__m128i __W,__mmask8 __U,void const * __P)5190 _mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P)
5191 {
5192 return (__m128i) __builtin_ia32_movdqa64load128_mask ((const __v2di *) __P,
5193 (__v2di) __W,
5194 (__mmask8)
5195 __U);
5196 }
5197
5198 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_load_epi64(__mmask8 __U,void const * __P)5199 _mm_maskz_load_epi64 (__mmask8 __U, void const *__P)
5200 {
5201 return (__m128i) __builtin_ia32_movdqa64load128_mask ((const __v2di *) __P,
5202 (__v2di)
5203 _mm_setzero_si128 (),
5204 (__mmask8)
5205 __U);
5206 }
5207
5208 static __inline __m256i __DEFAULT_FN_ATTRS256
_mm256_load_epi64(void const * __P)5209 _mm256_load_epi64 (void const *__P)
5210 {
5211 return *(const __m256i *) __P;
5212 }
5213
5214 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_load_epi64(__m256i __W,__mmask8 __U,void const * __P)5215 _mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P)
5216 {
5217 return (__m256i) __builtin_ia32_movdqa64load256_mask ((const __v4di *) __P,
5218 (__v4di) __W,
5219 (__mmask8)
5220 __U);
5221 }
5222
5223 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_load_epi64(__mmask8 __U,void const * __P)5224 _mm256_maskz_load_epi64 (__mmask8 __U, void const *__P)
5225 {
5226 return (__m256i) __builtin_ia32_movdqa64load256_mask ((const __v4di *) __P,
5227 (__v4di)
5228 _mm256_setzero_si256 (),
5229 (__mmask8)
5230 __U);
5231 }
5232
5233 static __inline void __DEFAULT_FN_ATTRS128
_mm_store_epi64(void * __P,__m128i __A)5234 _mm_store_epi64 (void *__P, __m128i __A)
5235 {
5236 *(__m128i *) __P = __A;
5237 }
5238
5239 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_store_epi64(void * __P,__mmask8 __U,__m128i __A)5240 _mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
5241 {
5242 __builtin_ia32_movdqa64store128_mask ((__v2di *) __P,
5243 (__v2di) __A,
5244 (__mmask8) __U);
5245 }
5246
5247 static __inline void __DEFAULT_FN_ATTRS256
_mm256_store_epi64(void * __P,__m256i __A)5248 _mm256_store_epi64 (void *__P, __m256i __A)
5249 {
5250 *(__m256i *) __P = __A;
5251 }
5252
5253 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_store_epi64(void * __P,__mmask8 __U,__m256i __A)5254 _mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A)
5255 {
5256 __builtin_ia32_movdqa64store256_mask ((__v4di *) __P,
5257 (__v4di) __A,
5258 (__mmask8) __U);
5259 }
5260
5261 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_movedup_pd(__m128d __W,__mmask8 __U,__m128d __A)5262 _mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A)
5263 {
5264 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5265 (__v2df)_mm_movedup_pd(__A),
5266 (__v2df)__W);
5267 }
5268
5269 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_movedup_pd(__mmask8 __U,__m128d __A)5270 _mm_maskz_movedup_pd (__mmask8 __U, __m128d __A)
5271 {
5272 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5273 (__v2df)_mm_movedup_pd(__A),
5274 (__v2df)_mm_setzero_pd());
5275 }
5276
5277 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_movedup_pd(__m256d __W,__mmask8 __U,__m256d __A)5278 _mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A)
5279 {
5280 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5281 (__v4df)_mm256_movedup_pd(__A),
5282 (__v4df)__W);
5283 }
5284
5285 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_movedup_pd(__mmask8 __U,__m256d __A)5286 _mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A)
5287 {
5288 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5289 (__v4df)_mm256_movedup_pd(__A),
5290 (__v4df)_mm256_setzero_pd());
5291 }
5292
5293 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_set1_epi32(__m128i __O,__mmask8 __M,int __A)5294 _mm_mask_set1_epi32(__m128i __O, __mmask8 __M, int __A)
5295 {
5296 return (__m128i)__builtin_ia32_selectd_128(__M,
5297 (__v4si) _mm_set1_epi32(__A),
5298 (__v4si)__O);
5299 }
5300
5301 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_set1_epi32(__mmask8 __M,int __A)5302 _mm_maskz_set1_epi32( __mmask8 __M, int __A)
5303 {
5304 return (__m128i)__builtin_ia32_selectd_128(__M,
5305 (__v4si) _mm_set1_epi32(__A),
5306 (__v4si)_mm_setzero_si128());
5307 }
5308
5309 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_set1_epi32(__m256i __O,__mmask8 __M,int __A)5310 _mm256_mask_set1_epi32(__m256i __O, __mmask8 __M, int __A)
5311 {
5312 return (__m256i)__builtin_ia32_selectd_256(__M,
5313 (__v8si) _mm256_set1_epi32(__A),
5314 (__v8si)__O);
5315 }
5316
5317 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_set1_epi32(__mmask8 __M,int __A)5318 _mm256_maskz_set1_epi32( __mmask8 __M, int __A)
5319 {
5320 return (__m256i)__builtin_ia32_selectd_256(__M,
5321 (__v8si) _mm256_set1_epi32(__A),
5322 (__v8si)_mm256_setzero_si256());
5323 }
5324
5325
5326 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_set1_epi64(__m128i __O,__mmask8 __M,long long __A)5327 _mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A)
5328 {
5329 return (__m128i) __builtin_ia32_selectq_128(__M,
5330 (__v2di) _mm_set1_epi64x(__A),
5331 (__v2di) __O);
5332 }
5333
5334 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_set1_epi64(__mmask8 __M,long long __A)5335 _mm_maskz_set1_epi64 (__mmask8 __M, long long __A)
5336 {
5337 return (__m128i) __builtin_ia32_selectq_128(__M,
5338 (__v2di) _mm_set1_epi64x(__A),
5339 (__v2di) _mm_setzero_si128());
5340 }
5341
5342 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_set1_epi64(__m256i __O,__mmask8 __M,long long __A)5343 _mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A)
5344 {
5345 return (__m256i) __builtin_ia32_selectq_256(__M,
5346 (__v4di) _mm256_set1_epi64x(__A),
5347 (__v4di) __O) ;
5348 }
5349
5350 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_set1_epi64(__mmask8 __M,long long __A)5351 _mm256_maskz_set1_epi64 (__mmask8 __M, long long __A)
5352 {
5353 return (__m256i) __builtin_ia32_selectq_256(__M,
5354 (__v4di) _mm256_set1_epi64x(__A),
5355 (__v4di) _mm256_setzero_si256());
5356 }
5357
5358 #define _mm_fixupimm_pd(A, B, C, imm) \
5359 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
5360 (__v2df)(__m128d)(B), \
5361 (__v2di)(__m128i)(C), (int)(imm), \
5362 (__mmask8)-1)
5363
5364 #define _mm_mask_fixupimm_pd(A, U, B, C, imm) \
5365 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
5366 (__v2df)(__m128d)(B), \
5367 (__v2di)(__m128i)(C), (int)(imm), \
5368 (__mmask8)(U))
5369
5370 #define _mm_maskz_fixupimm_pd(U, A, B, C, imm) \
5371 (__m128d)__builtin_ia32_fixupimmpd128_maskz((__v2df)(__m128d)(A), \
5372 (__v2df)(__m128d)(B), \
5373 (__v2di)(__m128i)(C), \
5374 (int)(imm), (__mmask8)(U))
5375
5376 #define _mm256_fixupimm_pd(A, B, C, imm) \
5377 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
5378 (__v4df)(__m256d)(B), \
5379 (__v4di)(__m256i)(C), (int)(imm), \
5380 (__mmask8)-1)
5381
5382 #define _mm256_mask_fixupimm_pd(A, U, B, C, imm) \
5383 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
5384 (__v4df)(__m256d)(B), \
5385 (__v4di)(__m256i)(C), (int)(imm), \
5386 (__mmask8)(U))
5387
5388 #define _mm256_maskz_fixupimm_pd(U, A, B, C, imm) \
5389 (__m256d)__builtin_ia32_fixupimmpd256_maskz((__v4df)(__m256d)(A), \
5390 (__v4df)(__m256d)(B), \
5391 (__v4di)(__m256i)(C), \
5392 (int)(imm), (__mmask8)(U))
5393
5394 #define _mm_fixupimm_ps(A, B, C, imm) \
5395 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
5396 (__v4sf)(__m128)(B), \
5397 (__v4si)(__m128i)(C), (int)(imm), \
5398 (__mmask8)-1)
5399
5400 #define _mm_mask_fixupimm_ps(A, U, B, C, imm) \
5401 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
5402 (__v4sf)(__m128)(B), \
5403 (__v4si)(__m128i)(C), (int)(imm), \
5404 (__mmask8)(U))
5405
5406 #define _mm_maskz_fixupimm_ps(U, A, B, C, imm) \
5407 (__m128)__builtin_ia32_fixupimmps128_maskz((__v4sf)(__m128)(A), \
5408 (__v4sf)(__m128)(B), \
5409 (__v4si)(__m128i)(C), (int)(imm), \
5410 (__mmask8)(U))
5411
5412 #define _mm256_fixupimm_ps(A, B, C, imm) \
5413 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
5414 (__v8sf)(__m256)(B), \
5415 (__v8si)(__m256i)(C), (int)(imm), \
5416 (__mmask8)-1)
5417
5418 #define _mm256_mask_fixupimm_ps(A, U, B, C, imm) \
5419 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
5420 (__v8sf)(__m256)(B), \
5421 (__v8si)(__m256i)(C), (int)(imm), \
5422 (__mmask8)(U))
5423
5424 #define _mm256_maskz_fixupimm_ps(U, A, B, C, imm) \
5425 (__m256)__builtin_ia32_fixupimmps256_maskz((__v8sf)(__m256)(A), \
5426 (__v8sf)(__m256)(B), \
5427 (__v8si)(__m256i)(C), (int)(imm), \
5428 (__mmask8)(U))
5429
5430 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_load_pd(__m128d __W,__mmask8 __U,void const * __P)5431 _mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P)
5432 {
5433 return (__m128d) __builtin_ia32_loadapd128_mask ((const __v2df *) __P,
5434 (__v2df) __W,
5435 (__mmask8) __U);
5436 }
5437
5438 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_load_pd(__mmask8 __U,void const * __P)5439 _mm_maskz_load_pd (__mmask8 __U, void const *__P)
5440 {
5441 return (__m128d) __builtin_ia32_loadapd128_mask ((const __v2df *) __P,
5442 (__v2df)
5443 _mm_setzero_pd (),
5444 (__mmask8) __U);
5445 }
5446
5447 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_load_pd(__m256d __W,__mmask8 __U,void const * __P)5448 _mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P)
5449 {
5450 return (__m256d) __builtin_ia32_loadapd256_mask ((const __v4df *) __P,
5451 (__v4df) __W,
5452 (__mmask8) __U);
5453 }
5454
5455 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_load_pd(__mmask8 __U,void const * __P)5456 _mm256_maskz_load_pd (__mmask8 __U, void const *__P)
5457 {
5458 return (__m256d) __builtin_ia32_loadapd256_mask ((const __v4df *) __P,
5459 (__v4df)
5460 _mm256_setzero_pd (),
5461 (__mmask8) __U);
5462 }
5463
5464 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_load_ps(__m128 __W,__mmask8 __U,void const * __P)5465 _mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P)
5466 {
5467 return (__m128) __builtin_ia32_loadaps128_mask ((const __v4sf *) __P,
5468 (__v4sf) __W,
5469 (__mmask8) __U);
5470 }
5471
5472 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_load_ps(__mmask8 __U,void const * __P)5473 _mm_maskz_load_ps (__mmask8 __U, void const *__P)
5474 {
5475 return (__m128) __builtin_ia32_loadaps128_mask ((const __v4sf *) __P,
5476 (__v4sf)
5477 _mm_setzero_ps (),
5478 (__mmask8) __U);
5479 }
5480
5481 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_load_ps(__m256 __W,__mmask8 __U,void const * __P)5482 _mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P)
5483 {
5484 return (__m256) __builtin_ia32_loadaps256_mask ((const __v8sf *) __P,
5485 (__v8sf) __W,
5486 (__mmask8) __U);
5487 }
5488
5489 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_load_ps(__mmask8 __U,void const * __P)5490 _mm256_maskz_load_ps (__mmask8 __U, void const *__P)
5491 {
5492 return (__m256) __builtin_ia32_loadaps256_mask ((const __v8sf *) __P,
5493 (__v8sf)
5494 _mm256_setzero_ps (),
5495 (__mmask8) __U);
5496 }
5497
5498 static __inline __m128i __DEFAULT_FN_ATTRS128
_mm_loadu_epi64(void const * __P)5499 _mm_loadu_epi64 (void const *__P)
5500 {
5501 struct __loadu_epi64 {
5502 __m128i_u __v;
5503 } __attribute__((__packed__, __may_alias__));
5504 return ((const struct __loadu_epi64*)__P)->__v;
5505 }
5506
5507 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_loadu_epi64(__m128i __W,__mmask8 __U,void const * __P)5508 _mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
5509 {
5510 return (__m128i) __builtin_ia32_loaddqudi128_mask ((const __v2di *) __P,
5511 (__v2di) __W,
5512 (__mmask8) __U);
5513 }
5514
5515 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_loadu_epi64(__mmask8 __U,void const * __P)5516 _mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
5517 {
5518 return (__m128i) __builtin_ia32_loaddqudi128_mask ((const __v2di *) __P,
5519 (__v2di)
5520 _mm_setzero_si128 (),
5521 (__mmask8) __U);
5522 }
5523
5524 static __inline __m256i __DEFAULT_FN_ATTRS256
_mm256_loadu_epi64(void const * __P)5525 _mm256_loadu_epi64 (void const *__P)
5526 {
5527 struct __loadu_epi64 {
5528 __m256i_u __v;
5529 } __attribute__((__packed__, __may_alias__));
5530 return ((const struct __loadu_epi64*)__P)->__v;
5531 }
5532
5533 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_loadu_epi64(__m256i __W,__mmask8 __U,void const * __P)5534 _mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P)
5535 {
5536 return (__m256i) __builtin_ia32_loaddqudi256_mask ((const __v4di *) __P,
5537 (__v4di) __W,
5538 (__mmask8) __U);
5539 }
5540
5541 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_loadu_epi64(__mmask8 __U,void const * __P)5542 _mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
5543 {
5544 return (__m256i) __builtin_ia32_loaddqudi256_mask ((const __v4di *) __P,
5545 (__v4di)
5546 _mm256_setzero_si256 (),
5547 (__mmask8) __U);
5548 }
5549
5550 static __inline __m128i __DEFAULT_FN_ATTRS128
_mm_loadu_epi32(void const * __P)5551 _mm_loadu_epi32 (void const *__P)
5552 {
5553 struct __loadu_epi32 {
5554 __m128i_u __v;
5555 } __attribute__((__packed__, __may_alias__));
5556 return ((const struct __loadu_epi32*)__P)->__v;
5557 }
5558
5559 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_loadu_epi32(__m128i __W,__mmask8 __U,void const * __P)5560 _mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
5561 {
5562 return (__m128i) __builtin_ia32_loaddqusi128_mask ((const __v4si *) __P,
5563 (__v4si) __W,
5564 (__mmask8) __U);
5565 }
5566
5567 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_loadu_epi32(__mmask8 __U,void const * __P)5568 _mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
5569 {
5570 return (__m128i) __builtin_ia32_loaddqusi128_mask ((const __v4si *) __P,
5571 (__v4si)
5572 _mm_setzero_si128 (),
5573 (__mmask8) __U);
5574 }
5575
5576 static __inline __m256i __DEFAULT_FN_ATTRS256
_mm256_loadu_epi32(void const * __P)5577 _mm256_loadu_epi32 (void const *__P)
5578 {
5579 struct __loadu_epi32 {
5580 __m256i_u __v;
5581 } __attribute__((__packed__, __may_alias__));
5582 return ((const struct __loadu_epi32*)__P)->__v;
5583 }
5584
5585 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_loadu_epi32(__m256i __W,__mmask8 __U,void const * __P)5586 _mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P)
5587 {
5588 return (__m256i) __builtin_ia32_loaddqusi256_mask ((const __v8si *) __P,
5589 (__v8si) __W,
5590 (__mmask8) __U);
5591 }
5592
5593 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_loadu_epi32(__mmask8 __U,void const * __P)5594 _mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
5595 {
5596 return (__m256i) __builtin_ia32_loaddqusi256_mask ((const __v8si *) __P,
5597 (__v8si)
5598 _mm256_setzero_si256 (),
5599 (__mmask8) __U);
5600 }
5601
5602 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_loadu_pd(__m128d __W,__mmask8 __U,void const * __P)5603 _mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P)
5604 {
5605 return (__m128d) __builtin_ia32_loadupd128_mask ((const __v2df *) __P,
5606 (__v2df) __W,
5607 (__mmask8) __U);
5608 }
5609
5610 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_loadu_pd(__mmask8 __U,void const * __P)5611 _mm_maskz_loadu_pd (__mmask8 __U, void const *__P)
5612 {
5613 return (__m128d) __builtin_ia32_loadupd128_mask ((const __v2df *) __P,
5614 (__v2df)
5615 _mm_setzero_pd (),
5616 (__mmask8) __U);
5617 }
5618
5619 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_loadu_pd(__m256d __W,__mmask8 __U,void const * __P)5620 _mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P)
5621 {
5622 return (__m256d) __builtin_ia32_loadupd256_mask ((const __v4df *) __P,
5623 (__v4df) __W,
5624 (__mmask8) __U);
5625 }
5626
5627 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_loadu_pd(__mmask8 __U,void const * __P)5628 _mm256_maskz_loadu_pd (__mmask8 __U, void const *__P)
5629 {
5630 return (__m256d) __builtin_ia32_loadupd256_mask ((const __v4df *) __P,
5631 (__v4df)
5632 _mm256_setzero_pd (),
5633 (__mmask8) __U);
5634 }
5635
5636 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_loadu_ps(__m128 __W,__mmask8 __U,void const * __P)5637 _mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P)
5638 {
5639 return (__m128) __builtin_ia32_loadups128_mask ((const __v4sf *) __P,
5640 (__v4sf) __W,
5641 (__mmask8) __U);
5642 }
5643
5644 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_loadu_ps(__mmask8 __U,void const * __P)5645 _mm_maskz_loadu_ps (__mmask8 __U, void const *__P)
5646 {
5647 return (__m128) __builtin_ia32_loadups128_mask ((const __v4sf *) __P,
5648 (__v4sf)
5649 _mm_setzero_ps (),
5650 (__mmask8) __U);
5651 }
5652
5653 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_loadu_ps(__m256 __W,__mmask8 __U,void const * __P)5654 _mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P)
5655 {
5656 return (__m256) __builtin_ia32_loadups256_mask ((const __v8sf *) __P,
5657 (__v8sf) __W,
5658 (__mmask8) __U);
5659 }
5660
5661 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_loadu_ps(__mmask8 __U,void const * __P)5662 _mm256_maskz_loadu_ps (__mmask8 __U, void const *__P)
5663 {
5664 return (__m256) __builtin_ia32_loadups256_mask ((const __v8sf *) __P,
5665 (__v8sf)
5666 _mm256_setzero_ps (),
5667 (__mmask8) __U);
5668 }
5669
5670 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_store_pd(void * __P,__mmask8 __U,__m128d __A)5671 _mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A)
5672 {
5673 __builtin_ia32_storeapd128_mask ((__v2df *) __P,
5674 (__v2df) __A,
5675 (__mmask8) __U);
5676 }
5677
5678 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_store_pd(void * __P,__mmask8 __U,__m256d __A)5679 _mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A)
5680 {
5681 __builtin_ia32_storeapd256_mask ((__v4df *) __P,
5682 (__v4df) __A,
5683 (__mmask8) __U);
5684 }
5685
5686 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_store_ps(void * __P,__mmask8 __U,__m128 __A)5687 _mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A)
5688 {
5689 __builtin_ia32_storeaps128_mask ((__v4sf *) __P,
5690 (__v4sf) __A,
5691 (__mmask8) __U);
5692 }
5693
5694 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_store_ps(void * __P,__mmask8 __U,__m256 __A)5695 _mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
5696 {
5697 __builtin_ia32_storeaps256_mask ((__v8sf *) __P,
5698 (__v8sf) __A,
5699 (__mmask8) __U);
5700 }
5701
5702 static __inline void __DEFAULT_FN_ATTRS128
_mm_storeu_epi64(void * __P,__m128i __A)5703 _mm_storeu_epi64 (void *__P, __m128i __A)
5704 {
5705 struct __storeu_epi64 {
5706 __m128i_u __v;
5707 } __attribute__((__packed__, __may_alias__));
5708 ((struct __storeu_epi64*)__P)->__v = __A;
5709 }
5710
5711 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_storeu_epi64(void * __P,__mmask8 __U,__m128i __A)5712 _mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
5713 {
5714 __builtin_ia32_storedqudi128_mask ((__v2di *) __P,
5715 (__v2di) __A,
5716 (__mmask8) __U);
5717 }
5718
5719 static __inline void __DEFAULT_FN_ATTRS256
_mm256_storeu_epi64(void * __P,__m256i __A)5720 _mm256_storeu_epi64 (void *__P, __m256i __A)
5721 {
5722 struct __storeu_epi64 {
5723 __m256i_u __v;
5724 } __attribute__((__packed__, __may_alias__));
5725 ((struct __storeu_epi64*)__P)->__v = __A;
5726 }
5727
5728 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_storeu_epi64(void * __P,__mmask8 __U,__m256i __A)5729 _mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
5730 {
5731 __builtin_ia32_storedqudi256_mask ((__v4di *) __P,
5732 (__v4di) __A,
5733 (__mmask8) __U);
5734 }
5735
5736 static __inline void __DEFAULT_FN_ATTRS128
_mm_storeu_epi32(void * __P,__m128i __A)5737 _mm_storeu_epi32 (void *__P, __m128i __A)
5738 {
5739 struct __storeu_epi32 {
5740 __m128i_u __v;
5741 } __attribute__((__packed__, __may_alias__));
5742 ((struct __storeu_epi32*)__P)->__v = __A;
5743 }
5744
5745 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_storeu_epi32(void * __P,__mmask8 __U,__m128i __A)5746 _mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
5747 {
5748 __builtin_ia32_storedqusi128_mask ((__v4si *) __P,
5749 (__v4si) __A,
5750 (__mmask8) __U);
5751 }
5752
5753 static __inline void __DEFAULT_FN_ATTRS256
_mm256_storeu_epi32(void * __P,__m256i __A)5754 _mm256_storeu_epi32 (void *__P, __m256i __A)
5755 {
5756 struct __storeu_epi32 {
5757 __m256i_u __v;
5758 } __attribute__((__packed__, __may_alias__));
5759 ((struct __storeu_epi32*)__P)->__v = __A;
5760 }
5761
5762 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_storeu_epi32(void * __P,__mmask8 __U,__m256i __A)5763 _mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
5764 {
5765 __builtin_ia32_storedqusi256_mask ((__v8si *) __P,
5766 (__v8si) __A,
5767 (__mmask8) __U);
5768 }
5769
5770 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_storeu_pd(void * __P,__mmask8 __U,__m128d __A)5771 _mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A)
5772 {
5773 __builtin_ia32_storeupd128_mask ((__v2df *) __P,
5774 (__v2df) __A,
5775 (__mmask8) __U);
5776 }
5777
5778 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_storeu_pd(void * __P,__mmask8 __U,__m256d __A)5779 _mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A)
5780 {
5781 __builtin_ia32_storeupd256_mask ((__v4df *) __P,
5782 (__v4df) __A,
5783 (__mmask8) __U);
5784 }
5785
5786 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_storeu_ps(void * __P,__mmask8 __U,__m128 __A)5787 _mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A)
5788 {
5789 __builtin_ia32_storeups128_mask ((__v4sf *) __P,
5790 (__v4sf) __A,
5791 (__mmask8) __U);
5792 }
5793
5794 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_storeu_ps(void * __P,__mmask8 __U,__m256 __A)5795 _mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A)
5796 {
5797 __builtin_ia32_storeups256_mask ((__v8sf *) __P,
5798 (__v8sf) __A,
5799 (__mmask8) __U);
5800 }
5801
5802
5803 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_unpackhi_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5804 _mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
5805 {
5806 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5807 (__v2df)_mm_unpackhi_pd(__A, __B),
5808 (__v2df)__W);
5809 }
5810
5811 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_unpackhi_pd(__mmask8 __U,__m128d __A,__m128d __B)5812 _mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B)
5813 {
5814 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5815 (__v2df)_mm_unpackhi_pd(__A, __B),
5816 (__v2df)_mm_setzero_pd());
5817 }
5818
5819 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_unpackhi_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)5820 _mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
5821 {
5822 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5823 (__v4df)_mm256_unpackhi_pd(__A, __B),
5824 (__v4df)__W);
5825 }
5826
5827 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_unpackhi_pd(__mmask8 __U,__m256d __A,__m256d __B)5828 _mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B)
5829 {
5830 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5831 (__v4df)_mm256_unpackhi_pd(__A, __B),
5832 (__v4df)_mm256_setzero_pd());
5833 }
5834
5835 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_unpackhi_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5836 _mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
5837 {
5838 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
5839 (__v4sf)_mm_unpackhi_ps(__A, __B),
5840 (__v4sf)__W);
5841 }
5842
5843 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_unpackhi_ps(__mmask8 __U,__m128 __A,__m128 __B)5844 _mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B)
5845 {
5846 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
5847 (__v4sf)_mm_unpackhi_ps(__A, __B),
5848 (__v4sf)_mm_setzero_ps());
5849 }
5850
5851 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_unpackhi_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)5852 _mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
5853 {
5854 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
5855 (__v8sf)_mm256_unpackhi_ps(__A, __B),
5856 (__v8sf)__W);
5857 }
5858
5859 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_unpackhi_ps(__mmask8 __U,__m256 __A,__m256 __B)5860 _mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B)
5861 {
5862 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
5863 (__v8sf)_mm256_unpackhi_ps(__A, __B),
5864 (__v8sf)_mm256_setzero_ps());
5865 }
5866
5867 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_unpacklo_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5868 _mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
5869 {
5870 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5871 (__v2df)_mm_unpacklo_pd(__A, __B),
5872 (__v2df)__W);
5873 }
5874
5875 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_unpacklo_pd(__mmask8 __U,__m128d __A,__m128d __B)5876 _mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B)
5877 {
5878 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5879 (__v2df)_mm_unpacklo_pd(__A, __B),
5880 (__v2df)_mm_setzero_pd());
5881 }
5882
5883 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_unpacklo_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)5884 _mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
5885 {
5886 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5887 (__v4df)_mm256_unpacklo_pd(__A, __B),
5888 (__v4df)__W);
5889 }
5890
5891 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_unpacklo_pd(__mmask8 __U,__m256d __A,__m256d __B)5892 _mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B)
5893 {
5894 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5895 (__v4df)_mm256_unpacklo_pd(__A, __B),
5896 (__v4df)_mm256_setzero_pd());
5897 }
5898
5899 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_unpacklo_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5900 _mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
5901 {
5902 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
5903 (__v4sf)_mm_unpacklo_ps(__A, __B),
5904 (__v4sf)__W);
5905 }
5906
5907 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_unpacklo_ps(__mmask8 __U,__m128 __A,__m128 __B)5908 _mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B)
5909 {
5910 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
5911 (__v4sf)_mm_unpacklo_ps(__A, __B),
5912 (__v4sf)_mm_setzero_ps());
5913 }
5914
5915 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_unpacklo_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)5916 _mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
5917 {
5918 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
5919 (__v8sf)_mm256_unpacklo_ps(__A, __B),
5920 (__v8sf)__W);
5921 }
5922
5923 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_unpacklo_ps(__mmask8 __U,__m256 __A,__m256 __B)5924 _mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B)
5925 {
5926 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
5927 (__v8sf)_mm256_unpacklo_ps(__A, __B),
5928 (__v8sf)_mm256_setzero_ps());
5929 }
5930
5931 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_rcp14_pd(__m128d __A)5932 _mm_rcp14_pd (__m128d __A)
5933 {
5934 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
5935 (__v2df)
5936 _mm_setzero_pd (),
5937 (__mmask8) -1);
5938 }
5939
5940 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_rcp14_pd(__m128d __W,__mmask8 __U,__m128d __A)5941 _mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A)
5942 {
5943 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
5944 (__v2df) __W,
5945 (__mmask8) __U);
5946 }
5947
5948 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_rcp14_pd(__mmask8 __U,__m128d __A)5949 _mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A)
5950 {
5951 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
5952 (__v2df)
5953 _mm_setzero_pd (),
5954 (__mmask8) __U);
5955 }
5956
5957 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_rcp14_pd(__m256d __A)5958 _mm256_rcp14_pd (__m256d __A)
5959 {
5960 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
5961 (__v4df)
5962 _mm256_setzero_pd (),
5963 (__mmask8) -1);
5964 }
5965
5966 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_rcp14_pd(__m256d __W,__mmask8 __U,__m256d __A)5967 _mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A)
5968 {
5969 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
5970 (__v4df) __W,
5971 (__mmask8) __U);
5972 }
5973
5974 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_rcp14_pd(__mmask8 __U,__m256d __A)5975 _mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A)
5976 {
5977 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
5978 (__v4df)
5979 _mm256_setzero_pd (),
5980 (__mmask8) __U);
5981 }
5982
5983 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_rcp14_ps(__m128 __A)5984 _mm_rcp14_ps (__m128 __A)
5985 {
5986 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
5987 (__v4sf)
5988 _mm_setzero_ps (),
5989 (__mmask8) -1);
5990 }
5991
5992 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_rcp14_ps(__m128 __W,__mmask8 __U,__m128 __A)5993 _mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A)
5994 {
5995 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
5996 (__v4sf) __W,
5997 (__mmask8) __U);
5998 }
5999
6000 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_rcp14_ps(__mmask8 __U,__m128 __A)6001 _mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A)
6002 {
6003 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6004 (__v4sf)
6005 _mm_setzero_ps (),
6006 (__mmask8) __U);
6007 }
6008
6009 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_rcp14_ps(__m256 __A)6010 _mm256_rcp14_ps (__m256 __A)
6011 {
6012 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6013 (__v8sf)
6014 _mm256_setzero_ps (),
6015 (__mmask8) -1);
6016 }
6017
6018 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_rcp14_ps(__m256 __W,__mmask8 __U,__m256 __A)6019 _mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A)
6020 {
6021 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6022 (__v8sf) __W,
6023 (__mmask8) __U);
6024 }
6025
6026 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_rcp14_ps(__mmask8 __U,__m256 __A)6027 _mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A)
6028 {
6029 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6030 (__v8sf)
6031 _mm256_setzero_ps (),
6032 (__mmask8) __U);
6033 }
6034
6035 #define _mm_mask_permute_pd(W, U, X, C) \
6036 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6037 (__v2df)_mm_permute_pd((X), (C)), \
6038 (__v2df)(__m128d)(W))
6039
6040 #define _mm_maskz_permute_pd(U, X, C) \
6041 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6042 (__v2df)_mm_permute_pd((X), (C)), \
6043 (__v2df)_mm_setzero_pd())
6044
6045 #define _mm256_mask_permute_pd(W, U, X, C) \
6046 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6047 (__v4df)_mm256_permute_pd((X), (C)), \
6048 (__v4df)(__m256d)(W))
6049
6050 #define _mm256_maskz_permute_pd(U, X, C) \
6051 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6052 (__v4df)_mm256_permute_pd((X), (C)), \
6053 (__v4df)_mm256_setzero_pd())
6054
6055 #define _mm_mask_permute_ps(W, U, X, C) \
6056 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6057 (__v4sf)_mm_permute_ps((X), (C)), \
6058 (__v4sf)(__m128)(W))
6059
6060 #define _mm_maskz_permute_ps(U, X, C) \
6061 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6062 (__v4sf)_mm_permute_ps((X), (C)), \
6063 (__v4sf)_mm_setzero_ps())
6064
6065 #define _mm256_mask_permute_ps(W, U, X, C) \
6066 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6067 (__v8sf)_mm256_permute_ps((X), (C)), \
6068 (__v8sf)(__m256)(W))
6069
6070 #define _mm256_maskz_permute_ps(U, X, C) \
6071 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6072 (__v8sf)_mm256_permute_ps((X), (C)), \
6073 (__v8sf)_mm256_setzero_ps())
6074
6075 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_permutevar_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128i __C)6076 _mm_mask_permutevar_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128i __C)
6077 {
6078 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6079 (__v2df)_mm_permutevar_pd(__A, __C),
6080 (__v2df)__W);
6081 }
6082
6083 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_permutevar_pd(__mmask8 __U,__m128d __A,__m128i __C)6084 _mm_maskz_permutevar_pd(__mmask8 __U, __m128d __A, __m128i __C)
6085 {
6086 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6087 (__v2df)_mm_permutevar_pd(__A, __C),
6088 (__v2df)_mm_setzero_pd());
6089 }
6090
6091 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_permutevar_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256i __C)6092 _mm256_mask_permutevar_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256i __C)
6093 {
6094 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6095 (__v4df)_mm256_permutevar_pd(__A, __C),
6096 (__v4df)__W);
6097 }
6098
6099 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_permutevar_pd(__mmask8 __U,__m256d __A,__m256i __C)6100 _mm256_maskz_permutevar_pd(__mmask8 __U, __m256d __A, __m256i __C)
6101 {
6102 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6103 (__v4df)_mm256_permutevar_pd(__A, __C),
6104 (__v4df)_mm256_setzero_pd());
6105 }
6106
6107 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_permutevar_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128i __C)6108 _mm_mask_permutevar_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128i __C)
6109 {
6110 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6111 (__v4sf)_mm_permutevar_ps(__A, __C),
6112 (__v4sf)__W);
6113 }
6114
6115 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_permutevar_ps(__mmask8 __U,__m128 __A,__m128i __C)6116 _mm_maskz_permutevar_ps(__mmask8 __U, __m128 __A, __m128i __C)
6117 {
6118 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6119 (__v4sf)_mm_permutevar_ps(__A, __C),
6120 (__v4sf)_mm_setzero_ps());
6121 }
6122
6123 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_permutevar_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256i __C)6124 _mm256_mask_permutevar_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256i __C)
6125 {
6126 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6127 (__v8sf)_mm256_permutevar_ps(__A, __C),
6128 (__v8sf)__W);
6129 }
6130
6131 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_permutevar_ps(__mmask8 __U,__m256 __A,__m256i __C)6132 _mm256_maskz_permutevar_ps(__mmask8 __U, __m256 __A, __m256i __C)
6133 {
6134 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6135 (__v8sf)_mm256_permutevar_ps(__A, __C),
6136 (__v8sf)_mm256_setzero_ps());
6137 }
6138
6139 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
_mm_test_epi32_mask(__m128i __A,__m128i __B)6140 _mm_test_epi32_mask (__m128i __A, __m128i __B)
6141 {
6142 return _mm_cmpneq_epi32_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
6143 }
6144
6145 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
_mm_mask_test_epi32_mask(__mmask8 __U,__m128i __A,__m128i __B)6146 _mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6147 {
6148 return _mm_mask_cmpneq_epi32_mask (__U, _mm_and_si128 (__A, __B),
6149 _mm_setzero_si128());
6150 }
6151
6152 static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
_mm256_test_epi32_mask(__m256i __A,__m256i __B)6153 _mm256_test_epi32_mask (__m256i __A, __m256i __B)
6154 {
6155 return _mm256_cmpneq_epi32_mask (_mm256_and_si256 (__A, __B),
6156 _mm256_setzero_si256());
6157 }
6158
6159 static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
_mm256_mask_test_epi32_mask(__mmask8 __U,__m256i __A,__m256i __B)6160 _mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6161 {
6162 return _mm256_mask_cmpneq_epi32_mask (__U, _mm256_and_si256 (__A, __B),
6163 _mm256_setzero_si256());
6164 }
6165
6166 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
_mm_test_epi64_mask(__m128i __A,__m128i __B)6167 _mm_test_epi64_mask (__m128i __A, __m128i __B)
6168 {
6169 return _mm_cmpneq_epi64_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
6170 }
6171
6172 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
_mm_mask_test_epi64_mask(__mmask8 __U,__m128i __A,__m128i __B)6173 _mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6174 {
6175 return _mm_mask_cmpneq_epi64_mask (__U, _mm_and_si128 (__A, __B),
6176 _mm_setzero_si128());
6177 }
6178
6179 static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
_mm256_test_epi64_mask(__m256i __A,__m256i __B)6180 _mm256_test_epi64_mask (__m256i __A, __m256i __B)
6181 {
6182 return _mm256_cmpneq_epi64_mask (_mm256_and_si256 (__A, __B),
6183 _mm256_setzero_si256());
6184 }
6185
6186 static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
_mm256_mask_test_epi64_mask(__mmask8 __U,__m256i __A,__m256i __B)6187 _mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6188 {
6189 return _mm256_mask_cmpneq_epi64_mask (__U, _mm256_and_si256 (__A, __B),
6190 _mm256_setzero_si256());
6191 }
6192
6193 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
_mm_testn_epi32_mask(__m128i __A,__m128i __B)6194 _mm_testn_epi32_mask (__m128i __A, __m128i __B)
6195 {
6196 return _mm_cmpeq_epi32_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
6197 }
6198
6199 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
_mm_mask_testn_epi32_mask(__mmask8 __U,__m128i __A,__m128i __B)6200 _mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6201 {
6202 return _mm_mask_cmpeq_epi32_mask (__U, _mm_and_si128 (__A, __B),
6203 _mm_setzero_si128());
6204 }
6205
6206 static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
_mm256_testn_epi32_mask(__m256i __A,__m256i __B)6207 _mm256_testn_epi32_mask (__m256i __A, __m256i __B)
6208 {
6209 return _mm256_cmpeq_epi32_mask (_mm256_and_si256 (__A, __B),
6210 _mm256_setzero_si256());
6211 }
6212
6213 static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
_mm256_mask_testn_epi32_mask(__mmask8 __U,__m256i __A,__m256i __B)6214 _mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6215 {
6216 return _mm256_mask_cmpeq_epi32_mask (__U, _mm256_and_si256 (__A, __B),
6217 _mm256_setzero_si256());
6218 }
6219
6220 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
_mm_testn_epi64_mask(__m128i __A,__m128i __B)6221 _mm_testn_epi64_mask (__m128i __A, __m128i __B)
6222 {
6223 return _mm_cmpeq_epi64_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
6224 }
6225
6226 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
_mm_mask_testn_epi64_mask(__mmask8 __U,__m128i __A,__m128i __B)6227 _mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6228 {
6229 return _mm_mask_cmpeq_epi64_mask (__U, _mm_and_si128 (__A, __B),
6230 _mm_setzero_si128());
6231 }
6232
6233 static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
_mm256_testn_epi64_mask(__m256i __A,__m256i __B)6234 _mm256_testn_epi64_mask (__m256i __A, __m256i __B)
6235 {
6236 return _mm256_cmpeq_epi64_mask (_mm256_and_si256 (__A, __B),
6237 _mm256_setzero_si256());
6238 }
6239
6240 static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
_mm256_mask_testn_epi64_mask(__mmask8 __U,__m256i __A,__m256i __B)6241 _mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6242 {
6243 return _mm256_mask_cmpeq_epi64_mask (__U, _mm256_and_si256 (__A, __B),
6244 _mm256_setzero_si256());
6245 }
6246
6247 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_unpackhi_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6248 _mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
6249 {
6250 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6251 (__v4si)_mm_unpackhi_epi32(__A, __B),
6252 (__v4si)__W);
6253 }
6254
6255 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_unpackhi_epi32(__mmask8 __U,__m128i __A,__m128i __B)6256 _mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B)
6257 {
6258 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6259 (__v4si)_mm_unpackhi_epi32(__A, __B),
6260 (__v4si)_mm_setzero_si128());
6261 }
6262
6263 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_unpackhi_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)6264 _mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
6265 {
6266 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6267 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6268 (__v8si)__W);
6269 }
6270
6271 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_unpackhi_epi32(__mmask8 __U,__m256i __A,__m256i __B)6272 _mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B)
6273 {
6274 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6275 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6276 (__v8si)_mm256_setzero_si256());
6277 }
6278
6279 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_unpackhi_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6280 _mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
6281 {
6282 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6283 (__v2di)_mm_unpackhi_epi64(__A, __B),
6284 (__v2di)__W);
6285 }
6286
6287 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_unpackhi_epi64(__mmask8 __U,__m128i __A,__m128i __B)6288 _mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B)
6289 {
6290 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6291 (__v2di)_mm_unpackhi_epi64(__A, __B),
6292 (__v2di)_mm_setzero_si128());
6293 }
6294
6295 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_unpackhi_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)6296 _mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
6297 {
6298 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6299 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6300 (__v4di)__W);
6301 }
6302
6303 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_unpackhi_epi64(__mmask8 __U,__m256i __A,__m256i __B)6304 _mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B)
6305 {
6306 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6307 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6308 (__v4di)_mm256_setzero_si256());
6309 }
6310
6311 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_unpacklo_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6312 _mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
6313 {
6314 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6315 (__v4si)_mm_unpacklo_epi32(__A, __B),
6316 (__v4si)__W);
6317 }
6318
6319 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_unpacklo_epi32(__mmask8 __U,__m128i __A,__m128i __B)6320 _mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B)
6321 {
6322 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6323 (__v4si)_mm_unpacklo_epi32(__A, __B),
6324 (__v4si)_mm_setzero_si128());
6325 }
6326
6327 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_unpacklo_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)6328 _mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
6329 {
6330 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6331 (__v8si)_mm256_unpacklo_epi32(__A, __B),
6332 (__v8si)__W);
6333 }
6334
6335 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_unpacklo_epi32(__mmask8 __U,__m256i __A,__m256i __B)6336 _mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B)
6337 {
6338 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6339 (__v8si)_mm256_unpacklo_epi32(__A, __B),
6340 (__v8si)_mm256_setzero_si256());
6341 }
6342
6343 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_unpacklo_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6344 _mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
6345 {
6346 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6347 (__v2di)_mm_unpacklo_epi64(__A, __B),
6348 (__v2di)__W);
6349 }
6350
6351 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_unpacklo_epi64(__mmask8 __U,__m128i __A,__m128i __B)6352 _mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B)
6353 {
6354 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6355 (__v2di)_mm_unpacklo_epi64(__A, __B),
6356 (__v2di)_mm_setzero_si128());
6357 }
6358
6359 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_unpacklo_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)6360 _mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
6361 {
6362 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6363 (__v4di)_mm256_unpacklo_epi64(__A, __B),
6364 (__v4di)__W);
6365 }
6366
6367 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_unpacklo_epi64(__mmask8 __U,__m256i __A,__m256i __B)6368 _mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B)
6369 {
6370 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6371 (__v4di)_mm256_unpacklo_epi64(__A, __B),
6372 (__v4di)_mm256_setzero_si256());
6373 }
6374
6375 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_sra_epi32(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6376 _mm_mask_sra_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
6377 {
6378 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6379 (__v4si)_mm_sra_epi32(__A, __B),
6380 (__v4si)__W);
6381 }
6382
6383 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_sra_epi32(__mmask8 __U,__m128i __A,__m128i __B)6384 _mm_maskz_sra_epi32(__mmask8 __U, __m128i __A, __m128i __B)
6385 {
6386 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6387 (__v4si)_mm_sra_epi32(__A, __B),
6388 (__v4si)_mm_setzero_si128());
6389 }
6390
6391 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_sra_epi32(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6392 _mm256_mask_sra_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
6393 {
6394 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6395 (__v8si)_mm256_sra_epi32(__A, __B),
6396 (__v8si)__W);
6397 }
6398
6399 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_sra_epi32(__mmask8 __U,__m256i __A,__m128i __B)6400 _mm256_maskz_sra_epi32(__mmask8 __U, __m256i __A, __m128i __B)
6401 {
6402 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6403 (__v8si)_mm256_sra_epi32(__A, __B),
6404 (__v8si)_mm256_setzero_si256());
6405 }
6406
6407 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_srai_epi32(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __B)6408 _mm_mask_srai_epi32(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B)
6409 {
6410 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6411 (__v4si)_mm_srai_epi32(__A, __B),
6412 (__v4si)__W);
6413 }
6414
6415 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_srai_epi32(__mmask8 __U,__m128i __A,unsigned int __B)6416 _mm_maskz_srai_epi32(__mmask8 __U, __m128i __A, unsigned int __B)
6417 {
6418 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6419 (__v4si)_mm_srai_epi32(__A, __B),
6420 (__v4si)_mm_setzero_si128());
6421 }
6422
6423 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_srai_epi32(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __B)6424 _mm256_mask_srai_epi32(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B)
6425 {
6426 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6427 (__v8si)_mm256_srai_epi32(__A, __B),
6428 (__v8si)__W);
6429 }
6430
6431 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_srai_epi32(__mmask8 __U,__m256i __A,unsigned int __B)6432 _mm256_maskz_srai_epi32(__mmask8 __U, __m256i __A, unsigned int __B)
6433 {
6434 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6435 (__v8si)_mm256_srai_epi32(__A, __B),
6436 (__v8si)_mm256_setzero_si256());
6437 }
6438
6439 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_sra_epi64(__m128i __A,__m128i __B)6440 _mm_sra_epi64(__m128i __A, __m128i __B)
6441 {
6442 return (__m128i)__builtin_ia32_psraq128((__v2di)__A, (__v2di)__B);
6443 }
6444
6445 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_sra_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)6446 _mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
6447 {
6448 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \
6449 (__v2di)_mm_sra_epi64(__A, __B), \
6450 (__v2di)__W);
6451 }
6452
6453 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_sra_epi64(__mmask8 __U,__m128i __A,__m128i __B)6454 _mm_maskz_sra_epi64(__mmask8 __U, __m128i __A, __m128i __B)
6455 {
6456 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \
6457 (__v2di)_mm_sra_epi64(__A, __B), \
6458 (__v2di)_mm_setzero_si128());
6459 }
6460
6461 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_sra_epi64(__m256i __A,__m128i __B)6462 _mm256_sra_epi64(__m256i __A, __m128i __B)
6463 {
6464 return (__m256i)__builtin_ia32_psraq256((__v4di) __A, (__v2di) __B);
6465 }
6466
6467 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_sra_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)6468 _mm256_mask_sra_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
6469 {
6470 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \
6471 (__v4di)_mm256_sra_epi64(__A, __B), \
6472 (__v4di)__W);
6473 }
6474
6475 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_sra_epi64(__mmask8 __U,__m256i __A,__m128i __B)6476 _mm256_maskz_sra_epi64(__mmask8 __U, __m256i __A, __m128i __B)
6477 {
6478 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \
6479 (__v4di)_mm256_sra_epi64(__A, __B), \
6480 (__v4di)_mm256_setzero_si256());
6481 }
6482
6483 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_srai_epi64(__m128i __A,unsigned int __imm)6484 _mm_srai_epi64(__m128i __A, unsigned int __imm)
6485 {
6486 return (__m128i)__builtin_ia32_psraqi128((__v2di)__A, __imm);
6487 }
6488
6489 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_srai_epi64(__m128i __W,__mmask8 __U,__m128i __A,unsigned int __imm)6490 _mm_mask_srai_epi64(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __imm)
6491 {
6492 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \
6493 (__v2di)_mm_srai_epi64(__A, __imm), \
6494 (__v2di)__W);
6495 }
6496
6497 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_srai_epi64(__mmask8 __U,__m128i __A,unsigned int __imm)6498 _mm_maskz_srai_epi64(__mmask8 __U, __m128i __A, unsigned int __imm)
6499 {
6500 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \
6501 (__v2di)_mm_srai_epi64(__A, __imm), \
6502 (__v2di)_mm_setzero_si128());
6503 }
6504
6505 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_srai_epi64(__m256i __A,unsigned int __imm)6506 _mm256_srai_epi64(__m256i __A, unsigned int __imm)
6507 {
6508 return (__m256i)__builtin_ia32_psraqi256((__v4di)__A, __imm);
6509 }
6510
6511 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_srai_epi64(__m256i __W,__mmask8 __U,__m256i __A,unsigned int __imm)6512 _mm256_mask_srai_epi64(__m256i __W, __mmask8 __U, __m256i __A,
6513 unsigned int __imm)
6514 {
6515 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \
6516 (__v4di)_mm256_srai_epi64(__A, __imm), \
6517 (__v4di)__W);
6518 }
6519
6520 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_srai_epi64(__mmask8 __U,__m256i __A,unsigned int __imm)6521 _mm256_maskz_srai_epi64(__mmask8 __U, __m256i __A, unsigned int __imm)
6522 {
6523 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \
6524 (__v4di)_mm256_srai_epi64(__A, __imm), \
6525 (__v4di)_mm256_setzero_si256());
6526 }
6527
6528 #define _mm_ternarylogic_epi32(A, B, C, imm) \
6529 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
6530 (__v4si)(__m128i)(B), \
6531 (__v4si)(__m128i)(C), (int)(imm), \
6532 (__mmask8)-1)
6533
6534 #define _mm_mask_ternarylogic_epi32(A, U, B, C, imm) \
6535 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
6536 (__v4si)(__m128i)(B), \
6537 (__v4si)(__m128i)(C), (int)(imm), \
6538 (__mmask8)(U))
6539
6540 #define _mm_maskz_ternarylogic_epi32(U, A, B, C, imm) \
6541 (__m128i)__builtin_ia32_pternlogd128_maskz((__v4si)(__m128i)(A), \
6542 (__v4si)(__m128i)(B), \
6543 (__v4si)(__m128i)(C), (int)(imm), \
6544 (__mmask8)(U))
6545
6546 #define _mm256_ternarylogic_epi32(A, B, C, imm) \
6547 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
6548 (__v8si)(__m256i)(B), \
6549 (__v8si)(__m256i)(C), (int)(imm), \
6550 (__mmask8)-1)
6551
6552 #define _mm256_mask_ternarylogic_epi32(A, U, B, C, imm) \
6553 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
6554 (__v8si)(__m256i)(B), \
6555 (__v8si)(__m256i)(C), (int)(imm), \
6556 (__mmask8)(U))
6557
6558 #define _mm256_maskz_ternarylogic_epi32(U, A, B, C, imm) \
6559 (__m256i)__builtin_ia32_pternlogd256_maskz((__v8si)(__m256i)(A), \
6560 (__v8si)(__m256i)(B), \
6561 (__v8si)(__m256i)(C), (int)(imm), \
6562 (__mmask8)(U))
6563
6564 #define _mm_ternarylogic_epi64(A, B, C, imm) \
6565 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
6566 (__v2di)(__m128i)(B), \
6567 (__v2di)(__m128i)(C), (int)(imm), \
6568 (__mmask8)-1)
6569
6570 #define _mm_mask_ternarylogic_epi64(A, U, B, C, imm) \
6571 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
6572 (__v2di)(__m128i)(B), \
6573 (__v2di)(__m128i)(C), (int)(imm), \
6574 (__mmask8)(U))
6575
6576 #define _mm_maskz_ternarylogic_epi64(U, A, B, C, imm) \
6577 (__m128i)__builtin_ia32_pternlogq128_maskz((__v2di)(__m128i)(A), \
6578 (__v2di)(__m128i)(B), \
6579 (__v2di)(__m128i)(C), (int)(imm), \
6580 (__mmask8)(U))
6581
6582 #define _mm256_ternarylogic_epi64(A, B, C, imm) \
6583 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
6584 (__v4di)(__m256i)(B), \
6585 (__v4di)(__m256i)(C), (int)(imm), \
6586 (__mmask8)-1)
6587
6588 #define _mm256_mask_ternarylogic_epi64(A, U, B, C, imm) \
6589 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
6590 (__v4di)(__m256i)(B), \
6591 (__v4di)(__m256i)(C), (int)(imm), \
6592 (__mmask8)(U))
6593
6594 #define _mm256_maskz_ternarylogic_epi64(U, A, B, C, imm) \
6595 (__m256i)__builtin_ia32_pternlogq256_maskz((__v4di)(__m256i)(A), \
6596 (__v4di)(__m256i)(B), \
6597 (__v4di)(__m256i)(C), (int)(imm), \
6598 (__mmask8)(U))
6599
6600
6601
6602 #define _mm256_shuffle_f32x4(A, B, imm) \
6603 (__m256)__builtin_ia32_shuf_f32x4_256((__v8sf)(__m256)(A), \
6604 (__v8sf)(__m256)(B), (int)(imm))
6605
6606 #define _mm256_mask_shuffle_f32x4(W, U, A, B, imm) \
6607 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6608 (__v8sf)_mm256_shuffle_f32x4((A), (B), (imm)), \
6609 (__v8sf)(__m256)(W))
6610
6611 #define _mm256_maskz_shuffle_f32x4(U, A, B, imm) \
6612 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6613 (__v8sf)_mm256_shuffle_f32x4((A), (B), (imm)), \
6614 (__v8sf)_mm256_setzero_ps())
6615
6616 #define _mm256_shuffle_f64x2(A, B, imm) \
6617 (__m256d)__builtin_ia32_shuf_f64x2_256((__v4df)(__m256d)(A), \
6618 (__v4df)(__m256d)(B), (int)(imm))
6619
6620 #define _mm256_mask_shuffle_f64x2(W, U, A, B, imm) \
6621 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6622 (__v4df)_mm256_shuffle_f64x2((A), (B), (imm)), \
6623 (__v4df)(__m256d)(W))
6624
6625 #define _mm256_maskz_shuffle_f64x2(U, A, B, imm) \
6626 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6627 (__v4df)_mm256_shuffle_f64x2((A), (B), (imm)), \
6628 (__v4df)_mm256_setzero_pd())
6629
6630 #define _mm256_shuffle_i32x4(A, B, imm) \
6631 (__m256i)__builtin_ia32_shuf_i32x4_256((__v8si)(__m256i)(A), \
6632 (__v8si)(__m256i)(B), (int)(imm))
6633
6634 #define _mm256_mask_shuffle_i32x4(W, U, A, B, imm) \
6635 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
6636 (__v8si)_mm256_shuffle_i32x4((A), (B), (imm)), \
6637 (__v8si)(__m256i)(W))
6638
6639 #define _mm256_maskz_shuffle_i32x4(U, A, B, imm) \
6640 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
6641 (__v8si)_mm256_shuffle_i32x4((A), (B), (imm)), \
6642 (__v8si)_mm256_setzero_si256())
6643
6644 #define _mm256_shuffle_i64x2(A, B, imm) \
6645 (__m256i)__builtin_ia32_shuf_i64x2_256((__v4di)(__m256i)(A), \
6646 (__v4di)(__m256i)(B), (int)(imm))
6647
6648 #define _mm256_mask_shuffle_i64x2(W, U, A, B, imm) \
6649 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
6650 (__v4di)_mm256_shuffle_i64x2((A), (B), (imm)), \
6651 (__v4di)(__m256i)(W))
6652
6653
6654 #define _mm256_maskz_shuffle_i64x2(U, A, B, imm) \
6655 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
6656 (__v4di)_mm256_shuffle_i64x2((A), (B), (imm)), \
6657 (__v4di)_mm256_setzero_si256())
6658
6659 #define _mm_mask_shuffle_pd(W, U, A, B, M) \
6660 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6661 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
6662 (__v2df)(__m128d)(W))
6663
6664 #define _mm_maskz_shuffle_pd(U, A, B, M) \
6665 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6666 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
6667 (__v2df)_mm_setzero_pd())
6668
6669 #define _mm256_mask_shuffle_pd(W, U, A, B, M) \
6670 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6671 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
6672 (__v4df)(__m256d)(W))
6673
6674 #define _mm256_maskz_shuffle_pd(U, A, B, M) \
6675 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6676 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
6677 (__v4df)_mm256_setzero_pd())
6678
6679 #define _mm_mask_shuffle_ps(W, U, A, B, M) \
6680 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6681 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
6682 (__v4sf)(__m128)(W))
6683
6684 #define _mm_maskz_shuffle_ps(U, A, B, M) \
6685 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6686 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
6687 (__v4sf)_mm_setzero_ps())
6688
6689 #define _mm256_mask_shuffle_ps(W, U, A, B, M) \
6690 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6691 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
6692 (__v8sf)(__m256)(W))
6693
6694 #define _mm256_maskz_shuffle_ps(U, A, B, M) \
6695 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6696 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
6697 (__v8sf)_mm256_setzero_ps())
6698
6699 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_rsqrt14_pd(__m128d __A)6700 _mm_rsqrt14_pd (__m128d __A)
6701 {
6702 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
6703 (__v2df)
6704 _mm_setzero_pd (),
6705 (__mmask8) -1);
6706 }
6707
6708 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_rsqrt14_pd(__m128d __W,__mmask8 __U,__m128d __A)6709 _mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A)
6710 {
6711 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
6712 (__v2df) __W,
6713 (__mmask8) __U);
6714 }
6715
6716 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_rsqrt14_pd(__mmask8 __U,__m128d __A)6717 _mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A)
6718 {
6719 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
6720 (__v2df)
6721 _mm_setzero_pd (),
6722 (__mmask8) __U);
6723 }
6724
6725 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_rsqrt14_pd(__m256d __A)6726 _mm256_rsqrt14_pd (__m256d __A)
6727 {
6728 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
6729 (__v4df)
6730 _mm256_setzero_pd (),
6731 (__mmask8) -1);
6732 }
6733
6734 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_rsqrt14_pd(__m256d __W,__mmask8 __U,__m256d __A)6735 _mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A)
6736 {
6737 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
6738 (__v4df) __W,
6739 (__mmask8) __U);
6740 }
6741
6742 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_rsqrt14_pd(__mmask8 __U,__m256d __A)6743 _mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A)
6744 {
6745 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
6746 (__v4df)
6747 _mm256_setzero_pd (),
6748 (__mmask8) __U);
6749 }
6750
6751 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_rsqrt14_ps(__m128 __A)6752 _mm_rsqrt14_ps (__m128 __A)
6753 {
6754 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
6755 (__v4sf)
6756 _mm_setzero_ps (),
6757 (__mmask8) -1);
6758 }
6759
6760 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_rsqrt14_ps(__m128 __W,__mmask8 __U,__m128 __A)6761 _mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A)
6762 {
6763 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
6764 (__v4sf) __W,
6765 (__mmask8) __U);
6766 }
6767
6768 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_rsqrt14_ps(__mmask8 __U,__m128 __A)6769 _mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A)
6770 {
6771 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
6772 (__v4sf)
6773 _mm_setzero_ps (),
6774 (__mmask8) __U);
6775 }
6776
6777 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_rsqrt14_ps(__m256 __A)6778 _mm256_rsqrt14_ps (__m256 __A)
6779 {
6780 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
6781 (__v8sf)
6782 _mm256_setzero_ps (),
6783 (__mmask8) -1);
6784 }
6785
6786 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_rsqrt14_ps(__m256 __W,__mmask8 __U,__m256 __A)6787 _mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A)
6788 {
6789 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
6790 (__v8sf) __W,
6791 (__mmask8) __U);
6792 }
6793
6794 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_rsqrt14_ps(__mmask8 __U,__m256 __A)6795 _mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A)
6796 {
6797 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
6798 (__v8sf)
6799 _mm256_setzero_ps (),
6800 (__mmask8) __U);
6801 }
6802
6803 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_broadcast_f32x4(__m128 __A)6804 _mm256_broadcast_f32x4(__m128 __A)
6805 {
6806 return (__m256)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A,
6807 0, 1, 2, 3, 0, 1, 2, 3);
6808 }
6809
6810 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_broadcast_f32x4(__m256 __O,__mmask8 __M,__m128 __A)6811 _mm256_mask_broadcast_f32x4(__m256 __O, __mmask8 __M, __m128 __A)
6812 {
6813 return (__m256)__builtin_ia32_selectps_256((__mmask8)__M,
6814 (__v8sf)_mm256_broadcast_f32x4(__A),
6815 (__v8sf)__O);
6816 }
6817
6818 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_broadcast_f32x4(__mmask8 __M,__m128 __A)6819 _mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A)
6820 {
6821 return (__m256)__builtin_ia32_selectps_256((__mmask8)__M,
6822 (__v8sf)_mm256_broadcast_f32x4(__A),
6823 (__v8sf)_mm256_setzero_ps());
6824 }
6825
6826 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_broadcast_i32x4(__m128i __A)6827 _mm256_broadcast_i32x4(__m128i __A)
6828 {
6829 return (__m256i)__builtin_shufflevector((__v4si)__A, (__v4si)__A,
6830 0, 1, 2, 3, 0, 1, 2, 3);
6831 }
6832
6833 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_broadcast_i32x4(__m256i __O,__mmask8 __M,__m128i __A)6834 _mm256_mask_broadcast_i32x4(__m256i __O, __mmask8 __M, __m128i __A)
6835 {
6836 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
6837 (__v8si)_mm256_broadcast_i32x4(__A),
6838 (__v8si)__O);
6839 }
6840
6841 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_broadcast_i32x4(__mmask8 __M,__m128i __A)6842 _mm256_maskz_broadcast_i32x4(__mmask8 __M, __m128i __A)
6843 {
6844 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
6845 (__v8si)_mm256_broadcast_i32x4(__A),
6846 (__v8si)_mm256_setzero_si256());
6847 }
6848
6849 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_broadcastsd_pd(__m256d __O,__mmask8 __M,__m128d __A)6850 _mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A)
6851 {
6852 return (__m256d)__builtin_ia32_selectpd_256(__M,
6853 (__v4df) _mm256_broadcastsd_pd(__A),
6854 (__v4df) __O);
6855 }
6856
6857 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_broadcastsd_pd(__mmask8 __M,__m128d __A)6858 _mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
6859 {
6860 return (__m256d)__builtin_ia32_selectpd_256(__M,
6861 (__v4df) _mm256_broadcastsd_pd(__A),
6862 (__v4df) _mm256_setzero_pd());
6863 }
6864
6865 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_broadcastss_ps(__m128 __O,__mmask8 __M,__m128 __A)6866 _mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A)
6867 {
6868 return (__m128)__builtin_ia32_selectps_128(__M,
6869 (__v4sf) _mm_broadcastss_ps(__A),
6870 (__v4sf) __O);
6871 }
6872
6873 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_broadcastss_ps(__mmask8 __M,__m128 __A)6874 _mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
6875 {
6876 return (__m128)__builtin_ia32_selectps_128(__M,
6877 (__v4sf) _mm_broadcastss_ps(__A),
6878 (__v4sf) _mm_setzero_ps());
6879 }
6880
6881 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_broadcastss_ps(__m256 __O,__mmask8 __M,__m128 __A)6882 _mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A)
6883 {
6884 return (__m256)__builtin_ia32_selectps_256(__M,
6885 (__v8sf) _mm256_broadcastss_ps(__A),
6886 (__v8sf) __O);
6887 }
6888
6889 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_broadcastss_ps(__mmask8 __M,__m128 __A)6890 _mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
6891 {
6892 return (__m256)__builtin_ia32_selectps_256(__M,
6893 (__v8sf) _mm256_broadcastss_ps(__A),
6894 (__v8sf) _mm256_setzero_ps());
6895 }
6896
6897 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_broadcastd_epi32(__m128i __O,__mmask8 __M,__m128i __A)6898 _mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
6899 {
6900 return (__m128i)__builtin_ia32_selectd_128(__M,
6901 (__v4si) _mm_broadcastd_epi32(__A),
6902 (__v4si) __O);
6903 }
6904
6905 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_broadcastd_epi32(__mmask8 __M,__m128i __A)6906 _mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
6907 {
6908 return (__m128i)__builtin_ia32_selectd_128(__M,
6909 (__v4si) _mm_broadcastd_epi32(__A),
6910 (__v4si) _mm_setzero_si128());
6911 }
6912
6913 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_broadcastd_epi32(__m256i __O,__mmask8 __M,__m128i __A)6914 _mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A)
6915 {
6916 return (__m256i)__builtin_ia32_selectd_256(__M,
6917 (__v8si) _mm256_broadcastd_epi32(__A),
6918 (__v8si) __O);
6919 }
6920
6921 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_broadcastd_epi32(__mmask8 __M,__m128i __A)6922 _mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
6923 {
6924 return (__m256i)__builtin_ia32_selectd_256(__M,
6925 (__v8si) _mm256_broadcastd_epi32(__A),
6926 (__v8si) _mm256_setzero_si256());
6927 }
6928
6929 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_broadcastq_epi64(__m128i __O,__mmask8 __M,__m128i __A)6930 _mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A)
6931 {
6932 return (__m128i)__builtin_ia32_selectq_128(__M,
6933 (__v2di) _mm_broadcastq_epi64(__A),
6934 (__v2di) __O);
6935 }
6936
6937 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)6938 _mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
6939 {
6940 return (__m128i)__builtin_ia32_selectq_128(__M,
6941 (__v2di) _mm_broadcastq_epi64(__A),
6942 (__v2di) _mm_setzero_si128());
6943 }
6944
6945 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_broadcastq_epi64(__m256i __O,__mmask8 __M,__m128i __A)6946 _mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A)
6947 {
6948 return (__m256i)__builtin_ia32_selectq_256(__M,
6949 (__v4di) _mm256_broadcastq_epi64(__A),
6950 (__v4di) __O);
6951 }
6952
6953 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)6954 _mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
6955 {
6956 return (__m256i)__builtin_ia32_selectq_256(__M,
6957 (__v4di) _mm256_broadcastq_epi64(__A),
6958 (__v4di) _mm256_setzero_si256());
6959 }
6960
6961 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtsepi32_epi8(__m128i __A)6962 _mm_cvtsepi32_epi8 (__m128i __A)
6963 {
6964 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
6965 (__v16qi)_mm_undefined_si128(),
6966 (__mmask8) -1);
6967 }
6968
6969 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtsepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)6970 _mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
6971 {
6972 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
6973 (__v16qi) __O, __M);
6974 }
6975
6976 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtsepi32_epi8(__mmask8 __M,__m128i __A)6977 _mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A)
6978 {
6979 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
6980 (__v16qi) _mm_setzero_si128 (),
6981 __M);
6982 }
6983
6984 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtsepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)6985 _mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
6986 {
6987 __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
6988 }
6989
6990 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtsepi32_epi8(__m256i __A)6991 _mm256_cvtsepi32_epi8 (__m256i __A)
6992 {
6993 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
6994 (__v16qi)_mm_undefined_si128(),
6995 (__mmask8) -1);
6996 }
6997
6998 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtsepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)6999 _mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7000 {
7001 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7002 (__v16qi) __O, __M);
7003 }
7004
7005 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtsepi32_epi8(__mmask8 __M,__m256i __A)7006 _mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A)
7007 {
7008 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7009 (__v16qi) _mm_setzero_si128 (),
7010 __M);
7011 }
7012
7013 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtsepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)7014 _mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7015 {
7016 __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
7017 }
7018
7019 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtsepi32_epi16(__m128i __A)7020 _mm_cvtsepi32_epi16 (__m128i __A)
7021 {
7022 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7023 (__v8hi)_mm_setzero_si128 (),
7024 (__mmask8) -1);
7025 }
7026
7027 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtsepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)7028 _mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7029 {
7030 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7031 (__v8hi)__O,
7032 __M);
7033 }
7034
7035 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtsepi32_epi16(__mmask8 __M,__m128i __A)7036 _mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A)
7037 {
7038 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7039 (__v8hi) _mm_setzero_si128 (),
7040 __M);
7041 }
7042
7043 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtsepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)7044 _mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7045 {
7046 __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7047 }
7048
7049 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtsepi32_epi16(__m256i __A)7050 _mm256_cvtsepi32_epi16 (__m256i __A)
7051 {
7052 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7053 (__v8hi)_mm_undefined_si128(),
7054 (__mmask8) -1);
7055 }
7056
7057 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtsepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)7058 _mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7059 {
7060 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7061 (__v8hi) __O, __M);
7062 }
7063
7064 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtsepi32_epi16(__mmask8 __M,__m256i __A)7065 _mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A)
7066 {
7067 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7068 (__v8hi) _mm_setzero_si128 (),
7069 __M);
7070 }
7071
7072 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtsepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)7073 _mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7074 {
7075 __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7076 }
7077
7078 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtsepi64_epi8(__m128i __A)7079 _mm_cvtsepi64_epi8 (__m128i __A)
7080 {
7081 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7082 (__v16qi)_mm_undefined_si128(),
7083 (__mmask8) -1);
7084 }
7085
7086 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)7087 _mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7088 {
7089 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7090 (__v16qi) __O, __M);
7091 }
7092
7093 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtsepi64_epi8(__mmask8 __M,__m128i __A)7094 _mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A)
7095 {
7096 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7097 (__v16qi) _mm_setzero_si128 (),
7098 __M);
7099 }
7100
7101 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)7102 _mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7103 {
7104 __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7105 }
7106
7107 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtsepi64_epi8(__m256i __A)7108 _mm256_cvtsepi64_epi8 (__m256i __A)
7109 {
7110 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7111 (__v16qi)_mm_undefined_si128(),
7112 (__mmask8) -1);
7113 }
7114
7115 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)7116 _mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7117 {
7118 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7119 (__v16qi) __O, __M);
7120 }
7121
7122 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtsepi64_epi8(__mmask8 __M,__m256i __A)7123 _mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A)
7124 {
7125 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7126 (__v16qi) _mm_setzero_si128 (),
7127 __M);
7128 }
7129
7130 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)7131 _mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7132 {
7133 __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7134 }
7135
7136 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtsepi64_epi32(__m128i __A)7137 _mm_cvtsepi64_epi32 (__m128i __A)
7138 {
7139 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7140 (__v4si)_mm_undefined_si128(),
7141 (__mmask8) -1);
7142 }
7143
7144 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtsepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)7145 _mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7146 {
7147 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7148 (__v4si) __O, __M);
7149 }
7150
7151 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtsepi64_epi32(__mmask8 __M,__m128i __A)7152 _mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A)
7153 {
7154 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7155 (__v4si) _mm_setzero_si128 (),
7156 __M);
7157 }
7158
7159 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)7160 _mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
7161 {
7162 __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
7163 }
7164
7165 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtsepi64_epi32(__m256i __A)7166 _mm256_cvtsepi64_epi32 (__m256i __A)
7167 {
7168 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7169 (__v4si)_mm_undefined_si128(),
7170 (__mmask8) -1);
7171 }
7172
7173 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtsepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)7174 _mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
7175 {
7176 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7177 (__v4si)__O,
7178 __M);
7179 }
7180
7181 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtsepi64_epi32(__mmask8 __M,__m256i __A)7182 _mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A)
7183 {
7184 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7185 (__v4si) _mm_setzero_si128 (),
7186 __M);
7187 }
7188
7189 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)7190 _mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
7191 {
7192 __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
7193 }
7194
7195 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtsepi64_epi16(__m128i __A)7196 _mm_cvtsepi64_epi16 (__m128i __A)
7197 {
7198 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7199 (__v8hi)_mm_undefined_si128(),
7200 (__mmask8) -1);
7201 }
7202
7203 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)7204 _mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7205 {
7206 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7207 (__v8hi) __O, __M);
7208 }
7209
7210 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtsepi64_epi16(__mmask8 __M,__m128i __A)7211 _mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A)
7212 {
7213 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7214 (__v8hi) _mm_setzero_si128 (),
7215 __M);
7216 }
7217
7218 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)7219 _mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7220 {
7221 __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
7222 }
7223
7224 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtsepi64_epi16(__m256i __A)7225 _mm256_cvtsepi64_epi16 (__m256i __A)
7226 {
7227 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7228 (__v8hi)_mm_undefined_si128(),
7229 (__mmask8) -1);
7230 }
7231
7232 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)7233 _mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7234 {
7235 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7236 (__v8hi) __O, __M);
7237 }
7238
7239 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtsepi64_epi16(__mmask8 __M,__m256i __A)7240 _mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A)
7241 {
7242 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7243 (__v8hi) _mm_setzero_si128 (),
7244 __M);
7245 }
7246
7247 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)7248 _mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7249 {
7250 __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
7251 }
7252
7253 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtusepi32_epi8(__m128i __A)7254 _mm_cvtusepi32_epi8 (__m128i __A)
7255 {
7256 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7257 (__v16qi)_mm_undefined_si128(),
7258 (__mmask8) -1);
7259 }
7260
7261 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtusepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)7262 _mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7263 {
7264 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7265 (__v16qi) __O,
7266 __M);
7267 }
7268
7269 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtusepi32_epi8(__mmask8 __M,__m128i __A)7270 _mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A)
7271 {
7272 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7273 (__v16qi) _mm_setzero_si128 (),
7274 __M);
7275 }
7276
7277 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtusepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)7278 _mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7279 {
7280 __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7281 }
7282
7283 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtusepi32_epi8(__m256i __A)7284 _mm256_cvtusepi32_epi8 (__m256i __A)
7285 {
7286 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7287 (__v16qi)_mm_undefined_si128(),
7288 (__mmask8) -1);
7289 }
7290
7291 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtusepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)7292 _mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7293 {
7294 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7295 (__v16qi) __O,
7296 __M);
7297 }
7298
7299 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtusepi32_epi8(__mmask8 __M,__m256i __A)7300 _mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A)
7301 {
7302 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7303 (__v16qi) _mm_setzero_si128 (),
7304 __M);
7305 }
7306
7307 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtusepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)7308 _mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7309 {
7310 __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M);
7311 }
7312
7313 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtusepi32_epi16(__m128i __A)7314 _mm_cvtusepi32_epi16 (__m128i __A)
7315 {
7316 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7317 (__v8hi)_mm_undefined_si128(),
7318 (__mmask8) -1);
7319 }
7320
7321 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtusepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)7322 _mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7323 {
7324 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7325 (__v8hi) __O, __M);
7326 }
7327
7328 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtusepi32_epi16(__mmask8 __M,__m128i __A)7329 _mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A)
7330 {
7331 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7332 (__v8hi) _mm_setzero_si128 (),
7333 __M);
7334 }
7335
7336 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtusepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)7337 _mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7338 {
7339 __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7340 }
7341
7342 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtusepi32_epi16(__m256i __A)7343 _mm256_cvtusepi32_epi16 (__m256i __A)
7344 {
7345 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7346 (__v8hi) _mm_undefined_si128(),
7347 (__mmask8) -1);
7348 }
7349
7350 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtusepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)7351 _mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7352 {
7353 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7354 (__v8hi) __O, __M);
7355 }
7356
7357 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtusepi32_epi16(__mmask8 __M,__m256i __A)7358 _mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A)
7359 {
7360 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7361 (__v8hi) _mm_setzero_si128 (),
7362 __M);
7363 }
7364
7365 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtusepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)7366 _mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7367 {
7368 __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7369 }
7370
7371 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtusepi64_epi8(__m128i __A)7372 _mm_cvtusepi64_epi8 (__m128i __A)
7373 {
7374 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7375 (__v16qi)_mm_undefined_si128(),
7376 (__mmask8) -1);
7377 }
7378
7379 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)7380 _mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7381 {
7382 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7383 (__v16qi) __O,
7384 __M);
7385 }
7386
7387 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtusepi64_epi8(__mmask8 __M,__m128i __A)7388 _mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A)
7389 {
7390 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7391 (__v16qi) _mm_setzero_si128 (),
7392 __M);
7393 }
7394
7395 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)7396 _mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7397 {
7398 __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7399 }
7400
7401 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtusepi64_epi8(__m256i __A)7402 _mm256_cvtusepi64_epi8 (__m256i __A)
7403 {
7404 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7405 (__v16qi)_mm_undefined_si128(),
7406 (__mmask8) -1);
7407 }
7408
7409 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)7410 _mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7411 {
7412 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7413 (__v16qi) __O,
7414 __M);
7415 }
7416
7417 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtusepi64_epi8(__mmask8 __M,__m256i __A)7418 _mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A)
7419 {
7420 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7421 (__v16qi) _mm_setzero_si128 (),
7422 __M);
7423 }
7424
7425 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)7426 _mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7427 {
7428 __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7429 }
7430
7431 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtusepi64_epi32(__m128i __A)7432 _mm_cvtusepi64_epi32 (__m128i __A)
7433 {
7434 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7435 (__v4si)_mm_undefined_si128(),
7436 (__mmask8) -1);
7437 }
7438
7439 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtusepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)7440 _mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7441 {
7442 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7443 (__v4si) __O, __M);
7444 }
7445
7446 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtusepi64_epi32(__mmask8 __M,__m128i __A)7447 _mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A)
7448 {
7449 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7450 (__v4si) _mm_setzero_si128 (),
7451 __M);
7452 }
7453
7454 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)7455 _mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
7456 {
7457 __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
7458 }
7459
7460 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtusepi64_epi32(__m256i __A)7461 _mm256_cvtusepi64_epi32 (__m256i __A)
7462 {
7463 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
7464 (__v4si)_mm_undefined_si128(),
7465 (__mmask8) -1);
7466 }
7467
7468 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtusepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)7469 _mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
7470 {
7471 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
7472 (__v4si) __O, __M);
7473 }
7474
7475 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtusepi64_epi32(__mmask8 __M,__m256i __A)7476 _mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A)
7477 {
7478 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
7479 (__v4si) _mm_setzero_si128 (),
7480 __M);
7481 }
7482
7483 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)7484 _mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
7485 {
7486 __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
7487 }
7488
7489 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtusepi64_epi16(__m128i __A)7490 _mm_cvtusepi64_epi16 (__m128i __A)
7491 {
7492 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
7493 (__v8hi)_mm_undefined_si128(),
7494 (__mmask8) -1);
7495 }
7496
7497 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)7498 _mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7499 {
7500 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
7501 (__v8hi) __O, __M);
7502 }
7503
7504 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtusepi64_epi16(__mmask8 __M,__m128i __A)7505 _mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A)
7506 {
7507 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
7508 (__v8hi) _mm_setzero_si128 (),
7509 __M);
7510 }
7511
7512 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)7513 _mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7514 {
7515 __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
7516 }
7517
7518 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtusepi64_epi16(__m256i __A)7519 _mm256_cvtusepi64_epi16 (__m256i __A)
7520 {
7521 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
7522 (__v8hi)_mm_undefined_si128(),
7523 (__mmask8) -1);
7524 }
7525
7526 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)7527 _mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7528 {
7529 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
7530 (__v8hi) __O, __M);
7531 }
7532
7533 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtusepi64_epi16(__mmask8 __M,__m256i __A)7534 _mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A)
7535 {
7536 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
7537 (__v8hi) _mm_setzero_si128 (),
7538 __M);
7539 }
7540
7541 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)7542 _mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7543 {
7544 __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
7545 }
7546
7547 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtepi32_epi8(__m128i __A)7548 _mm_cvtepi32_epi8 (__m128i __A)
7549 {
7550 return (__m128i)__builtin_shufflevector(
7551 __builtin_convertvector((__v4si)__A, __v4qi), (__v4qi){0, 0, 0, 0}, 0, 1,
7552 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7);
7553 }
7554
7555 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi32_epi8(__m128i __O,__mmask8 __M,__m128i __A)7556 _mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7557 {
7558 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
7559 (__v16qi) __O, __M);
7560 }
7561
7562 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepi32_epi8(__mmask8 __M,__m128i __A)7563 _mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A)
7564 {
7565 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
7566 (__v16qi)
7567 _mm_setzero_si128 (),
7568 __M);
7569 }
7570
7571 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi32_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)7572 _mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7573 {
7574 __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7575 }
7576
7577 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtepi32_epi8(__m256i __A)7578 _mm256_cvtepi32_epi8 (__m256i __A)
7579 {
7580 return (__m128i)__builtin_shufflevector(
7581 __builtin_convertvector((__v8si)__A, __v8qi),
7582 (__v8qi){0, 0, 0, 0, 0, 0, 0, 0}, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
7583 12, 13, 14, 15);
7584 }
7585
7586 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi32_epi8(__m128i __O,__mmask8 __M,__m256i __A)7587 _mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7588 {
7589 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
7590 (__v16qi) __O, __M);
7591 }
7592
7593 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi32_epi8(__mmask8 __M,__m256i __A)7594 _mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A)
7595 {
7596 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
7597 (__v16qi) _mm_setzero_si128 (),
7598 __M);
7599 }
7600
7601 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi32_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)7602 _mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7603 {
7604 __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
7605 }
7606
7607 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtepi32_epi16(__m128i __A)7608 _mm_cvtepi32_epi16 (__m128i __A)
7609 {
7610 return (__m128i)__builtin_shufflevector(
7611 __builtin_convertvector((__v4si)__A, __v4hi), (__v4hi){0, 0, 0, 0}, 0, 1,
7612 2, 3, 4, 5, 6, 7);
7613 }
7614
7615 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi32_epi16(__m128i __O,__mmask8 __M,__m128i __A)7616 _mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7617 {
7618 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
7619 (__v8hi) __O, __M);
7620 }
7621
7622 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepi32_epi16(__mmask8 __M,__m128i __A)7623 _mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A)
7624 {
7625 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
7626 (__v8hi) _mm_setzero_si128 (),
7627 __M);
7628 }
7629
7630 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi32_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)7631 _mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7632 {
7633 __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7634 }
7635
7636 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtepi32_epi16(__m256i __A)7637 _mm256_cvtepi32_epi16 (__m256i __A)
7638 {
7639 return (__m128i)__builtin_convertvector((__v8si)__A, __v8hi);
7640 }
7641
7642 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi32_epi16(__m128i __O,__mmask8 __M,__m256i __A)7643 _mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7644 {
7645 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
7646 (__v8hi) __O, __M);
7647 }
7648
7649 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi32_epi16(__mmask8 __M,__m256i __A)7650 _mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A)
7651 {
7652 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
7653 (__v8hi) _mm_setzero_si128 (),
7654 __M);
7655 }
7656
7657 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi32_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)7658 _mm256_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7659 {
7660 __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7661 }
7662
7663 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtepi64_epi8(__m128i __A)7664 _mm_cvtepi64_epi8 (__m128i __A)
7665 {
7666 return (__m128i)__builtin_shufflevector(
7667 __builtin_convertvector((__v2di)__A, __v2qi), (__v2qi){0, 0}, 0, 1, 2, 3,
7668 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3);
7669 }
7670
7671 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m128i __A)7672 _mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7673 {
7674 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
7675 (__v16qi) __O, __M);
7676 }
7677
7678 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepi64_epi8(__mmask8 __M,__m128i __A)7679 _mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A)
7680 {
7681 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
7682 (__v16qi) _mm_setzero_si128 (),
7683 __M);
7684 }
7685
7686 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)7687 _mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7688 {
7689 __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7690 }
7691
7692 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtepi64_epi8(__m256i __A)7693 _mm256_cvtepi64_epi8 (__m256i __A)
7694 {
7695 return (__m128i)__builtin_shufflevector(
7696 __builtin_convertvector((__v4di)__A, __v4qi), (__v4qi){0, 0, 0, 0}, 0, 1,
7697 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7);
7698 }
7699
7700 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m256i __A)7701 _mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7702 {
7703 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
7704 (__v16qi) __O, __M);
7705 }
7706
7707 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi64_epi8(__mmask8 __M,__m256i __A)7708 _mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A)
7709 {
7710 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
7711 (__v16qi) _mm_setzero_si128 (),
7712 __M);
7713 }
7714
7715 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)7716 _mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7717 {
7718 __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7719 }
7720
7721 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtepi64_epi32(__m128i __A)7722 _mm_cvtepi64_epi32 (__m128i __A)
7723 {
7724 return (__m128i)__builtin_shufflevector(
7725 __builtin_convertvector((__v2di)__A, __v2si), (__v2si){0, 0}, 0, 1, 2, 3);
7726 }
7727
7728 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi64_epi32(__m128i __O,__mmask8 __M,__m128i __A)7729 _mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7730 {
7731 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
7732 (__v4si) __O, __M);
7733 }
7734
7735 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepi64_epi32(__mmask8 __M,__m128i __A)7736 _mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A)
7737 {
7738 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
7739 (__v4si) _mm_setzero_si128 (),
7740 __M);
7741 }
7742
7743 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m128i __A)7744 _mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
7745 {
7746 __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
7747 }
7748
7749 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtepi64_epi32(__m256i __A)7750 _mm256_cvtepi64_epi32 (__m256i __A)
7751 {
7752 return (__m128i)__builtin_convertvector((__v4di)__A, __v4si);
7753 }
7754
7755 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi64_epi32(__m128i __O,__mmask8 __M,__m256i __A)7756 _mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
7757 {
7758 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
7759 (__v4si)_mm256_cvtepi64_epi32(__A),
7760 (__v4si)__O);
7761 }
7762
7763 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi64_epi32(__mmask8 __M,__m256i __A)7764 _mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A)
7765 {
7766 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
7767 (__v4si)_mm256_cvtepi64_epi32(__A),
7768 (__v4si)_mm_setzero_si128());
7769 }
7770
7771 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m256i __A)7772 _mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
7773 {
7774 __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
7775 }
7776
7777 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtepi64_epi16(__m128i __A)7778 _mm_cvtepi64_epi16 (__m128i __A)
7779 {
7780 return (__m128i)__builtin_shufflevector(
7781 __builtin_convertvector((__v2di)__A, __v2hi), (__v2hi){0, 0}, 0, 1, 2, 3,
7782 3, 3, 3, 3);
7783 }
7784
7785 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m128i __A)7786 _mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7787 {
7788 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
7789 (__v8hi)__O,
7790 __M);
7791 }
7792
7793 static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_maskz_cvtepi64_epi16(__mmask8 __M,__m128i __A)7794 _mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A)
7795 {
7796 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
7797 (__v8hi) _mm_setzero_si128 (),
7798 __M);
7799 }
7800
7801 static __inline__ void __DEFAULT_FN_ATTRS128
_mm_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m128i __A)7802 _mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7803 {
7804 __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
7805 }
7806
7807 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtepi64_epi16(__m256i __A)7808 _mm256_cvtepi64_epi16 (__m256i __A)
7809 {
7810 return (__m128i)__builtin_shufflevector(
7811 __builtin_convertvector((__v4di)__A, __v4hi), (__v4hi){0, 0, 0, 0}, 0, 1,
7812 2, 3, 4, 5, 6, 7);
7813 }
7814
7815 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m256i __A)7816 _mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7817 {
7818 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
7819 (__v8hi) __O, __M);
7820 }
7821
7822 static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi64_epi16(__mmask8 __M,__m256i __A)7823 _mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A)
7824 {
7825 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
7826 (__v8hi) _mm_setzero_si128 (),
7827 __M);
7828 }
7829
7830 static __inline__ void __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m256i __A)7831 _mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7832 {
7833 __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
7834 }
7835
7836 #define _mm256_extractf32x4_ps(A, imm) \
7837 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
7838 (int)(imm), \
7839 (__v4sf)_mm_undefined_ps(), \
7840 (__mmask8)-1)
7841
7842 #define _mm256_mask_extractf32x4_ps(W, U, A, imm) \
7843 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
7844 (int)(imm), \
7845 (__v4sf)(__m128)(W), \
7846 (__mmask8)(U))
7847
7848 #define _mm256_maskz_extractf32x4_ps(U, A, imm) \
7849 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
7850 (int)(imm), \
7851 (__v4sf)_mm_setzero_ps(), \
7852 (__mmask8)(U))
7853
7854 #define _mm256_extracti32x4_epi32(A, imm) \
7855 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
7856 (int)(imm), \
7857 (__v4si)_mm_undefined_si128(), \
7858 (__mmask8)-1)
7859
7860 #define _mm256_mask_extracti32x4_epi32(W, U, A, imm) \
7861 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
7862 (int)(imm), \
7863 (__v4si)(__m128i)(W), \
7864 (__mmask8)(U))
7865
7866 #define _mm256_maskz_extracti32x4_epi32(U, A, imm) \
7867 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
7868 (int)(imm), \
7869 (__v4si)_mm_setzero_si128(), \
7870 (__mmask8)(U))
7871
7872 #define _mm256_insertf32x4(A, B, imm) \
7873 (__m256)__builtin_ia32_insertf32x4_256((__v8sf)(__m256)(A), \
7874 (__v4sf)(__m128)(B), (int)(imm))
7875
7876 #define _mm256_mask_insertf32x4(W, U, A, B, imm) \
7877 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7878 (__v8sf)_mm256_insertf32x4((A), (B), (imm)), \
7879 (__v8sf)(__m256)(W))
7880
7881 #define _mm256_maskz_insertf32x4(U, A, B, imm) \
7882 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7883 (__v8sf)_mm256_insertf32x4((A), (B), (imm)), \
7884 (__v8sf)_mm256_setzero_ps())
7885
7886 #define _mm256_inserti32x4(A, B, imm) \
7887 (__m256i)__builtin_ia32_inserti32x4_256((__v8si)(__m256i)(A), \
7888 (__v4si)(__m128i)(B), (int)(imm))
7889
7890 #define _mm256_mask_inserti32x4(W, U, A, B, imm) \
7891 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
7892 (__v8si)_mm256_inserti32x4((A), (B), (imm)), \
7893 (__v8si)(__m256i)(W))
7894
7895 #define _mm256_maskz_inserti32x4(U, A, B, imm) \
7896 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
7897 (__v8si)_mm256_inserti32x4((A), (B), (imm)), \
7898 (__v8si)_mm256_setzero_si256())
7899
7900 #define _mm_getmant_pd(A, B, C) \
7901 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
7902 (int)(((C)<<2) | (B)), \
7903 (__v2df)_mm_setzero_pd(), \
7904 (__mmask8)-1)
7905
7906 #define _mm_mask_getmant_pd(W, U, A, B, C) \
7907 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
7908 (int)(((C)<<2) | (B)), \
7909 (__v2df)(__m128d)(W), \
7910 (__mmask8)(U))
7911
7912 #define _mm_maskz_getmant_pd(U, A, B, C) \
7913 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
7914 (int)(((C)<<2) | (B)), \
7915 (__v2df)_mm_setzero_pd(), \
7916 (__mmask8)(U))
7917
7918 #define _mm256_getmant_pd(A, B, C) \
7919 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
7920 (int)(((C)<<2) | (B)), \
7921 (__v4df)_mm256_setzero_pd(), \
7922 (__mmask8)-1)
7923
7924 #define _mm256_mask_getmant_pd(W, U, A, B, C) \
7925 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
7926 (int)(((C)<<2) | (B)), \
7927 (__v4df)(__m256d)(W), \
7928 (__mmask8)(U))
7929
7930 #define _mm256_maskz_getmant_pd(U, A, B, C) \
7931 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
7932 (int)(((C)<<2) | (B)), \
7933 (__v4df)_mm256_setzero_pd(), \
7934 (__mmask8)(U))
7935
7936 #define _mm_getmant_ps(A, B, C) \
7937 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
7938 (int)(((C)<<2) | (B)), \
7939 (__v4sf)_mm_setzero_ps(), \
7940 (__mmask8)-1)
7941
7942 #define _mm_mask_getmant_ps(W, U, A, B, C) \
7943 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
7944 (int)(((C)<<2) | (B)), \
7945 (__v4sf)(__m128)(W), \
7946 (__mmask8)(U))
7947
7948 #define _mm_maskz_getmant_ps(U, A, B, C) \
7949 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
7950 (int)(((C)<<2) | (B)), \
7951 (__v4sf)_mm_setzero_ps(), \
7952 (__mmask8)(U))
7953
7954 #define _mm256_getmant_ps(A, B, C) \
7955 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
7956 (int)(((C)<<2) | (B)), \
7957 (__v8sf)_mm256_setzero_ps(), \
7958 (__mmask8)-1)
7959
7960 #define _mm256_mask_getmant_ps(W, U, A, B, C) \
7961 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
7962 (int)(((C)<<2) | (B)), \
7963 (__v8sf)(__m256)(W), \
7964 (__mmask8)(U))
7965
7966 #define _mm256_maskz_getmant_ps(U, A, B, C) \
7967 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
7968 (int)(((C)<<2) | (B)), \
7969 (__v8sf)_mm256_setzero_ps(), \
7970 (__mmask8)(U))
7971
7972 #define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) \
7973 (__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \
7974 (void const *)(addr), \
7975 (__v2di)(__m128i)(index), \
7976 (__mmask8)(mask), (int)(scale))
7977
7978 #define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) \
7979 (__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \
7980 (void const *)(addr), \
7981 (__v2di)(__m128i)(index), \
7982 (__mmask8)(mask), (int)(scale))
7983
7984 #define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) \
7985 (__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \
7986 (void const *)(addr), \
7987 (__v4di)(__m256i)(index), \
7988 (__mmask8)(mask), (int)(scale))
7989
7990 #define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) \
7991 (__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \
7992 (void const *)(addr), \
7993 (__v4di)(__m256i)(index), \
7994 (__mmask8)(mask), (int)(scale))
7995
7996 #define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) \
7997 (__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \
7998 (void const *)(addr), \
7999 (__v2di)(__m128i)(index), \
8000 (__mmask8)(mask), (int)(scale))
8001
8002 #define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) \
8003 (__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \
8004 (void const *)(addr), \
8005 (__v2di)(__m128i)(index), \
8006 (__mmask8)(mask), (int)(scale))
8007
8008 #define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) \
8009 (__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \
8010 (void const *)(addr), \
8011 (__v4di)(__m256i)(index), \
8012 (__mmask8)(mask), (int)(scale))
8013
8014 #define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) \
8015 (__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \
8016 (void const *)(addr), \
8017 (__v4di)(__m256i)(index), \
8018 (__mmask8)(mask), (int)(scale))
8019
8020 #define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) \
8021 (__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \
8022 (void const *)(addr), \
8023 (__v4si)(__m128i)(index), \
8024 (__mmask8)(mask), (int)(scale))
8025
8026 #define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) \
8027 (__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \
8028 (void const *)(addr), \
8029 (__v4si)(__m128i)(index), \
8030 (__mmask8)(mask), (int)(scale))
8031
8032 #define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) \
8033 (__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \
8034 (void const *)(addr), \
8035 (__v4si)(__m128i)(index), \
8036 (__mmask8)(mask), (int)(scale))
8037
8038 #define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) \
8039 (__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \
8040 (void const *)(addr), \
8041 (__v4si)(__m128i)(index), \
8042 (__mmask8)(mask), (int)(scale))
8043
8044 #define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) \
8045 (__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \
8046 (void const *)(addr), \
8047 (__v4si)(__m128i)(index), \
8048 (__mmask8)(mask), (int)(scale))
8049
8050 #define _mm_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) \
8051 (__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \
8052 (void const *)(addr), \
8053 (__v4si)(__m128i)(index), \
8054 (__mmask8)(mask), (int)(scale))
8055
8056 #define _mm256_mmask_i32gather_ps(v1_old, mask, index, addr, scale) \
8057 (__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \
8058 (void const *)(addr), \
8059 (__v8si)(__m256i)(index), \
8060 (__mmask8)(mask), (int)(scale))
8061
8062 #define _mm256_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) \
8063 (__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \
8064 (void const *)(addr), \
8065 (__v8si)(__m256i)(index), \
8066 (__mmask8)(mask), (int)(scale))
8067
8068 #define _mm256_permutex_pd(X, C) \
8069 (__m256d)__builtin_ia32_permdf256((__v4df)(__m256d)(X), (int)(C))
8070
8071 #define _mm256_mask_permutex_pd(W, U, X, C) \
8072 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8073 (__v4df)_mm256_permutex_pd((X), (C)), \
8074 (__v4df)(__m256d)(W))
8075
8076 #define _mm256_maskz_permutex_pd(U, X, C) \
8077 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8078 (__v4df)_mm256_permutex_pd((X), (C)), \
8079 (__v4df)_mm256_setzero_pd())
8080
8081 #define _mm256_permutex_epi64(X, C) \
8082 (__m256i)__builtin_ia32_permdi256((__v4di)(__m256i)(X), (int)(C))
8083
8084 #define _mm256_mask_permutex_epi64(W, U, X, C) \
8085 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8086 (__v4di)_mm256_permutex_epi64((X), (C)), \
8087 (__v4di)(__m256i)(W))
8088
8089 #define _mm256_maskz_permutex_epi64(U, X, C) \
8090 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8091 (__v4di)_mm256_permutex_epi64((X), (C)), \
8092 (__v4di)_mm256_setzero_si256())
8093
8094 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_permutexvar_pd(__m256i __X,__m256d __Y)8095 _mm256_permutexvar_pd (__m256i __X, __m256d __Y)
8096 {
8097 return (__m256d)__builtin_ia32_permvardf256((__v4df)__Y, (__v4di)__X);
8098 }
8099
8100 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_permutexvar_pd(__m256d __W,__mmask8 __U,__m256i __X,__m256d __Y)8101 _mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X,
8102 __m256d __Y)
8103 {
8104 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
8105 (__v4df)_mm256_permutexvar_pd(__X, __Y),
8106 (__v4df)__W);
8107 }
8108
8109 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_permutexvar_pd(__mmask8 __U,__m256i __X,__m256d __Y)8110 _mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y)
8111 {
8112 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
8113 (__v4df)_mm256_permutexvar_pd(__X, __Y),
8114 (__v4df)_mm256_setzero_pd());
8115 }
8116
8117 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_permutexvar_epi64(__m256i __X,__m256i __Y)8118 _mm256_permutexvar_epi64 ( __m256i __X, __m256i __Y)
8119 {
8120 return (__m256i)__builtin_ia32_permvardi256((__v4di) __Y, (__v4di) __X);
8121 }
8122
8123 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_permutexvar_epi64(__mmask8 __M,__m256i __X,__m256i __Y)8124 _mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
8125 {
8126 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
8127 (__v4di)_mm256_permutexvar_epi64(__X, __Y),
8128 (__v4di)_mm256_setzero_si256());
8129 }
8130
8131 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_permutexvar_epi64(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)8132 _mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X,
8133 __m256i __Y)
8134 {
8135 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
8136 (__v4di)_mm256_permutexvar_epi64(__X, __Y),
8137 (__v4di)__W);
8138 }
8139
8140 #define _mm256_permutexvar_ps(A, B) _mm256_permutevar8x32_ps((B), (A))
8141
8142 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_permutexvar_ps(__m256 __W,__mmask8 __U,__m256i __X,__m256 __Y)8143 _mm256_mask_permutexvar_ps(__m256 __W, __mmask8 __U, __m256i __X, __m256 __Y)
8144 {
8145 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8146 (__v8sf)_mm256_permutexvar_ps(__X, __Y),
8147 (__v8sf)__W);
8148 }
8149
8150 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_permutexvar_ps(__mmask8 __U,__m256i __X,__m256 __Y)8151 _mm256_maskz_permutexvar_ps(__mmask8 __U, __m256i __X, __m256 __Y)
8152 {
8153 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8154 (__v8sf)_mm256_permutexvar_ps(__X, __Y),
8155 (__v8sf)_mm256_setzero_ps());
8156 }
8157
8158 #define _mm256_permutexvar_epi32(A, B) _mm256_permutevar8x32_epi32((B), (A))
8159
8160 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_mask_permutexvar_epi32(__m256i __W,__mmask8 __M,__m256i __X,__m256i __Y)8161 _mm256_mask_permutexvar_epi32(__m256i __W, __mmask8 __M, __m256i __X,
8162 __m256i __Y)
8163 {
8164 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
8165 (__v8si)_mm256_permutexvar_epi32(__X, __Y),
8166 (__v8si)__W);
8167 }
8168
8169 static __inline__ __m256i __DEFAULT_FN_ATTRS256
_mm256_maskz_permutexvar_epi32(__mmask8 __M,__m256i __X,__m256i __Y)8170 _mm256_maskz_permutexvar_epi32(__mmask8 __M, __m256i __X, __m256i __Y)
8171 {
8172 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
8173 (__v8si)_mm256_permutexvar_epi32(__X, __Y),
8174 (__v8si)_mm256_setzero_si256());
8175 }
8176
8177 #define _mm_alignr_epi32(A, B, imm) \
8178 (__m128i)__builtin_ia32_alignd128((__v4si)(__m128i)(A), \
8179 (__v4si)(__m128i)(B), (int)(imm))
8180
8181 #define _mm_mask_alignr_epi32(W, U, A, B, imm) \
8182 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8183 (__v4si)_mm_alignr_epi32((A), (B), (imm)), \
8184 (__v4si)(__m128i)(W))
8185
8186 #define _mm_maskz_alignr_epi32(U, A, B, imm) \
8187 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8188 (__v4si)_mm_alignr_epi32((A), (B), (imm)), \
8189 (__v4si)_mm_setzero_si128())
8190
8191 #define _mm256_alignr_epi32(A, B, imm) \
8192 (__m256i)__builtin_ia32_alignd256((__v8si)(__m256i)(A), \
8193 (__v8si)(__m256i)(B), (int)(imm))
8194
8195 #define _mm256_mask_alignr_epi32(W, U, A, B, imm) \
8196 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8197 (__v8si)_mm256_alignr_epi32((A), (B), (imm)), \
8198 (__v8si)(__m256i)(W))
8199
8200 #define _mm256_maskz_alignr_epi32(U, A, B, imm) \
8201 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8202 (__v8si)_mm256_alignr_epi32((A), (B), (imm)), \
8203 (__v8si)_mm256_setzero_si256())
8204
8205 #define _mm_alignr_epi64(A, B, imm) \
8206 (__m128i)__builtin_ia32_alignq128((__v2di)(__m128i)(A), \
8207 (__v2di)(__m128i)(B), (int)(imm))
8208
8209 #define _mm_mask_alignr_epi64(W, U, A, B, imm) \
8210 (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
8211 (__v2di)_mm_alignr_epi64((A), (B), (imm)), \
8212 (__v2di)(__m128i)(W))
8213
8214 #define _mm_maskz_alignr_epi64(U, A, B, imm) \
8215 (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
8216 (__v2di)_mm_alignr_epi64((A), (B), (imm)), \
8217 (__v2di)_mm_setzero_si128())
8218
8219 #define _mm256_alignr_epi64(A, B, imm) \
8220 (__m256i)__builtin_ia32_alignq256((__v4di)(__m256i)(A), \
8221 (__v4di)(__m256i)(B), (int)(imm))
8222
8223 #define _mm256_mask_alignr_epi64(W, U, A, B, imm) \
8224 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8225 (__v4di)_mm256_alignr_epi64((A), (B), (imm)), \
8226 (__v4di)(__m256i)(W))
8227
8228 #define _mm256_maskz_alignr_epi64(U, A, B, imm) \
8229 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8230 (__v4di)_mm256_alignr_epi64((A), (B), (imm)), \
8231 (__v4di)_mm256_setzero_si256())
8232
8233 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_movehdup_ps(__m128 __W,__mmask8 __U,__m128 __A)8234 _mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A)
8235 {
8236 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8237 (__v4sf)_mm_movehdup_ps(__A),
8238 (__v4sf)__W);
8239 }
8240
8241 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_movehdup_ps(__mmask8 __U,__m128 __A)8242 _mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A)
8243 {
8244 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8245 (__v4sf)_mm_movehdup_ps(__A),
8246 (__v4sf)_mm_setzero_ps());
8247 }
8248
8249 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_movehdup_ps(__m256 __W,__mmask8 __U,__m256 __A)8250 _mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A)
8251 {
8252 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8253 (__v8sf)_mm256_movehdup_ps(__A),
8254 (__v8sf)__W);
8255 }
8256
8257 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_movehdup_ps(__mmask8 __U,__m256 __A)8258 _mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A)
8259 {
8260 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8261 (__v8sf)_mm256_movehdup_ps(__A),
8262 (__v8sf)_mm256_setzero_ps());
8263 }
8264
8265 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_moveldup_ps(__m128 __W,__mmask8 __U,__m128 __A)8266 _mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A)
8267 {
8268 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8269 (__v4sf)_mm_moveldup_ps(__A),
8270 (__v4sf)__W);
8271 }
8272
8273 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_moveldup_ps(__mmask8 __U,__m128 __A)8274 _mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A)
8275 {
8276 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8277 (__v4sf)_mm_moveldup_ps(__A),
8278 (__v4sf)_mm_setzero_ps());
8279 }
8280
8281 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_moveldup_ps(__m256 __W,__mmask8 __U,__m256 __A)8282 _mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A)
8283 {
8284 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8285 (__v8sf)_mm256_moveldup_ps(__A),
8286 (__v8sf)__W);
8287 }
8288
8289 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_moveldup_ps(__mmask8 __U,__m256 __A)8290 _mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A)
8291 {
8292 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8293 (__v8sf)_mm256_moveldup_ps(__A),
8294 (__v8sf)_mm256_setzero_ps());
8295 }
8296
8297 #define _mm256_mask_shuffle_epi32(W, U, A, I) \
8298 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8299 (__v8si)_mm256_shuffle_epi32((A), (I)), \
8300 (__v8si)(__m256i)(W))
8301
8302 #define _mm256_maskz_shuffle_epi32(U, A, I) \
8303 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8304 (__v8si)_mm256_shuffle_epi32((A), (I)), \
8305 (__v8si)_mm256_setzero_si256())
8306
8307 #define _mm_mask_shuffle_epi32(W, U, A, I) \
8308 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8309 (__v4si)_mm_shuffle_epi32((A), (I)), \
8310 (__v4si)(__m128i)(W))
8311
8312 #define _mm_maskz_shuffle_epi32(U, A, I) \
8313 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8314 (__v4si)_mm_shuffle_epi32((A), (I)), \
8315 (__v4si)_mm_setzero_si128())
8316
8317 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_mask_mov_pd(__m128d __W,__mmask8 __U,__m128d __A)8318 _mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A)
8319 {
8320 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
8321 (__v2df) __A,
8322 (__v2df) __W);
8323 }
8324
8325 static __inline__ __m128d __DEFAULT_FN_ATTRS128
_mm_maskz_mov_pd(__mmask8 __U,__m128d __A)8326 _mm_maskz_mov_pd (__mmask8 __U, __m128d __A)
8327 {
8328 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
8329 (__v2df) __A,
8330 (__v2df) _mm_setzero_pd ());
8331 }
8332
8333 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_mask_mov_pd(__m256d __W,__mmask8 __U,__m256d __A)8334 _mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A)
8335 {
8336 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
8337 (__v4df) __A,
8338 (__v4df) __W);
8339 }
8340
8341 static __inline__ __m256d __DEFAULT_FN_ATTRS256
_mm256_maskz_mov_pd(__mmask8 __U,__m256d __A)8342 _mm256_maskz_mov_pd (__mmask8 __U, __m256d __A)
8343 {
8344 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
8345 (__v4df) __A,
8346 (__v4df) _mm256_setzero_pd ());
8347 }
8348
8349 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_mov_ps(__m128 __W,__mmask8 __U,__m128 __A)8350 _mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A)
8351 {
8352 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
8353 (__v4sf) __A,
8354 (__v4sf) __W);
8355 }
8356
8357 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_mov_ps(__mmask8 __U,__m128 __A)8358 _mm_maskz_mov_ps (__mmask8 __U, __m128 __A)
8359 {
8360 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
8361 (__v4sf) __A,
8362 (__v4sf) _mm_setzero_ps ());
8363 }
8364
8365 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_mov_ps(__m256 __W,__mmask8 __U,__m256 __A)8366 _mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A)
8367 {
8368 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
8369 (__v8sf) __A,
8370 (__v8sf) __W);
8371 }
8372
8373 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_mov_ps(__mmask8 __U,__m256 __A)8374 _mm256_maskz_mov_ps (__mmask8 __U, __m256 __A)
8375 {
8376 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
8377 (__v8sf) __A,
8378 (__v8sf) _mm256_setzero_ps ());
8379 }
8380
8381 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_mask_cvtph_ps(__m128 __W,__mmask8 __U,__m128i __A)8382 _mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A)
8383 {
8384 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
8385 (__v4sf) __W,
8386 (__mmask8) __U);
8387 }
8388
8389 static __inline__ __m128 __DEFAULT_FN_ATTRS128
_mm_maskz_cvtph_ps(__mmask8 __U,__m128i __A)8390 _mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
8391 {
8392 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
8393 (__v4sf)
8394 _mm_setzero_ps (),
8395 (__mmask8) __U);
8396 }
8397
8398 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_mask_cvtph_ps(__m256 __W,__mmask8 __U,__m128i __A)8399 _mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A)
8400 {
8401 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
8402 (__v8sf) __W,
8403 (__mmask8) __U);
8404 }
8405
8406 static __inline__ __m256 __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtph_ps(__mmask8 __U,__m128i __A)8407 _mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
8408 {
8409 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
8410 (__v8sf)
8411 _mm256_setzero_ps (),
8412 (__mmask8) __U);
8413 }
8414
8415 #define _mm_mask_cvt_roundps_ph(W, U, A, I) \
8416 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
8417 (__v8hi)(__m128i)(W), \
8418 (__mmask8)(U))
8419
8420 #define _mm_maskz_cvt_roundps_ph(U, A, I) \
8421 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
8422 (__v8hi)_mm_setzero_si128(), \
8423 (__mmask8)(U))
8424
8425 #define _mm_mask_cvtps_ph _mm_mask_cvt_roundps_ph
8426 #define _mm_maskz_cvtps_ph _mm_maskz_cvt_roundps_ph
8427
8428 #define _mm256_mask_cvt_roundps_ph(W, U, A, I) \
8429 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
8430 (__v8hi)(__m128i)(W), \
8431 (__mmask8)(U))
8432
8433 #define _mm256_maskz_cvt_roundps_ph(U, A, I) \
8434 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
8435 (__v8hi)_mm_setzero_si128(), \
8436 (__mmask8)(U))
8437
8438 #define _mm256_mask_cvtps_ph _mm256_mask_cvt_roundps_ph
8439 #define _mm256_maskz_cvtps_ph _mm256_maskz_cvt_roundps_ph
8440
8441
8442 #undef __DEFAULT_FN_ATTRS128
8443 #undef __DEFAULT_FN_ATTRS256
8444
8445 #endif /* __AVX512VLINTRIN_H */
8446