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