blob: b498535dd8fa765c32c90866aad7863c7bc90b8f [file] [log] [blame]
Robert Khasanovb9f3a912014-10-08 17:18:13 +00001/*===---- 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
Michael Kupersteine45af542015-06-30 13:36:19 +000031#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl")))
Eric Christopher4d1851682015-06-17 07:09:20 +000032
Craig Topper08181f72016-06-22 06:36:21 +000033/* Doesn't require avx512vl, used in avx512dqintrin.h */
34static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f")))
Michael Zuckerman38a27272016-02-22 09:05:41 +000035_mm_setzero_di(void) {
Craig Topper08181f72016-06-22 06:36:21 +000036 return (__m128i)(__v2di){ 0LL, 0LL};
Michael Zuckerman38a27272016-02-22 09:05:41 +000037}
38
Robert Khasanovb9f3a912014-10-08 17:18:13 +000039/* Integer compare */
40
Craig Topperfc074982016-06-13 04:15:11 +000041static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +000042_mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) {
43 return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b,
44 (__mmask8)-1);
45}
46
Craig Topperfc074982016-06-13 04:15:11 +000047static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +000048_mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
49 return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b,
50 __u);
51}
52
Michael Kupersteine45af542015-06-30 13:36:19 +000053static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000054_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) {
55 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0,
56 (__mmask8)-1);
57}
58
Michael Kupersteine45af542015-06-30 13:36:19 +000059static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000060_mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
61 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0,
62 __u);
63}
Robert Khasanovb9f3a912014-10-08 17:18:13 +000064
Craig Topperfc074982016-06-13 04:15:11 +000065static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +000066_mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) {
67 return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b,
68 (__mmask8)-1);
69}
70
Craig Topperfc074982016-06-13 04:15:11 +000071static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +000072_mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
73 return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b,
74 __u);
75}
76
Michael Kupersteine45af542015-06-30 13:36:19 +000077static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000078_mm256_cmpeq_epu32_mask(__m256i __a, __m256i __b) {
79 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0,
80 (__mmask8)-1);
81}
82
Michael Kupersteine45af542015-06-30 13:36:19 +000083static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000084_mm256_mask_cmpeq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
85 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0,
86 __u);
87}
88
Craig Topperfc074982016-06-13 04:15:11 +000089static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +000090_mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) {
91 return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b,
92 (__mmask8)-1);
93}
94
Craig Topperfc074982016-06-13 04:15:11 +000095static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +000096_mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
97 return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b,
98 __u);
99}
100
Michael Kupersteine45af542015-06-30 13:36:19 +0000101static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000102_mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) {
103 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0,
104 (__mmask8)-1);
105}
106
Michael Kupersteine45af542015-06-30 13:36:19 +0000107static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000108_mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
109 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0,
110 __u);
111}
Robert Khasanovb9f3a912014-10-08 17:18:13 +0000112
Craig Topperfc074982016-06-13 04:15:11 +0000113static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +0000114_mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) {
115 return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b,
116 (__mmask8)-1);
117}
118
Craig Topperfc074982016-06-13 04:15:11 +0000119static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +0000120_mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
121 return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b,
122 __u);
123}
124
Michael Kupersteine45af542015-06-30 13:36:19 +0000125static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000126_mm256_cmpeq_epu64_mask(__m256i __a, __m256i __b) {
127 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0,
128 (__mmask8)-1);
129}
130
Michael Kupersteine45af542015-06-30 13:36:19 +0000131static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000132_mm256_mask_cmpeq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
133 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0,
134 __u);
135}
136
137
Michael Kupersteine45af542015-06-30 13:36:19 +0000138static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000139_mm_cmpge_epi32_mask(__m128i __a, __m128i __b) {
140 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5,
141 (__mmask8)-1);
142}
143
Michael Kupersteine45af542015-06-30 13:36:19 +0000144static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000145_mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
146 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5,
147 __u);
148}
149
Michael Kupersteine45af542015-06-30 13:36:19 +0000150static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000151_mm_cmpge_epu32_mask(__m128i __a, __m128i __b) {
152 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5,
153 (__mmask8)-1);
154}
155
Michael Kupersteine45af542015-06-30 13:36:19 +0000156static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000157_mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
158 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5,
159 __u);
160}
161
Michael Kupersteine45af542015-06-30 13:36:19 +0000162static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000163_mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) {
164 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5,
165 (__mmask8)-1);
166}
167
Michael Kupersteine45af542015-06-30 13:36:19 +0000168static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000169_mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
170 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5,
171 __u);
172}
173
Michael Kupersteine45af542015-06-30 13:36:19 +0000174static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000175_mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) {
176 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5,
177 (__mmask8)-1);
178}
179
Michael Kupersteine45af542015-06-30 13:36:19 +0000180static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000181_mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
182 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5,
183 __u);
184}
185
Michael Kupersteine45af542015-06-30 13:36:19 +0000186static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000187_mm_cmpge_epi64_mask(__m128i __a, __m128i __b) {
188 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5,
189 (__mmask8)-1);
190}
191
Michael Kupersteine45af542015-06-30 13:36:19 +0000192static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000193_mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
194 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5,
195 __u);
196}
197
Michael Kupersteine45af542015-06-30 13:36:19 +0000198static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000199_mm_cmpge_epu64_mask(__m128i __a, __m128i __b) {
200 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5,
201 (__mmask8)-1);
202}
203
Michael Kupersteine45af542015-06-30 13:36:19 +0000204static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000205_mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
206 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5,
207 __u);
208}
209
Michael Kupersteine45af542015-06-30 13:36:19 +0000210static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000211_mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) {
212 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5,
213 (__mmask8)-1);
214}
215
Michael Kupersteine45af542015-06-30 13:36:19 +0000216static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000217_mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
218 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5,
219 __u);
220}
221
Michael Kupersteine45af542015-06-30 13:36:19 +0000222static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000223_mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) {
224 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5,
225 (__mmask8)-1);
226}
227
Michael Kupersteine45af542015-06-30 13:36:19 +0000228static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000229_mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
230 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5,
231 __u);
232}
233
Craig Topperfc074982016-06-13 04:15:11 +0000234static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000235_mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) {
236 return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b,
237 (__mmask8)-1);
238}
239
Craig Topperfc074982016-06-13 04:15:11 +0000240static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000241_mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
242 return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b,
243 __u);
244}
245
Michael Kupersteine45af542015-06-30 13:36:19 +0000246static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000247_mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) {
248 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6,
249 (__mmask8)-1);
250}
251
Michael Kupersteine45af542015-06-30 13:36:19 +0000252static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000253_mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
254 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6,
255 __u);
256}
257
Craig Topperfc074982016-06-13 04:15:11 +0000258static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000259_mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) {
260 return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b,
261 (__mmask8)-1);
262}
263
Craig Topperfc074982016-06-13 04:15:11 +0000264static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000265_mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
266 return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b,
267 __u);
268}
269
Michael Kupersteine45af542015-06-30 13:36:19 +0000270static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000271_mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) {
272 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6,
273 (__mmask8)-1);
274}
275
Michael Kupersteine45af542015-06-30 13:36:19 +0000276static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000277_mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
278 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6,
279 __u);
280}
281
Craig Topperfc074982016-06-13 04:15:11 +0000282static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000283_mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) {
284 return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b,
285 (__mmask8)-1);
286}
287
Craig Topperfc074982016-06-13 04:15:11 +0000288static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000289_mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
290 return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b,
291 __u);
292}
293
Michael Kupersteine45af542015-06-30 13:36:19 +0000294static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000295_mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) {
296 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6,
297 (__mmask8)-1);
298}
299
Michael Kupersteine45af542015-06-30 13:36:19 +0000300static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000301_mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
302 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6,
303 __u);
304}
305
Craig Topperfc074982016-06-13 04:15:11 +0000306static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000307_mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) {
308 return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b,
309 (__mmask8)-1);
310}
311
Craig Topperfc074982016-06-13 04:15:11 +0000312static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000313_mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
314 return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b,
315 __u);
316}
317
Michael Kupersteine45af542015-06-30 13:36:19 +0000318static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000319_mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) {
320 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6,
321 (__mmask8)-1);
322}
323
Michael Kupersteine45af542015-06-30 13:36:19 +0000324static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000325_mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
326 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6,
327 __u);
328}
329
Michael Kupersteine45af542015-06-30 13:36:19 +0000330static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000331_mm_cmple_epi32_mask(__m128i __a, __m128i __b) {
332 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2,
333 (__mmask8)-1);
334}
335
Michael Kupersteine45af542015-06-30 13:36:19 +0000336static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000337_mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
338 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2,
339 __u);
340}
341
Michael Kupersteine45af542015-06-30 13:36:19 +0000342static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000343_mm_cmple_epu32_mask(__m128i __a, __m128i __b) {
344 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2,
345 (__mmask8)-1);
346}
347
Michael Kupersteine45af542015-06-30 13:36:19 +0000348static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000349_mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
350 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2,
351 __u);
352}
353
Michael Kupersteine45af542015-06-30 13:36:19 +0000354static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000355_mm256_cmple_epi32_mask(__m256i __a, __m256i __b) {
356 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2,
357 (__mmask8)-1);
358}
359
Michael Kupersteine45af542015-06-30 13:36:19 +0000360static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000361_mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
362 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2,
363 __u);
364}
365
Michael Kupersteine45af542015-06-30 13:36:19 +0000366static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000367_mm256_cmple_epu32_mask(__m256i __a, __m256i __b) {
368 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2,
369 (__mmask8)-1);
370}
371
Michael Kupersteine45af542015-06-30 13:36:19 +0000372static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000373_mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
374 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2,
375 __u);
376}
377
Michael Kupersteine45af542015-06-30 13:36:19 +0000378static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000379_mm_cmple_epi64_mask(__m128i __a, __m128i __b) {
380 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2,
381 (__mmask8)-1);
382}
383
Michael Kupersteine45af542015-06-30 13:36:19 +0000384static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000385_mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
386 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2,
387 __u);
388}
389
Michael Kupersteine45af542015-06-30 13:36:19 +0000390static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000391_mm_cmple_epu64_mask(__m128i __a, __m128i __b) {
392 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2,
393 (__mmask8)-1);
394}
395
Michael Kupersteine45af542015-06-30 13:36:19 +0000396static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000397_mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
398 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2,
399 __u);
400}
401
Michael Kupersteine45af542015-06-30 13:36:19 +0000402static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000403_mm256_cmple_epi64_mask(__m256i __a, __m256i __b) {
404 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2,
405 (__mmask8)-1);
406}
407
Michael Kupersteine45af542015-06-30 13:36:19 +0000408static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000409_mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
410 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2,
411 __u);
412}
413
Michael Kupersteine45af542015-06-30 13:36:19 +0000414static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000415_mm256_cmple_epu64_mask(__m256i __a, __m256i __b) {
416 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2,
417 (__mmask8)-1);
418}
419
Michael Kupersteine45af542015-06-30 13:36:19 +0000420static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000421_mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
422 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2,
423 __u);
424}
425
Michael Kupersteine45af542015-06-30 13:36:19 +0000426static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000427_mm_cmplt_epi32_mask(__m128i __a, __m128i __b) {
428 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1,
429 (__mmask8)-1);
430}
431
Michael Kupersteine45af542015-06-30 13:36:19 +0000432static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000433_mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
434 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1,
435 __u);
436}
437
Michael Kupersteine45af542015-06-30 13:36:19 +0000438static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000439_mm_cmplt_epu32_mask(__m128i __a, __m128i __b) {
440 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1,
441 (__mmask8)-1);
442}
443
Michael Kupersteine45af542015-06-30 13:36:19 +0000444static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000445_mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
446 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1,
447 __u);
448}
449
Michael Kupersteine45af542015-06-30 13:36:19 +0000450static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000451_mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) {
452 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1,
453 (__mmask8)-1);
454}
455
Michael Kupersteine45af542015-06-30 13:36:19 +0000456static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000457_mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
458 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1,
459 __u);
460}
461
Michael Kupersteine45af542015-06-30 13:36:19 +0000462static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000463_mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) {
464 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1,
465 (__mmask8)-1);
466}
467
Michael Kupersteine45af542015-06-30 13:36:19 +0000468static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000469_mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
470 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1,
471 __u);
472}
473
Michael Kupersteine45af542015-06-30 13:36:19 +0000474static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000475_mm_cmplt_epi64_mask(__m128i __a, __m128i __b) {
476 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1,
477 (__mmask8)-1);
478}
479
Michael Kupersteine45af542015-06-30 13:36:19 +0000480static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000481_mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
482 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1,
483 __u);
484}
485
Michael Kupersteine45af542015-06-30 13:36:19 +0000486static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000487_mm_cmplt_epu64_mask(__m128i __a, __m128i __b) {
488 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1,
489 (__mmask8)-1);
490}
491
Michael Kupersteine45af542015-06-30 13:36:19 +0000492static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000493_mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
494 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1,
495 __u);
496}
497
Michael Kupersteine45af542015-06-30 13:36:19 +0000498static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000499_mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) {
500 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1,
501 (__mmask8)-1);
502}
503
Michael Kupersteine45af542015-06-30 13:36:19 +0000504static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000505_mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
506 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1,
507 __u);
508}
509
Michael Kupersteine45af542015-06-30 13:36:19 +0000510static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000511_mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) {
512 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1,
513 (__mmask8)-1);
514}
515
Michael Kupersteine45af542015-06-30 13:36:19 +0000516static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000517_mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
518 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1,
519 __u);
520}
521
Michael Kupersteine45af542015-06-30 13:36:19 +0000522static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000523_mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) {
524 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4,
525 (__mmask8)-1);
526}
527
Michael Kupersteine45af542015-06-30 13:36:19 +0000528static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000529_mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
530 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4,
531 __u);
532}
533
Michael Kupersteine45af542015-06-30 13:36:19 +0000534static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000535_mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) {
536 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4,
537 (__mmask8)-1);
538}
539
Michael Kupersteine45af542015-06-30 13:36:19 +0000540static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000541_mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
542 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4,
543 __u);
544}
545
Michael Kupersteine45af542015-06-30 13:36:19 +0000546static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000547_mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) {
548 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4,
549 (__mmask8)-1);
550}
551
Michael Kupersteine45af542015-06-30 13:36:19 +0000552static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000553_mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
554 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4,
555 __u);
556}
557
Michael Kupersteine45af542015-06-30 13:36:19 +0000558static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000559_mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) {
560 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4,
561 (__mmask8)-1);
562}
563
Michael Kupersteine45af542015-06-30 13:36:19 +0000564static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000565_mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
566 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4,
567 __u);
568}
569
Michael Kupersteine45af542015-06-30 13:36:19 +0000570static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000571_mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) {
572 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4,
573 (__mmask8)-1);
574}
575
Michael Kupersteine45af542015-06-30 13:36:19 +0000576static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000577_mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
578 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4,
579 __u);
580}
581
Michael Kupersteine45af542015-06-30 13:36:19 +0000582static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000583_mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) {
584 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4,
585 (__mmask8)-1);
586}
587
Michael Kupersteine45af542015-06-30 13:36:19 +0000588static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000589_mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
590 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4,
591 __u);
592}
593
Michael Kupersteine45af542015-06-30 13:36:19 +0000594static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000595_mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) {
596 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4,
597 (__mmask8)-1);
598}
599
Michael Kupersteine45af542015-06-30 13:36:19 +0000600static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000601_mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
602 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4,
603 __u);
604}
605
Michael Kupersteine45af542015-06-30 13:36:19 +0000606static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000607_mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) {
608 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4,
609 (__mmask8)-1);
610}
611
Michael Kupersteine45af542015-06-30 13:36:19 +0000612static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000613_mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
614 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4,
615 __u);
616}
617
Michael Kupersteine45af542015-06-30 13:36:19 +0000618static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000619_mm256_mask_add_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000620{
Craig Topper0e189762016-09-03 18:29:35 +0000621 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
622 (__v8si)_mm256_add_epi32(__A, __B),
623 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000624}
625
Michael Kupersteine45af542015-06-30 13:36:19 +0000626static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000627_mm256_maskz_add_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000628{
Craig Topper0e189762016-09-03 18:29:35 +0000629 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
630 (__v8si)_mm256_add_epi32(__A, __B),
631 (__v8si)_mm256_setzero_si256());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000632}
633
Michael Kupersteine45af542015-06-30 13:36:19 +0000634static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000635_mm256_mask_add_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000636{
Craig Topper0e189762016-09-03 18:29:35 +0000637 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
638 (__v4di)_mm256_add_epi64(__A, __B),
639 (__v4di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000640}
641
Michael Kupersteine45af542015-06-30 13:36:19 +0000642static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000643_mm256_maskz_add_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000644{
Craig Topper0e189762016-09-03 18:29:35 +0000645 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
646 (__v4di)_mm256_add_epi64(__A, __B),
647 (__v4di)_mm256_setzero_si256());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000648}
649
Michael Kupersteine45af542015-06-30 13:36:19 +0000650static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000651_mm256_mask_sub_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000652{
Craig Topper0e189762016-09-03 18:29:35 +0000653 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
654 (__v8si)_mm256_sub_epi32(__A, __B),
655 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000656}
657
Michael Kupersteine45af542015-06-30 13:36:19 +0000658static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000659_mm256_maskz_sub_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000660{
Craig Topper0e189762016-09-03 18:29:35 +0000661 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
662 (__v8si)_mm256_sub_epi32(__A, __B),
663 (__v8si)_mm256_setzero_si256());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000664}
665
Michael Kupersteine45af542015-06-30 13:36:19 +0000666static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000667_mm256_mask_sub_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000668{
Craig Topper0e189762016-09-03 18:29:35 +0000669 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
670 (__v4di)_mm256_sub_epi64(__A, __B),
671 (__v4di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000672}
673
Michael Kupersteine45af542015-06-30 13:36:19 +0000674static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000675_mm256_maskz_sub_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000676{
Craig Topper0e189762016-09-03 18:29:35 +0000677 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
678 (__v4di)_mm256_sub_epi64(__A, __B),
679 (__v4di)_mm256_setzero_si256());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000680}
681
Michael Kupersteine45af542015-06-30 13:36:19 +0000682static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000683_mm_mask_add_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000684{
Craig Topper0e189762016-09-03 18:29:35 +0000685 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
686 (__v4si)_mm_add_epi32(__A, __B),
687 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000688}
689
Michael Kupersteine45af542015-06-30 13:36:19 +0000690static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000691_mm_maskz_add_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000692{
Craig Topper0e189762016-09-03 18:29:35 +0000693 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
694 (__v4si)_mm_add_epi32(__A, __B),
695 (__v4si)_mm_setzero_si128());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000696}
697
Michael Kupersteine45af542015-06-30 13:36:19 +0000698static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000699_mm_mask_add_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000700{
Craig Topper0e189762016-09-03 18:29:35 +0000701 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
702 (__v2di)_mm_add_epi64(__A, __B),
703 (__v2di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000704}
705
Michael Kupersteine45af542015-06-30 13:36:19 +0000706static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000707_mm_maskz_add_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000708{
Craig Topper0e189762016-09-03 18:29:35 +0000709 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
710 (__v2di)_mm_add_epi64(__A, __B),
711 (__v2di)_mm_setzero_si128());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000712}
713
Michael Kupersteine45af542015-06-30 13:36:19 +0000714static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000715_mm_mask_sub_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000716{
Craig Topper0e189762016-09-03 18:29:35 +0000717 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
718 (__v4si)_mm_sub_epi32(__A, __B),
719 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000720}
721
Michael Kupersteine45af542015-06-30 13:36:19 +0000722static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000723_mm_maskz_sub_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000724{
Craig Topper0e189762016-09-03 18:29:35 +0000725 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
726 (__v4si)_mm_sub_epi32(__A, __B),
727 (__v4si)_mm_setzero_si128());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000728}
729
Michael Kupersteine45af542015-06-30 13:36:19 +0000730static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000731_mm_mask_sub_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000732{
Craig Topper0e189762016-09-03 18:29:35 +0000733 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
734 (__v2di)_mm_sub_epi64(__A, __B),
735 (__v2di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000736}
737
Michael Kupersteine45af542015-06-30 13:36:19 +0000738static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper0e189762016-09-03 18:29:35 +0000739_mm_maskz_sub_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000740{
Craig Topper0e189762016-09-03 18:29:35 +0000741 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
742 (__v2di)_mm_sub_epi64(__A, __B),
743 (__v2di)_mm_setzero_si128());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000744}
745
Michael Kupersteine45af542015-06-30 13:36:19 +0000746static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000747_mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
748 __m256i __Y)
749{
750 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
751 (__v8si) __Y,
752 (__v4di) __W, __M);
753}
754
Michael Kupersteine45af542015-06-30 13:36:19 +0000755static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000756_mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
757{
758 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
759 (__v8si) __Y,
760 (__v4di)
761 _mm256_setzero_si256 (),
762 __M);
763}
764
Michael Kupersteine45af542015-06-30 13:36:19 +0000765static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000766_mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X,
767 __m128i __Y)
768{
769 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
770 (__v4si) __Y,
771 (__v2di) __W, __M);
772}
773
Michael Kupersteine45af542015-06-30 13:36:19 +0000774static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000775_mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y)
776{
777 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
778 (__v4si) __Y,
779 (__v2di)
780 _mm_setzero_si128 (),
781 __M);
782}
783
Michael Kupersteine45af542015-06-30 13:36:19 +0000784static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000785_mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X,
786 __m256i __Y)
787{
788 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
789 (__v8si) __Y,
790 (__v4di) __W, __M);
791}
792
Michael Kupersteine45af542015-06-30 13:36:19 +0000793static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000794_mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y)
795{
796 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
797 (__v8si) __Y,
798 (__v4di)
799 _mm256_setzero_si256 (),
800 __M);
801}
802
Michael Kupersteine45af542015-06-30 13:36:19 +0000803static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000804_mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X,
805 __m128i __Y)
806{
807 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
808 (__v4si) __Y,
809 (__v2di) __W, __M);
810}
811
Michael Kupersteine45af542015-06-30 13:36:19 +0000812static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000813_mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y)
814{
815 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
816 (__v4si) __Y,
817 (__v2di)
818 _mm_setzero_si128 (),
819 __M);
820}
821
Michael Kupersteine45af542015-06-30 13:36:19 +0000822static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topperf43e4a12016-09-03 19:19:49 +0000823_mm256_maskz_mullo_epi32(__mmask8 __M, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000824{
Craig Topperf43e4a12016-09-03 19:19:49 +0000825 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
826 (__v8si)_mm256_mullo_epi32(__A, __B),
827 (__v8si)_mm256_setzero_si256());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000828}
829
Michael Kupersteine45af542015-06-30 13:36:19 +0000830static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topperf43e4a12016-09-03 19:19:49 +0000831_mm256_mask_mullo_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000832{
Craig Topperf43e4a12016-09-03 19:19:49 +0000833 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
834 (__v8si)_mm256_mullo_epi32(__A, __B),
835 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000836}
837
Michael Kupersteine45af542015-06-30 13:36:19 +0000838static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topperf43e4a12016-09-03 19:19:49 +0000839_mm_maskz_mullo_epi32(__mmask8 __M, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000840{
Craig Topperf43e4a12016-09-03 19:19:49 +0000841 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
842 (__v4si)_mm_mullo_epi32(__A, __B),
843 (__v4si)_mm_setzero_si128());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000844}
845
Michael Kupersteine45af542015-06-30 13:36:19 +0000846static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topperf43e4a12016-09-03 19:19:49 +0000847_mm_mask_mullo_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000848{
Craig Topperf43e4a12016-09-03 19:19:49 +0000849 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
850 (__v4si)_mm_mullo_epi32(__A, __B),
851 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000852}
853
Michael Kupersteine45af542015-06-30 13:36:19 +0000854static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000855_mm256_mask_and_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000856{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000857 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
858 (__v8si)_mm256_and_si256(__A, __B),
859 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000860}
861
Michael Kupersteine45af542015-06-30 13:36:19 +0000862static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000863_mm256_maskz_and_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000864{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000865 return (__m256i)_mm256_mask_and_epi32(_mm256_setzero_si256(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000866}
867
Michael Kupersteine45af542015-06-30 13:36:19 +0000868static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000869_mm_mask_and_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000870{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000871 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
872 (__v4si)_mm_and_si128(__A, __B),
873 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000874}
875
Michael Kupersteine45af542015-06-30 13:36:19 +0000876static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000877_mm_maskz_and_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000878{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000879 return (__m128i)_mm_mask_and_epi32(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000880}
881
Michael Kupersteine45af542015-06-30 13:36:19 +0000882static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000883_mm256_mask_andnot_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000884{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000885 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
886 (__v8si)_mm256_andnot_si256(__A, __B),
887 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000888}
889
Michael Kupersteine45af542015-06-30 13:36:19 +0000890static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000891_mm256_maskz_andnot_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000892{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000893 return (__m256i)_mm256_mask_andnot_epi32(_mm256_setzero_si256(),
894 __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000895}
896
Michael Kupersteine45af542015-06-30 13:36:19 +0000897static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000898_mm_mask_andnot_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000899{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000900 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
901 (__v4si)_mm_andnot_si128(__A, __B),
902 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000903}
904
Michael Kupersteine45af542015-06-30 13:36:19 +0000905static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000906_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
907{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000908 return (__m128i)_mm_mask_andnot_epi32(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000909}
910
Michael Kupersteine45af542015-06-30 13:36:19 +0000911static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000912_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000913{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000914 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
915 (__v8si)_mm256_or_si256(__A, __B),
916 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000917}
918
Michael Kupersteine45af542015-06-30 13:36:19 +0000919static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000920_mm256_maskz_or_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000921{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000922 return (__m256i)_mm256_mask_or_epi32(_mm256_setzero_si256(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000923}
924
Michael Kupersteine45af542015-06-30 13:36:19 +0000925static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000926_mm_mask_or_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000927{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000928 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
929 (__v4si)_mm_or_si128(__A, __B),
930 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000931}
932
Michael Kupersteine45af542015-06-30 13:36:19 +0000933static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000934_mm_maskz_or_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000935{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000936 return (__m128i)_mm_mask_or_epi32(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000937}
938
Michael Kupersteine45af542015-06-30 13:36:19 +0000939static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000940_mm256_mask_xor_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000941{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000942 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
943 (__v8si)_mm256_xor_si256(__A, __B),
944 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000945}
946
Michael Kupersteine45af542015-06-30 13:36:19 +0000947static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000948_mm256_maskz_xor_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000949{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000950 return (__m256i)_mm256_mask_xor_epi32(_mm256_setzero_si256(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000951}
952
Michael Kupersteine45af542015-06-30 13:36:19 +0000953static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000954_mm_mask_xor_epi32(__m128i __W, __mmask8 __U, __m128i __A,
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000955 __m128i __B)
956{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000957 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
958 (__v4si)_mm_xor_si128(__A, __B),
959 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000960}
961
Michael Kupersteine45af542015-06-30 13:36:19 +0000962static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000963_mm_maskz_xor_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000964{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000965 return (__m128i)_mm_mask_xor_epi32(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000966}
967
Michael Kupersteine45af542015-06-30 13:36:19 +0000968static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000969_mm256_mask_and_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000970{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000971 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
972 (__v4di)_mm256_and_si256(__A, __B),
973 (__v4di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000974}
975
Michael Kupersteine45af542015-06-30 13:36:19 +0000976static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000977_mm256_maskz_and_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000978{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000979 return (__m256i)_mm256_mask_and_epi64(_mm256_setzero_si256(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000980}
981
Michael Kupersteine45af542015-06-30 13:36:19 +0000982static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000983_mm_mask_and_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
984{
985 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
986 (__v2di)_mm_and_si128(__A, __B),
987 (__v2di)__W);
988}
989
990static __inline__ __m128i __DEFAULT_FN_ATTRS
991_mm_maskz_and_epi64(__mmask8 __U, __m128i __A, __m128i __B)
992{
993 return (__m128i)_mm_mask_and_epi64(_mm_setzero_si128(), __U, __A, __B);
994}
995
996static __inline__ __m256i __DEFAULT_FN_ATTRS
997_mm256_mask_andnot_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
998{
999 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
1000 (__v4di)_mm256_andnot_si256(__A, __B),
1001 (__v4di)__W);
1002}
1003
1004static __inline__ __m256i __DEFAULT_FN_ATTRS
1005_mm256_maskz_andnot_epi64(__mmask8 __U, __m256i __A, __m256i __B)
1006{
1007 return (__m256i)_mm256_mask_andnot_epi64(_mm256_setzero_si256(),
1008 __U, __A, __B);
1009}
1010
1011static __inline__ __m128i __DEFAULT_FN_ATTRS
1012_mm_mask_andnot_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1013{
1014 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
1015 (__v2di)_mm_andnot_si128(__A, __B),
1016 (__v2di)__W);
1017}
1018
1019static __inline__ __m128i __DEFAULT_FN_ATTRS
1020_mm_maskz_andnot_epi64(__mmask8 __U, __m128i __A, __m128i __B)
1021{
1022 return (__m128i)_mm_mask_andnot_epi64(_mm_setzero_si128(), __U, __A, __B);
1023}
1024
1025static __inline__ __m256i __DEFAULT_FN_ATTRS
1026_mm256_mask_or_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
1027{
1028 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
1029 (__v4di)_mm256_or_si256(__A, __B),
1030 (__v4di)__W);
1031}
1032
1033static __inline__ __m256i __DEFAULT_FN_ATTRS
1034_mm256_maskz_or_epi64(__mmask8 __U, __m256i __A, __m256i __B)
1035{
1036 return (__m256i)_mm256_mask_or_epi64(_mm256_setzero_si256(), __U, __A, __B);
1037}
1038
1039static __inline__ __m128i __DEFAULT_FN_ATTRS
1040_mm_mask_or_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1041{
1042 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
1043 (__v2di)_mm_or_si128(__A, __B),
1044 (__v2di)__W);
1045}
1046
1047static __inline__ __m128i __DEFAULT_FN_ATTRS
1048_mm_maskz_or_epi64(__mmask8 __U, __m128i __A, __m128i __B)
1049{
1050 return (__m128i)_mm_mask_or_epi64(_mm_setzero_si128(), __U, __A, __B);
1051}
1052
1053static __inline__ __m256i __DEFAULT_FN_ATTRS
1054_mm256_mask_xor_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
1055{
1056 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
1057 (__v4di)_mm256_xor_si256(__A, __B),
1058 (__v4di)__W);
1059}
1060
1061static __inline__ __m256i __DEFAULT_FN_ATTRS
1062_mm256_maskz_xor_epi64(__mmask8 __U, __m256i __A, __m256i __B)
1063{
1064 return (__m256i)_mm256_mask_xor_epi64(_mm256_setzero_si256(), __U, __A, __B);
1065}
1066
1067static __inline__ __m128i __DEFAULT_FN_ATTRS
1068_mm_mask_xor_epi64(__m128i __W, __mmask8 __U, __m128i __A,
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001069 __m128i __B)
1070{
Craig Topper4d61a3c2016-07-11 06:14:18 +00001071 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
1072 (__v2di)_mm_xor_si128(__A, __B),
1073 (__v2di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001074}
1075
Michael Kupersteine45af542015-06-30 13:36:19 +00001076static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +00001077_mm_maskz_xor_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001078{
Craig Topper4d61a3c2016-07-11 06:14:18 +00001079 return (__m128i)_mm_mask_xor_epi64(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001080}
1081
Craig Topper2f25a5a2015-01-26 08:11:49 +00001082#define _mm_cmp_epi32_mask(a, b, p) __extension__ ({ \
1083 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001084 (__v4si)(__m128i)(b), (int)(p), \
1085 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001086
1087#define _mm_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1088 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001089 (__v4si)(__m128i)(b), (int)(p), \
1090 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001091
1092#define _mm_cmp_epu32_mask(a, b, p) __extension__ ({ \
1093 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001094 (__v4si)(__m128i)(b), (int)(p), \
1095 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001096
1097#define _mm_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1098 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001099 (__v4si)(__m128i)(b), (int)(p), \
1100 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001101
1102#define _mm256_cmp_epi32_mask(a, b, p) __extension__ ({ \
1103 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001104 (__v8si)(__m256i)(b), (int)(p), \
1105 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001106
1107#define _mm256_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1108 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001109 (__v8si)(__m256i)(b), (int)(p), \
1110 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001111
1112#define _mm256_cmp_epu32_mask(a, b, p) __extension__ ({ \
1113 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001114 (__v8si)(__m256i)(b), (int)(p), \
1115 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001116
1117#define _mm256_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1118 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001119 (__v8si)(__m256i)(b), (int)(p), \
1120 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001121
1122#define _mm_cmp_epi64_mask(a, b, p) __extension__ ({ \
1123 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001124 (__v2di)(__m128i)(b), (int)(p), \
1125 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001126
1127#define _mm_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1128 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001129 (__v2di)(__m128i)(b), (int)(p), \
1130 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001131
1132#define _mm_cmp_epu64_mask(a, b, p) __extension__ ({ \
1133 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001134 (__v2di)(__m128i)(b), (int)(p), \
1135 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001136
1137#define _mm_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1138 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001139 (__v2di)(__m128i)(b), (int)(p), \
1140 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001141
1142#define _mm256_cmp_epi64_mask(a, b, p) __extension__ ({ \
1143 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001144 (__v4di)(__m256i)(b), (int)(p), \
1145 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001146
1147#define _mm256_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1148 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001149 (__v4di)(__m256i)(b), (int)(p), \
1150 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001151
1152#define _mm256_cmp_epu64_mask(a, b, p) __extension__ ({ \
1153 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001154 (__v4di)(__m256i)(b), (int)(p), \
1155 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001156
1157#define _mm256_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1158 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001159 (__v4di)(__m256i)(b), (int)(p), \
1160 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001161
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001162#define _mm256_cmp_ps_mask(a, b, p) __extension__ ({ \
1163 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001164 (__v8sf)(__m256)(b), (int)(p), \
1165 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001166
1167#define _mm256_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
1168 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001169 (__v8sf)(__m256)(b), (int)(p), \
1170 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001171
1172#define _mm256_cmp_pd_mask(a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001173 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
1174 (__v4df)(__m256d)(b), (int)(p), \
1175 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001176
1177#define _mm256_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001178 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
1179 (__v4df)(__m256d)(b), (int)(p), \
1180 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001181
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001182#define _mm_cmp_ps_mask(a, b, p) __extension__ ({ \
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001183 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001184 (__v4sf)(__m128)(b), (int)(p), \
1185 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001186
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001187#define _mm_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001188 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001189 (__v4sf)(__m128)(b), (int)(p), \
1190 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001191
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001192#define _mm_cmp_pd_mask(a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001193 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
1194 (__v2df)(__m128d)(b), (int)(p), \
1195 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001196
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001197#define _mm_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001198 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
1199 (__v2df)(__m128d)(b), (int)(p), \
1200 (__mmask8)(m)); })
Eric Christopher4d1851682015-06-17 07:09:20 +00001201
Michael Kupersteine45af542015-06-30 13:36:19 +00001202static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001203_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1204{
1205 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1206 (__v2df) __B,
1207 (__v2df) __C,
1208 (__mmask8) __U);
1209}
1210
Michael Kupersteine45af542015-06-30 13:36:19 +00001211static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001212_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1213{
1214 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 ((__v2df) __A,
1215 (__v2df) __B,
1216 (__v2df) __C,
1217 (__mmask8) __U);
1218}
1219
Michael Kupersteine45af542015-06-30 13:36:19 +00001220static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001221_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1222{
1223 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1224 (__v2df) __B,
1225 (__v2df) __C,
1226 (__mmask8) __U);
1227}
1228
Michael Kupersteine45af542015-06-30 13:36:19 +00001229static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001230_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1231{
1232 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1233 (__v2df) __B,
1234 -(__v2df) __C,
1235 (__mmask8) __U);
1236}
1237
Michael Kupersteine45af542015-06-30 13:36:19 +00001238static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001239_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1240{
1241 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1242 (__v2df) __B,
1243 -(__v2df) __C,
1244 (__mmask8) __U);
1245}
1246
Michael Kupersteine45af542015-06-30 13:36:19 +00001247static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001248_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1249{
1250 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 (-(__v2df) __A,
1251 (__v2df) __B,
1252 (__v2df) __C,
1253 (__mmask8) __U);
1254}
1255
Michael Kupersteine45af542015-06-30 13:36:19 +00001256static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001257_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1258{
1259 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1260 (__v2df) __B,
1261 (__v2df) __C,
1262 (__mmask8) __U);
1263}
1264
Michael Kupersteine45af542015-06-30 13:36:19 +00001265static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001266_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1267{
1268 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1269 (__v2df) __B,
1270 -(__v2df) __C,
1271 (__mmask8) __U);
1272}
1273
Michael Kupersteine45af542015-06-30 13:36:19 +00001274static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001275_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1276{
1277 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1278 (__v4df) __B,
1279 (__v4df) __C,
1280 (__mmask8) __U);
1281}
1282
Michael Kupersteine45af542015-06-30 13:36:19 +00001283static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001284_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1285{
1286 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 ((__v4df) __A,
1287 (__v4df) __B,
1288 (__v4df) __C,
1289 (__mmask8) __U);
1290}
1291
Michael Kupersteine45af542015-06-30 13:36:19 +00001292static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001293_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1294{
1295 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1296 (__v4df) __B,
1297 (__v4df) __C,
1298 (__mmask8) __U);
1299}
1300
Michael Kupersteine45af542015-06-30 13:36:19 +00001301static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001302_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1303{
1304 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1305 (__v4df) __B,
1306 -(__v4df) __C,
1307 (__mmask8) __U);
1308}
1309
Michael Kupersteine45af542015-06-30 13:36:19 +00001310static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001311_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1312{
1313 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1314 (__v4df) __B,
1315 -(__v4df) __C,
1316 (__mmask8) __U);
1317}
1318
Michael Kupersteine45af542015-06-30 13:36:19 +00001319static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001320_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1321{
1322 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 (-(__v4df) __A,
1323 (__v4df) __B,
1324 (__v4df) __C,
1325 (__mmask8) __U);
1326}
1327
Michael Kupersteine45af542015-06-30 13:36:19 +00001328static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001329_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1330{
1331 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1332 (__v4df) __B,
1333 (__v4df) __C,
1334 (__mmask8) __U);
1335}
1336
Michael Kupersteine45af542015-06-30 13:36:19 +00001337static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001338_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1339{
1340 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1341 (__v4df) __B,
1342 -(__v4df) __C,
1343 (__mmask8) __U);
1344}
1345
Michael Kupersteine45af542015-06-30 13:36:19 +00001346static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001347_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1348{
1349 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1350 (__v4sf) __B,
1351 (__v4sf) __C,
1352 (__mmask8) __U);
1353}
1354
Michael Kupersteine45af542015-06-30 13:36:19 +00001355static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001356_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1357{
1358 return (__m128) __builtin_ia32_vfmaddps128_mask3 ((__v4sf) __A,
1359 (__v4sf) __B,
1360 (__v4sf) __C,
1361 (__mmask8) __U);
1362}
1363
Michael Kupersteine45af542015-06-30 13:36:19 +00001364static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001365_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1366{
1367 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1368 (__v4sf) __B,
1369 (__v4sf) __C,
1370 (__mmask8) __U);
1371}
1372
Michael Kupersteine45af542015-06-30 13:36:19 +00001373static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001374_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1375{
1376 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1377 (__v4sf) __B,
1378 -(__v4sf) __C,
1379 (__mmask8) __U);
1380}
1381
Michael Kupersteine45af542015-06-30 13:36:19 +00001382static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001383_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1384{
1385 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1386 (__v4sf) __B,
1387 -(__v4sf) __C,
1388 (__mmask8) __U);
1389}
1390
Michael Kupersteine45af542015-06-30 13:36:19 +00001391static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001392_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1393{
1394 return (__m128) __builtin_ia32_vfmaddps128_mask3 (-(__v4sf) __A,
1395 (__v4sf) __B,
1396 (__v4sf) __C,
1397 (__mmask8) __U);
1398}
1399
Michael Kupersteine45af542015-06-30 13:36:19 +00001400static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001401_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1402{
1403 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1404 (__v4sf) __B,
1405 (__v4sf) __C,
1406 (__mmask8) __U);
1407}
1408
Michael Kupersteine45af542015-06-30 13:36:19 +00001409static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001410_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1411{
1412 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1413 (__v4sf) __B,
1414 -(__v4sf) __C,
1415 (__mmask8) __U);
1416}
1417
Michael Kupersteine45af542015-06-30 13:36:19 +00001418static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001419_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1420{
1421 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1422 (__v8sf) __B,
1423 (__v8sf) __C,
1424 (__mmask8) __U);
1425}
1426
Michael Kupersteine45af542015-06-30 13:36:19 +00001427static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001428_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1429{
1430 return (__m256) __builtin_ia32_vfmaddps256_mask3 ((__v8sf) __A,
1431 (__v8sf) __B,
1432 (__v8sf) __C,
1433 (__mmask8) __U);
1434}
1435
Michael Kupersteine45af542015-06-30 13:36:19 +00001436static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001437_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1438{
1439 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1440 (__v8sf) __B,
1441 (__v8sf) __C,
1442 (__mmask8) __U);
1443}
1444
Michael Kupersteine45af542015-06-30 13:36:19 +00001445static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001446_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1447{
1448 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1449 (__v8sf) __B,
1450 -(__v8sf) __C,
1451 (__mmask8) __U);
1452}
1453
Michael Kupersteine45af542015-06-30 13:36:19 +00001454static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001455_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1456{
1457 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1458 (__v8sf) __B,
1459 -(__v8sf) __C,
1460 (__mmask8) __U);
1461}
1462
Michael Kupersteine45af542015-06-30 13:36:19 +00001463static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001464_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1465{
1466 return (__m256) __builtin_ia32_vfmaddps256_mask3 (-(__v8sf) __A,
1467 (__v8sf) __B,
1468 (__v8sf) __C,
1469 (__mmask8) __U);
1470}
1471
Michael Kupersteine45af542015-06-30 13:36:19 +00001472static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001473_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1474{
1475 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1476 (__v8sf) __B,
1477 (__v8sf) __C,
1478 (__mmask8) __U);
1479}
1480
Michael Kupersteine45af542015-06-30 13:36:19 +00001481static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001482_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1483{
1484 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1485 (__v8sf) __B,
1486 -(__v8sf) __C,
1487 (__mmask8) __U);
1488}
1489
Michael Kupersteine45af542015-06-30 13:36:19 +00001490static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001491_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1492{
1493 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1494 (__v2df) __B,
1495 (__v2df) __C,
1496 (__mmask8) __U);
1497}
1498
Michael Kupersteine45af542015-06-30 13:36:19 +00001499static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001500_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1501{
1502 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask3 ((__v2df) __A,
1503 (__v2df) __B,
1504 (__v2df) __C,
1505 (__mmask8)
1506 __U);
1507}
1508
Michael Kupersteine45af542015-06-30 13:36:19 +00001509static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001510_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1511{
1512 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1513 (__v2df) __B,
1514 (__v2df) __C,
1515 (__mmask8)
1516 __U);
1517}
1518
Michael Kupersteine45af542015-06-30 13:36:19 +00001519static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001520_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1521{
1522 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1523 (__v2df) __B,
1524 -(__v2df) __C,
1525 (__mmask8) __U);
1526}
1527
Michael Kupersteine45af542015-06-30 13:36:19 +00001528static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001529_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1530{
1531 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1532 (__v2df) __B,
1533 -(__v2df) __C,
1534 (__mmask8)
1535 __U);
1536}
1537
Michael Kupersteine45af542015-06-30 13:36:19 +00001538static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001539_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1540{
1541 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1542 (__v4df) __B,
1543 (__v4df) __C,
1544 (__mmask8) __U);
1545}
1546
Michael Kupersteine45af542015-06-30 13:36:19 +00001547static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001548_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1549{
1550 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask3 ((__v4df) __A,
1551 (__v4df) __B,
1552 (__v4df) __C,
1553 (__mmask8)
1554 __U);
1555}
1556
Michael Kupersteine45af542015-06-30 13:36:19 +00001557static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001558_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1559{
1560 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1561 (__v4df) __B,
1562 (__v4df) __C,
1563 (__mmask8)
1564 __U);
1565}
1566
Michael Kupersteine45af542015-06-30 13:36:19 +00001567static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001568_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1569{
1570 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1571 (__v4df) __B,
1572 -(__v4df) __C,
1573 (__mmask8) __U);
1574}
1575
Michael Kupersteine45af542015-06-30 13:36:19 +00001576static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001577_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1578{
1579 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1580 (__v4df) __B,
1581 -(__v4df) __C,
1582 (__mmask8)
1583 __U);
1584}
1585
Michael Kupersteine45af542015-06-30 13:36:19 +00001586static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001587_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1588{
1589 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1590 (__v4sf) __B,
1591 (__v4sf) __C,
1592 (__mmask8) __U);
1593}
1594
Michael Kupersteine45af542015-06-30 13:36:19 +00001595static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001596_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1597{
1598 return (__m128) __builtin_ia32_vfmaddsubps128_mask3 ((__v4sf) __A,
1599 (__v4sf) __B,
1600 (__v4sf) __C,
1601 (__mmask8) __U);
1602}
1603
Michael Kupersteine45af542015-06-30 13:36:19 +00001604static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001605_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1606{
1607 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1608 (__v4sf) __B,
1609 (__v4sf) __C,
1610 (__mmask8) __U);
1611}
1612
Michael Kupersteine45af542015-06-30 13:36:19 +00001613static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001614_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1615{
1616 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1617 (__v4sf) __B,
1618 -(__v4sf) __C,
1619 (__mmask8) __U);
1620}
1621
Michael Kupersteine45af542015-06-30 13:36:19 +00001622static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001623_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1624{
1625 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1626 (__v4sf) __B,
1627 -(__v4sf) __C,
1628 (__mmask8) __U);
1629}
1630
Michael Kupersteine45af542015-06-30 13:36:19 +00001631static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001632_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B,
1633 __m256 __C)
1634{
1635 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1636 (__v8sf) __B,
1637 (__v8sf) __C,
1638 (__mmask8) __U);
1639}
1640
Michael Kupersteine45af542015-06-30 13:36:19 +00001641static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001642_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1643{
1644 return (__m256) __builtin_ia32_vfmaddsubps256_mask3 ((__v8sf) __A,
1645 (__v8sf) __B,
1646 (__v8sf) __C,
1647 (__mmask8) __U);
1648}
1649
Michael Kupersteine45af542015-06-30 13:36:19 +00001650static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001651_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1652{
1653 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1654 (__v8sf) __B,
1655 (__v8sf) __C,
1656 (__mmask8) __U);
1657}
1658
Michael Kupersteine45af542015-06-30 13:36:19 +00001659static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001660_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1661{
1662 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1663 (__v8sf) __B,
1664 -(__v8sf) __C,
1665 (__mmask8) __U);
1666}
1667
Michael Kupersteine45af542015-06-30 13:36:19 +00001668static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001669_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1670{
1671 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1672 (__v8sf) __B,
1673 -(__v8sf) __C,
1674 (__mmask8) __U);
1675}
1676
Michael Kupersteine45af542015-06-30 13:36:19 +00001677static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001678_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1679{
1680 return (__m128d) __builtin_ia32_vfmsubpd128_mask3 ((__v2df) __A,
1681 (__v2df) __B,
1682 (__v2df) __C,
1683 (__mmask8) __U);
1684}
1685
Michael Kupersteine45af542015-06-30 13:36:19 +00001686static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001687_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1688{
1689 return (__m256d) __builtin_ia32_vfmsubpd256_mask3 ((__v4df) __A,
1690 (__v4df) __B,
1691 (__v4df) __C,
1692 (__mmask8) __U);
1693}
1694
Michael Kupersteine45af542015-06-30 13:36:19 +00001695static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001696_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1697{
1698 return (__m128) __builtin_ia32_vfmsubps128_mask3 ((__v4sf) __A,
1699 (__v4sf) __B,
1700 (__v4sf) __C,
1701 (__mmask8) __U);
1702}
1703
Michael Kupersteine45af542015-06-30 13:36:19 +00001704static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001705_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1706{
1707 return (__m256) __builtin_ia32_vfmsubps256_mask3 ((__v8sf) __A,
1708 (__v8sf) __B,
1709 (__v8sf) __C,
1710 (__mmask8) __U);
1711}
1712
Michael Kupersteine45af542015-06-30 13:36:19 +00001713static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001714_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1715{
1716 return (__m128d) __builtin_ia32_vfmsubaddpd128_mask3 ((__v2df) __A,
1717 (__v2df) __B,
1718 (__v2df) __C,
1719 (__mmask8)
1720 __U);
1721}
1722
Michael Kupersteine45af542015-06-30 13:36:19 +00001723static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001724_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1725{
1726 return (__m256d) __builtin_ia32_vfmsubaddpd256_mask3 ((__v4df) __A,
1727 (__v4df) __B,
1728 (__v4df) __C,
1729 (__mmask8)
1730 __U);
1731}
1732
Michael Kupersteine45af542015-06-30 13:36:19 +00001733static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001734_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1735{
1736 return (__m128) __builtin_ia32_vfmsubaddps128_mask3 ((__v4sf) __A,
1737 (__v4sf) __B,
1738 (__v4sf) __C,
1739 (__mmask8) __U);
1740}
1741
Michael Kupersteine45af542015-06-30 13:36:19 +00001742static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001743_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1744{
1745 return (__m256) __builtin_ia32_vfmsubaddps256_mask3 ((__v8sf) __A,
1746 (__v8sf) __B,
1747 (__v8sf) __C,
1748 (__mmask8) __U);
1749}
1750
Michael Kupersteine45af542015-06-30 13:36:19 +00001751static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001752_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1753{
1754 return (__m128d) __builtin_ia32_vfnmaddpd128_mask ((__v2df) __A,
1755 (__v2df) __B,
1756 (__v2df) __C,
1757 (__mmask8) __U);
1758}
1759
Michael Kupersteine45af542015-06-30 13:36:19 +00001760static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001761_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1762{
1763 return (__m256d) __builtin_ia32_vfnmaddpd256_mask ((__v4df) __A,
1764 (__v4df) __B,
1765 (__v4df) __C,
1766 (__mmask8) __U);
1767}
1768
Michael Kupersteine45af542015-06-30 13:36:19 +00001769static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001770_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1771{
1772 return (__m128) __builtin_ia32_vfnmaddps128_mask ((__v4sf) __A,
1773 (__v4sf) __B,
1774 (__v4sf) __C,
1775 (__mmask8) __U);
1776}
1777
Michael Kupersteine45af542015-06-30 13:36:19 +00001778static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001779_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1780{
1781 return (__m256) __builtin_ia32_vfnmaddps256_mask ((__v8sf) __A,
1782 (__v8sf) __B,
1783 (__v8sf) __C,
1784 (__mmask8) __U);
1785}
1786
Michael Kupersteine45af542015-06-30 13:36:19 +00001787static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001788_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1789{
1790 return (__m128d) __builtin_ia32_vfnmsubpd128_mask ((__v2df) __A,
1791 (__v2df) __B,
1792 (__v2df) __C,
1793 (__mmask8) __U);
1794}
1795
Michael Kupersteine45af542015-06-30 13:36:19 +00001796static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001797_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1798{
1799 return (__m128d) __builtin_ia32_vfnmsubpd128_mask3 ((__v2df) __A,
1800 (__v2df) __B,
1801 (__v2df) __C,
1802 (__mmask8) __U);
1803}
1804
Michael Kupersteine45af542015-06-30 13:36:19 +00001805static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001806_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1807{
1808 return (__m256d) __builtin_ia32_vfnmsubpd256_mask ((__v4df) __A,
1809 (__v4df) __B,
1810 (__v4df) __C,
1811 (__mmask8) __U);
1812}
1813
Michael Kupersteine45af542015-06-30 13:36:19 +00001814static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001815_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1816{
1817 return (__m256d) __builtin_ia32_vfnmsubpd256_mask3 ((__v4df) __A,
1818 (__v4df) __B,
1819 (__v4df) __C,
1820 (__mmask8) __U);
1821}
1822
Michael Kupersteine45af542015-06-30 13:36:19 +00001823static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001824_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1825{
1826 return (__m128) __builtin_ia32_vfnmsubps128_mask ((__v4sf) __A,
1827 (__v4sf) __B,
1828 (__v4sf) __C,
1829 (__mmask8) __U);
1830}
1831
Michael Kupersteine45af542015-06-30 13:36:19 +00001832static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001833_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1834{
1835 return (__m128) __builtin_ia32_vfnmsubps128_mask3 ((__v4sf) __A,
1836 (__v4sf) __B,
1837 (__v4sf) __C,
1838 (__mmask8) __U);
1839}
1840
Michael Kupersteine45af542015-06-30 13:36:19 +00001841static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001842_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1843{
1844 return (__m256) __builtin_ia32_vfnmsubps256_mask ((__v8sf) __A,
1845 (__v8sf) __B,
1846 (__v8sf) __C,
1847 (__mmask8) __U);
1848}
1849
Michael Kupersteine45af542015-06-30 13:36:19 +00001850static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001851_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1852{
1853 return (__m256) __builtin_ia32_vfnmsubps256_mask3 ((__v8sf) __A,
1854 (__v8sf) __B,
1855 (__v8sf) __C,
1856 (__mmask8) __U);
1857}
1858
Asaf Badouh74da3872015-07-28 08:26:14 +00001859static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001860_mm_mask_add_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1861 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
1862 (__v2df)_mm_add_pd(__A, __B),
1863 (__v2df)__W);
Asaf Badouh74da3872015-07-28 08:26:14 +00001864}
1865
1866static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001867_mm_maskz_add_pd(__mmask8 __U, __m128d __A, __m128d __B) {
1868 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
1869 (__v2df)_mm_add_pd(__A, __B),
1870 (__v2df)_mm_setzero_pd());
Asaf Badouh74da3872015-07-28 08:26:14 +00001871}
1872
1873static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001874_mm256_mask_add_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
1875 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
1876 (__v4df)_mm256_add_pd(__A, __B),
1877 (__v4df)__W);
Asaf Badouh74da3872015-07-28 08:26:14 +00001878}
1879
1880static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001881_mm256_maskz_add_pd(__mmask8 __U, __m256d __A, __m256d __B) {
1882 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
1883 (__v4df)_mm256_add_pd(__A, __B),
1884 (__v4df)_mm256_setzero_pd());
Asaf Badouh74da3872015-07-28 08:26:14 +00001885}
1886
1887static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001888_mm_mask_add_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1889 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
1890 (__v4sf)_mm_add_ps(__A, __B),
1891 (__v4sf)__W);
Asaf Badouh74da3872015-07-28 08:26:14 +00001892}
1893
1894static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001895_mm_maskz_add_ps(__mmask8 __U, __m128 __A, __m128 __B) {
1896 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
1897 (__v4sf)_mm_add_ps(__A, __B),
1898 (__v4sf)_mm_setzero_ps());
Asaf Badouh74da3872015-07-28 08:26:14 +00001899}
1900
1901static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001902_mm256_mask_add_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
1903 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
1904 (__v8sf)_mm256_add_ps(__A, __B),
1905 (__v8sf)__W);
Asaf Badouh74da3872015-07-28 08:26:14 +00001906}
1907
1908static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001909_mm256_maskz_add_ps(__mmask8 __U, __m256 __A, __m256 __B) {
1910 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
1911 (__v8sf)_mm256_add_ps(__A, __B),
1912 (__v8sf)_mm256_setzero_ps());
Asaf Badouh74da3872015-07-28 08:26:14 +00001913}
1914
1915static __inline__ __m128i __DEFAULT_FN_ATTRS
1916_mm_mask_blend_epi32 (__mmask8 __U, __m128i __A, __m128i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001917 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001918 (__v4si) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001919 (__v4si) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001920}
1921
1922static __inline__ __m256i __DEFAULT_FN_ATTRS
1923_mm256_mask_blend_epi32 (__mmask8 __U, __m256i __A, __m256i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001924 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001925 (__v8si) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001926 (__v8si) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001927}
1928
1929static __inline__ __m128d __DEFAULT_FN_ATTRS
1930_mm_mask_blend_pd (__mmask8 __U, __m128d __A, __m128d __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001931 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001932 (__v2df) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001933 (__v2df) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001934}
1935
1936static __inline__ __m256d __DEFAULT_FN_ATTRS
1937_mm256_mask_blend_pd (__mmask8 __U, __m256d __A, __m256d __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001938 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001939 (__v4df) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001940 (__v4df) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001941}
1942
1943static __inline__ __m128 __DEFAULT_FN_ATTRS
1944_mm_mask_blend_ps (__mmask8 __U, __m128 __A, __m128 __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001945 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001946 (__v4sf) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001947 (__v4sf) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001948}
1949
1950static __inline__ __m256 __DEFAULT_FN_ATTRS
1951_mm256_mask_blend_ps (__mmask8 __U, __m256 __A, __m256 __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001952 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001953 (__v8sf) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001954 (__v8sf) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001955}
1956
1957static __inline__ __m128i __DEFAULT_FN_ATTRS
1958_mm_mask_blend_epi64 (__mmask8 __U, __m128i __A, __m128i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001959 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001960 (__v2di) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001961 (__v2di) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001962}
1963
1964static __inline__ __m256i __DEFAULT_FN_ATTRS
1965_mm256_mask_blend_epi64 (__mmask8 __U, __m256i __A, __m256i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001966 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001967 (__v4di) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001968 (__v4di) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001969}
1970
1971static __inline__ __m128d __DEFAULT_FN_ATTRS
1972_mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A) {
1973 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
1974 (__v2df) __W,
1975 (__mmask8) __U);
1976}
1977
1978static __inline__ __m128d __DEFAULT_FN_ATTRS
1979_mm_maskz_compress_pd (__mmask8 __U, __m128d __A) {
1980 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
1981 (__v2df)
1982 _mm_setzero_pd (),
1983 (__mmask8) __U);
1984}
1985
1986static __inline__ __m256d __DEFAULT_FN_ATTRS
1987_mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A) {
1988 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
1989 (__v4df) __W,
1990 (__mmask8) __U);
1991}
1992
1993static __inline__ __m256d __DEFAULT_FN_ATTRS
1994_mm256_maskz_compress_pd (__mmask8 __U, __m256d __A) {
1995 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
1996 (__v4df)
1997 _mm256_setzero_pd (),
1998 (__mmask8) __U);
1999}
2000
2001static __inline__ __m128i __DEFAULT_FN_ATTRS
2002_mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2003 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
2004 (__v2di) __W,
2005 (__mmask8) __U);
2006}
2007
2008static __inline__ __m128i __DEFAULT_FN_ATTRS
2009_mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A) {
2010 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
2011 (__v2di)
2012 _mm_setzero_si128 (),
2013 (__mmask8) __U);
2014}
2015
2016static __inline__ __m256i __DEFAULT_FN_ATTRS
2017_mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2018 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
2019 (__v4di) __W,
2020 (__mmask8) __U);
2021}
2022
2023static __inline__ __m256i __DEFAULT_FN_ATTRS
2024_mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A) {
2025 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
2026 (__v4di)
2027 _mm256_setzero_si256 (),
2028 (__mmask8) __U);
2029}
2030
2031static __inline__ __m128 __DEFAULT_FN_ATTRS
2032_mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A) {
2033 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
2034 (__v4sf) __W,
2035 (__mmask8) __U);
2036}
2037
2038static __inline__ __m128 __DEFAULT_FN_ATTRS
2039_mm_maskz_compress_ps (__mmask8 __U, __m128 __A) {
2040 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
2041 (__v4sf)
2042 _mm_setzero_ps (),
2043 (__mmask8) __U);
2044}
2045
2046static __inline__ __m256 __DEFAULT_FN_ATTRS
2047_mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A) {
2048 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
2049 (__v8sf) __W,
2050 (__mmask8) __U);
2051}
2052
2053static __inline__ __m256 __DEFAULT_FN_ATTRS
2054_mm256_maskz_compress_ps (__mmask8 __U, __m256 __A) {
2055 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
2056 (__v8sf)
2057 _mm256_setzero_ps (),
2058 (__mmask8) __U);
2059}
2060
2061static __inline__ __m128i __DEFAULT_FN_ATTRS
2062_mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
2063 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
2064 (__v4si) __W,
2065 (__mmask8) __U);
2066}
2067
2068static __inline__ __m128i __DEFAULT_FN_ATTRS
2069_mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A) {
2070 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
2071 (__v4si)
2072 _mm_setzero_si128 (),
2073 (__mmask8) __U);
2074}
2075
2076static __inline__ __m256i __DEFAULT_FN_ATTRS
2077_mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
2078 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
2079 (__v8si) __W,
2080 (__mmask8) __U);
2081}
2082
2083static __inline__ __m256i __DEFAULT_FN_ATTRS
2084_mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A) {
2085 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
2086 (__v8si)
2087 _mm256_setzero_si256 (),
2088 (__mmask8) __U);
2089}
2090
2091static __inline__ void __DEFAULT_FN_ATTRS
2092_mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A) {
2093 __builtin_ia32_compressstoredf128_mask ((__v2df *) __P,
2094 (__v2df) __A,
2095 (__mmask8) __U);
2096}
2097
2098static __inline__ void __DEFAULT_FN_ATTRS
2099_mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A) {
2100 __builtin_ia32_compressstoredf256_mask ((__v4df *) __P,
2101 (__v4df) __A,
2102 (__mmask8) __U);
2103}
2104
2105static __inline__ void __DEFAULT_FN_ATTRS
2106_mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A) {
2107 __builtin_ia32_compressstoredi128_mask ((__v2di *) __P,
2108 (__v2di) __A,
2109 (__mmask8) __U);
2110}
2111
2112static __inline__ void __DEFAULT_FN_ATTRS
2113_mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A) {
2114 __builtin_ia32_compressstoredi256_mask ((__v4di *) __P,
2115 (__v4di) __A,
2116 (__mmask8) __U);
2117}
2118
2119static __inline__ void __DEFAULT_FN_ATTRS
2120_mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A) {
2121 __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P,
2122 (__v4sf) __A,
2123 (__mmask8) __U);
2124}
2125
2126static __inline__ void __DEFAULT_FN_ATTRS
2127_mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A) {
2128 __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P,
2129 (__v8sf) __A,
2130 (__mmask8) __U);
2131}
2132
2133static __inline__ void __DEFAULT_FN_ATTRS
2134_mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A) {
2135 __builtin_ia32_compressstoresi128_mask ((__v4si *) __P,
2136 (__v4si) __A,
2137 (__mmask8) __U);
2138}
2139
2140static __inline__ void __DEFAULT_FN_ATTRS
2141_mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A) {
2142 __builtin_ia32_compressstoresi256_mask ((__v8si *) __P,
2143 (__v8si) __A,
2144 (__mmask8) __U);
2145}
2146
2147static __inline__ __m128d __DEFAULT_FN_ATTRS
2148_mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2149 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
2150 (__v2df) __W,
2151 (__mmask8) __U);
2152}
2153
2154static __inline__ __m128d __DEFAULT_FN_ATTRS
2155_mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
2156 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
2157 (__v2df)
2158 _mm_setzero_pd (),
2159 (__mmask8) __U);
2160}
2161
2162static __inline__ __m256d __DEFAULT_FN_ATTRS
2163_mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2164 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
2165 (__v4df) __W,
2166 (__mmask8) __U);
2167}
2168
2169static __inline__ __m256d __DEFAULT_FN_ATTRS
2170_mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
2171 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
2172 (__v4df)
2173 _mm256_setzero_pd (),
2174 (__mmask8) __U);
2175}
2176
2177static __inline__ __m128 __DEFAULT_FN_ATTRS
2178_mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2179 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2180 (__v4sf) __W,
2181 (__mmask8) __U);
2182}
2183
2184static __inline__ __m128 __DEFAULT_FN_ATTRS
2185_mm_maskz_cvtepi32_ps (__mmask16 __U, __m128i __A) {
2186 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2187 (__v4sf)
2188 _mm_setzero_ps (),
2189 (__mmask8) __U);
2190}
2191
2192static __inline__ __m256 __DEFAULT_FN_ATTRS
2193_mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2194 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2195 (__v8sf) __W,
2196 (__mmask8) __U);
2197}
2198
2199static __inline__ __m256 __DEFAULT_FN_ATTRS
2200_mm256_maskz_cvtepi32_ps (__mmask16 __U, __m256i __A) {
2201 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2202 (__v8sf)
2203 _mm256_setzero_ps (),
2204 (__mmask8) __U);
2205}
2206
2207static __inline__ __m128i __DEFAULT_FN_ATTRS
2208_mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2209 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2210 (__v4si) __W,
2211 (__mmask8) __U);
2212}
2213
2214static __inline__ __m128i __DEFAULT_FN_ATTRS
2215_mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) {
2216 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2217 (__v4si)
2218 _mm_setzero_si128 (),
2219 (__mmask8) __U);
2220}
2221
2222static __inline__ __m128i __DEFAULT_FN_ATTRS
2223_mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2224 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2225 (__v4si) __W,
2226 (__mmask8) __U);
2227}
2228
2229static __inline__ __m128i __DEFAULT_FN_ATTRS
2230_mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) {
2231 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2232 (__v4si)
2233 _mm_setzero_si128 (),
2234 (__mmask8) __U);
2235}
2236
2237static __inline__ __m128 __DEFAULT_FN_ATTRS
2238_mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) {
2239 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2240 (__v4sf) __W,
2241 (__mmask8) __U);
2242}
2243
2244static __inline__ __m128 __DEFAULT_FN_ATTRS
2245_mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) {
2246 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2247 (__v4sf)
2248 _mm_setzero_ps (),
2249 (__mmask8) __U);
2250}
2251
2252static __inline__ __m128 __DEFAULT_FN_ATTRS
2253_mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) {
2254 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2255 (__v4sf) __W,
2256 (__mmask8) __U);
2257}
2258
2259static __inline__ __m128 __DEFAULT_FN_ATTRS
2260_mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) {
2261 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2262 (__v4sf)
2263 _mm_setzero_ps (),
2264 (__mmask8) __U);
2265}
2266
2267static __inline__ __m128i __DEFAULT_FN_ATTRS
2268_mm_cvtpd_epu32 (__m128d __A) {
2269 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2270 (__v4si)
2271 _mm_setzero_si128 (),
2272 (__mmask8) -1);
2273}
2274
2275static __inline__ __m128i __DEFAULT_FN_ATTRS
2276_mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2277 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2278 (__v4si) __W,
2279 (__mmask8) __U);
2280}
2281
2282static __inline__ __m128i __DEFAULT_FN_ATTRS
2283_mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) {
2284 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2285 (__v4si)
2286 _mm_setzero_si128 (),
2287 (__mmask8) __U);
2288}
2289
2290static __inline__ __m128i __DEFAULT_FN_ATTRS
2291_mm256_cvtpd_epu32 (__m256d __A) {
2292 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2293 (__v4si)
2294 _mm_setzero_si128 (),
2295 (__mmask8) -1);
2296}
2297
2298static __inline__ __m128i __DEFAULT_FN_ATTRS
2299_mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2300 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2301 (__v4si) __W,
2302 (__mmask8) __U);
2303}
2304
2305static __inline__ __m128i __DEFAULT_FN_ATTRS
2306_mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) {
2307 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2308 (__v4si)
2309 _mm_setzero_si128 (),
2310 (__mmask8) __U);
2311}
2312
2313static __inline__ __m128i __DEFAULT_FN_ATTRS
2314_mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2315 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2316 (__v4si) __W,
2317 (__mmask8) __U);
2318}
2319
2320static __inline__ __m128i __DEFAULT_FN_ATTRS
2321_mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) {
2322 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2323 (__v4si)
2324 _mm_setzero_si128 (),
2325 (__mmask8) __U);
2326}
2327
2328static __inline__ __m256i __DEFAULT_FN_ATTRS
2329_mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2330 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2331 (__v8si) __W,
2332 (__mmask8) __U);
2333}
2334
2335static __inline__ __m256i __DEFAULT_FN_ATTRS
2336_mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) {
2337 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2338 (__v8si)
2339 _mm256_setzero_si256 (),
2340 (__mmask8) __U);
2341}
2342
2343static __inline__ __m128d __DEFAULT_FN_ATTRS
2344_mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) {
2345 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2346 (__v2df) __W,
2347 (__mmask8) __U);
2348}
2349
2350static __inline__ __m128d __DEFAULT_FN_ATTRS
2351_mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2352 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2353 (__v2df)
2354 _mm_setzero_pd (),
2355 (__mmask8) __U);
2356}
2357
2358static __inline__ __m256d __DEFAULT_FN_ATTRS
2359_mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) {
2360 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2361 (__v4df) __W,
2362 (__mmask8) __U);
2363}
2364
2365static __inline__ __m256d __DEFAULT_FN_ATTRS
2366_mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2367 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2368 (__v4df)
2369 _mm256_setzero_pd (),
2370 (__mmask8) __U);
2371}
2372
2373static __inline__ __m128i __DEFAULT_FN_ATTRS
2374_mm_cvtps_epu32 (__m128 __A) {
2375 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2376 (__v4si)
2377 _mm_setzero_si128 (),
2378 (__mmask8) -1);
2379}
2380
2381static __inline__ __m128i __DEFAULT_FN_ATTRS
2382_mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2383 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2384 (__v4si) __W,
2385 (__mmask8) __U);
2386}
2387
2388static __inline__ __m128i __DEFAULT_FN_ATTRS
2389_mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) {
2390 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2391 (__v4si)
2392 _mm_setzero_si128 (),
2393 (__mmask8) __U);
2394}
2395
2396static __inline__ __m256i __DEFAULT_FN_ATTRS
2397_mm256_cvtps_epu32 (__m256 __A) {
2398 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2399 (__v8si)
2400 _mm256_setzero_si256 (),
2401 (__mmask8) -1);
2402}
2403
2404static __inline__ __m256i __DEFAULT_FN_ATTRS
2405_mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2406 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2407 (__v8si) __W,
2408 (__mmask8) __U);
2409}
2410
2411static __inline__ __m256i __DEFAULT_FN_ATTRS
2412_mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) {
2413 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2414 (__v8si)
2415 _mm256_setzero_si256 (),
2416 (__mmask8) __U);
2417}
2418
2419static __inline__ __m128i __DEFAULT_FN_ATTRS
2420_mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2421 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2422 (__v4si) __W,
2423 (__mmask8) __U);
2424}
2425
2426static __inline__ __m128i __DEFAULT_FN_ATTRS
2427_mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) {
2428 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2429 (__v4si)
2430 _mm_setzero_si128 (),
2431 (__mmask8) __U);
2432}
2433
2434static __inline__ __m128i __DEFAULT_FN_ATTRS
2435_mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2436 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2437 (__v4si) __W,
2438 (__mmask8) __U);
2439}
2440
2441static __inline__ __m128i __DEFAULT_FN_ATTRS
2442_mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) {
2443 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2444 (__v4si)
2445 _mm_setzero_si128 (),
2446 (__mmask8) __U);
2447}
2448
2449static __inline__ __m128i __DEFAULT_FN_ATTRS
2450_mm_cvttpd_epu32 (__m128d __A) {
2451 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2452 (__v4si)
2453 _mm_setzero_si128 (),
2454 (__mmask8) -1);
2455}
2456
2457static __inline__ __m128i __DEFAULT_FN_ATTRS
2458_mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2459 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2460 (__v4si) __W,
2461 (__mmask8) __U);
2462}
2463
2464static __inline__ __m128i __DEFAULT_FN_ATTRS
2465_mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) {
2466 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2467 (__v4si)
2468 _mm_setzero_si128 (),
2469 (__mmask8) __U);
2470}
2471
2472static __inline__ __m128i __DEFAULT_FN_ATTRS
2473_mm256_cvttpd_epu32 (__m256d __A) {
2474 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2475 (__v4si)
2476 _mm_setzero_si128 (),
2477 (__mmask8) -1);
2478}
2479
2480static __inline__ __m128i __DEFAULT_FN_ATTRS
2481_mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2482 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2483 (__v4si) __W,
2484 (__mmask8) __U);
2485}
2486
2487static __inline__ __m128i __DEFAULT_FN_ATTRS
2488_mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) {
2489 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2490 (__v4si)
2491 _mm_setzero_si128 (),
2492 (__mmask8) __U);
2493}
2494
2495static __inline__ __m128i __DEFAULT_FN_ATTRS
2496_mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2497 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2498 (__v4si) __W,
2499 (__mmask8) __U);
2500}
2501
2502static __inline__ __m128i __DEFAULT_FN_ATTRS
2503_mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) {
2504 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2505 (__v4si)
2506 _mm_setzero_si128 (),
2507 (__mmask8) __U);
2508}
2509
2510static __inline__ __m256i __DEFAULT_FN_ATTRS
2511_mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2512 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2513 (__v8si) __W,
2514 (__mmask8) __U);
2515}
2516
2517static __inline__ __m256i __DEFAULT_FN_ATTRS
2518_mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) {
2519 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2520 (__v8si)
2521 _mm256_setzero_si256 (),
2522 (__mmask8) __U);
2523}
2524
2525static __inline__ __m128i __DEFAULT_FN_ATTRS
2526_mm_cvttps_epu32 (__m128 __A) {
2527 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2528 (__v4si)
2529 _mm_setzero_si128 (),
2530 (__mmask8) -1);
2531}
2532
2533static __inline__ __m128i __DEFAULT_FN_ATTRS
2534_mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2535 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2536 (__v4si) __W,
2537 (__mmask8) __U);
2538}
2539
2540static __inline__ __m128i __DEFAULT_FN_ATTRS
2541_mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) {
2542 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2543 (__v4si)
2544 _mm_setzero_si128 (),
2545 (__mmask8) __U);
2546}
2547
2548static __inline__ __m256i __DEFAULT_FN_ATTRS
2549_mm256_cvttps_epu32 (__m256 __A) {
2550 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2551 (__v8si)
2552 _mm256_setzero_si256 (),
2553 (__mmask8) -1);
2554}
2555
2556static __inline__ __m256i __DEFAULT_FN_ATTRS
2557_mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2558 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2559 (__v8si) __W,
2560 (__mmask8) __U);
2561}
2562
2563static __inline__ __m256i __DEFAULT_FN_ATTRS
2564_mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) {
2565 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2566 (__v8si)
2567 _mm256_setzero_si256 (),
2568 (__mmask8) __U);
2569}
2570
2571static __inline__ __m128d __DEFAULT_FN_ATTRS
2572_mm_cvtepu32_pd (__m128i __A) {
2573 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2574 (__v2df)
2575 _mm_setzero_pd (),
2576 (__mmask8) -1);
2577}
2578
2579static __inline__ __m128d __DEFAULT_FN_ATTRS
2580_mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2581 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2582 (__v2df) __W,
2583 (__mmask8) __U);
2584}
2585
2586static __inline__ __m128d __DEFAULT_FN_ATTRS
2587_mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2588 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2589 (__v2df)
2590 _mm_setzero_pd (),
2591 (__mmask8) __U);
2592}
2593
2594static __inline__ __m256d __DEFAULT_FN_ATTRS
2595_mm256_cvtepu32_pd (__m128i __A) {
2596 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2597 (__v4df)
2598 _mm256_setzero_pd (),
2599 (__mmask8) -1);
2600}
2601
2602static __inline__ __m256d __DEFAULT_FN_ATTRS
2603_mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2604 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2605 (__v4df) __W,
2606 (__mmask8) __U);
2607}
2608
2609static __inline__ __m256d __DEFAULT_FN_ATTRS
2610_mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2611 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2612 (__v4df)
2613 _mm256_setzero_pd (),
2614 (__mmask8) __U);
2615}
2616
2617static __inline__ __m128 __DEFAULT_FN_ATTRS
2618_mm_cvtepu32_ps (__m128i __A) {
2619 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2620 (__v4sf)
2621 _mm_setzero_ps (),
2622 (__mmask8) -1);
2623}
2624
2625static __inline__ __m128 __DEFAULT_FN_ATTRS
2626_mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2627 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2628 (__v4sf) __W,
2629 (__mmask8) __U);
2630}
2631
2632static __inline__ __m128 __DEFAULT_FN_ATTRS
2633_mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) {
2634 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2635 (__v4sf)
2636 _mm_setzero_ps (),
2637 (__mmask8) __U);
2638}
2639
2640static __inline__ __m256 __DEFAULT_FN_ATTRS
2641_mm256_cvtepu32_ps (__m256i __A) {
2642 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2643 (__v8sf)
2644 _mm256_setzero_ps (),
2645 (__mmask8) -1);
2646}
2647
2648static __inline__ __m256 __DEFAULT_FN_ATTRS
2649_mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2650 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2651 (__v8sf) __W,
2652 (__mmask8) __U);
2653}
2654
2655static __inline__ __m256 __DEFAULT_FN_ATTRS
2656_mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) {
2657 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2658 (__v8sf)
2659 _mm256_setzero_ps (),
2660 (__mmask8) __U);
2661}
2662
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002663static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002664_mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2665 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2666 (__v2df)_mm_div_pd(__A, __B),
2667 (__v2df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002668}
2669
2670static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002671_mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) {
2672 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2673 (__v2df)_mm_div_pd(__A, __B),
2674 (__v2df)_mm_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002675}
2676
2677static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002678_mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2679 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2680 (__v4df)_mm256_div_pd(__A, __B),
2681 (__v4df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002682}
2683
2684static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002685_mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2686 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2687 (__v4df)_mm256_div_pd(__A, __B),
2688 (__v4df)_mm256_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002689}
2690
2691static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002692_mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2693 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2694 (__v4sf)_mm_div_ps(__A, __B),
2695 (__v4sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002696}
2697
2698static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002699_mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) {
2700 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2701 (__v4sf)_mm_div_ps(__A, __B),
2702 (__v4sf)_mm_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002703}
2704
2705static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002706_mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2707 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2708 (__v8sf)_mm256_div_ps(__A, __B),
2709 (__v8sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002710}
2711
2712static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002713_mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2714 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2715 (__v8sf)_mm256_div_ps(__A, __B),
2716 (__v8sf)_mm256_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002717}
2718
2719static __inline__ __m128d __DEFAULT_FN_ATTRS
2720_mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2721 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2722 (__v2df) __W,
2723 (__mmask8) __U);
2724}
2725
2726static __inline__ __m128d __DEFAULT_FN_ATTRS
2727_mm_maskz_expand_pd (__mmask8 __U, __m128d __A) {
2728 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2729 (__v2df)
2730 _mm_setzero_pd (),
2731 (__mmask8) __U);
2732}
2733
2734static __inline__ __m256d __DEFAULT_FN_ATTRS
2735_mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2736 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2737 (__v4df) __W,
2738 (__mmask8) __U);
2739}
2740
2741static __inline__ __m256d __DEFAULT_FN_ATTRS
2742_mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) {
2743 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2744 (__v4df)
2745 _mm256_setzero_pd (),
2746 (__mmask8) __U);
2747}
2748
2749static __inline__ __m128i __DEFAULT_FN_ATTRS
2750_mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2751 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2752 (__v2di) __W,
2753 (__mmask8) __U);
2754}
2755
2756static __inline__ __m128i __DEFAULT_FN_ATTRS
2757_mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) {
2758 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2759 (__v2di)
2760 _mm_setzero_si128 (),
2761 (__mmask8) __U);
2762}
2763
2764static __inline__ __m256i __DEFAULT_FN_ATTRS
2765_mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2766 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2767 (__v4di) __W,
2768 (__mmask8) __U);
2769}
2770
2771static __inline__ __m256i __DEFAULT_FN_ATTRS
2772_mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) {
2773 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2774 (__v4di)
2775 _mm256_setzero_si256 (),
2776 (__mmask8) __U);
2777}
2778
2779static __inline__ __m128d __DEFAULT_FN_ATTRS
2780_mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) {
2781 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2782 (__v2df) __W,
2783 (__mmask8)
2784 __U);
2785}
2786
2787static __inline__ __m128d __DEFAULT_FN_ATTRS
2788_mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2789 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2790 (__v2df)
2791 _mm_setzero_pd (),
2792 (__mmask8)
2793 __U);
2794}
2795
2796static __inline__ __m256d __DEFAULT_FN_ATTRS
2797_mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) {
2798 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2799 (__v4df) __W,
2800 (__mmask8)
2801 __U);
2802}
2803
2804static __inline__ __m256d __DEFAULT_FN_ATTRS
2805_mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2806 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2807 (__v4df)
2808 _mm256_setzero_pd (),
2809 (__mmask8)
2810 __U);
2811}
2812
2813static __inline__ __m128i __DEFAULT_FN_ATTRS
2814_mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) {
2815 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2816 (__v2di) __W,
2817 (__mmask8)
2818 __U);
2819}
2820
2821static __inline__ __m128i __DEFAULT_FN_ATTRS
2822_mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2823 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2824 (__v2di)
2825 _mm_setzero_si128 (),
2826 (__mmask8)
2827 __U);
2828}
2829
2830static __inline__ __m256i __DEFAULT_FN_ATTRS
2831_mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U,
2832 void const *__P) {
2833 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2834 (__v4di) __W,
2835 (__mmask8)
2836 __U);
2837}
2838
2839static __inline__ __m256i __DEFAULT_FN_ATTRS
2840_mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2841 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2842 (__v4di)
2843 _mm256_setzero_si256 (),
2844 (__mmask8)
2845 __U);
2846}
2847
2848static __inline__ __m128 __DEFAULT_FN_ATTRS
2849_mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) {
2850 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
2851 (__v4sf) __W,
2852 (__mmask8) __U);
2853}
2854
2855static __inline__ __m128 __DEFAULT_FN_ATTRS
2856_mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
2857 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
2858 (__v4sf)
2859 _mm_setzero_ps (),
2860 (__mmask8)
2861 __U);
2862}
2863
2864static __inline__ __m256 __DEFAULT_FN_ATTRS
2865_mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) {
2866 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
2867 (__v8sf) __W,
2868 (__mmask8) __U);
2869}
2870
2871static __inline__ __m256 __DEFAULT_FN_ATTRS
2872_mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
2873 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
2874 (__v8sf)
2875 _mm256_setzero_ps (),
2876 (__mmask8)
2877 __U);
2878}
2879
2880static __inline__ __m128i __DEFAULT_FN_ATTRS
2881_mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) {
2882 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
2883 (__v4si) __W,
2884 (__mmask8)
2885 __U);
2886}
2887
2888static __inline__ __m128i __DEFAULT_FN_ATTRS
2889_mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
2890 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
2891 (__v4si)
2892 _mm_setzero_si128 (),
2893 (__mmask8) __U);
2894}
2895
2896static __inline__ __m256i __DEFAULT_FN_ATTRS
2897_mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U,
2898 void const *__P) {
2899 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
2900 (__v8si) __W,
2901 (__mmask8)
2902 __U);
2903}
2904
2905static __inline__ __m256i __DEFAULT_FN_ATTRS
2906_mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
2907 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
2908 (__v8si)
2909 _mm256_setzero_si256 (),
2910 (__mmask8)
2911 __U);
2912}
2913
2914static __inline__ __m128 __DEFAULT_FN_ATTRS
2915_mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) {
2916 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
2917 (__v4sf) __W,
2918 (__mmask8) __U);
2919}
2920
2921static __inline__ __m128 __DEFAULT_FN_ATTRS
2922_mm_maskz_expand_ps (__mmask8 __U, __m128 __A) {
2923 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
2924 (__v4sf)
2925 _mm_setzero_ps (),
2926 (__mmask8) __U);
2927}
2928
2929static __inline__ __m256 __DEFAULT_FN_ATTRS
2930_mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) {
2931 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
2932 (__v8sf) __W,
2933 (__mmask8) __U);
2934}
2935
2936static __inline__ __m256 __DEFAULT_FN_ATTRS
2937_mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) {
2938 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
2939 (__v8sf)
2940 _mm256_setzero_ps (),
2941 (__mmask8) __U);
2942}
2943
2944static __inline__ __m128i __DEFAULT_FN_ATTRS
2945_mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
2946 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
2947 (__v4si) __W,
2948 (__mmask8) __U);
2949}
2950
2951static __inline__ __m128i __DEFAULT_FN_ATTRS
2952_mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) {
2953 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
2954 (__v4si)
2955 _mm_setzero_si128 (),
2956 (__mmask8) __U);
2957}
2958
2959static __inline__ __m256i __DEFAULT_FN_ATTRS
2960_mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
2961 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
2962 (__v8si) __W,
2963 (__mmask8) __U);
2964}
2965
2966static __inline__ __m256i __DEFAULT_FN_ATTRS
2967_mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) {
2968 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
2969 (__v8si)
2970 _mm256_setzero_si256 (),
2971 (__mmask8) __U);
2972}
2973
2974static __inline__ __m128d __DEFAULT_FN_ATTRS
2975_mm_getexp_pd (__m128d __A) {
2976 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
2977 (__v2df)
2978 _mm_setzero_pd (),
2979 (__mmask8) -1);
2980}
2981
2982static __inline__ __m128d __DEFAULT_FN_ATTRS
2983_mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2984 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
2985 (__v2df) __W,
2986 (__mmask8) __U);
2987}
2988
2989static __inline__ __m128d __DEFAULT_FN_ATTRS
2990_mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) {
2991 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
2992 (__v2df)
2993 _mm_setzero_pd (),
2994 (__mmask8) __U);
2995}
2996
2997static __inline__ __m256d __DEFAULT_FN_ATTRS
2998_mm256_getexp_pd (__m256d __A) {
2999 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3000 (__v4df)
3001 _mm256_setzero_pd (),
3002 (__mmask8) -1);
3003}
3004
3005static __inline__ __m256d __DEFAULT_FN_ATTRS
3006_mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) {
3007 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3008 (__v4df) __W,
3009 (__mmask8) __U);
3010}
3011
3012static __inline__ __m256d __DEFAULT_FN_ATTRS
3013_mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) {
3014 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3015 (__v4df)
3016 _mm256_setzero_pd (),
3017 (__mmask8) __U);
3018}
3019
3020static __inline__ __m128 __DEFAULT_FN_ATTRS
3021_mm_getexp_ps (__m128 __A) {
3022 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3023 (__v4sf)
3024 _mm_setzero_ps (),
3025 (__mmask8) -1);
3026}
3027
3028static __inline__ __m128 __DEFAULT_FN_ATTRS
3029_mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) {
3030 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3031 (__v4sf) __W,
3032 (__mmask8) __U);
3033}
3034
3035static __inline__ __m128 __DEFAULT_FN_ATTRS
3036_mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) {
3037 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3038 (__v4sf)
3039 _mm_setzero_ps (),
3040 (__mmask8) __U);
3041}
3042
3043static __inline__ __m256 __DEFAULT_FN_ATTRS
3044_mm256_getexp_ps (__m256 __A) {
3045 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3046 (__v8sf)
3047 _mm256_setzero_ps (),
3048 (__mmask8) -1);
3049}
3050
3051static __inline__ __m256 __DEFAULT_FN_ATTRS
3052_mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) {
3053 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3054 (__v8sf) __W,
3055 (__mmask8) __U);
3056}
3057
3058static __inline__ __m256 __DEFAULT_FN_ATTRS
3059_mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) {
3060 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3061 (__v8sf)
3062 _mm256_setzero_ps (),
3063 (__mmask8) __U);
3064}
3065
3066static __inline__ __m128d __DEFAULT_FN_ATTRS
3067_mm_mask_max_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3068 return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A,
3069 (__v2df) __B,
3070 (__v2df) __W,
3071 (__mmask8) __U);
3072}
3073
3074static __inline__ __m128d __DEFAULT_FN_ATTRS
3075_mm_maskz_max_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3076 return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A,
3077 (__v2df) __B,
3078 (__v2df)
3079 _mm_setzero_pd (),
3080 (__mmask8) __U);
3081}
3082
3083static __inline__ __m256d __DEFAULT_FN_ATTRS
3084_mm256_mask_max_pd (__m256d __W, __mmask8 __U, __m256d __A,
3085 __m256d __B) {
3086 return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A,
3087 (__v4df) __B,
3088 (__v4df) __W,
3089 (__mmask8) __U);
3090}
3091
3092static __inline__ __m256d __DEFAULT_FN_ATTRS
3093_mm256_maskz_max_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3094 return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A,
3095 (__v4df) __B,
3096 (__v4df)
3097 _mm256_setzero_pd (),
3098 (__mmask8) __U);
3099}
3100
3101static __inline__ __m128 __DEFAULT_FN_ATTRS
3102_mm_mask_max_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3103 return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A,
3104 (__v4sf) __B,
3105 (__v4sf) __W,
3106 (__mmask8) __U);
3107}
3108
3109static __inline__ __m128 __DEFAULT_FN_ATTRS
3110_mm_maskz_max_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3111 return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A,
3112 (__v4sf) __B,
3113 (__v4sf)
3114 _mm_setzero_ps (),
3115 (__mmask8) __U);
3116}
3117
3118static __inline__ __m256 __DEFAULT_FN_ATTRS
3119_mm256_mask_max_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3120 return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A,
3121 (__v8sf) __B,
3122 (__v8sf) __W,
3123 (__mmask8) __U);
3124}
3125
3126static __inline__ __m256 __DEFAULT_FN_ATTRS
3127_mm256_maskz_max_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3128 return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A,
3129 (__v8sf) __B,
3130 (__v8sf)
3131 _mm256_setzero_ps (),
3132 (__mmask8) __U);
3133}
3134
3135static __inline__ __m128d __DEFAULT_FN_ATTRS
3136_mm_mask_min_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3137 return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A,
3138 (__v2df) __B,
3139 (__v2df) __W,
3140 (__mmask8) __U);
3141}
3142
3143static __inline__ __m128d __DEFAULT_FN_ATTRS
3144_mm_maskz_min_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3145 return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A,
3146 (__v2df) __B,
3147 (__v2df)
3148 _mm_setzero_pd (),
3149 (__mmask8) __U);
3150}
3151
3152static __inline__ __m256d __DEFAULT_FN_ATTRS
3153_mm256_mask_min_pd (__m256d __W, __mmask8 __U, __m256d __A,
3154 __m256d __B) {
3155 return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A,
3156 (__v4df) __B,
3157 (__v4df) __W,
3158 (__mmask8) __U);
3159}
3160
3161static __inline__ __m256d __DEFAULT_FN_ATTRS
3162_mm256_maskz_min_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3163 return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A,
3164 (__v4df) __B,
3165 (__v4df)
3166 _mm256_setzero_pd (),
3167 (__mmask8) __U);
3168}
3169
3170static __inline__ __m128 __DEFAULT_FN_ATTRS
3171_mm_mask_min_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3172 return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A,
3173 (__v4sf) __B,
3174 (__v4sf) __W,
3175 (__mmask8) __U);
3176}
3177
3178static __inline__ __m128 __DEFAULT_FN_ATTRS
3179_mm_maskz_min_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3180 return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A,
3181 (__v4sf) __B,
3182 (__v4sf)
3183 _mm_setzero_ps (),
3184 (__mmask8) __U);
3185}
3186
3187static __inline__ __m256 __DEFAULT_FN_ATTRS
3188_mm256_mask_min_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3189 return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A,
3190 (__v8sf) __B,
3191 (__v8sf) __W,
3192 (__mmask8) __U);
3193}
3194
3195static __inline__ __m256 __DEFAULT_FN_ATTRS
3196_mm256_maskz_min_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3197 return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A,
3198 (__v8sf) __B,
3199 (__v8sf)
3200 _mm256_setzero_ps (),
3201 (__mmask8) __U);
3202}
3203
3204static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003205_mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3206 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3207 (__v2df)_mm_mul_pd(__A, __B),
3208 (__v2df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003209}
3210
3211static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003212_mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) {
3213 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3214 (__v2df)_mm_mul_pd(__A, __B),
3215 (__v2df)_mm_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003216}
3217
3218static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003219_mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
3220 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3221 (__v4df)_mm256_mul_pd(__A, __B),
3222 (__v4df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003223}
3224
3225static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003226_mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) {
3227 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3228 (__v4df)_mm256_mul_pd(__A, __B),
3229 (__v4df)_mm256_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003230}
3231
3232static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003233_mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3234 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3235 (__v4sf)_mm_mul_ps(__A, __B),
3236 (__v4sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003237}
3238
3239static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003240_mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) {
3241 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3242 (__v4sf)_mm_mul_ps(__A, __B),
3243 (__v4sf)_mm_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003244}
3245
3246static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003247_mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3248 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3249 (__v8sf)_mm256_mul_ps(__A, __B),
3250 (__v8sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003251}
3252
3253static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003254_mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) {
3255 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3256 (__v8sf)_mm256_mul_ps(__A, __B),
3257 (__v8sf)_mm256_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003258}
3259
3260static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper78a9c402016-10-22 21:24:38 +00003261_mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
3262 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
3263 (__v4si)_mm_abs_epi32(__A),
3264 (__v4si)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003265}
3266
3267static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper78a9c402016-10-22 21:24:38 +00003268_mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) {
3269 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
3270 (__v4si)_mm_abs_epi32(__A),
3271 (__v4si)_mm_setzero_si128());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003272}
3273
3274static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper78a9c402016-10-22 21:24:38 +00003275_mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
3276 return (__m256i)__builtin_ia32_selectd_256((__mmask16)__U,
3277 (__v8si)_mm256_abs_epi32(__A),
3278 (__v8si)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003279}
3280
3281static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper78a9c402016-10-22 21:24:38 +00003282_mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) {
3283 return (__m256i)__builtin_ia32_selectd_256((__mmask16)__U,
3284 (__v8si)_mm256_abs_epi32(__A),
3285 (__v8si)_mm256_setzero_si256());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003286}
3287
3288static __inline__ __m128i __DEFAULT_FN_ATTRS
3289_mm_abs_epi64 (__m128i __A) {
3290 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3291 (__v2di)
3292 _mm_setzero_si128 (),
3293 (__mmask8) -1);
3294}
3295
3296static __inline__ __m128i __DEFAULT_FN_ATTRS
3297_mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
3298 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3299 (__v2di) __W,
3300 (__mmask8) __U);
3301}
3302
3303static __inline__ __m128i __DEFAULT_FN_ATTRS
3304_mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) {
3305 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3306 (__v2di)
3307 _mm_setzero_si128 (),
3308 (__mmask8) __U);
3309}
3310
3311static __inline__ __m256i __DEFAULT_FN_ATTRS
3312_mm256_abs_epi64 (__m256i __A) {
3313 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3314 (__v4di)
3315 _mm256_setzero_si256 (),
3316 (__mmask8) -1);
3317}
3318
3319static __inline__ __m256i __DEFAULT_FN_ATTRS
3320_mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
3321 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3322 (__v4di) __W,
3323 (__mmask8) __U);
3324}
3325
3326static __inline__ __m256i __DEFAULT_FN_ATTRS
3327_mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) {
3328 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3329 (__v4di)
3330 _mm256_setzero_si256 (),
3331 (__mmask8) __U);
3332}
3333
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003334static __inline__ __m128i __DEFAULT_FN_ATTRS
3335_mm_maskz_max_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
3336 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
3337 (__v4si) __B,
3338 (__v4si)
3339 _mm_setzero_si128 (),
3340 __M);
3341}
3342
3343static __inline__ __m128i __DEFAULT_FN_ATTRS
3344_mm_mask_max_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
3345 __m128i __B) {
3346 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
3347 (__v4si) __B,
3348 (__v4si) __W, __M);
3349}
3350
3351static __inline__ __m256i __DEFAULT_FN_ATTRS
3352_mm256_maskz_max_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
3353 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
3354 (__v8si) __B,
3355 (__v8si)
3356 _mm256_setzero_si256 (),
3357 __M);
3358}
3359
3360static __inline__ __m256i __DEFAULT_FN_ATTRS
3361_mm256_mask_max_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
3362 __m256i __B) {
3363 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
3364 (__v8si) __B,
3365 (__v8si) __W, __M);
3366}
3367
3368static __inline__ __m128i __DEFAULT_FN_ATTRS
3369_mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3370 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3371 (__v2di) __B,
3372 (__v2di)
3373 _mm_setzero_si128 (),
3374 __M);
3375}
3376
3377static __inline__ __m128i __DEFAULT_FN_ATTRS
3378_mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3379 __m128i __B) {
3380 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3381 (__v2di) __B,
3382 (__v2di) __W, __M);
3383}
3384
3385static __inline__ __m128i __DEFAULT_FN_ATTRS
3386_mm_max_epi64 (__m128i __A, __m128i __B) {
3387 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3388 (__v2di) __B,
3389 (__v2di)
3390 _mm_setzero_si128 (),
3391 (__mmask8) -1);
3392}
3393
3394static __inline__ __m256i __DEFAULT_FN_ATTRS
3395_mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3396 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3397 (__v4di) __B,
3398 (__v4di)
3399 _mm256_setzero_si256 (),
3400 __M);
3401}
3402
3403static __inline__ __m256i __DEFAULT_FN_ATTRS
3404_mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3405 __m256i __B) {
3406 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3407 (__v4di) __B,
3408 (__v4di) __W, __M);
3409}
3410
3411static __inline__ __m256i __DEFAULT_FN_ATTRS
3412_mm256_max_epi64 (__m256i __A, __m256i __B) {
3413 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3414 (__v4di) __B,
3415 (__v4di)
3416 _mm256_setzero_si256 (),
3417 (__mmask8) -1);
3418}
3419
3420static __inline__ __m128i __DEFAULT_FN_ATTRS
3421_mm_maskz_max_epu32 (__mmask8 __M, __m128i __A, __m128i __B) {
3422 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
3423 (__v4si) __B,
3424 (__v4si)
3425 _mm_setzero_si128 (),
3426 __M);
3427}
3428
3429static __inline__ __m128i __DEFAULT_FN_ATTRS
3430_mm_mask_max_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
3431 __m128i __B) {
3432 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
3433 (__v4si) __B,
3434 (__v4si) __W, __M);
3435}
3436
3437static __inline__ __m256i __DEFAULT_FN_ATTRS
3438_mm256_maskz_max_epu32 (__mmask8 __M, __m256i __A, __m256i __B) {
3439 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
3440 (__v8si) __B,
3441 (__v8si)
3442 _mm256_setzero_si256 (),
3443 __M);
3444}
3445
3446static __inline__ __m256i __DEFAULT_FN_ATTRS
3447_mm256_mask_max_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
3448 __m256i __B) {
3449 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
3450 (__v8si) __B,
3451 (__v8si) __W, __M);
3452}
3453
3454static __inline__ __m128i __DEFAULT_FN_ATTRS
3455_mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3456 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3457 (__v2di) __B,
3458 (__v2di)
3459 _mm_setzero_si128 (),
3460 __M);
3461}
3462
3463static __inline__ __m128i __DEFAULT_FN_ATTRS
3464_mm_max_epu64 (__m128i __A, __m128i __B) {
3465 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3466 (__v2di) __B,
3467 (__v2di)
3468 _mm_setzero_si128 (),
3469 (__mmask8) -1);
3470}
3471
3472static __inline__ __m128i __DEFAULT_FN_ATTRS
3473_mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3474 __m128i __B) {
3475 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3476 (__v2di) __B,
3477 (__v2di) __W, __M);
3478}
3479
3480static __inline__ __m256i __DEFAULT_FN_ATTRS
3481_mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3482 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3483 (__v4di) __B,
3484 (__v4di)
3485 _mm256_setzero_si256 (),
3486 __M);
3487}
3488
3489static __inline__ __m256i __DEFAULT_FN_ATTRS
3490_mm256_max_epu64 (__m256i __A, __m256i __B) {
3491 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3492 (__v4di) __B,
3493 (__v4di)
3494 _mm256_setzero_si256 (),
3495 (__mmask8) -1);
3496}
3497
3498static __inline__ __m256i __DEFAULT_FN_ATTRS
3499_mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3500 __m256i __B) {
3501 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3502 (__v4di) __B,
3503 (__v4di) __W, __M);
3504}
3505
3506static __inline__ __m128i __DEFAULT_FN_ATTRS
3507_mm_maskz_min_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
3508 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
3509 (__v4si) __B,
3510 (__v4si)
3511 _mm_setzero_si128 (),
3512 __M);
3513}
3514
3515static __inline__ __m128i __DEFAULT_FN_ATTRS
3516_mm_mask_min_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
3517 __m128i __B) {
3518 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
3519 (__v4si) __B,
3520 (__v4si) __W, __M);
3521}
3522
3523static __inline__ __m256i __DEFAULT_FN_ATTRS
3524_mm256_maskz_min_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
3525 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
3526 (__v8si) __B,
3527 (__v8si)
3528 _mm256_setzero_si256 (),
3529 __M);
3530}
3531
3532static __inline__ __m256i __DEFAULT_FN_ATTRS
3533_mm256_mask_min_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
3534 __m256i __B) {
3535 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
3536 (__v8si) __B,
3537 (__v8si) __W, __M);
3538}
3539
3540static __inline__ __m128i __DEFAULT_FN_ATTRS
3541_mm_min_epi64 (__m128i __A, __m128i __B) {
3542 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3543 (__v2di) __B,
3544 (__v2di)
3545 _mm_setzero_si128 (),
3546 (__mmask8) -1);
3547}
3548
3549static __inline__ __m128i __DEFAULT_FN_ATTRS
3550_mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3551 __m128i __B) {
3552 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3553 (__v2di) __B,
3554 (__v2di) __W, __M);
3555}
3556
3557static __inline__ __m128i __DEFAULT_FN_ATTRS
3558_mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3559 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3560 (__v2di) __B,
3561 (__v2di)
3562 _mm_setzero_si128 (),
3563 __M);
3564}
3565
3566static __inline__ __m256i __DEFAULT_FN_ATTRS
3567_mm256_min_epi64 (__m256i __A, __m256i __B) {
3568 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3569 (__v4di) __B,
3570 (__v4di)
3571 _mm256_setzero_si256 (),
3572 (__mmask8) -1);
3573}
3574
3575static __inline__ __m256i __DEFAULT_FN_ATTRS
3576_mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3577 __m256i __B) {
3578 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3579 (__v4di) __B,
3580 (__v4di) __W, __M);
3581}
3582
3583static __inline__ __m256i __DEFAULT_FN_ATTRS
3584_mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3585 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3586 (__v4di) __B,
3587 (__v4di)
3588 _mm256_setzero_si256 (),
3589 __M);
3590}
3591
3592static __inline__ __m128i __DEFAULT_FN_ATTRS
3593_mm_maskz_min_epu32 (__mmask8 __M, __m128i __A, __m128i __B) {
3594 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
3595 (__v4si) __B,
3596 (__v4si)
3597 _mm_setzero_si128 (),
3598 __M);
3599}
3600
3601static __inline__ __m128i __DEFAULT_FN_ATTRS
3602_mm_mask_min_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
3603 __m128i __B) {
3604 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
3605 (__v4si) __B,
3606 (__v4si) __W, __M);
3607}
3608
3609static __inline__ __m256i __DEFAULT_FN_ATTRS
3610_mm256_maskz_min_epu32 (__mmask8 __M, __m256i __A, __m256i __B) {
3611 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
3612 (__v8si) __B,
3613 (__v8si)
3614 _mm256_setzero_si256 (),
3615 __M);
3616}
3617
3618static __inline__ __m256i __DEFAULT_FN_ATTRS
3619_mm256_mask_min_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
3620 __m256i __B) {
3621 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
3622 (__v8si) __B,
3623 (__v8si) __W, __M);
3624}
3625
3626static __inline__ __m128i __DEFAULT_FN_ATTRS
3627_mm_min_epu64 (__m128i __A, __m128i __B) {
3628 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3629 (__v2di) __B,
3630 (__v2di)
3631 _mm_setzero_si128 (),
3632 (__mmask8) -1);
3633}
3634
3635static __inline__ __m128i __DEFAULT_FN_ATTRS
3636_mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3637 __m128i __B) {
3638 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3639 (__v2di) __B,
3640 (__v2di) __W, __M);
3641}
3642
3643static __inline__ __m128i __DEFAULT_FN_ATTRS
3644_mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3645 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3646 (__v2di) __B,
3647 (__v2di)
3648 _mm_setzero_si128 (),
3649 __M);
3650}
3651
3652static __inline__ __m256i __DEFAULT_FN_ATTRS
3653_mm256_min_epu64 (__m256i __A, __m256i __B) {
3654 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3655 (__v4di) __B,
3656 (__v4di)
3657 _mm256_setzero_si256 (),
3658 (__mmask8) -1);
3659}
3660
3661static __inline__ __m256i __DEFAULT_FN_ATTRS
3662_mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3663 __m256i __B) {
3664 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3665 (__v4di) __B,
3666 (__v4di) __W, __M);
3667}
3668
3669static __inline__ __m256i __DEFAULT_FN_ATTRS
3670_mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3671 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3672 (__v4di) __B,
3673 (__v4di)
3674 _mm256_setzero_si256 (),
3675 __M);
3676}
3677
Craig Topperd2661882016-05-17 04:41:48 +00003678#define _mm_roundscale_pd(A, imm) __extension__ ({ \
3679 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3680 (int)(imm), \
3681 (__v2df)_mm_setzero_pd(), \
3682 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003683
3684
Craig Topperd2661882016-05-17 04:41:48 +00003685#define _mm_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3686 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3687 (int)(imm), \
3688 (__v2df)(__m128d)(W), \
3689 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003690
3691
Craig Topperd2661882016-05-17 04:41:48 +00003692#define _mm_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3693 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3694 (int)(imm), \
3695 (__v2df)_mm_setzero_pd(), \
3696 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003697
3698
Craig Topperd2661882016-05-17 04:41:48 +00003699#define _mm256_roundscale_pd(A, imm) __extension__ ({ \
3700 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3701 (int)(imm), \
3702 (__v4df)_mm256_setzero_pd(), \
3703 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003704
3705
Craig Topperd2661882016-05-17 04:41:48 +00003706#define _mm256_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3707 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3708 (int)(imm), \
3709 (__v4df)(__m256d)(W), \
3710 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003711
3712
Craig Topperd2661882016-05-17 04:41:48 +00003713#define _mm256_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3714 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3715 (int)(imm), \
3716 (__v4df)_mm256_setzero_pd(), \
3717 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003718
Craig Topperd2661882016-05-17 04:41:48 +00003719#define _mm_roundscale_ps(A, imm) __extension__ ({ \
3720 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3721 (__v4sf)_mm_setzero_ps(), \
3722 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003723
3724
Craig Topperd2661882016-05-17 04:41:48 +00003725#define _mm_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3726 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3727 (__v4sf)(__m128)(W), \
3728 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003729
3730
Craig Topperd2661882016-05-17 04:41:48 +00003731#define _mm_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3732 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3733 (__v4sf)_mm_setzero_ps(), \
3734 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003735
Craig Topperd2661882016-05-17 04:41:48 +00003736#define _mm256_roundscale_ps(A, imm) __extension__ ({ \
3737 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3738 (__v8sf)_mm256_setzero_ps(), \
3739 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003740
Craig Topperd2661882016-05-17 04:41:48 +00003741#define _mm256_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3742 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3743 (__v8sf)(__m256)(W), \
3744 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003745
3746
Craig Topperd2661882016-05-17 04:41:48 +00003747#define _mm256_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3748 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3749 (__v8sf)_mm256_setzero_ps(), \
3750 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003751
3752static __inline__ __m128d __DEFAULT_FN_ATTRS
3753_mm_scalef_pd (__m128d __A, __m128d __B) {
3754 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3755 (__v2df) __B,
3756 (__v2df)
3757 _mm_setzero_pd (),
3758 (__mmask8) -1);
3759}
3760
3761static __inline__ __m128d __DEFAULT_FN_ATTRS
3762_mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A,
3763 __m128d __B) {
3764 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3765 (__v2df) __B,
3766 (__v2df) __W,
3767 (__mmask8) __U);
3768}
3769
3770static __inline__ __m128d __DEFAULT_FN_ATTRS
3771_mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3772 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3773 (__v2df) __B,
3774 (__v2df)
3775 _mm_setzero_pd (),
3776 (__mmask8) __U);
3777}
3778
3779static __inline__ __m256d __DEFAULT_FN_ATTRS
3780_mm256_scalef_pd (__m256d __A, __m256d __B) {
3781 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3782 (__v4df) __B,
3783 (__v4df)
3784 _mm256_setzero_pd (),
3785 (__mmask8) -1);
3786}
3787
3788static __inline__ __m256d __DEFAULT_FN_ATTRS
3789_mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A,
3790 __m256d __B) {
3791 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3792 (__v4df) __B,
3793 (__v4df) __W,
3794 (__mmask8) __U);
3795}
3796
3797static __inline__ __m256d __DEFAULT_FN_ATTRS
3798_mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3799 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3800 (__v4df) __B,
3801 (__v4df)
3802 _mm256_setzero_pd (),
3803 (__mmask8) __U);
3804}
3805
3806static __inline__ __m128 __DEFAULT_FN_ATTRS
3807_mm_scalef_ps (__m128 __A, __m128 __B) {
3808 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3809 (__v4sf) __B,
3810 (__v4sf)
3811 _mm_setzero_ps (),
3812 (__mmask8) -1);
3813}
3814
3815static __inline__ __m128 __DEFAULT_FN_ATTRS
3816_mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3817 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3818 (__v4sf) __B,
3819 (__v4sf) __W,
3820 (__mmask8) __U);
3821}
3822
3823static __inline__ __m128 __DEFAULT_FN_ATTRS
3824_mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3825 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3826 (__v4sf) __B,
3827 (__v4sf)
3828 _mm_setzero_ps (),
3829 (__mmask8) __U);
3830}
3831
3832static __inline__ __m256 __DEFAULT_FN_ATTRS
3833_mm256_scalef_ps (__m256 __A, __m256 __B) {
3834 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3835 (__v8sf) __B,
3836 (__v8sf)
3837 _mm256_setzero_ps (),
3838 (__mmask8) -1);
3839}
3840
3841static __inline__ __m256 __DEFAULT_FN_ATTRS
3842_mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A,
3843 __m256 __B) {
3844 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3845 (__v8sf) __B,
3846 (__v8sf) __W,
3847 (__mmask8) __U);
3848}
3849
3850static __inline__ __m256 __DEFAULT_FN_ATTRS
3851_mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3852 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3853 (__v8sf) __B,
3854 (__v8sf)
3855 _mm256_setzero_ps (),
3856 (__mmask8) __U);
3857}
3858
Craig Topperd2661882016-05-17 04:41:48 +00003859#define _mm_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
3860 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)-1, \
3861 (__v2di)(__m128i)(index), \
3862 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003863
Craig Topperd2661882016-05-17 04:41:48 +00003864#define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3865 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)(mask), \
3866 (__v2di)(__m128i)(index), \
3867 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003868
Craig Topperd2661882016-05-17 04:41:48 +00003869#define _mm_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3870 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)-1, \
3871 (__v2di)(__m128i)(index), \
3872 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003873
Craig Topperd2661882016-05-17 04:41:48 +00003874#define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3875 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)(mask), \
3876 (__v2di)(__m128i)(index), \
3877 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003878
Craig Topperd2661882016-05-17 04:41:48 +00003879#define _mm256_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
3880 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)-1, \
3881 (__v4di)(__m256i)(index), \
3882 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003883
Craig Topperd2661882016-05-17 04:41:48 +00003884#define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3885 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)(mask), \
3886 (__v4di)(__m256i)(index), \
3887 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003888
Craig Topperd2661882016-05-17 04:41:48 +00003889#define _mm256_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3890 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)-1, \
3891 (__v4di)(__m256i)(index), \
3892 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003893
Craig Topperd2661882016-05-17 04:41:48 +00003894#define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3895 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)(mask), \
3896 (__v4di)(__m256i)(index), \
3897 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003898
Craig Topperd2661882016-05-17 04:41:48 +00003899#define _mm_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
3900 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)-1, \
3901 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
3902 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003903
Craig Topperd2661882016-05-17 04:41:48 +00003904#define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3905 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)(mask), \
3906 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
3907 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003908
Craig Topperd2661882016-05-17 04:41:48 +00003909#define _mm_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3910 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)-1, \
3911 (__v2di)(__m128i)(index), \
3912 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003913
Craig Topperd2661882016-05-17 04:41:48 +00003914#define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3915 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)(mask), \
3916 (__v2di)(__m128i)(index), \
3917 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003918
Craig Topperd2661882016-05-17 04:41:48 +00003919#define _mm256_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
3920 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)-1, \
3921 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
3922 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003923
Craig Topperd2661882016-05-17 04:41:48 +00003924#define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3925 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)(mask), \
3926 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
3927 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003928
Craig Topperd2661882016-05-17 04:41:48 +00003929#define _mm256_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3930 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)-1, \
3931 (__v4di)(__m256i)(index), \
3932 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003933
Craig Topperd2661882016-05-17 04:41:48 +00003934#define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3935 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)(mask), \
3936 (__v4di)(__m256i)(index), \
3937 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003938
Craig Topperd2661882016-05-17 04:41:48 +00003939#define _mm_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
3940 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)-1, \
3941 (__v4si)(__m128i)(index), \
3942 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003943
Craig Topperd2661882016-05-17 04:41:48 +00003944#define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3945 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)(mask), \
3946 (__v4si)(__m128i)(index), \
3947 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003948
Craig Topperd2661882016-05-17 04:41:48 +00003949#define _mm_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3950 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)-1, \
3951 (__v4si)(__m128i)(index), \
3952 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003953
Craig Topperd2661882016-05-17 04:41:48 +00003954#define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3955 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)(mask), \
3956 (__v4si)(__m128i)(index), \
3957 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003958
Craig Topperd2661882016-05-17 04:41:48 +00003959#define _mm256_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
3960 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)-1, \
3961 (__v4si)(__m128i)(index), \
3962 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003963
Craig Topperd2661882016-05-17 04:41:48 +00003964#define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3965 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)(mask), \
3966 (__v4si)(__m128i)(index), \
3967 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003968
Craig Topperd2661882016-05-17 04:41:48 +00003969#define _mm256_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3970 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)-1, \
3971 (__v4si)(__m128i)(index), \
3972 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003973
Craig Topperd2661882016-05-17 04:41:48 +00003974#define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3975 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)(mask), \
3976 (__v4si)(__m128i)(index), \
3977 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003978
Craig Topperd2661882016-05-17 04:41:48 +00003979#define _mm_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
3980 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)-1, \
3981 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
3982 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003983
Craig Topperd2661882016-05-17 04:41:48 +00003984#define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3985 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)(mask), \
3986 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
3987 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003988
Craig Topperd2661882016-05-17 04:41:48 +00003989#define _mm_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3990 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)-1, \
3991 (__v4si)(__m128i)(index), \
3992 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003993
Craig Topperd2661882016-05-17 04:41:48 +00003994#define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3995 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)(mask), \
3996 (__v4si)(__m128i)(index), \
3997 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003998
Craig Topperd2661882016-05-17 04:41:48 +00003999#define _mm256_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
4000 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)-1, \
4001 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
4002 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004003
Craig Topperd2661882016-05-17 04:41:48 +00004004#define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4005 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)(mask), \
4006 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
4007 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004008
Craig Topperd2661882016-05-17 04:41:48 +00004009#define _mm256_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4010 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)-1, \
4011 (__v8si)(__m256i)(index), \
4012 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004013
Craig Topperd2661882016-05-17 04:41:48 +00004014#define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4015 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)(mask), \
4016 (__v8si)(__m256i)(index), \
4017 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004018
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004019static __inline__ __m128d __DEFAULT_FN_ATTRS
4020_mm_mask_sqrt_pd (__m128d __W, __mmask8 __U, __m128d __A) {
4021 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
4022 (__v2df) __W,
4023 (__mmask8) __U);
4024}
4025
4026static __inline__ __m128d __DEFAULT_FN_ATTRS
4027_mm_maskz_sqrt_pd (__mmask8 __U, __m128d __A) {
4028 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
4029 (__v2df)
4030 _mm_setzero_pd (),
4031 (__mmask8) __U);
4032}
4033
4034static __inline__ __m256d __DEFAULT_FN_ATTRS
4035_mm256_mask_sqrt_pd (__m256d __W, __mmask8 __U, __m256d __A) {
4036 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
4037 (__v4df) __W,
4038 (__mmask8) __U);
4039}
4040
4041static __inline__ __m256d __DEFAULT_FN_ATTRS
4042_mm256_maskz_sqrt_pd (__mmask8 __U, __m256d __A) {
4043 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
4044 (__v4df)
4045 _mm256_setzero_pd (),
4046 (__mmask8) __U);
4047}
4048
4049static __inline__ __m128 __DEFAULT_FN_ATTRS
4050_mm_mask_sqrt_ps (__m128 __W, __mmask8 __U, __m128 __A) {
4051 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
4052 (__v4sf) __W,
4053 (__mmask8) __U);
4054}
4055
4056static __inline__ __m128 __DEFAULT_FN_ATTRS
4057_mm_maskz_sqrt_ps (__mmask8 __U, __m128 __A) {
4058 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
4059 (__v4sf)
4060 _mm_setzero_ps (),
4061 (__mmask8) __U);
4062}
4063
4064static __inline__ __m256 __DEFAULT_FN_ATTRS
4065_mm256_mask_sqrt_ps (__m256 __W, __mmask8 __U, __m256 __A) {
4066 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4067 (__v8sf) __W,
4068 (__mmask8) __U);
4069}
4070
4071static __inline__ __m256 __DEFAULT_FN_ATTRS
4072_mm256_maskz_sqrt_ps (__mmask8 __U, __m256 __A) {
4073 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4074 (__v8sf)
4075 _mm256_setzero_ps (),
4076 (__mmask8) __U);
4077}
4078
4079static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004080_mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4081 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
4082 (__v2df)_mm_sub_pd(__A, __B),
4083 (__v2df)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004084}
4085
4086static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004087_mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4088 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
4089 (__v2df)_mm_sub_pd(__A, __B),
4090 (__v2df)_mm_setzero_pd());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004091}
4092
4093static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004094_mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4095 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
4096 (__v4df)_mm256_sub_pd(__A, __B),
4097 (__v4df)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004098}
4099
4100static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004101_mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4102 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
4103 (__v4df)_mm256_sub_pd(__A, __B),
4104 (__v4df)_mm256_setzero_pd());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004105}
4106
4107static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004108_mm_mask_sub_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4109 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
4110 (__v4sf)_mm_sub_ps(__A, __B),
4111 (__v4sf)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004112}
4113
4114static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004115_mm_maskz_sub_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4116 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
4117 (__v4sf)_mm_sub_ps(__A, __B),
4118 (__v4sf)_mm_setzero_ps());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004119}
4120
4121static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004122_mm256_mask_sub_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4123 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
4124 (__v8sf)_mm256_sub_ps(__A, __B),
4125 (__v8sf)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004126}
4127
4128static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004129_mm256_maskz_sub_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4130 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
4131 (__v8sf)_mm256_sub_ps(__A, __B),
4132 (__v8sf)_mm256_setzero_ps());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004133}
4134
4135static __inline__ __m128i __DEFAULT_FN_ATTRS
4136_mm_mask2_permutex2var_epi32 (__m128i __A, __m128i __I, __mmask8 __U,
4137 __m128i __B) {
4138 return (__m128i) __builtin_ia32_vpermi2vard128_mask ((__v4si) __A,
4139 (__v4si) __I
4140 /* idx */ ,
4141 (__v4si) __B,
4142 (__mmask8) __U);
4143}
4144
4145static __inline__ __m256i __DEFAULT_FN_ATTRS
4146_mm256_mask2_permutex2var_epi32 (__m256i __A, __m256i __I,
4147 __mmask8 __U, __m256i __B) {
4148 return (__m256i) __builtin_ia32_vpermi2vard256_mask ((__v8si) __A,
4149 (__v8si) __I
4150 /* idx */ ,
4151 (__v8si) __B,
4152 (__mmask8) __U);
4153}
4154
4155static __inline__ __m128d __DEFAULT_FN_ATTRS
4156_mm_mask2_permutex2var_pd (__m128d __A, __m128i __I, __mmask8 __U,
4157 __m128d __B) {
4158 return (__m128d) __builtin_ia32_vpermi2varpd128_mask ((__v2df) __A,
4159 (__v2di) __I
4160 /* idx */ ,
4161 (__v2df) __B,
4162 (__mmask8)
4163 __U);
4164}
4165
4166static __inline__ __m256d __DEFAULT_FN_ATTRS
4167_mm256_mask2_permutex2var_pd (__m256d __A, __m256i __I, __mmask8 __U,
4168 __m256d __B) {
4169 return (__m256d) __builtin_ia32_vpermi2varpd256_mask ((__v4df) __A,
4170 (__v4di) __I
4171 /* idx */ ,
4172 (__v4df) __B,
4173 (__mmask8)
4174 __U);
4175}
4176
4177static __inline__ __m128 __DEFAULT_FN_ATTRS
4178_mm_mask2_permutex2var_ps (__m128 __A, __m128i __I, __mmask8 __U,
4179 __m128 __B) {
4180 return (__m128) __builtin_ia32_vpermi2varps128_mask ((__v4sf) __A,
4181 (__v4si) __I
4182 /* idx */ ,
4183 (__v4sf) __B,
4184 (__mmask8) __U);
4185}
4186
4187static __inline__ __m256 __DEFAULT_FN_ATTRS
4188_mm256_mask2_permutex2var_ps (__m256 __A, __m256i __I, __mmask8 __U,
4189 __m256 __B) {
4190 return (__m256) __builtin_ia32_vpermi2varps256_mask ((__v8sf) __A,
4191 (__v8si) __I
4192 /* idx */ ,
4193 (__v8sf) __B,
4194 (__mmask8) __U);
4195}
4196
4197static __inline__ __m128i __DEFAULT_FN_ATTRS
4198_mm_mask2_permutex2var_epi64 (__m128i __A, __m128i __I, __mmask8 __U,
4199 __m128i __B) {
4200 return (__m128i) __builtin_ia32_vpermi2varq128_mask ((__v2di) __A,
4201 (__v2di) __I
4202 /* idx */ ,
4203 (__v2di) __B,
4204 (__mmask8) __U);
4205}
4206
4207static __inline__ __m256i __DEFAULT_FN_ATTRS
4208_mm256_mask2_permutex2var_epi64 (__m256i __A, __m256i __I,
4209 __mmask8 __U, __m256i __B) {
4210 return (__m256i) __builtin_ia32_vpermi2varq256_mask ((__v4di) __A,
4211 (__v4di) __I
4212 /* idx */ ,
4213 (__v4di) __B,
4214 (__mmask8) __U);
4215}
4216
4217static __inline__ __m128i __DEFAULT_FN_ATTRS
4218_mm_permutex2var_epi32 (__m128i __A, __m128i __I, __m128i __B) {
4219 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4220 /* idx */ ,
4221 (__v4si) __A,
4222 (__v4si) __B,
4223 (__mmask8) -1);
4224}
4225
4226static __inline__ __m128i __DEFAULT_FN_ATTRS
4227_mm_mask_permutex2var_epi32 (__m128i __A, __mmask8 __U, __m128i __I,
4228 __m128i __B) {
4229 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4230 /* idx */ ,
4231 (__v4si) __A,
4232 (__v4si) __B,
4233 (__mmask8) __U);
4234}
4235
4236static __inline__ __m128i __DEFAULT_FN_ATTRS
4237_mm_maskz_permutex2var_epi32 (__mmask8 __U, __m128i __A, __m128i __I,
4238 __m128i __B) {
4239 return (__m128i) __builtin_ia32_vpermt2vard128_maskz ((__v4si) __I
4240 /* idx */ ,
4241 (__v4si) __A,
4242 (__v4si) __B,
4243 (__mmask8)
4244 __U);
4245}
4246
4247static __inline__ __m256i __DEFAULT_FN_ATTRS
4248_mm256_permutex2var_epi32 (__m256i __A, __m256i __I, __m256i __B) {
4249 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4250 /* idx */ ,
4251 (__v8si) __A,
4252 (__v8si) __B,
4253 (__mmask8) -1);
4254}
4255
4256static __inline__ __m256i __DEFAULT_FN_ATTRS
4257_mm256_mask_permutex2var_epi32 (__m256i __A, __mmask8 __U, __m256i __I,
4258 __m256i __B) {
4259 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4260 /* idx */ ,
4261 (__v8si) __A,
4262 (__v8si) __B,
4263 (__mmask8) __U);
4264}
4265
4266static __inline__ __m256i __DEFAULT_FN_ATTRS
4267_mm256_maskz_permutex2var_epi32 (__mmask8 __U, __m256i __A,
4268 __m256i __I, __m256i __B) {
4269 return (__m256i) __builtin_ia32_vpermt2vard256_maskz ((__v8si) __I
4270 /* idx */ ,
4271 (__v8si) __A,
4272 (__v8si) __B,
4273 (__mmask8)
4274 __U);
4275}
4276
4277static __inline__ __m128d __DEFAULT_FN_ATTRS
4278_mm_permutex2var_pd (__m128d __A, __m128i __I, __m128d __B) {
4279 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4280 /* idx */ ,
4281 (__v2df) __A,
4282 (__v2df) __B,
4283 (__mmask8) -
4284 1);
4285}
4286
4287static __inline__ __m128d __DEFAULT_FN_ATTRS
4288_mm_mask_permutex2var_pd (__m128d __A, __mmask8 __U, __m128i __I,
4289 __m128d __B) {
4290 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4291 /* idx */ ,
4292 (__v2df) __A,
4293 (__v2df) __B,
4294 (__mmask8)
4295 __U);
4296}
4297
4298static __inline__ __m128d __DEFAULT_FN_ATTRS
4299_mm_maskz_permutex2var_pd (__mmask8 __U, __m128d __A, __m128i __I,
4300 __m128d __B) {
4301 return (__m128d) __builtin_ia32_vpermt2varpd128_maskz ((__v2di) __I
4302 /* idx */ ,
4303 (__v2df) __A,
4304 (__v2df) __B,
4305 (__mmask8)
4306 __U);
4307}
4308
4309static __inline__ __m256d __DEFAULT_FN_ATTRS
4310_mm256_permutex2var_pd (__m256d __A, __m256i __I, __m256d __B) {
4311 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4312 /* idx */ ,
4313 (__v4df) __A,
4314 (__v4df) __B,
4315 (__mmask8) -
4316 1);
4317}
4318
4319static __inline__ __m256d __DEFAULT_FN_ATTRS
4320_mm256_mask_permutex2var_pd (__m256d __A, __mmask8 __U, __m256i __I,
4321 __m256d __B) {
4322 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4323 /* idx */ ,
4324 (__v4df) __A,
4325 (__v4df) __B,
4326 (__mmask8)
4327 __U);
4328}
4329
4330static __inline__ __m256d __DEFAULT_FN_ATTRS
4331_mm256_maskz_permutex2var_pd (__mmask8 __U, __m256d __A, __m256i __I,
4332 __m256d __B) {
4333 return (__m256d) __builtin_ia32_vpermt2varpd256_maskz ((__v4di) __I
4334 /* idx */ ,
4335 (__v4df) __A,
4336 (__v4df) __B,
4337 (__mmask8)
4338 __U);
4339}
4340
4341static __inline__ __m128 __DEFAULT_FN_ATTRS
4342_mm_permutex2var_ps (__m128 __A, __m128i __I, __m128 __B) {
4343 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4344 /* idx */ ,
4345 (__v4sf) __A,
4346 (__v4sf) __B,
4347 (__mmask8) -1);
4348}
4349
4350static __inline__ __m128 __DEFAULT_FN_ATTRS
4351_mm_mask_permutex2var_ps (__m128 __A, __mmask8 __U, __m128i __I,
4352 __m128 __B) {
4353 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4354 /* idx */ ,
4355 (__v4sf) __A,
4356 (__v4sf) __B,
4357 (__mmask8) __U);
4358}
4359
4360static __inline__ __m128 __DEFAULT_FN_ATTRS
4361_mm_maskz_permutex2var_ps (__mmask8 __U, __m128 __A, __m128i __I,
4362 __m128 __B) {
4363 return (__m128) __builtin_ia32_vpermt2varps128_maskz ((__v4si) __I
4364 /* idx */ ,
4365 (__v4sf) __A,
4366 (__v4sf) __B,
4367 (__mmask8)
4368 __U);
4369}
4370
4371static __inline__ __m256 __DEFAULT_FN_ATTRS
4372_mm256_permutex2var_ps (__m256 __A, __m256i __I, __m256 __B) {
4373 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4374 /* idx */ ,
4375 (__v8sf) __A,
4376 (__v8sf) __B,
4377 (__mmask8) -1);
4378}
4379
4380static __inline__ __m256 __DEFAULT_FN_ATTRS
4381_mm256_mask_permutex2var_ps (__m256 __A, __mmask8 __U, __m256i __I,
4382 __m256 __B) {
4383 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4384 /* idx */ ,
4385 (__v8sf) __A,
4386 (__v8sf) __B,
4387 (__mmask8) __U);
4388}
4389
4390static __inline__ __m256 __DEFAULT_FN_ATTRS
4391_mm256_maskz_permutex2var_ps (__mmask8 __U, __m256 __A, __m256i __I,
4392 __m256 __B) {
4393 return (__m256) __builtin_ia32_vpermt2varps256_maskz ((__v8si) __I
4394 /* idx */ ,
4395 (__v8sf) __A,
4396 (__v8sf) __B,
4397 (__mmask8)
4398 __U);
4399}
4400
4401static __inline__ __m128i __DEFAULT_FN_ATTRS
4402_mm_permutex2var_epi64 (__m128i __A, __m128i __I, __m128i __B) {
4403 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4404 /* idx */ ,
4405 (__v2di) __A,
4406 (__v2di) __B,
4407 (__mmask8) -1);
4408}
4409
4410static __inline__ __m128i __DEFAULT_FN_ATTRS
4411_mm_mask_permutex2var_epi64 (__m128i __A, __mmask8 __U, __m128i __I,
4412 __m128i __B) {
4413 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4414 /* idx */ ,
4415 (__v2di) __A,
4416 (__v2di) __B,
4417 (__mmask8) __U);
4418}
4419
4420static __inline__ __m128i __DEFAULT_FN_ATTRS
4421_mm_maskz_permutex2var_epi64 (__mmask8 __U, __m128i __A, __m128i __I,
4422 __m128i __B) {
4423 return (__m128i) __builtin_ia32_vpermt2varq128_maskz ((__v2di) __I
4424 /* idx */ ,
4425 (__v2di) __A,
4426 (__v2di) __B,
4427 (__mmask8)
4428 __U);
4429}
4430
4431
4432static __inline__ __m256i __DEFAULT_FN_ATTRS
4433_mm256_permutex2var_epi64 (__m256i __A, __m256i __I, __m256i __B) {
4434 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4435 /* idx */ ,
4436 (__v4di) __A,
4437 (__v4di) __B,
4438 (__mmask8) -1);
4439}
4440
4441static __inline__ __m256i __DEFAULT_FN_ATTRS
4442_mm256_mask_permutex2var_epi64 (__m256i __A, __mmask8 __U, __m256i __I,
4443 __m256i __B) {
4444 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4445 /* idx */ ,
4446 (__v4di) __A,
4447 (__v4di) __B,
4448 (__mmask8) __U);
4449}
4450
4451static __inline__ __m256i __DEFAULT_FN_ATTRS
4452_mm256_maskz_permutex2var_epi64 (__mmask8 __U, __m256i __A,
4453 __m256i __I, __m256i __B) {
4454 return (__m256i) __builtin_ia32_vpermt2varq256_maskz ((__v4di) __I
4455 /* idx */ ,
4456 (__v4di) __A,
4457 (__v4di) __B,
4458 (__mmask8)
4459 __U);
4460}
4461
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004462static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004463_mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004464{
Craig Topper11dda922016-10-22 21:24:48 +00004465 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4466 (__v4si)_mm_cvtepi8_epi32(__A),
4467 (__v4si)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004468}
4469
4470static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004471_mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004472{
Craig Topper11dda922016-10-22 21:24:48 +00004473 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4474 (__v4si)_mm_cvtepi8_epi32(__A),
4475 (__v4si)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004476}
4477
4478static __inline__ __m256i __DEFAULT_FN_ATTRS
4479_mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4480{
Craig Topper11dda922016-10-22 21:24:48 +00004481 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4482 (__v8si)_mm256_cvtepi8_epi32(__A),
4483 (__v8si)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004484}
4485
4486static __inline__ __m256i __DEFAULT_FN_ATTRS
4487_mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4488{
Craig Topper11dda922016-10-22 21:24:48 +00004489 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4490 (__v8si)_mm256_cvtepi8_epi32(__A),
4491 (__v8si)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004492}
4493
4494static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004495_mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004496{
Craig Topper11dda922016-10-22 21:24:48 +00004497 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4498 (__v2di)_mm_cvtepi8_epi64(__A),
4499 (__v2di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004500}
4501
4502static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004503_mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004504{
Craig Topper11dda922016-10-22 21:24:48 +00004505 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4506 (__v2di)_mm_cvtepi8_epi64(__A),
4507 (__v2di)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004508}
4509
4510static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004511_mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004512{
Craig Topper11dda922016-10-22 21:24:48 +00004513 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4514 (__v4di)_mm256_cvtepi8_epi64(__A),
4515 (__v4di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004516}
4517
4518static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004519_mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004520{
Craig Topper11dda922016-10-22 21:24:48 +00004521 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4522 (__v4di)_mm256_cvtepi8_epi64(__A),
4523 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004524}
4525
4526static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004527_mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004528{
Craig Topper11dda922016-10-22 21:24:48 +00004529 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4530 (__v2di)_mm_cvtepi32_epi64(__X),
4531 (__v2di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004532}
4533
4534static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004535_mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004536{
Craig Topper11dda922016-10-22 21:24:48 +00004537 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4538 (__v2di)_mm_cvtepi32_epi64(__X),
4539 (__v2di)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004540}
4541
4542static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004543_mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004544{
Craig Topper11dda922016-10-22 21:24:48 +00004545 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4546 (__v4di)_mm256_cvtepi32_epi64(__X),
4547 (__v4di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004548}
4549
4550static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004551_mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004552{
Craig Topper11dda922016-10-22 21:24:48 +00004553 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4554 (__v4di)_mm256_cvtepi32_epi64(__X),
4555 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004556}
4557
4558static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004559_mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004560{
Craig Topper11dda922016-10-22 21:24:48 +00004561 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4562 (__v4si)_mm_cvtepi16_epi32(__A),
4563 (__v4si)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004564}
4565
4566static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004567_mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004568{
Craig Topper11dda922016-10-22 21:24:48 +00004569 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4570 (__v4si)_mm_cvtepi16_epi32(__A),
4571 (__v4si)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004572}
4573
4574static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004575_mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004576{
Craig Topper11dda922016-10-22 21:24:48 +00004577 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4578 (__v8si)_mm256_cvtepi16_epi32(__A),
4579 (__v8si)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004580}
4581
4582static __inline__ __m256i __DEFAULT_FN_ATTRS
4583_mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4584{
Craig Topper11dda922016-10-22 21:24:48 +00004585 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4586 (__v8si)_mm256_cvtepi16_epi32(__A),
4587 (__v8si)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004588}
4589
4590static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004591_mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004592{
Craig Topper11dda922016-10-22 21:24:48 +00004593 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4594 (__v2di)_mm_cvtepi16_epi64(__A),
4595 (__v2di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004596}
4597
4598static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004599_mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004600{
Craig Topper11dda922016-10-22 21:24:48 +00004601 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4602 (__v2di)_mm_cvtepi16_epi64(__A),
4603 (__v2di)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004604}
4605
4606static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004607_mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004608{
Craig Topper11dda922016-10-22 21:24:48 +00004609 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4610 (__v4di)_mm256_cvtepi16_epi64(__A),
4611 (__v4di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004612}
4613
4614static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004615_mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004616{
Craig Topper11dda922016-10-22 21:24:48 +00004617 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4618 (__v4di)_mm256_cvtepi16_epi64(__A),
4619 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004620}
4621
4622
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004623static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004624_mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004625{
Craig Topper11dda922016-10-22 21:24:48 +00004626 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4627 (__v4si)_mm_cvtepu8_epi32(__A),
4628 (__v4si)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004629}
4630
4631static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004632_mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004633{
Craig Topper11dda922016-10-22 21:24:48 +00004634 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4635 (__v4si)_mm_cvtepu8_epi32(__A),
4636 (__v4si)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004637}
4638
4639static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004640_mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004641{
Craig Topper11dda922016-10-22 21:24:48 +00004642 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4643 (__v8si)_mm256_cvtepu8_epi32(__A),
4644 (__v8si)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004645}
4646
4647static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004648_mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004649{
Craig Topper11dda922016-10-22 21:24:48 +00004650 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4651 (__v8si)_mm256_cvtepu8_epi32(__A),
4652 (__v8si)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004653}
4654
4655static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004656_mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004657{
Craig Topper11dda922016-10-22 21:24:48 +00004658 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4659 (__v2di)_mm_cvtepu8_epi64(__A),
4660 (__v2di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004661}
4662
4663static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004664_mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004665{
Craig Topper11dda922016-10-22 21:24:48 +00004666 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4667 (__v2di)_mm_cvtepu8_epi64(__A),
4668 (__v2di)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004669}
4670
4671static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004672_mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004673{
Craig Topper11dda922016-10-22 21:24:48 +00004674 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4675 (__v4di)_mm256_cvtepu8_epi64(__A),
4676 (__v4di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004677}
4678
4679static __inline__ __m256i __DEFAULT_FN_ATTRS
4680_mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
4681{
Craig Topper11dda922016-10-22 21:24:48 +00004682 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4683 (__v4di)_mm256_cvtepu8_epi64(__A),
4684 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004685}
4686
4687static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004688_mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004689{
Craig Topper11dda922016-10-22 21:24:48 +00004690 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4691 (__v2di)_mm_cvtepu32_epi64(__X),
4692 (__v2di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004693}
4694
4695static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004696_mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004697{
Craig Topper11dda922016-10-22 21:24:48 +00004698 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4699 (__v2di)_mm_cvtepu32_epi64(__X),
4700 (__v2di)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004701}
4702
4703static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004704_mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004705{
Craig Topper11dda922016-10-22 21:24:48 +00004706 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4707 (__v4di)_mm256_cvtepu32_epi64(__X),
4708 (__v4di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004709}
4710
4711static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004712_mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004713{
Craig Topper11dda922016-10-22 21:24:48 +00004714 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4715 (__v4di)_mm256_cvtepu32_epi64(__X),
4716 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004717}
4718
4719static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004720_mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004721{
Craig Topper11dda922016-10-22 21:24:48 +00004722 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4723 (__v4si)_mm_cvtepu16_epi32(__A),
4724 (__v4si)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004725}
4726
4727static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004728_mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004729{
Craig Topper11dda922016-10-22 21:24:48 +00004730 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4731 (__v4si)_mm_cvtepu16_epi32(__A),
4732 (__v4si)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004733}
4734
4735static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004736_mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004737{
Craig Topper11dda922016-10-22 21:24:48 +00004738 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4739 (__v8si)_mm256_cvtepu16_epi32(__A),
4740 (__v8si)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004741}
4742
4743static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004744_mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004745{
Craig Topper11dda922016-10-22 21:24:48 +00004746 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4747 (__v8si)_mm256_cvtepu16_epi32(__A),
4748 (__v8si)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004749}
4750
4751static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004752_mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004753{
Craig Topper11dda922016-10-22 21:24:48 +00004754 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4755 (__v2di)_mm_cvtepu16_epi64(__A),
4756 (__v2di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004757}
4758
4759static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004760_mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004761{
Craig Topper11dda922016-10-22 21:24:48 +00004762 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4763 (__v2di)_mm_cvtepu16_epi64(__A),
4764 (__v2di)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004765}
4766
4767static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004768_mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004769{
Craig Topper11dda922016-10-22 21:24:48 +00004770 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4771 (__v4di)_mm256_cvtepu16_epi64(__A),
4772 (__v4di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004773}
4774
4775static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004776_mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004777{
Craig Topper11dda922016-10-22 21:24:48 +00004778 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4779 (__v4di)_mm256_cvtepu16_epi64(__A),
4780 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004781}
4782
4783
Michael Zuckerman38a27272016-02-22 09:05:41 +00004784#define _mm_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004785 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4786 (__v4si)_mm_setzero_si128(), \
4787 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004788
4789#define _mm_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004790 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4791 (__v4si)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004792
4793#define _mm_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004794 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4795 (__v4si)_mm_setzero_si128(), \
4796 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004797
4798#define _mm256_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004799 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4800 (__v8si)_mm256_setzero_si256(), \
4801 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004802
4803#define _mm256_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004804 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4805 (__v8si)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004806
4807#define _mm256_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004808 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4809 (__v8si)_mm256_setzero_si256(), \
4810 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004811
Michael Zuckerman477e0a32016-02-22 09:42:57 +00004812#define _mm_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004813 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4814 (__v2di)_mm_setzero_di(), \
4815 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004816
4817#define _mm_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004818 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4819 (__v2di)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004820
4821#define _mm_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004822 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4823 (__v2di)_mm_setzero_di(), \
4824 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004825
4826#define _mm256_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004827 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4828 (__v4di)_mm256_setzero_si256(), \
4829 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004830
4831#define _mm256_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004832 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4833 (__v4di)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004834
4835#define _mm256_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004836 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4837 (__v4di)_mm256_setzero_si256(), \
4838 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004839
Michael Zuckerman0231f162016-02-23 13:41:13 +00004840static __inline__ __m128i __DEFAULT_FN_ATTRS
4841_mm_rolv_epi32 (__m128i __A, __m128i __B)
4842{
4843 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4844 (__v4si) __B,
4845 (__v4si)
4846 _mm_setzero_si128 (),
4847 (__mmask8) -1);
4848}
4849
4850static __inline__ __m128i __DEFAULT_FN_ATTRS
4851_mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
4852 __m128i __B)
4853{
4854 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4855 (__v4si) __B,
4856 (__v4si) __W,
4857 (__mmask8) __U);
4858}
4859
4860static __inline__ __m128i __DEFAULT_FN_ATTRS
4861_mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
4862{
4863 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4864 (__v4si) __B,
4865 (__v4si)
4866 _mm_setzero_si128 (),
4867 (__mmask8) __U);
4868}
4869
4870static __inline__ __m256i __DEFAULT_FN_ATTRS
4871_mm256_rolv_epi32 (__m256i __A, __m256i __B)
4872{
4873 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4874 (__v8si) __B,
4875 (__v8si)
4876 _mm256_setzero_si256 (),
4877 (__mmask8) -1);
4878}
4879
4880static __inline__ __m256i __DEFAULT_FN_ATTRS
4881_mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
4882 __m256i __B)
4883{
4884 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4885 (__v8si) __B,
4886 (__v8si) __W,
4887 (__mmask8) __U);
4888}
4889
4890static __inline__ __m256i __DEFAULT_FN_ATTRS
4891_mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
4892{
4893 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4894 (__v8si) __B,
4895 (__v8si)
4896 _mm256_setzero_si256 (),
4897 (__mmask8) __U);
4898}
4899
4900static __inline__ __m128i __DEFAULT_FN_ATTRS
4901_mm_rolv_epi64 (__m128i __A, __m128i __B)
4902{
4903 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
4904 (__v2di) __B,
4905 (__v2di)
4906 _mm_setzero_di (),
4907 (__mmask8) -1);
4908}
4909
4910static __inline__ __m128i __DEFAULT_FN_ATTRS
4911_mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
4912 __m128i __B)
4913{
4914 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
4915 (__v2di) __B,
4916 (__v2di) __W,
4917 (__mmask8) __U);
4918}
4919
4920static __inline__ __m128i __DEFAULT_FN_ATTRS
4921_mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
4922{
4923 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
4924 (__v2di) __B,
4925 (__v2di)
4926 _mm_setzero_di (),
4927 (__mmask8) __U);
4928}
4929
4930static __inline__ __m256i __DEFAULT_FN_ATTRS
4931_mm256_rolv_epi64 (__m256i __A, __m256i __B)
4932{
4933 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
4934 (__v4di) __B,
4935 (__v4di)
4936 _mm256_setzero_si256 (),
4937 (__mmask8) -1);
4938}
4939
4940static __inline__ __m256i __DEFAULT_FN_ATTRS
4941_mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
4942 __m256i __B)
4943{
4944 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
4945 (__v4di) __B,
4946 (__v4di) __W,
4947 (__mmask8) __U);
4948}
4949
4950static __inline__ __m256i __DEFAULT_FN_ATTRS
4951_mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
4952{
4953 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
4954 (__v4di) __B,
4955 (__v4di)
4956 _mm256_setzero_si256 (),
4957 (__mmask8) __U);
4958}
4959
Craig Topperd2661882016-05-17 04:41:48 +00004960#define _mm_ror_epi32(A, B) __extension__ ({ \
4961 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
4962 (__v4si)_mm_setzero_si128(), \
4963 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004964
Craig Topperd2661882016-05-17 04:41:48 +00004965#define _mm_mask_ror_epi32(W, U, A, B) __extension__ ({ \
4966 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
4967 (__v4si)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004968
Craig Topperd2661882016-05-17 04:41:48 +00004969#define _mm_maskz_ror_epi32(U, A, B) __extension__ ({ \
4970 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
4971 (__v4si)_mm_setzero_si128(), \
4972 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004973
Craig Topperd2661882016-05-17 04:41:48 +00004974#define _mm256_ror_epi32(A, B) __extension__ ({ \
4975 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
4976 (__v8si)_mm256_setzero_si256(), \
4977 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004978
Craig Topperd2661882016-05-17 04:41:48 +00004979#define _mm256_mask_ror_epi32(W, U, A, B) __extension__ ({ \
4980 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
4981 (__v8si)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004982
Craig Topperd2661882016-05-17 04:41:48 +00004983#define _mm256_maskz_ror_epi32(U, A, B) __extension__ ({ \
4984 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
4985 (__v8si)_mm256_setzero_si256(), \
4986 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004987
Craig Topperd2661882016-05-17 04:41:48 +00004988#define _mm_ror_epi64(A, B) __extension__ ({ \
4989 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
4990 (__v2di)_mm_setzero_di(), \
4991 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004992
Craig Topperd2661882016-05-17 04:41:48 +00004993#define _mm_mask_ror_epi64(W, U, A, B) __extension__ ({ \
4994 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
4995 (__v2di)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004996
Craig Topperd2661882016-05-17 04:41:48 +00004997#define _mm_maskz_ror_epi64(U, A, B) __extension__ ({ \
4998 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
4999 (__v2di)_mm_setzero_di(), \
5000 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005001
Craig Topperd2661882016-05-17 04:41:48 +00005002#define _mm256_ror_epi64(A, B) __extension__ ({ \
5003 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5004 (__v4di)_mm256_setzero_si256(), \
5005 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005006
Craig Topperd2661882016-05-17 04:41:48 +00005007#define _mm256_mask_ror_epi64(W, U, A, B) __extension__ ({ \
5008 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5009 (__v4di)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005010
Craig Topperd2661882016-05-17 04:41:48 +00005011#define _mm256_maskz_ror_epi64(U, A, B) __extension__ ({ \
5012 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5013 (__v4di)_mm256_setzero_si256(), \
5014 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005015
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005016static __inline__ __m128i __DEFAULT_FN_ATTRS
5017_mm_mask_sll_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5018 __m128i __B)
5019{
5020 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
5021 (__v4si) __B,
5022 (__v4si) __W,
5023 (__mmask8) __U);
5024}
5025
5026static __inline__ __m128i __DEFAULT_FN_ATTRS
5027_mm_maskz_sll_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5028{
5029 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
5030 (__v4si) __B,
5031 (__v4si)
5032 _mm_setzero_si128 (),
5033 (__mmask8) __U);
5034}
5035
5036static __inline__ __m256i __DEFAULT_FN_ATTRS
5037_mm256_mask_sll_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5038 __m128i __B)
5039{
5040 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
5041 (__v4si) __B,
5042 (__v8si) __W,
5043 (__mmask8) __U);
5044}
5045
5046static __inline__ __m256i __DEFAULT_FN_ATTRS
5047_mm256_maskz_sll_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
5048{
5049 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
5050 (__v4si) __B,
5051 (__v8si)
5052 _mm256_setzero_si256 (),
5053 (__mmask8) __U);
5054}
5055
Craig Topperd2661882016-05-17 04:41:48 +00005056#define _mm_mask_slli_epi32(W, U, A, B) __extension__ ({ \
5057 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \
5058 (__v4si)(__m128i)(W), \
5059 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005060
Craig Topperd2661882016-05-17 04:41:48 +00005061#define _mm_maskz_slli_epi32(U, A, B) __extension__ ({ \
5062 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \
5063 (__v4si)_mm_setzero_si128(), \
5064 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005065
Craig Topperd2661882016-05-17 04:41:48 +00005066#define _mm256_mask_slli_epi32(W, U, A, B) __extension__ ({ \
5067 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \
5068 (__v8si)(__m256i)(W), \
5069 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005070
Craig Topperd2661882016-05-17 04:41:48 +00005071#define _mm256_maskz_slli_epi32(U, A, B) __extension__ ({ \
5072 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \
5073 (__v8si)_mm256_setzero_si256(), \
5074 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005075
5076static __inline__ __m128i __DEFAULT_FN_ATTRS
5077_mm_mask_sll_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5078 __m128i __B)
5079{
5080 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
5081 (__v2di) __B,
5082 (__v2di) __W,
5083 (__mmask8) __U);
5084}
5085
5086static __inline__ __m128i __DEFAULT_FN_ATTRS
5087_mm_maskz_sll_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5088{
5089 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
5090 (__v2di) __B,
5091 (__v2di)
5092 _mm_setzero_di (),
5093 (__mmask8) __U);
5094}
5095
5096static __inline__ __m256i __DEFAULT_FN_ATTRS
5097_mm256_mask_sll_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5098 __m128i __B)
5099{
5100 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
5101 (__v2di) __B,
5102 (__v4di) __W,
5103 (__mmask8) __U);
5104}
5105
5106static __inline__ __m256i __DEFAULT_FN_ATTRS
5107_mm256_maskz_sll_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
5108{
5109 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
5110 (__v2di) __B,
5111 (__v4di)
5112 _mm256_setzero_si256 (),
5113 (__mmask8) __U);
5114}
5115
Craig Topperd2661882016-05-17 04:41:48 +00005116#define _mm_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5117 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \
5118 (__v2di)(__m128i)(W), \
5119 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005120
Craig Topperd2661882016-05-17 04:41:48 +00005121#define _mm_maskz_slli_epi64(U, A, B) __extension__ ({ \
5122 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \
5123 (__v2di)_mm_setzero_di(), \
5124 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005125
Craig Topperd2661882016-05-17 04:41:48 +00005126#define _mm256_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5127 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \
5128 (__v4di)(__m256i)(W), \
5129 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005130
Craig Topperd2661882016-05-17 04:41:48 +00005131#define _mm256_maskz_slli_epi64(U, A, B) __extension__ ({ \
5132 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \
5133 (__v4di)_mm256_setzero_si256(), \
5134 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005135
Michael Zuckerman0231f162016-02-23 13:41:13 +00005136
Michael Zuckermane98cc742016-02-23 15:59:47 +00005137static __inline__ __m128i __DEFAULT_FN_ATTRS
5138_mm_rorv_epi32 (__m128i __A, __m128i __B)
5139{
5140 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5141 (__v4si) __B,
5142 (__v4si)
5143 _mm_setzero_si128 (),
5144 (__mmask8) -1);
5145}
5146
5147static __inline__ __m128i __DEFAULT_FN_ATTRS
5148_mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5149 __m128i __B)
5150{
5151 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5152 (__v4si) __B,
5153 (__v4si) __W,
5154 (__mmask8) __U);
5155}
5156
5157static __inline__ __m128i __DEFAULT_FN_ATTRS
5158_mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5159{
5160 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5161 (__v4si) __B,
5162 (__v4si)
5163 _mm_setzero_si128 (),
5164 (__mmask8) __U);
5165}
5166
5167static __inline__ __m256i __DEFAULT_FN_ATTRS
5168_mm256_rorv_epi32 (__m256i __A, __m256i __B)
5169{
5170 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5171 (__v8si) __B,
5172 (__v8si)
5173 _mm256_setzero_si256 (),
5174 (__mmask8) -1);
5175}
5176
5177static __inline__ __m256i __DEFAULT_FN_ATTRS
5178_mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5179 __m256i __B)
5180{
5181 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5182 (__v8si) __B,
5183 (__v8si) __W,
5184 (__mmask8) __U);
5185}
5186
5187static __inline__ __m256i __DEFAULT_FN_ATTRS
5188_mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
5189{
5190 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5191 (__v8si) __B,
5192 (__v8si)
5193 _mm256_setzero_si256 (),
5194 (__mmask8) __U);
5195}
5196
5197static __inline__ __m128i __DEFAULT_FN_ATTRS
5198_mm_rorv_epi64 (__m128i __A, __m128i __B)
5199{
5200 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5201 (__v2di) __B,
5202 (__v2di)
5203 _mm_setzero_di (),
5204 (__mmask8) -1);
5205}
5206
5207static __inline__ __m128i __DEFAULT_FN_ATTRS
5208_mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5209 __m128i __B)
5210{
5211 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5212 (__v2di) __B,
5213 (__v2di) __W,
5214 (__mmask8) __U);
5215}
5216
5217static __inline__ __m128i __DEFAULT_FN_ATTRS
5218_mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5219{
5220 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5221 (__v2di) __B,
5222 (__v2di)
5223 _mm_setzero_di (),
5224 (__mmask8) __U);
5225}
5226
5227static __inline__ __m256i __DEFAULT_FN_ATTRS
5228_mm256_rorv_epi64 (__m256i __A, __m256i __B)
5229{
5230 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5231 (__v4di) __B,
5232 (__v4di)
5233 _mm256_setzero_si256 (),
5234 (__mmask8) -1);
5235}
5236
5237static __inline__ __m256i __DEFAULT_FN_ATTRS
5238_mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5239 __m256i __B)
5240{
5241 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5242 (__v4di) __B,
5243 (__v4di) __W,
5244 (__mmask8) __U);
5245}
5246
5247static __inline__ __m256i __DEFAULT_FN_ATTRS
5248_mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
5249{
5250 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5251 (__v4di) __B,
5252 (__v4di)
5253 _mm256_setzero_si256 (),
5254 (__mmask8) __U);
5255}
5256
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005257static __inline__ __m128i __DEFAULT_FN_ATTRS
5258_mm_mask_sllv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5259 __m128i __Y)
5260{
5261 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
5262 (__v2di) __Y,
5263 (__v2di) __W,
5264 (__mmask8) __U);
5265}
5266
5267static __inline__ __m128i __DEFAULT_FN_ATTRS
5268_mm_maskz_sllv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5269{
5270 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
5271 (__v2di) __Y,
5272 (__v2di)
5273 _mm_setzero_di (),
5274 (__mmask8) __U);
5275}
5276
5277static __inline__ __m256i __DEFAULT_FN_ATTRS
5278_mm256_mask_sllv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5279 __m256i __Y)
5280{
5281 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
5282 (__v4di) __Y,
5283 (__v4di) __W,
5284 (__mmask8) __U);
5285}
5286
5287static __inline__ __m256i __DEFAULT_FN_ATTRS
5288_mm256_maskz_sllv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5289{
5290 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
5291 (__v4di) __Y,
5292 (__v4di)
5293 _mm256_setzero_si256 (),
5294 (__mmask8) __U);
5295}
5296
5297static __inline__ __m128i __DEFAULT_FN_ATTRS
5298_mm_mask_sllv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5299 __m128i __Y)
5300{
5301 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
5302 (__v4si) __Y,
5303 (__v4si) __W,
5304 (__mmask8) __U);
5305}
5306
5307static __inline__ __m128i __DEFAULT_FN_ATTRS
5308_mm_maskz_sllv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5309{
5310 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
5311 (__v4si) __Y,
5312 (__v4si)
5313 _mm_setzero_si128 (),
5314 (__mmask8) __U);
5315}
5316
5317static __inline__ __m256i __DEFAULT_FN_ATTRS
5318_mm256_mask_sllv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5319 __m256i __Y)
5320{
5321 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
5322 (__v8si) __Y,
5323 (__v8si) __W,
5324 (__mmask8) __U);
5325}
5326
5327static __inline__ __m256i __DEFAULT_FN_ATTRS
5328_mm256_maskz_sllv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5329{
5330 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
5331 (__v8si) __Y,
5332 (__v8si)
5333 _mm256_setzero_si256 (),
5334 (__mmask8) __U);
5335}
5336
Michael Zuckerman0165e762016-03-01 13:03:45 +00005337
5338
5339static __inline__ __m128i __DEFAULT_FN_ATTRS
5340_mm_mask_srlv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5341 __m128i __Y)
5342{
5343 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
5344 (__v2di) __Y,
5345 (__v2di) __W,
5346 (__mmask8) __U);
5347}
5348
5349static __inline__ __m128i __DEFAULT_FN_ATTRS
5350_mm_maskz_srlv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5351{
5352 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
5353 (__v2di) __Y,
5354 (__v2di)
5355 _mm_setzero_di (),
5356 (__mmask8) __U);
5357}
5358
5359static __inline__ __m256i __DEFAULT_FN_ATTRS
5360_mm256_mask_srlv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5361 __m256i __Y)
5362{
5363 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
5364 (__v4di) __Y,
5365 (__v4di) __W,
5366 (__mmask8) __U);
5367}
5368
5369static __inline__ __m256i __DEFAULT_FN_ATTRS
5370_mm256_maskz_srlv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5371{
5372 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
5373 (__v4di) __Y,
5374 (__v4di)
5375 _mm256_setzero_si256 (),
5376 (__mmask8) __U);
5377}
5378
5379static __inline__ __m128i __DEFAULT_FN_ATTRS
5380_mm_mask_srlv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5381 __m128i __Y)
5382{
5383 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
5384 (__v4si) __Y,
5385 (__v4si) __W,
5386 (__mmask8) __U);
5387}
5388
5389static __inline__ __m128i __DEFAULT_FN_ATTRS
5390_mm_maskz_srlv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5391{
5392 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
5393 (__v4si) __Y,
5394 (__v4si)
5395 _mm_setzero_si128 (),
5396 (__mmask8) __U);
5397}
5398
5399static __inline__ __m256i __DEFAULT_FN_ATTRS
5400_mm256_mask_srlv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5401 __m256i __Y)
5402{
5403 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
5404 (__v8si) __Y,
5405 (__v8si) __W,
5406 (__mmask8) __U);
5407}
5408
5409static __inline__ __m256i __DEFAULT_FN_ATTRS
5410_mm256_maskz_srlv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5411{
5412 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
5413 (__v8si) __Y,
5414 (__v8si)
5415 _mm256_setzero_si256 (),
5416 (__mmask8) __U);
5417}
5418
Michael Zuckermand176d742016-03-01 17:49:03 +00005419
5420
5421static __inline__ __m128i __DEFAULT_FN_ATTRS
5422_mm_mask_srl_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5423 __m128i __B)
5424{
5425 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
5426 (__v4si) __B,
5427 (__v4si) __W,
5428 (__mmask8) __U);
5429}
5430
5431static __inline__ __m128i __DEFAULT_FN_ATTRS
5432_mm_maskz_srl_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5433{
5434 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
5435 (__v4si) __B,
5436 (__v4si)
5437 _mm_setzero_si128 (),
5438 (__mmask8) __U);
5439}
5440
5441static __inline__ __m256i __DEFAULT_FN_ATTRS
5442_mm256_mask_srl_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5443 __m128i __B)
5444{
5445 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
5446 (__v4si) __B,
5447 (__v8si) __W,
5448 (__mmask8) __U);
5449}
5450
5451static __inline__ __m256i __DEFAULT_FN_ATTRS
5452_mm256_maskz_srl_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
5453{
5454 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
5455 (__v4si) __B,
5456 (__v8si)
5457 _mm256_setzero_si256 (),
5458 (__mmask8) __U);
5459}
5460
Craig Topperd2661882016-05-17 04:41:48 +00005461#define _mm_mask_srli_epi32(W, U, A, imm) __extension__ ({ \
5462 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \
5463 (__v4si)(__m128i)(W), \
5464 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005465
Craig Topperd2661882016-05-17 04:41:48 +00005466#define _mm_maskz_srli_epi32(U, A, imm) __extension__ ({ \
5467 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \
5468 (__v4si)_mm_setzero_si128(), \
5469 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005470
Craig Topperd2661882016-05-17 04:41:48 +00005471#define _mm256_mask_srli_epi32(W, U, A, imm) __extension__ ({ \
5472 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \
5473 (__v8si)(__m256i)(W), \
5474 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005475
Craig Topperd2661882016-05-17 04:41:48 +00005476#define _mm256_maskz_srli_epi32(U, A, imm) __extension__ ({ \
5477 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \
5478 (__v8si)_mm256_setzero_si256(), \
5479 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005480
5481static __inline__ __m128i __DEFAULT_FN_ATTRS
5482_mm_mask_srl_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5483 __m128i __B)
5484{
5485 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
5486 (__v2di) __B,
5487 (__v2di) __W,
5488 (__mmask8) __U);
5489}
5490
5491static __inline__ __m128i __DEFAULT_FN_ATTRS
5492_mm_maskz_srl_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5493{
5494 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
5495 (__v2di) __B,
5496 (__v2di)
5497 _mm_setzero_di (),
5498 (__mmask8) __U);
5499}
5500
5501static __inline__ __m256i __DEFAULT_FN_ATTRS
5502_mm256_mask_srl_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5503 __m128i __B)
5504{
5505 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
5506 (__v2di) __B,
5507 (__v4di) __W,
5508 (__mmask8) __U);
5509}
5510
5511static __inline__ __m256i __DEFAULT_FN_ATTRS
5512_mm256_maskz_srl_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
5513{
5514 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
5515 (__v2di) __B,
5516 (__v4di)
5517 _mm256_setzero_si256 (),
5518 (__mmask8) __U);
5519}
5520
Craig Topperd2661882016-05-17 04:41:48 +00005521#define _mm_mask_srli_epi64(W, U, A, imm) __extension__ ({ \
5522 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
5523 (__v2di)(__m128i)(W), \
5524 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005525
Craig Topperd2661882016-05-17 04:41:48 +00005526#define _mm_maskz_srli_epi64(U, A, imm) __extension__ ({ \
5527 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
5528 (__v2di)_mm_setzero_si128(), \
5529 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005530
Craig Topperd2661882016-05-17 04:41:48 +00005531#define _mm256_mask_srli_epi64(W, U, A, imm) __extension__ ({ \
5532 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
5533 (__v4di)(__m256i)(W), \
5534 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005535
Craig Topperd2661882016-05-17 04:41:48 +00005536#define _mm256_maskz_srli_epi64(U, A, imm) __extension__ ({ \
5537 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
5538 (__v4di)_mm256_setzero_si256(), \
5539 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005540
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005541static __inline__ __m128i __DEFAULT_FN_ATTRS
5542_mm_mask_srav_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5543 __m128i __Y)
5544{
5545 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
5546 (__v4si) __Y,
5547 (__v4si) __W,
5548 (__mmask8) __U);
5549}
5550
5551static __inline__ __m128i __DEFAULT_FN_ATTRS
5552_mm_maskz_srav_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5553{
5554 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
5555 (__v4si) __Y,
5556 (__v4si)
5557 _mm_setzero_si128 (),
5558 (__mmask8) __U);
5559}
5560
5561static __inline__ __m256i __DEFAULT_FN_ATTRS
5562_mm256_mask_srav_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5563 __m256i __Y)
5564{
5565 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
5566 (__v8si) __Y,
5567 (__v8si) __W,
5568 (__mmask8) __U);
5569}
5570
5571static __inline__ __m256i __DEFAULT_FN_ATTRS
5572_mm256_maskz_srav_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5573{
5574 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
5575 (__v8si) __Y,
5576 (__v8si)
5577 _mm256_setzero_si256 (),
5578 (__mmask8) __U);
5579}
5580
5581static __inline__ __m128i __DEFAULT_FN_ATTRS
5582_mm_srav_epi64 (__m128i __X, __m128i __Y)
5583{
5584 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5585 (__v2di) __Y,
5586 (__v2di)
5587 _mm_setzero_di (),
5588 (__mmask8) -1);
5589}
5590
5591static __inline__ __m128i __DEFAULT_FN_ATTRS
5592_mm_mask_srav_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5593 __m128i __Y)
5594{
5595 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5596 (__v2di) __Y,
5597 (__v2di) __W,
5598 (__mmask8) __U);
5599}
5600
5601static __inline__ __m128i __DEFAULT_FN_ATTRS
5602_mm_maskz_srav_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5603{
5604 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5605 (__v2di) __Y,
5606 (__v2di)
5607 _mm_setzero_di (),
5608 (__mmask8) __U);
5609}
5610
5611static __inline__ __m256i __DEFAULT_FN_ATTRS
5612_mm256_srav_epi64 (__m256i __X, __m256i __Y)
5613{
5614 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5615 (__v4di) __Y,
5616 (__v4di)
5617 _mm256_setzero_si256 (),
5618 (__mmask8) -1);
5619}
5620
5621static __inline__ __m256i __DEFAULT_FN_ATTRS
5622_mm256_mask_srav_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5623 __m256i __Y)
5624{
5625 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5626 (__v4di) __Y,
5627 (__v4di) __W,
5628 (__mmask8) __U);
5629}
5630
5631static __inline__ __m256i __DEFAULT_FN_ATTRS
5632_mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5633{
5634 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5635 (__v4di) __Y,
5636 (__v4di)
5637 _mm256_setzero_si256 (),
5638 (__mmask8) __U);
5639}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005640
Michael Zuckermane6542002016-05-23 08:01:48 +00005641static __inline__ __m128i __DEFAULT_FN_ATTRS
5642_mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
5643{
Igor Bregeraadb8762016-06-08 13:59:20 +00005644 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5645 (__v4si) __A,
5646 (__v4si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005647}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005648
Michael Zuckermane6542002016-05-23 08:01:48 +00005649static __inline__ __m128i __DEFAULT_FN_ATTRS
5650_mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A)
5651{
Igor Bregeraadb8762016-06-08 13:59:20 +00005652 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5653 (__v4si) __A,
5654 (__v4si) _mm_setzero_si128 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005655}
5656
5657
5658static __inline__ __m256i __DEFAULT_FN_ATTRS
5659_mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
5660{
Igor Bregeraadb8762016-06-08 13:59:20 +00005661 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5662 (__v8si) __A,
5663 (__v8si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005664}
5665
5666static __inline__ __m256i __DEFAULT_FN_ATTRS
5667_mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A)
5668{
Igor Bregeraadb8762016-06-08 13:59:20 +00005669 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5670 (__v8si) __A,
5671 (__v8si) _mm256_setzero_si256 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005672}
5673
5674static __inline__ __m128i __DEFAULT_FN_ATTRS
5675_mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P)
5676{
5677 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5678 (__v4si) __W,
5679 (__mmask8)
5680 __U);
5681}
5682
5683static __inline__ __m128i __DEFAULT_FN_ATTRS
5684_mm_maskz_load_epi32 (__mmask8 __U, void const *__P)
5685{
5686 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5687 (__v4si)
5688 _mm_setzero_si128 (),
5689 (__mmask8)
5690 __U);
5691}
5692
5693static __inline__ __m256i __DEFAULT_FN_ATTRS
5694_mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P)
5695{
5696 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5697 (__v8si) __W,
5698 (__mmask8)
5699 __U);
5700}
5701
5702static __inline__ __m256i __DEFAULT_FN_ATTRS
5703_mm256_maskz_load_epi32 (__mmask8 __U, void const *__P)
5704{
5705 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5706 (__v8si)
5707 _mm256_setzero_si256 (),
5708 (__mmask8)
5709 __U);
5710}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005711
5712static __inline__ void __DEFAULT_FN_ATTRS
5713_mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
5714{
5715 __builtin_ia32_movdqa32store128_mask ((__v4si *) __P,
5716 (__v4si) __A,
5717 (__mmask8) __U);
5718}
5719
5720static __inline__ void __DEFAULT_FN_ATTRS
5721_mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A)
5722{
5723 __builtin_ia32_movdqa32store256_mask ((__v8si *) __P,
5724 (__v8si) __A,
5725 (__mmask8) __U);
5726}
5727
5728static __inline__ __m128i __DEFAULT_FN_ATTRS
5729_mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
5730{
Igor Bregeraadb8762016-06-08 13:59:20 +00005731 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5732 (__v2di) __A,
5733 (__v2di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005734}
5735
5736static __inline__ __m128i __DEFAULT_FN_ATTRS
5737_mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A)
5738{
Igor Bregeraadb8762016-06-08 13:59:20 +00005739 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5740 (__v2di) __A,
5741 (__v2di) _mm_setzero_di ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005742}
5743
5744static __inline__ __m256i __DEFAULT_FN_ATTRS
5745_mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
5746{
Igor Bregeraadb8762016-06-08 13:59:20 +00005747 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5748 (__v4di) __A,
5749 (__v4di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005750}
5751
5752static __inline__ __m256i __DEFAULT_FN_ATTRS
5753_mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A)
5754{
Igor Bregeraadb8762016-06-08 13:59:20 +00005755 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5756 (__v4di) __A,
5757 (__v4di) _mm256_setzero_si256 ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005758}
5759
5760static __inline__ __m128i __DEFAULT_FN_ATTRS
5761_mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P)
5762{
5763 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5764 (__v2di) __W,
5765 (__mmask8)
5766 __U);
5767}
5768
5769static __inline__ __m128i __DEFAULT_FN_ATTRS
5770_mm_maskz_load_epi64 (__mmask8 __U, void const *__P)
5771{
5772 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5773 (__v2di)
5774 _mm_setzero_di (),
5775 (__mmask8)
5776 __U);
5777}
5778
5779static __inline__ __m256i __DEFAULT_FN_ATTRS
5780_mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P)
5781{
5782 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5783 (__v4di) __W,
5784 (__mmask8)
5785 __U);
5786}
5787
5788static __inline__ __m256i __DEFAULT_FN_ATTRS
5789_mm256_maskz_load_epi64 (__mmask8 __U, void const *__P)
5790{
5791 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5792 (__v4di)
5793 _mm256_setzero_si256 (),
5794 (__mmask8)
5795 __U);
5796}
5797
5798static __inline__ void __DEFAULT_FN_ATTRS
5799_mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
5800{
5801 __builtin_ia32_movdqa64store128_mask ((__v2di *) __P,
5802 (__v2di) __A,
5803 (__mmask8) __U);
5804}
5805
5806static __inline__ void __DEFAULT_FN_ATTRS
5807_mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A)
5808{
5809 __builtin_ia32_movdqa64store256_mask ((__v4di *) __P,
5810 (__v4di) __A,
5811 (__mmask8) __U);
5812}
5813
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005814static __inline__ __m128d __DEFAULT_FN_ATTRS
5815_mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A)
5816{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005817 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5818 (__v2df)_mm_movedup_pd(__A),
5819 (__v2df)__W);
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005820}
5821
5822static __inline__ __m128d __DEFAULT_FN_ATTRS
5823_mm_maskz_movedup_pd (__mmask8 __U, __m128d __A)
5824{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005825 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5826 (__v2df)_mm_movedup_pd(__A),
5827 (__v2df)_mm_setzero_pd());
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005828}
5829
5830static __inline__ __m256d __DEFAULT_FN_ATTRS
5831_mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A)
5832{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005833 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5834 (__v4df)_mm256_movedup_pd(__A),
5835 (__v4df)__W);
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005836}
5837
5838static __inline__ __m256d __DEFAULT_FN_ATTRS
5839_mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A)
5840{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005841 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5842 (__v4df)_mm256_movedup_pd(__A),
5843 (__v4df)_mm256_setzero_pd());
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005844}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005845
Michael Zuckerman912be162016-03-07 08:29:10 +00005846
Craig Topperd2661882016-05-17 04:41:48 +00005847#define _mm_mask_set1_epi32(O, M, A) __extension__ ({ \
5848 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
5849 (__v4si)(__m128i)(O), \
5850 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005851
Craig Topperd2661882016-05-17 04:41:48 +00005852#define _mm_maskz_set1_epi32(M, A) __extension__ ({ \
5853 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
5854 (__v4si)_mm_setzero_si128(), \
5855 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005856
Craig Topperd2661882016-05-17 04:41:48 +00005857#define _mm256_mask_set1_epi32(O, M, A) __extension__ ({ \
5858 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
5859 (__v8si)(__m256i)(O), \
5860 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005861
Craig Topperd2661882016-05-17 04:41:48 +00005862#define _mm256_maskz_set1_epi32(M, A) __extension__ ({ \
5863 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
5864 (__v8si)_mm256_setzero_si256(), \
5865 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005866
Craig Topper45db56c2016-07-21 07:38:39 +00005867#ifdef __x86_64__
Michael Zuckerman912be162016-03-07 08:29:10 +00005868static __inline__ __m128i __DEFAULT_FN_ATTRS
5869_mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A)
5870{
5871 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, (__v2di) __O,
5872 __M);
5873}
5874
5875static __inline__ __m128i __DEFAULT_FN_ATTRS
5876_mm_maskz_set1_epi64 (__mmask8 __M, long long __A)
5877{
5878 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A,
5879 (__v2di)
5880 _mm_setzero_si128 (),
5881 __M);
5882}
5883
5884static __inline__ __m256i __DEFAULT_FN_ATTRS
5885_mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A)
5886{
5887 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, (__v4di) __O,
5888 __M);
5889}
5890
5891static __inline__ __m256i __DEFAULT_FN_ATTRS
5892_mm256_maskz_set1_epi64 (__mmask8 __M, long long __A)
5893{
5894 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A,
5895 (__v4di)
5896 _mm256_setzero_si256 (),
5897 __M);
5898}
Craig Topper45db56c2016-07-21 07:38:39 +00005899#endif
Michael Zuckermandef78752016-03-28 12:23:09 +00005900
Craig Topperd2661882016-05-17 04:41:48 +00005901#define _mm_fixupimm_pd(A, B, C, imm) __extension__ ({ \
5902 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
5903 (__v2df)(__m128d)(B), \
5904 (__v2di)(__m128i)(C), (int)(imm), \
5905 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005906
Craig Topperd2661882016-05-17 04:41:48 +00005907#define _mm_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
5908 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
5909 (__v2df)(__m128d)(B), \
5910 (__v2di)(__m128i)(C), (int)(imm), \
5911 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005912
Craig Topperd2661882016-05-17 04:41:48 +00005913#define _mm_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
5914 (__m128d)__builtin_ia32_fixupimmpd128_maskz((__v2df)(__m128d)(A), \
5915 (__v2df)(__m128d)(B), \
5916 (__v2di)(__m128i)(C), \
5917 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005918
Craig Topperd2661882016-05-17 04:41:48 +00005919#define _mm256_fixupimm_pd(A, B, C, imm) __extension__ ({ \
5920 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
5921 (__v4df)(__m256d)(B), \
5922 (__v4di)(__m256i)(C), (int)(imm), \
5923 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005924
Craig Topperd2661882016-05-17 04:41:48 +00005925#define _mm256_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
5926 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
5927 (__v4df)(__m256d)(B), \
5928 (__v4di)(__m256i)(C), (int)(imm), \
5929 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005930
Craig Topperd2661882016-05-17 04:41:48 +00005931#define _mm256_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
5932 (__m256d)__builtin_ia32_fixupimmpd256_maskz((__v4df)(__m256d)(A), \
5933 (__v4df)(__m256d)(B), \
5934 (__v4di)(__m256i)(C), \
5935 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005936
Craig Topperd2661882016-05-17 04:41:48 +00005937#define _mm_fixupimm_ps(A, B, C, imm) __extension__ ({ \
5938 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
5939 (__v4sf)(__m128)(B), \
5940 (__v4si)(__m128i)(C), (int)(imm), \
5941 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005942
Craig Topperd2661882016-05-17 04:41:48 +00005943#define _mm_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
5944 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
5945 (__v4sf)(__m128)(B), \
5946 (__v4si)(__m128i)(C), (int)(imm), \
5947 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005948
Craig Topperd2661882016-05-17 04:41:48 +00005949#define _mm_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
5950 (__m128)__builtin_ia32_fixupimmps128_maskz((__v4sf)(__m128)(A), \
5951 (__v4sf)(__m128)(B), \
5952 (__v4si)(__m128i)(C), (int)(imm), \
5953 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005954
Craig Topperd2661882016-05-17 04:41:48 +00005955#define _mm256_fixupimm_ps(A, B, C, imm) __extension__ ({ \
5956 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
5957 (__v8sf)(__m256)(B), \
5958 (__v8si)(__m256i)(C), (int)(imm), \
5959 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005960
Craig Topperd2661882016-05-17 04:41:48 +00005961#define _mm256_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
5962 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
5963 (__v8sf)(__m256)(B), \
5964 (__v8si)(__m256i)(C), (int)(imm), \
5965 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005966
Craig Topperd2661882016-05-17 04:41:48 +00005967#define _mm256_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
5968 (__m256)__builtin_ia32_fixupimmps256_maskz((__v8sf)(__m256)(A), \
5969 (__v8sf)(__m256)(B), \
5970 (__v8si)(__m256i)(C), (int)(imm), \
5971 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005972
5973static __inline__ __m128d __DEFAULT_FN_ATTRS
5974_mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P)
5975{
5976 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
5977 (__v2df) __W,
5978 (__mmask8) __U);
5979}
5980
5981static __inline__ __m128d __DEFAULT_FN_ATTRS
5982_mm_maskz_load_pd (__mmask8 __U, void const *__P)
5983{
5984 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
5985 (__v2df)
5986 _mm_setzero_pd (),
5987 (__mmask8) __U);
5988}
5989
5990static __inline__ __m256d __DEFAULT_FN_ATTRS
5991_mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P)
5992{
5993 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
5994 (__v4df) __W,
5995 (__mmask8) __U);
5996}
5997
5998static __inline__ __m256d __DEFAULT_FN_ATTRS
5999_mm256_maskz_load_pd (__mmask8 __U, void const *__P)
6000{
6001 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
6002 (__v4df)
6003 _mm256_setzero_pd (),
6004 (__mmask8) __U);
6005}
6006
6007static __inline__ __m128 __DEFAULT_FN_ATTRS
6008_mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P)
6009{
6010 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
6011 (__v4sf) __W,
6012 (__mmask8) __U);
6013}
6014
6015static __inline__ __m128 __DEFAULT_FN_ATTRS
6016_mm_maskz_load_ps (__mmask8 __U, void const *__P)
6017{
6018 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
6019 (__v4sf)
6020 _mm_setzero_ps (),
6021 (__mmask8) __U);
6022}
6023
6024static __inline__ __m256 __DEFAULT_FN_ATTRS
6025_mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P)
6026{
6027 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
6028 (__v8sf) __W,
6029 (__mmask8) __U);
6030}
6031
6032static __inline__ __m256 __DEFAULT_FN_ATTRS
6033_mm256_maskz_load_ps (__mmask8 __U, void const *__P)
6034{
6035 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
6036 (__v8sf)
6037 _mm256_setzero_ps (),
6038 (__mmask8) __U);
6039}
6040
6041static __inline__ __m128i __DEFAULT_FN_ATTRS
6042_mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
6043{
6044 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
6045 (__v2di) __W,
6046 (__mmask8) __U);
6047}
6048
6049static __inline__ __m128i __DEFAULT_FN_ATTRS
6050_mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6051{
6052 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
6053 (__v2di)
6054 _mm_setzero_si128 (),
6055 (__mmask8) __U);
6056}
6057
6058static __inline__ __m256i __DEFAULT_FN_ATTRS
6059_mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P)
6060{
6061 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
6062 (__v4di) __W,
6063 (__mmask8) __U);
6064}
6065
6066static __inline__ __m256i __DEFAULT_FN_ATTRS
6067_mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6068{
6069 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
6070 (__v4di)
6071 _mm256_setzero_si256 (),
6072 (__mmask8) __U);
6073}
6074
6075static __inline__ __m128i __DEFAULT_FN_ATTRS
6076_mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
6077{
6078 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
6079 (__v4si) __W,
6080 (__mmask8) __U);
6081}
6082
6083static __inline__ __m128i __DEFAULT_FN_ATTRS
6084_mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
6085{
6086 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
6087 (__v4si)
6088 _mm_setzero_si128 (),
6089 (__mmask8) __U);
6090}
6091
6092static __inline__ __m256i __DEFAULT_FN_ATTRS
6093_mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P)
6094{
6095 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
6096 (__v8si) __W,
6097 (__mmask8) __U);
6098}
6099
6100static __inline__ __m256i __DEFAULT_FN_ATTRS
6101_mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
6102{
6103 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
6104 (__v8si)
6105 _mm256_setzero_si256 (),
6106 (__mmask8) __U);
6107}
6108
6109static __inline__ __m128d __DEFAULT_FN_ATTRS
6110_mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P)
6111{
6112 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6113 (__v2df) __W,
6114 (__mmask8) __U);
6115}
6116
6117static __inline__ __m128d __DEFAULT_FN_ATTRS
6118_mm_maskz_loadu_pd (__mmask8 __U, void const *__P)
6119{
6120 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6121 (__v2df)
6122 _mm_setzero_pd (),
6123 (__mmask8) __U);
6124}
6125
6126static __inline__ __m256d __DEFAULT_FN_ATTRS
6127_mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P)
6128{
6129 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6130 (__v4df) __W,
6131 (__mmask8) __U);
6132}
6133
6134static __inline__ __m256d __DEFAULT_FN_ATTRS
6135_mm256_maskz_loadu_pd (__mmask8 __U, void const *__P)
6136{
6137 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6138 (__v4df)
6139 _mm256_setzero_pd (),
6140 (__mmask8) __U);
6141}
6142
6143static __inline__ __m128 __DEFAULT_FN_ATTRS
6144_mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P)
6145{
6146 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6147 (__v4sf) __W,
6148 (__mmask8) __U);
6149}
6150
6151static __inline__ __m128 __DEFAULT_FN_ATTRS
6152_mm_maskz_loadu_ps (__mmask8 __U, void const *__P)
6153{
6154 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6155 (__v4sf)
6156 _mm_setzero_ps (),
6157 (__mmask8) __U);
6158}
6159
6160static __inline__ __m256 __DEFAULT_FN_ATTRS
6161_mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P)
6162{
6163 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6164 (__v8sf) __W,
6165 (__mmask8) __U);
6166}
6167
6168static __inline__ __m256 __DEFAULT_FN_ATTRS
6169_mm256_maskz_loadu_ps (__mmask8 __U, void const *__P)
6170{
6171 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6172 (__v8sf)
6173 _mm256_setzero_ps (),
6174 (__mmask8) __U);
6175}
Michael Zuckermanfa7ccc52016-04-10 10:51:04 +00006176
6177static __inline__ void __DEFAULT_FN_ATTRS
6178_mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A)
6179{
6180 __builtin_ia32_storeapd128_mask ((__v2df *) __P,
6181 (__v2df) __A,
6182 (__mmask8) __U);
6183}
6184
6185static __inline__ void __DEFAULT_FN_ATTRS
6186_mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A)
6187{
6188 __builtin_ia32_storeapd256_mask ((__v4df *) __P,
6189 (__v4df) __A,
6190 (__mmask8) __U);
6191}
6192
6193static __inline__ void __DEFAULT_FN_ATTRS
6194_mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A)
6195{
6196 __builtin_ia32_storeaps128_mask ((__v4sf *) __P,
6197 (__v4sf) __A,
6198 (__mmask8) __U);
6199}
6200
6201static __inline__ void __DEFAULT_FN_ATTRS
6202_mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
6203{
6204 __builtin_ia32_storeaps256_mask ((__v8sf *) __P,
6205 (__v8sf) __A,
6206 (__mmask8) __U);
6207}
6208
6209static __inline__ void __DEFAULT_FN_ATTRS
6210_mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
6211{
6212 __builtin_ia32_storedqudi128_mask ((__v2di *) __P,
6213 (__v2di) __A,
6214 (__mmask8) __U);
6215}
6216
6217static __inline__ void __DEFAULT_FN_ATTRS
6218_mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
6219{
6220 __builtin_ia32_storedqudi256_mask ((__v4di *) __P,
6221 (__v4di) __A,
6222 (__mmask8) __U);
6223}
6224
6225static __inline__ void __DEFAULT_FN_ATTRS
6226_mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
6227{
6228 __builtin_ia32_storedqusi128_mask ((__v4si *) __P,
6229 (__v4si) __A,
6230 (__mmask8) __U);
6231}
6232
6233static __inline__ void __DEFAULT_FN_ATTRS
6234_mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
6235{
6236 __builtin_ia32_storedqusi256_mask ((__v8si *) __P,
6237 (__v8si) __A,
6238 (__mmask8) __U);
6239}
6240
6241static __inline__ void __DEFAULT_FN_ATTRS
6242_mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A)
6243{
6244 __builtin_ia32_storeupd128_mask ((__v2df *) __P,
6245 (__v2df) __A,
6246 (__mmask8) __U);
6247}
6248
6249static __inline__ void __DEFAULT_FN_ATTRS
6250_mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A)
6251{
6252 __builtin_ia32_storeupd256_mask ((__v4df *) __P,
6253 (__v4df) __A,
6254 (__mmask8) __U);
6255}
6256
6257static __inline__ void __DEFAULT_FN_ATTRS
6258_mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A)
6259{
6260 __builtin_ia32_storeups128_mask ((__v4sf *) __P,
6261 (__v4sf) __A,
6262 (__mmask8) __U);
6263}
6264
6265static __inline__ void __DEFAULT_FN_ATTRS
6266_mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A)
6267{
6268 __builtin_ia32_storeups256_mask ((__v8sf *) __P,
6269 (__v8sf) __A,
6270 (__mmask8) __U);
6271}
6272
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006273
6274static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006275_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006276{
Craig Topper79f53ca2016-06-23 06:36:42 +00006277 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6278 (__v2df)_mm_unpackhi_pd(__A, __B),
6279 (__v2df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006280}
6281
6282static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006283_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006284{
Craig Topper79f53ca2016-06-23 06:36:42 +00006285 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6286 (__v2df)_mm_unpackhi_pd(__A, __B),
6287 (__v2df)_mm_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006288}
6289
6290static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006291_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006292{
Craig Topper79f53ca2016-06-23 06:36:42 +00006293 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6294 (__v4df)_mm256_unpackhi_pd(__A, __B),
6295 (__v4df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006296}
6297
6298static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006299_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006300{
Craig Topper79f53ca2016-06-23 06:36:42 +00006301 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6302 (__v4df)_mm256_unpackhi_pd(__A, __B),
6303 (__v4df)_mm256_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006304}
6305
6306static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006307_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006308{
Craig Topper79f53ca2016-06-23 06:36:42 +00006309 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6310 (__v4sf)_mm_unpackhi_ps(__A, __B),
6311 (__v4sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006312}
6313
6314static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006315_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006316{
Craig Topper79f53ca2016-06-23 06:36:42 +00006317 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6318 (__v4sf)_mm_unpackhi_ps(__A, __B),
6319 (__v4sf)_mm_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006320}
6321
6322static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006323_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006324{
Craig Topper79f53ca2016-06-23 06:36:42 +00006325 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6326 (__v8sf)_mm256_unpackhi_ps(__A, __B),
6327 (__v8sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006328}
6329
6330static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006331_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006332{
Craig Topper79f53ca2016-06-23 06:36:42 +00006333 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6334 (__v8sf)_mm256_unpackhi_ps(__A, __B),
6335 (__v8sf)_mm256_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006336}
6337
6338static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006339_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006340{
Craig Topper79f53ca2016-06-23 06:36:42 +00006341 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6342 (__v2df)_mm_unpacklo_pd(__A, __B),
6343 (__v2df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006344}
6345
6346static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006347_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006348{
Craig Topper79f53ca2016-06-23 06:36:42 +00006349 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6350 (__v2df)_mm_unpacklo_pd(__A, __B),
6351 (__v2df)_mm_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006352}
6353
6354static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006355_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006356{
Craig Topper79f53ca2016-06-23 06:36:42 +00006357 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6358 (__v4df)_mm256_unpacklo_pd(__A, __B),
6359 (__v4df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006360}
6361
6362static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006363_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006364{
Craig Topper79f53ca2016-06-23 06:36:42 +00006365 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6366 (__v4df)_mm256_unpacklo_pd(__A, __B),
6367 (__v4df)_mm256_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006368}
6369
6370static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006371_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006372{
Craig Topper79f53ca2016-06-23 06:36:42 +00006373 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6374 (__v4sf)_mm_unpacklo_ps(__A, __B),
6375 (__v4sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006376}
6377
6378static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006379_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006380{
Craig Topper79f53ca2016-06-23 06:36:42 +00006381 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6382 (__v4sf)_mm_unpacklo_ps(__A, __B),
6383 (__v4sf)_mm_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006384}
6385
6386static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006387_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006388{
Craig Topper79f53ca2016-06-23 06:36:42 +00006389 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6390 (__v8sf)_mm256_unpacklo_ps(__A, __B),
6391 (__v8sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006392}
6393
6394static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006395_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006396{
Craig Topper79f53ca2016-06-23 06:36:42 +00006397 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6398 (__v8sf)_mm256_unpacklo_ps(__A, __B),
6399 (__v8sf)_mm256_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006400}
6401
6402static __inline__ __m128d __DEFAULT_FN_ATTRS
6403_mm_rcp14_pd (__m128d __A)
6404{
6405 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6406 (__v2df)
6407 _mm_setzero_pd (),
6408 (__mmask8) -1);
6409}
6410
6411static __inline__ __m128d __DEFAULT_FN_ATTRS
6412_mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A)
6413{
6414 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6415 (__v2df) __W,
6416 (__mmask8) __U);
6417}
6418
6419static __inline__ __m128d __DEFAULT_FN_ATTRS
6420_mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A)
6421{
6422 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6423 (__v2df)
6424 _mm_setzero_pd (),
6425 (__mmask8) __U);
6426}
6427
6428static __inline__ __m256d __DEFAULT_FN_ATTRS
6429_mm256_rcp14_pd (__m256d __A)
6430{
6431 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6432 (__v4df)
6433 _mm256_setzero_pd (),
6434 (__mmask8) -1);
6435}
6436
6437static __inline__ __m256d __DEFAULT_FN_ATTRS
6438_mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A)
6439{
6440 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6441 (__v4df) __W,
6442 (__mmask8) __U);
6443}
6444
6445static __inline__ __m256d __DEFAULT_FN_ATTRS
6446_mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A)
6447{
6448 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6449 (__v4df)
6450 _mm256_setzero_pd (),
6451 (__mmask8) __U);
6452}
6453
6454static __inline__ __m128 __DEFAULT_FN_ATTRS
6455_mm_rcp14_ps (__m128 __A)
6456{
6457 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6458 (__v4sf)
6459 _mm_setzero_ps (),
6460 (__mmask8) -1);
6461}
6462
6463static __inline__ __m128 __DEFAULT_FN_ATTRS
6464_mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A)
6465{
6466 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6467 (__v4sf) __W,
6468 (__mmask8) __U);
6469}
6470
6471static __inline__ __m128 __DEFAULT_FN_ATTRS
6472_mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A)
6473{
6474 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6475 (__v4sf)
6476 _mm_setzero_ps (),
6477 (__mmask8) __U);
6478}
6479
6480static __inline__ __m256 __DEFAULT_FN_ATTRS
6481_mm256_rcp14_ps (__m256 __A)
6482{
6483 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6484 (__v8sf)
6485 _mm256_setzero_ps (),
6486 (__mmask8) -1);
6487}
6488
6489static __inline__ __m256 __DEFAULT_FN_ATTRS
6490_mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A)
6491{
6492 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6493 (__v8sf) __W,
6494 (__mmask8) __U);
6495}
6496
6497static __inline__ __m256 __DEFAULT_FN_ATTRS
6498_mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A)
6499{
6500 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6501 (__v8sf)
6502 _mm256_setzero_ps (),
6503 (__mmask8) __U);
6504}
6505
Craig Topperd2661882016-05-17 04:41:48 +00006506#define _mm_mask_permute_pd(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006507 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6508 (__v2df)_mm_permute_pd((X), (C)), \
6509 (__v2df)(__m128d)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006510
Craig Topperd2661882016-05-17 04:41:48 +00006511#define _mm_maskz_permute_pd(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006512 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6513 (__v2df)_mm_permute_pd((X), (C)), \
6514 (__v2df)_mm_setzero_pd()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006515
Craig Topperd2661882016-05-17 04:41:48 +00006516#define _mm256_mask_permute_pd(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006517 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6518 (__v4df)_mm256_permute_pd((X), (C)), \
6519 (__v4df)(__m256d)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006520
Craig Topperd2661882016-05-17 04:41:48 +00006521#define _mm256_maskz_permute_pd(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006522 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6523 (__v4df)_mm256_permute_pd((X), (C)), \
6524 (__v4df)_mm256_setzero_pd()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006525
Craig Topperd2661882016-05-17 04:41:48 +00006526#define _mm_mask_permute_ps(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006527 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6528 (__v4sf)_mm_permute_ps((X), (C)), \
6529 (__v4sf)(__m128)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006530
Craig Topperd2661882016-05-17 04:41:48 +00006531#define _mm_maskz_permute_ps(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006532 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6533 (__v4sf)_mm_permute_ps((X), (C)), \
6534 (__v4sf)_mm_setzero_ps()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006535
Craig Topperd2661882016-05-17 04:41:48 +00006536#define _mm256_mask_permute_ps(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006537 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6538 (__v8sf)_mm256_permute_ps((X), (C)), \
6539 (__v8sf)(__m256)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006540
Craig Topperd2661882016-05-17 04:41:48 +00006541#define _mm256_maskz_permute_ps(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006542 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6543 (__v8sf)_mm256_permute_ps((X), (C)), \
6544 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006545
6546static __inline__ __m128d __DEFAULT_FN_ATTRS
6547_mm_mask_permutevar_pd (__m128d __W, __mmask8 __U, __m128d __A,
6548 __m128i __C)
6549{
6550 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
6551 (__v2di) __C,
6552 (__v2df) __W,
6553 (__mmask8) __U);
6554}
6555
6556static __inline__ __m128d __DEFAULT_FN_ATTRS
6557_mm_maskz_permutevar_pd (__mmask8 __U, __m128d __A, __m128i __C)
6558{
6559 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
6560 (__v2di) __C,
6561 (__v2df)
6562 _mm_setzero_pd (),
6563 (__mmask8) __U);
6564}
6565
6566static __inline__ __m256d __DEFAULT_FN_ATTRS
6567_mm256_mask_permutevar_pd (__m256d __W, __mmask8 __U, __m256d __A,
6568 __m256i __C)
6569{
6570 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
6571 (__v4di) __C,
6572 (__v4df) __W,
6573 (__mmask8)
6574 __U);
6575}
6576
6577static __inline__ __m256d __DEFAULT_FN_ATTRS
6578_mm256_maskz_permutevar_pd (__mmask8 __U, __m256d __A, __m256i __C)
6579{
6580 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
6581 (__v4di) __C,
6582 (__v4df)
6583 _mm256_setzero_pd (),
6584 (__mmask8)
6585 __U);
6586}
6587
6588static __inline__ __m128 __DEFAULT_FN_ATTRS
6589_mm_mask_permutevar_ps (__m128 __W, __mmask8 __U, __m128 __A,
6590 __m128i __C)
6591{
6592 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
6593 (__v4si) __C,
6594 (__v4sf) __W,
6595 (__mmask8) __U);
6596}
6597
6598static __inline__ __m128 __DEFAULT_FN_ATTRS
6599_mm_maskz_permutevar_ps (__mmask8 __U, __m128 __A, __m128i __C)
6600{
6601 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
6602 (__v4si) __C,
6603 (__v4sf)
6604 _mm_setzero_ps (),
6605 (__mmask8) __U);
6606}
6607
6608static __inline__ __m256 __DEFAULT_FN_ATTRS
6609_mm256_mask_permutevar_ps (__m256 __W, __mmask8 __U, __m256 __A,
6610 __m256i __C)
6611{
6612 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
6613 (__v8si) __C,
6614 (__v8sf) __W,
6615 (__mmask8) __U);
6616}
6617
6618static __inline__ __m256 __DEFAULT_FN_ATTRS
6619_mm256_maskz_permutevar_ps (__mmask8 __U, __m256 __A, __m256i __C)
6620{
6621 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
6622 (__v8si) __C,
6623 (__v8sf)
6624 _mm256_setzero_ps (),
6625 (__mmask8) __U);
6626}
6627
Michael Zuckerman07525092016-04-11 10:22:07 +00006628static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6629_mm_test_epi32_mask (__m128i __A, __m128i __B)
6630{
6631 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6632 (__v4si) __B,
6633 (__mmask8) -1);
6634}
6635
6636static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6637_mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6638{
6639 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6640 (__v4si) __B, __U);
6641}
6642
6643static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6644_mm256_test_epi32_mask (__m256i __A, __m256i __B)
6645{
6646 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6647 (__v8si) __B,
6648 (__mmask8) -1);
6649}
6650
6651static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6652_mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6653{
6654 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6655 (__v8si) __B, __U);
6656}
6657
6658static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6659_mm_test_epi64_mask (__m128i __A, __m128i __B)
6660{
6661 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6662 (__v2di) __B,
6663 (__mmask8) -1);
6664}
6665
6666static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6667_mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6668{
6669 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6670 (__v2di) __B, __U);
6671}
6672
6673static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6674_mm256_test_epi64_mask (__m256i __A, __m256i __B)
6675{
6676 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
6677 (__v4di) __B,
6678 (__mmask8) -1);
6679}
6680
6681static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6682_mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6683{
6684 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
6685 (__v4di) __B, __U);
6686}
6687
6688static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6689_mm_testn_epi32_mask (__m128i __A, __m128i __B)
6690{
6691 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
6692 (__v4si) __B,
6693 (__mmask8) -1);
6694}
6695
6696static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6697_mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6698{
6699 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
6700 (__v4si) __B, __U);
6701}
6702
6703static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6704_mm256_testn_epi32_mask (__m256i __A, __m256i __B)
6705{
6706 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
6707 (__v8si) __B,
6708 (__mmask8) -1);
6709}
6710
6711static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6712_mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6713{
6714 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
6715 (__v8si) __B, __U);
6716}
6717
6718static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6719_mm_testn_epi64_mask (__m128i __A, __m128i __B)
6720{
6721 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
6722 (__v2di) __B,
6723 (__mmask8) -1);
6724}
6725
6726static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6727_mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6728{
6729 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
6730 (__v2di) __B, __U);
6731}
6732
6733static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6734_mm256_testn_epi64_mask (__m256i __A, __m256i __B)
6735{
6736 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
6737 (__v4di) __B,
6738 (__mmask8) -1);
6739}
6740
6741static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6742_mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6743{
6744 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
6745 (__v4di) __B, __U);
6746}
6747
6748
6749
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006750static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006751_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006752{
Craig Topper79f53ca2016-06-23 06:36:42 +00006753 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6754 (__v4si)_mm_unpackhi_epi32(__A, __B),
6755 (__v4si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006756}
6757
6758static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006759_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006760{
Craig Topper79f53ca2016-06-23 06:36:42 +00006761 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6762 (__v4si)_mm_unpackhi_epi32(__A, __B),
6763 (__v4si)_mm_setzero_si128());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006764}
6765
6766static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006767_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006768{
Craig Topper79f53ca2016-06-23 06:36:42 +00006769 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6770 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6771 (__v8si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006772}
6773
6774static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006775_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006776{
Craig Topper79f53ca2016-06-23 06:36:42 +00006777 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6778 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6779 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006780}
6781
6782static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006783_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006784{
Craig Topper79f53ca2016-06-23 06:36:42 +00006785 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6786 (__v2di)_mm_unpackhi_epi64(__A, __B),
6787 (__v2di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006788}
6789
6790static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006791_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006792{
Craig Topper79f53ca2016-06-23 06:36:42 +00006793 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6794 (__v2di)_mm_unpackhi_epi64(__A, __B),
6795 (__v2di)_mm_setzero_di());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006796}
6797
6798static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006799_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006800{
Craig Topper79f53ca2016-06-23 06:36:42 +00006801 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6802 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6803 (__v4di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006804}
6805
6806static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006807_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006808{
Craig Topper79f53ca2016-06-23 06:36:42 +00006809 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6810 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6811 (__v4di)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006812}
6813
6814static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006815_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006816{
Craig Topper79f53ca2016-06-23 06:36:42 +00006817 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6818 (__v4si)_mm_unpacklo_epi32(__A, __B),
6819 (__v4si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006820}
6821
6822static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006823_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006824{
Craig Topper79f53ca2016-06-23 06:36:42 +00006825 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6826 (__v4si)_mm_unpacklo_epi32(__A, __B),
6827 (__v4si)_mm_setzero_si128());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006828}
6829
6830static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006831_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006832{
Craig Topper79f53ca2016-06-23 06:36:42 +00006833 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6834 (__v8si)_mm256_unpacklo_epi32(__A, __B),
6835 (__v8si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006836}
6837
6838static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006839_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006840{
Craig Topper79f53ca2016-06-23 06:36:42 +00006841 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6842 (__v8si)_mm256_unpacklo_epi32(__A, __B),
6843 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006844}
6845
6846static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006847_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006848{
Craig Topper79f53ca2016-06-23 06:36:42 +00006849 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6850 (__v2di)_mm_unpacklo_epi64(__A, __B),
6851 (__v2di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006852}
6853
6854static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006855_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006856{
Craig Topper79f53ca2016-06-23 06:36:42 +00006857 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6858 (__v2di)_mm_unpacklo_epi64(__A, __B),
6859 (__v2di)_mm_setzero_di());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006860}
6861
6862static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006863_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006864{
Craig Topper79f53ca2016-06-23 06:36:42 +00006865 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6866 (__v4di)_mm256_unpacklo_epi64(__A, __B),
6867 (__v4di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006868}
6869
6870static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006871_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006872{
Craig Topper79f53ca2016-06-23 06:36:42 +00006873 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6874 (__v4di)_mm256_unpacklo_epi64(__A, __B),
6875 (__v4di)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006876}
6877
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006878static __inline__ __m128i __DEFAULT_FN_ATTRS
6879_mm_mask_sra_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
6880 __m128i __B)
6881{
6882 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
6883 (__v4si) __B,
6884 (__v4si) __W,
6885 (__mmask8) __U);
6886}
6887
6888static __inline__ __m128i __DEFAULT_FN_ATTRS
6889_mm_maskz_sra_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
6890{
6891 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
6892 (__v4si) __B,
6893 (__v4si)
6894 _mm_setzero_si128 (),
6895 (__mmask8) __U);
6896}
6897
6898static __inline__ __m256i __DEFAULT_FN_ATTRS
6899_mm256_mask_sra_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
6900 __m128i __B)
6901{
6902 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
6903 (__v4si) __B,
6904 (__v8si) __W,
6905 (__mmask8) __U);
6906}
6907
6908static __inline__ __m256i __DEFAULT_FN_ATTRS
6909_mm256_maskz_sra_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
6910{
6911 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
6912 (__v4si) __B,
6913 (__v8si)
6914 _mm256_setzero_si256 (),
6915 (__mmask8) __U);
6916}
6917
Craig Topperd2661882016-05-17 04:41:48 +00006918#define _mm_mask_srai_epi32(W, U, A, imm) __extension__ ({ \
6919 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \
6920 (__v4si)(__m128i)(W), \
6921 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006922
Craig Topperd2661882016-05-17 04:41:48 +00006923#define _mm_maskz_srai_epi32(U, A, imm) __extension__ ({ \
6924 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \
6925 (__v4si)_mm_setzero_si128(), \
6926 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006927
Craig Topperd2661882016-05-17 04:41:48 +00006928#define _mm256_mask_srai_epi32(W, U, A, imm) __extension__ ({ \
6929 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \
6930 (__v8si)(__m256i)(W), \
6931 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006932
Craig Topperd2661882016-05-17 04:41:48 +00006933#define _mm256_maskz_srai_epi32(U, A, imm) __extension__ ({ \
6934 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \
6935 (__v8si)_mm256_setzero_si256(), \
6936 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006937
6938static __inline__ __m128i __DEFAULT_FN_ATTRS
6939_mm_sra_epi64 (__m128i __A, __m128i __B)
6940{
6941 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
6942 (__v2di) __B,
6943 (__v2di)
6944 _mm_setzero_di (),
6945 (__mmask8) -1);
6946}
6947
6948static __inline__ __m128i __DEFAULT_FN_ATTRS
6949_mm_mask_sra_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
6950 __m128i __B)
6951{
6952 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
6953 (__v2di) __B,
6954 (__v2di) __W,
6955 (__mmask8) __U);
6956}
6957
6958static __inline__ __m128i __DEFAULT_FN_ATTRS
6959_mm_maskz_sra_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
6960{
6961 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
6962 (__v2di) __B,
6963 (__v2di)
6964 _mm_setzero_di (),
6965 (__mmask8) __U);
6966}
6967
6968static __inline__ __m256i __DEFAULT_FN_ATTRS
6969_mm256_sra_epi64 (__m256i __A, __m128i __B)
6970{
6971 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
6972 (__v2di) __B,
6973 (__v4di)
6974 _mm256_setzero_si256 (),
6975 (__mmask8) -1);
6976}
6977
6978static __inline__ __m256i __DEFAULT_FN_ATTRS
6979_mm256_mask_sra_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
6980 __m128i __B)
6981{
6982 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
6983 (__v2di) __B,
6984 (__v4di) __W,
6985 (__mmask8) __U);
6986}
6987
6988static __inline__ __m256i __DEFAULT_FN_ATTRS
6989_mm256_maskz_sra_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
6990{
6991 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
6992 (__v2di) __B,
6993 (__v4di)
6994 _mm256_setzero_si256 (),
6995 (__mmask8) __U);
6996}
6997
Craig Topperd2661882016-05-17 04:41:48 +00006998#define _mm_srai_epi64(A, imm) __extension__ ({ \
6999 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7000 (__v2di)_mm_setzero_di(), \
7001 (__mmask8)-1); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007002
Craig Topperd2661882016-05-17 04:41:48 +00007003#define _mm_mask_srai_epi64(W, U, A, imm) __extension__ ({ \
7004 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7005 (__v2di)(__m128i)(W), \
7006 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007007
Craig Topperd2661882016-05-17 04:41:48 +00007008#define _mm_maskz_srai_epi64(U, A, imm) __extension__ ({ \
7009 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7010 (__v2di)_mm_setzero_si128(), \
7011 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007012
Craig Topperd2661882016-05-17 04:41:48 +00007013#define _mm256_srai_epi64(A, imm) __extension__ ({ \
7014 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7015 (__v4di)_mm256_setzero_si256(), \
7016 (__mmask8)-1); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007017
Craig Topperd2661882016-05-17 04:41:48 +00007018#define _mm256_mask_srai_epi64(W, U, A, imm) __extension__ ({ \
7019 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7020 (__v4di)(__m256i)(W), \
7021 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007022
Craig Topperd2661882016-05-17 04:41:48 +00007023#define _mm256_maskz_srai_epi64(U, A, imm) __extension__ ({ \
7024 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7025 (__v4di)_mm256_setzero_si256(), \
7026 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007027
Craig Topperd2661882016-05-17 04:41:48 +00007028#define _mm_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
7029 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
7030 (__v4si)(__m128i)(B), \
7031 (__v4si)(__m128i)(C), (int)(imm), \
7032 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007033
Craig Topperd2661882016-05-17 04:41:48 +00007034#define _mm_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
7035 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
7036 (__v4si)(__m128i)(B), \
7037 (__v4si)(__m128i)(C), (int)(imm), \
7038 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007039
Craig Topperd2661882016-05-17 04:41:48 +00007040#define _mm_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
7041 (__m128i)__builtin_ia32_pternlogd128_maskz((__v4si)(__m128i)(A), \
7042 (__v4si)(__m128i)(B), \
7043 (__v4si)(__m128i)(C), (int)(imm), \
7044 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007045
Craig Topperd2661882016-05-17 04:41:48 +00007046#define _mm256_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
7047 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
7048 (__v8si)(__m256i)(B), \
7049 (__v8si)(__m256i)(C), (int)(imm), \
7050 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007051
Craig Topperd2661882016-05-17 04:41:48 +00007052#define _mm256_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
7053 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
7054 (__v8si)(__m256i)(B), \
7055 (__v8si)(__m256i)(C), (int)(imm), \
7056 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007057
Craig Topperd2661882016-05-17 04:41:48 +00007058#define _mm256_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
7059 (__m256i)__builtin_ia32_pternlogd256_maskz((__v8si)(__m256i)(A), \
7060 (__v8si)(__m256i)(B), \
7061 (__v8si)(__m256i)(C), (int)(imm), \
7062 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007063
Craig Topperd2661882016-05-17 04:41:48 +00007064#define _mm_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
7065 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
7066 (__v2di)(__m128i)(B), \
7067 (__v2di)(__m128i)(C), (int)(imm), \
7068 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007069
Craig Topperd2661882016-05-17 04:41:48 +00007070#define _mm_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
7071 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
7072 (__v2di)(__m128i)(B), \
7073 (__v2di)(__m128i)(C), (int)(imm), \
7074 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007075
Craig Topperd2661882016-05-17 04:41:48 +00007076#define _mm_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
7077 (__m128i)__builtin_ia32_pternlogq128_maskz((__v2di)(__m128i)(A), \
7078 (__v2di)(__m128i)(B), \
7079 (__v2di)(__m128i)(C), (int)(imm), \
7080 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007081
Craig Topperd2661882016-05-17 04:41:48 +00007082#define _mm256_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
7083 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
7084 (__v4di)(__m256i)(B), \
7085 (__v4di)(__m256i)(C), (int)(imm), \
7086 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007087
Craig Topperd2661882016-05-17 04:41:48 +00007088#define _mm256_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
7089 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
7090 (__v4di)(__m256i)(B), \
7091 (__v4di)(__m256i)(C), (int)(imm), \
7092 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007093
Craig Topperd2661882016-05-17 04:41:48 +00007094#define _mm256_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
7095 (__m256i)__builtin_ia32_pternlogq256_maskz((__v4di)(__m256i)(A), \
7096 (__v4di)(__m256i)(B), \
7097 (__v4di)(__m256i)(C), (int)(imm), \
7098 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007099
7100
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007101
Craig Topperd2661882016-05-17 04:41:48 +00007102#define _mm256_shuffle_f32x4(A, B, imm) __extension__ ({ \
7103 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7104 (__v8sf)(__m256)(B), (int)(imm), \
7105 (__v8sf)_mm256_setzero_ps(), \
7106 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007107
Craig Topperd2661882016-05-17 04:41:48 +00007108#define _mm256_mask_shuffle_f32x4(W, U, A, B, imm) __extension__ ({ \
7109 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7110 (__v8sf)(__m256)(B), (int)(imm), \
7111 (__v8sf)(__m256)(W), \
7112 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007113
Craig Topperd2661882016-05-17 04:41:48 +00007114#define _mm256_maskz_shuffle_f32x4(U, A, B, imm) __extension__ ({ \
7115 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7116 (__v8sf)(__m256)(B), (int)(imm), \
7117 (__v8sf)_mm256_setzero_ps(), \
7118 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007119
Craig Topperd2661882016-05-17 04:41:48 +00007120#define _mm256_shuffle_f64x2(A, B, imm) __extension__ ({ \
7121 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7122 (__v4df)(__m256d)(B), \
7123 (int)(imm), \
7124 (__v4df)_mm256_setzero_pd(), \
7125 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007126
Craig Topperd2661882016-05-17 04:41:48 +00007127#define _mm256_mask_shuffle_f64x2(W, U, A, B, imm) __extension__ ({ \
7128 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7129 (__v4df)(__m256d)(B), \
7130 (int)(imm), \
7131 (__v4df)(__m256d)(W), \
7132 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007133
Craig Topperd2661882016-05-17 04:41:48 +00007134#define _mm256_maskz_shuffle_f64x2(U, A, B, imm) __extension__ ({ \
7135 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7136 (__v4df)(__m256d)(B), \
7137 (int)(imm), \
7138 (__v4df)_mm256_setzero_pd(), \
7139 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007140
Craig Topperd2661882016-05-17 04:41:48 +00007141#define _mm256_shuffle_i32x4(A, B, imm) __extension__ ({ \
7142 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7143 (__v8si)(__m256i)(B), \
7144 (int)(imm), \
7145 (__v8si)_mm256_setzero_si256(), \
7146 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007147
Craig Topperd2661882016-05-17 04:41:48 +00007148#define _mm256_mask_shuffle_i32x4(W, U, A, B, imm) __extension__ ({ \
7149 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7150 (__v8si)(__m256i)(B), \
7151 (int)(imm), \
7152 (__v8si)(__m256i)(W), \
7153 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007154
Craig Topperd2661882016-05-17 04:41:48 +00007155#define _mm256_maskz_shuffle_i32x4(U, A, B, imm) __extension__ ({ \
7156 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7157 (__v8si)(__m256i)(B), \
7158 (int)(imm), \
7159 (__v8si)_mm256_setzero_si256(), \
7160 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007161
Craig Topperd2661882016-05-17 04:41:48 +00007162#define _mm256_shuffle_i64x2(A, B, imm) __extension__ ({ \
7163 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7164 (__v4di)(__m256i)(B), \
7165 (int)(imm), \
7166 (__v4di)_mm256_setzero_si256(), \
7167 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007168
Craig Topperd2661882016-05-17 04:41:48 +00007169#define _mm256_mask_shuffle_i64x2(W, U, A, B, imm) __extension__ ({ \
7170 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7171 (__v4di)(__m256i)(B), \
7172 (int)(imm), \
7173 (__v4di)(__m256i)(W), \
7174 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007175
Craig Topperd2661882016-05-17 04:41:48 +00007176#define _mm256_maskz_shuffle_i64x2(U, A, B, imm) __extension__ ({ \
7177 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7178 (__v4di)(__m256i)(B), \
7179 (int)(imm), \
7180 (__v4di)_mm256_setzero_si256(), \
7181 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007182
Simon Pilgrim427154d2016-07-04 21:30:47 +00007183#define _mm_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7184 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
7185 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
7186 (__v2df)(__m128d)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007187
Simon Pilgrim427154d2016-07-04 21:30:47 +00007188#define _mm_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7189 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
7190 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
7191 (__v2df)_mm_setzero_pd()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007192
Simon Pilgrim427154d2016-07-04 21:30:47 +00007193#define _mm256_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7194 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
7195 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
7196 (__v4df)(__m256d)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007197
Simon Pilgrim427154d2016-07-04 21:30:47 +00007198#define _mm256_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7199 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
7200 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
7201 (__v4df)_mm256_setzero_pd()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007202
Simon Pilgrim427154d2016-07-04 21:30:47 +00007203#define _mm_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7204 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
7205 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
7206 (__v4sf)(__m128)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007207
Simon Pilgrim427154d2016-07-04 21:30:47 +00007208#define _mm_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7209 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
7210 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
7211 (__v4sf)_mm_setzero_ps()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007212
Simon Pilgrim427154d2016-07-04 21:30:47 +00007213#define _mm256_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7214 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7215 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
7216 (__v8sf)(__m256)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007217
Simon Pilgrim427154d2016-07-04 21:30:47 +00007218#define _mm256_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7219 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7220 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
7221 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007222
7223static __inline__ __m128d __DEFAULT_FN_ATTRS
7224_mm_rsqrt14_pd (__m128d __A)
7225{
7226 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7227 (__v2df)
7228 _mm_setzero_pd (),
7229 (__mmask8) -1);
7230}
7231
7232static __inline__ __m128d __DEFAULT_FN_ATTRS
7233_mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A)
7234{
7235 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7236 (__v2df) __W,
7237 (__mmask8) __U);
7238}
7239
7240static __inline__ __m128d __DEFAULT_FN_ATTRS
7241_mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A)
7242{
7243 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7244 (__v2df)
7245 _mm_setzero_pd (),
7246 (__mmask8) __U);
7247}
7248
7249static __inline__ __m256d __DEFAULT_FN_ATTRS
7250_mm256_rsqrt14_pd (__m256d __A)
7251{
7252 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7253 (__v4df)
7254 _mm256_setzero_pd (),
7255 (__mmask8) -1);
7256}
7257
7258static __inline__ __m256d __DEFAULT_FN_ATTRS
7259_mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A)
7260{
7261 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7262 (__v4df) __W,
7263 (__mmask8) __U);
7264}
7265
7266static __inline__ __m256d __DEFAULT_FN_ATTRS
7267_mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A)
7268{
7269 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7270 (__v4df)
7271 _mm256_setzero_pd (),
7272 (__mmask8) __U);
7273}
7274
7275static __inline__ __m128 __DEFAULT_FN_ATTRS
7276_mm_rsqrt14_ps (__m128 __A)
7277{
7278 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7279 (__v4sf)
7280 _mm_setzero_ps (),
7281 (__mmask8) -1);
7282}
7283
7284static __inline__ __m128 __DEFAULT_FN_ATTRS
7285_mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A)
7286{
7287 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7288 (__v4sf) __W,
7289 (__mmask8) __U);
7290}
7291
7292static __inline__ __m128 __DEFAULT_FN_ATTRS
7293_mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A)
7294{
7295 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7296 (__v4sf)
7297 _mm_setzero_ps (),
7298 (__mmask8) __U);
7299}
7300
7301static __inline__ __m256 __DEFAULT_FN_ATTRS
7302_mm256_rsqrt14_ps (__m256 __A)
7303{
7304 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7305 (__v8sf)
7306 _mm256_setzero_ps (),
7307 (__mmask8) -1);
7308}
7309
7310static __inline__ __m256 __DEFAULT_FN_ATTRS
7311_mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A)
7312{
7313 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7314 (__v8sf) __W,
7315 (__mmask8) __U);
7316}
7317
7318static __inline__ __m256 __DEFAULT_FN_ATTRS
7319_mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A)
7320{
7321 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7322 (__v8sf)
7323 _mm256_setzero_ps (),
7324 (__mmask8) __U);
7325}
7326
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007327static __inline__ __m256 __DEFAULT_FN_ATTRS
7328_mm256_broadcast_f32x4 (__m128 __A)
7329{
7330 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7331 (__v8sf)_mm256_undefined_pd (),
Craig Topper406d5cd2016-06-04 05:43:37 +00007332 (__mmask8) -1);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007333}
7334
7335static __inline__ __m256 __DEFAULT_FN_ATTRS
7336_mm256_mask_broadcast_f32x4 (__m256 __O, __mmask8 __M, __m128 __A)
7337{
7338 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7339 (__v8sf) __O,
7340 __M);
7341}
7342
7343static __inline__ __m256 __DEFAULT_FN_ATTRS
7344_mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A)
7345{
7346 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7347 (__v8sf) _mm256_setzero_ps (),
7348 __M);
7349}
7350
7351static __inline__ __m256i __DEFAULT_FN_ATTRS
7352_mm256_broadcast_i32x4 (__m128i __A)
7353{
7354 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
7355 (__v8si)_mm256_undefined_si256 (),
Craig Topper406d5cd2016-06-04 05:43:37 +00007356 (__mmask8) -1);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007357}
7358
7359static __inline__ __m256i __DEFAULT_FN_ATTRS
7360_mm256_mask_broadcast_i32x4 (__m256i __O, __mmask8 __M, __m128i __A)
7361{
7362 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
7363 (__v8si)
7364 __O, __M);
7365}
7366
7367static __inline__ __m256i __DEFAULT_FN_ATTRS
7368_mm256_maskz_broadcast_i32x4 (__mmask8 __M, __m128i __A)
7369{
7370 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si)
7371 __A,
7372 (__v8si) _mm256_setzero_si256 (),
7373 __M);
7374}
7375
7376static __inline__ __m256d __DEFAULT_FN_ATTRS
7377_mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A)
7378{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007379 return (__m256d)__builtin_ia32_selectpd_256(__M,
7380 (__v4df) _mm256_broadcastsd_pd(__A),
7381 (__v4df) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007382}
7383
7384static __inline__ __m256d __DEFAULT_FN_ATTRS
7385_mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
7386{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007387 return (__m256d)__builtin_ia32_selectpd_256(__M,
7388 (__v4df) _mm256_broadcastsd_pd(__A),
7389 (__v4df) _mm256_setzero_pd());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007390}
7391
7392static __inline__ __m128 __DEFAULT_FN_ATTRS
7393_mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A)
7394{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007395 return (__m128)__builtin_ia32_selectps_128(__M,
7396 (__v4sf) _mm_broadcastss_ps(__A),
7397 (__v4sf) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007398}
7399
7400static __inline__ __m128 __DEFAULT_FN_ATTRS
7401_mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7402{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007403 return (__m128)__builtin_ia32_selectps_128(__M,
7404 (__v4sf) _mm_broadcastss_ps(__A),
7405 (__v4sf) _mm_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007406}
7407
7408static __inline__ __m256 __DEFAULT_FN_ATTRS
7409_mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A)
7410{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007411 return (__m256)__builtin_ia32_selectps_256(__M,
7412 (__v8sf) _mm256_broadcastss_ps(__A),
7413 (__v8sf) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007414}
7415
7416static __inline__ __m256 __DEFAULT_FN_ATTRS
7417_mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7418{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007419 return (__m256)__builtin_ia32_selectps_256(__M,
7420 (__v8sf) _mm256_broadcastss_ps(__A),
7421 (__v8sf) _mm256_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007422}
7423
7424static __inline__ __m128i __DEFAULT_FN_ATTRS
7425_mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7426{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007427 return (__m128i)__builtin_ia32_selectd_128(__M,
7428 (__v4si) _mm_broadcastd_epi32(__A),
7429 (__v4si) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007430}
7431
7432static __inline__ __m128i __DEFAULT_FN_ATTRS
7433_mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7434{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007435 return (__m128i)__builtin_ia32_selectd_128(__M,
7436 (__v4si) _mm_broadcastd_epi32(__A),
7437 (__v4si) _mm_setzero_si128());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007438}
7439
7440static __inline__ __m256i __DEFAULT_FN_ATTRS
7441_mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A)
7442{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007443 return (__m256i)__builtin_ia32_selectd_256(__M,
7444 (__v8si) _mm256_broadcastd_epi32(__A),
7445 (__v8si) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007446}
7447
7448static __inline__ __m256i __DEFAULT_FN_ATTRS
7449_mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7450{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007451 return (__m256i)__builtin_ia32_selectd_256(__M,
7452 (__v8si) _mm256_broadcastd_epi32(__A),
7453 (__v8si) _mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007454}
7455
7456static __inline__ __m128i __DEFAULT_FN_ATTRS
7457_mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A)
7458{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007459 return (__m128i)__builtin_ia32_selectq_128(__M,
7460 (__v2di) _mm_broadcastq_epi64(__A),
7461 (__v2di) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007462}
7463
7464static __inline__ __m128i __DEFAULT_FN_ATTRS
7465_mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7466{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007467 return (__m128i)__builtin_ia32_selectq_128(__M,
7468 (__v2di) _mm_broadcastq_epi64(__A),
7469 (__v2di) _mm_setzero_si128());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007470}
7471
7472static __inline__ __m256i __DEFAULT_FN_ATTRS
7473_mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A)
7474{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007475 return (__m256i)__builtin_ia32_selectq_256(__M,
7476 (__v4di) _mm256_broadcastq_epi64(__A),
7477 (__v4di) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007478}
7479
7480static __inline__ __m256i __DEFAULT_FN_ATTRS
7481_mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7482{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007483 return (__m256i)__builtin_ia32_selectq_256(__M,
7484 (__v4di) _mm256_broadcastq_epi64(__A),
7485 (__v4di) _mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007486}
7487
Michael Zuckermane1680612016-04-13 15:02:04 +00007488static __inline__ __m128i __DEFAULT_FN_ATTRS
7489_mm_cvtsepi32_epi8 (__m128i __A)
7490{
7491 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7492 (__v16qi)_mm_undefined_si128(),
7493 (__mmask8) -1);
7494}
7495
7496static __inline__ __m128i __DEFAULT_FN_ATTRS
7497_mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7498{
7499 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7500 (__v16qi) __O, __M);
7501}
7502
7503static __inline__ __m128i __DEFAULT_FN_ATTRS
7504_mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A)
7505{
7506 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7507 (__v16qi) _mm_setzero_si128 (),
7508 __M);
7509}
7510
7511static __inline__ void __DEFAULT_FN_ATTRS
7512_mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7513{
7514 __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7515}
7516
7517static __inline__ __m128i __DEFAULT_FN_ATTRS
7518_mm256_cvtsepi32_epi8 (__m256i __A)
7519{
7520 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7521 (__v16qi)_mm_undefined_si128(),
7522 (__mmask8) -1);
7523}
7524
7525static __inline__ __m128i __DEFAULT_FN_ATTRS
7526_mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7527{
7528 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7529 (__v16qi) __O, __M);
7530}
7531
7532static __inline__ __m128i __DEFAULT_FN_ATTRS
7533_mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A)
7534{
7535 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7536 (__v16qi) _mm_setzero_si128 (),
7537 __M);
7538}
7539
7540static __inline__ void __DEFAULT_FN_ATTRS
7541_mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7542{
7543 __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
7544}
7545
7546static __inline__ __m128i __DEFAULT_FN_ATTRS
7547_mm_cvtsepi32_epi16 (__m128i __A)
7548{
7549 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7550 (__v8hi)_mm_setzero_si128 (),
7551 (__mmask8) -1);
7552}
7553
7554static __inline__ __m128i __DEFAULT_FN_ATTRS
7555_mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7556{
7557 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7558 (__v8hi)__O,
7559 __M);
7560}
7561
7562static __inline__ __m128i __DEFAULT_FN_ATTRS
7563_mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A)
7564{
7565 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7566 (__v8hi) _mm_setzero_si128 (),
7567 __M);
7568}
7569
7570static __inline__ void __DEFAULT_FN_ATTRS
7571_mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7572{
7573 __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7574}
7575
7576static __inline__ __m128i __DEFAULT_FN_ATTRS
7577_mm256_cvtsepi32_epi16 (__m256i __A)
7578{
7579 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7580 (__v8hi)_mm_undefined_si128(),
7581 (__mmask8) -1);
7582}
7583
7584static __inline__ __m128i __DEFAULT_FN_ATTRS
7585_mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7586{
7587 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7588 (__v8hi) __O, __M);
7589}
7590
7591static __inline__ __m128i __DEFAULT_FN_ATTRS
7592_mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A)
7593{
7594 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7595 (__v8hi) _mm_setzero_si128 (),
7596 __M);
7597}
7598
7599static __inline__ void __DEFAULT_FN_ATTRS
7600_mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7601{
7602 __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7603}
7604
7605static __inline__ __m128i __DEFAULT_FN_ATTRS
7606_mm_cvtsepi64_epi8 (__m128i __A)
7607{
7608 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7609 (__v16qi)_mm_undefined_si128(),
7610 (__mmask8) -1);
7611}
7612
7613static __inline__ __m128i __DEFAULT_FN_ATTRS
7614_mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7615{
7616 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7617 (__v16qi) __O, __M);
7618}
7619
7620static __inline__ __m128i __DEFAULT_FN_ATTRS
7621_mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A)
7622{
7623 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7624 (__v16qi) _mm_setzero_si128 (),
7625 __M);
7626}
7627
7628static __inline__ void __DEFAULT_FN_ATTRS
7629_mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7630{
7631 __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7632}
7633
7634static __inline__ __m128i __DEFAULT_FN_ATTRS
7635_mm256_cvtsepi64_epi8 (__m256i __A)
7636{
7637 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7638 (__v16qi)_mm_undefined_si128(),
7639 (__mmask8) -1);
7640}
7641
7642static __inline__ __m128i __DEFAULT_FN_ATTRS
7643_mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7644{
7645 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7646 (__v16qi) __O, __M);
7647}
7648
7649static __inline__ __m128i __DEFAULT_FN_ATTRS
7650_mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A)
7651{
7652 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7653 (__v16qi) _mm_setzero_si128 (),
7654 __M);
7655}
7656
7657static __inline__ void __DEFAULT_FN_ATTRS
7658_mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7659{
7660 __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7661}
7662
7663static __inline__ __m128i __DEFAULT_FN_ATTRS
7664_mm_cvtsepi64_epi32 (__m128i __A)
7665{
7666 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7667 (__v4si)_mm_undefined_si128(),
7668 (__mmask8) -1);
7669}
7670
7671static __inline__ __m128i __DEFAULT_FN_ATTRS
7672_mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7673{
7674 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7675 (__v4si) __O, __M);
7676}
7677
7678static __inline__ __m128i __DEFAULT_FN_ATTRS
7679_mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A)
7680{
7681 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7682 (__v4si) _mm_setzero_si128 (),
7683 __M);
7684}
7685
7686static __inline__ void __DEFAULT_FN_ATTRS
7687_mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
7688{
7689 __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
7690}
7691
7692static __inline__ __m128i __DEFAULT_FN_ATTRS
7693_mm256_cvtsepi64_epi32 (__m256i __A)
7694{
7695 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7696 (__v4si)_mm_undefined_si128(),
7697 (__mmask8) -1);
7698}
7699
7700static __inline__ __m128i __DEFAULT_FN_ATTRS
7701_mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
7702{
7703 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7704 (__v4si)__O,
7705 __M);
7706}
7707
7708static __inline__ __m128i __DEFAULT_FN_ATTRS
7709_mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A)
7710{
7711 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7712 (__v4si) _mm_setzero_si128 (),
7713 __M);
7714}
7715
7716static __inline__ void __DEFAULT_FN_ATTRS
7717_mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
7718{
7719 __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
7720}
7721
7722static __inline__ __m128i __DEFAULT_FN_ATTRS
7723_mm_cvtsepi64_epi16 (__m128i __A)
7724{
7725 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7726 (__v8hi)_mm_undefined_si128(),
7727 (__mmask8) -1);
7728}
7729
7730static __inline__ __m128i __DEFAULT_FN_ATTRS
7731_mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7732{
7733 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7734 (__v8hi) __O, __M);
7735}
7736
7737static __inline__ __m128i __DEFAULT_FN_ATTRS
7738_mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A)
7739{
7740 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7741 (__v8hi) _mm_setzero_si128 (),
7742 __M);
7743}
7744
7745static __inline__ void __DEFAULT_FN_ATTRS
7746_mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7747{
7748 __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
7749}
7750
7751static __inline__ __m128i __DEFAULT_FN_ATTRS
7752_mm256_cvtsepi64_epi16 (__m256i __A)
7753{
7754 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7755 (__v8hi)_mm_undefined_si128(),
7756 (__mmask8) -1);
7757}
7758
7759static __inline__ __m128i __DEFAULT_FN_ATTRS
7760_mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7761{
7762 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7763 (__v8hi) __O, __M);
7764}
7765
7766static __inline__ __m128i __DEFAULT_FN_ATTRS
7767_mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A)
7768{
7769 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7770 (__v8hi) _mm_setzero_si128 (),
7771 __M);
7772}
7773
7774static __inline__ void __DEFAULT_FN_ATTRS
7775_mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7776{
7777 __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
7778}
7779
Michael Zuckermand8715312016-04-14 06:48:09 +00007780static __inline__ __m128i __DEFAULT_FN_ATTRS
7781_mm_cvtusepi32_epi8 (__m128i __A)
7782{
7783 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7784 (__v16qi)_mm_undefined_si128(),
7785 (__mmask8) -1);
7786}
7787
7788static __inline__ __m128i __DEFAULT_FN_ATTRS
7789_mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7790{
7791 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7792 (__v16qi) __O,
7793 __M);
7794}
7795
7796static __inline__ __m128i __DEFAULT_FN_ATTRS
7797_mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A)
7798{
7799 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7800 (__v16qi) _mm_setzero_si128 (),
7801 __M);
7802}
7803
7804static __inline__ void __DEFAULT_FN_ATTRS
7805_mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7806{
7807 __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7808}
7809
7810static __inline__ __m128i __DEFAULT_FN_ATTRS
7811_mm256_cvtusepi32_epi8 (__m256i __A)
7812{
7813 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7814 (__v16qi)_mm_undefined_si128(),
7815 (__mmask8) -1);
7816}
7817
7818static __inline__ __m128i __DEFAULT_FN_ATTRS
7819_mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7820{
7821 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7822 (__v16qi) __O,
7823 __M);
7824}
7825
7826static __inline__ __m128i __DEFAULT_FN_ATTRS
7827_mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A)
7828{
7829 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7830 (__v16qi) _mm_setzero_si128 (),
7831 __M);
7832}
7833
7834static __inline__ void __DEFAULT_FN_ATTRS
7835_mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7836{
7837 __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M);
7838}
7839
7840static __inline__ __m128i __DEFAULT_FN_ATTRS
7841_mm_cvtusepi32_epi16 (__m128i __A)
7842{
7843 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7844 (__v8hi)_mm_undefined_si128(),
7845 (__mmask8) -1);
7846}
7847
7848static __inline__ __m128i __DEFAULT_FN_ATTRS
7849_mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7850{
7851 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7852 (__v8hi) __O, __M);
7853}
7854
7855static __inline__ __m128i __DEFAULT_FN_ATTRS
7856_mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A)
7857{
7858 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7859 (__v8hi) _mm_setzero_si128 (),
7860 __M);
7861}
7862
7863static __inline__ void __DEFAULT_FN_ATTRS
7864_mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7865{
7866 __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7867}
7868
7869static __inline__ __m128i __DEFAULT_FN_ATTRS
7870_mm256_cvtusepi32_epi16 (__m256i __A)
7871{
7872 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7873 (__v8hi) _mm_undefined_si128(),
7874 (__mmask8) -1);
7875}
7876
7877static __inline__ __m128i __DEFAULT_FN_ATTRS
7878_mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7879{
7880 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7881 (__v8hi) __O, __M);
7882}
7883
7884static __inline__ __m128i __DEFAULT_FN_ATTRS
7885_mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A)
7886{
7887 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7888 (__v8hi) _mm_setzero_si128 (),
7889 __M);
7890}
7891
7892static __inline__ void __DEFAULT_FN_ATTRS
7893_mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7894{
7895 __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7896}
7897
7898static __inline__ __m128i __DEFAULT_FN_ATTRS
7899_mm_cvtusepi64_epi8 (__m128i __A)
7900{
7901 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7902 (__v16qi)_mm_undefined_si128(),
7903 (__mmask8) -1);
7904}
7905
7906static __inline__ __m128i __DEFAULT_FN_ATTRS
7907_mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7908{
7909 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7910 (__v16qi) __O,
7911 __M);
7912}
7913
7914static __inline__ __m128i __DEFAULT_FN_ATTRS
7915_mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A)
7916{
7917 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7918 (__v16qi) _mm_setzero_si128 (),
7919 __M);
7920}
7921
7922static __inline__ void __DEFAULT_FN_ATTRS
7923_mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7924{
7925 __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7926}
7927
7928static __inline__ __m128i __DEFAULT_FN_ATTRS
7929_mm256_cvtusepi64_epi8 (__m256i __A)
7930{
7931 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7932 (__v16qi)_mm_undefined_si128(),
7933 (__mmask8) -1);
7934}
7935
7936static __inline__ __m128i __DEFAULT_FN_ATTRS
7937_mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7938{
7939 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7940 (__v16qi) __O,
7941 __M);
7942}
7943
7944static __inline__ __m128i __DEFAULT_FN_ATTRS
7945_mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A)
7946{
7947 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7948 (__v16qi) _mm_setzero_si128 (),
7949 __M);
7950}
7951
7952static __inline__ void __DEFAULT_FN_ATTRS
7953_mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7954{
7955 __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7956}
7957
7958static __inline__ __m128i __DEFAULT_FN_ATTRS
7959_mm_cvtusepi64_epi32 (__m128i __A)
7960{
7961 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7962 (__v4si)_mm_undefined_si128(),
7963 (__mmask8) -1);
7964}
7965
7966static __inline__ __m128i __DEFAULT_FN_ATTRS
7967_mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7968{
7969 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7970 (__v4si) __O, __M);
7971}
7972
7973static __inline__ __m128i __DEFAULT_FN_ATTRS
7974_mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A)
7975{
7976 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7977 (__v4si) _mm_setzero_si128 (),
7978 __M);
7979}
7980
7981static __inline__ void __DEFAULT_FN_ATTRS
7982_mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
7983{
7984 __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
7985}
7986
7987static __inline__ __m128i __DEFAULT_FN_ATTRS
7988_mm256_cvtusepi64_epi32 (__m256i __A)
7989{
7990 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
7991 (__v4si)_mm_undefined_si128(),
7992 (__mmask8) -1);
7993}
7994
7995static __inline__ __m128i __DEFAULT_FN_ATTRS
7996_mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
7997{
7998 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
7999 (__v4si) __O, __M);
8000}
8001
8002static __inline__ __m128i __DEFAULT_FN_ATTRS
8003_mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A)
8004{
8005 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8006 (__v4si) _mm_setzero_si128 (),
8007 __M);
8008}
8009
8010static __inline__ void __DEFAULT_FN_ATTRS
8011_mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8012{
8013 __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8014}
8015
8016static __inline__ __m128i __DEFAULT_FN_ATTRS
8017_mm_cvtusepi64_epi16 (__m128i __A)
8018{
8019 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8020 (__v8hi)_mm_undefined_si128(),
8021 (__mmask8) -1);
8022}
8023
8024static __inline__ __m128i __DEFAULT_FN_ATTRS
8025_mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8026{
8027 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8028 (__v8hi) __O, __M);
8029}
8030
8031static __inline__ __m128i __DEFAULT_FN_ATTRS
8032_mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A)
8033{
8034 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8035 (__v8hi) _mm_setzero_si128 (),
8036 __M);
8037}
8038
8039static __inline__ void __DEFAULT_FN_ATTRS
8040_mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8041{
8042 __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8043}
8044
8045static __inline__ __m128i __DEFAULT_FN_ATTRS
8046_mm256_cvtusepi64_epi16 (__m256i __A)
8047{
8048 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8049 (__v8hi)_mm_undefined_si128(),
8050 (__mmask8) -1);
8051}
8052
8053static __inline__ __m128i __DEFAULT_FN_ATTRS
8054_mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8055{
8056 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8057 (__v8hi) __O, __M);
8058}
8059
8060static __inline__ __m128i __DEFAULT_FN_ATTRS
8061_mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A)
8062{
8063 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8064 (__v8hi) _mm_setzero_si128 (),
8065 __M);
8066}
8067
8068static __inline__ void __DEFAULT_FN_ATTRS
8069_mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8070{
8071 return __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8072}
8073
Michael Zuckerman0a3508a2016-04-14 07:56:51 +00008074static __inline__ __m128i __DEFAULT_FN_ATTRS
8075_mm_cvtepi32_epi8 (__m128i __A)
8076{
8077 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8078 (__v16qi)_mm_undefined_si128(),
8079 (__mmask8) -1);
8080}
8081
8082static __inline__ __m128i __DEFAULT_FN_ATTRS
8083_mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8084{
8085 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8086 (__v16qi) __O, __M);
8087}
8088
8089static __inline__ __m128i __DEFAULT_FN_ATTRS
8090_mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A)
8091{
8092 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8093 (__v16qi)
8094 _mm_setzero_si128 (),
8095 __M);
8096}
8097
8098static __inline__ void __DEFAULT_FN_ATTRS
8099_mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8100{
8101 __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
8102}
8103
8104static __inline__ __m128i __DEFAULT_FN_ATTRS
8105_mm256_cvtepi32_epi8 (__m256i __A)
8106{
8107 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8108 (__v16qi)_mm_undefined_si128(),
8109 (__mmask8) -1);
8110}
8111
8112static __inline__ __m128i __DEFAULT_FN_ATTRS
8113_mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8114{
8115 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8116 (__v16qi) __O, __M);
8117}
8118
8119static __inline__ __m128i __DEFAULT_FN_ATTRS
8120_mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A)
8121{
8122 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8123 (__v16qi) _mm_setzero_si128 (),
8124 __M);
8125}
8126
8127static __inline__ void __DEFAULT_FN_ATTRS
8128_mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8129{
8130 __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
8131}
8132
8133static __inline__ __m128i __DEFAULT_FN_ATTRS
8134_mm_cvtepi32_epi16 (__m128i __A)
8135{
8136 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8137 (__v8hi) _mm_setzero_si128 (),
8138 (__mmask8) -1);
8139}
8140
8141static __inline__ __m128i __DEFAULT_FN_ATTRS
8142_mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8143{
8144 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8145 (__v8hi) __O, __M);
8146}
8147
8148static __inline__ __m128i __DEFAULT_FN_ATTRS
8149_mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A)
8150{
8151 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8152 (__v8hi) _mm_setzero_si128 (),
8153 __M);
8154}
8155
8156static __inline__ void __DEFAULT_FN_ATTRS
8157_mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8158{
8159 __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
8160}
8161
8162static __inline__ __m128i __DEFAULT_FN_ATTRS
8163_mm256_cvtepi32_epi16 (__m256i __A)
8164{
8165 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8166 (__v8hi)_mm_setzero_si128 (),
8167 (__mmask8) -1);
8168}
8169
8170static __inline__ __m128i __DEFAULT_FN_ATTRS
8171_mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8172{
8173 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8174 (__v8hi) __O, __M);
8175}
8176
8177static __inline__ __m128i __DEFAULT_FN_ATTRS
8178_mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A)
8179{
8180 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8181 (__v8hi) _mm_setzero_si128 (),
8182 __M);
8183}
8184
8185static __inline__ void __DEFAULT_FN_ATTRS
8186_mm256_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8187{
8188 __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
8189}
8190
8191static __inline__ __m128i __DEFAULT_FN_ATTRS
8192_mm_cvtepi64_epi8 (__m128i __A)
8193{
8194 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8195 (__v16qi) _mm_undefined_si128(),
8196 (__mmask8) -1);
8197}
8198
8199static __inline__ __m128i __DEFAULT_FN_ATTRS
8200_mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8201{
8202 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8203 (__v16qi) __O, __M);
8204}
8205
8206static __inline__ __m128i __DEFAULT_FN_ATTRS
8207_mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A)
8208{
8209 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8210 (__v16qi) _mm_setzero_si128 (),
8211 __M);
8212}
8213
8214static __inline__ void __DEFAULT_FN_ATTRS
8215_mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8216{
8217 __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
8218}
8219
8220static __inline__ __m128i __DEFAULT_FN_ATTRS
8221_mm256_cvtepi64_epi8 (__m256i __A)
8222{
8223 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8224 (__v16qi) _mm_undefined_si128(),
8225 (__mmask8) -1);
8226}
8227
8228static __inline__ __m128i __DEFAULT_FN_ATTRS
8229_mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8230{
8231 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8232 (__v16qi) __O, __M);
8233}
8234
8235static __inline__ __m128i __DEFAULT_FN_ATTRS
8236_mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A)
8237{
8238 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8239 (__v16qi) _mm_setzero_si128 (),
8240 __M);
8241}
8242
8243static __inline__ void __DEFAULT_FN_ATTRS
8244_mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8245{
8246 __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
8247}
8248
8249static __inline__ __m128i __DEFAULT_FN_ATTRS
8250_mm_cvtepi64_epi32 (__m128i __A)
8251{
8252 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8253 (__v4si)_mm_undefined_si128(),
8254 (__mmask8) -1);
8255}
8256
8257static __inline__ __m128i __DEFAULT_FN_ATTRS
8258_mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
8259{
8260 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8261 (__v4si) __O, __M);
8262}
8263
8264static __inline__ __m128i __DEFAULT_FN_ATTRS
8265_mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A)
8266{
8267 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8268 (__v4si) _mm_setzero_si128 (),
8269 __M);
8270}
8271
8272static __inline__ void __DEFAULT_FN_ATTRS
8273_mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
8274{
8275 __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
8276}
8277
8278static __inline__ __m128i __DEFAULT_FN_ATTRS
8279_mm256_cvtepi64_epi32 (__m256i __A)
8280{
8281 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8282 (__v4si) _mm_undefined_si128(),
8283 (__mmask8) -1);
8284}
8285
8286static __inline__ __m128i __DEFAULT_FN_ATTRS
8287_mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
8288{
8289 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8290 (__v4si) __O, __M);
8291}
8292
8293static __inline__ __m128i __DEFAULT_FN_ATTRS
8294_mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A)
8295{
8296 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8297 (__v4si) _mm_setzero_si128 (),
8298 __M);
8299}
8300
8301static __inline__ void __DEFAULT_FN_ATTRS
8302_mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8303{
8304 __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8305}
8306
8307static __inline__ __m128i __DEFAULT_FN_ATTRS
8308_mm_cvtepi64_epi16 (__m128i __A)
8309{
8310 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8311 (__v8hi) _mm_undefined_si128(),
8312 (__mmask8) -1);
8313}
8314
8315static __inline__ __m128i __DEFAULT_FN_ATTRS
8316_mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8317{
8318 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8319 (__v8hi)__O,
8320 __M);
8321}
8322
8323static __inline__ __m128i __DEFAULT_FN_ATTRS
8324_mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A)
8325{
8326 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8327 (__v8hi) _mm_setzero_si128 (),
8328 __M);
8329}
8330
8331static __inline__ void __DEFAULT_FN_ATTRS
8332_mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8333{
8334 __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8335}
8336
8337static __inline__ __m128i __DEFAULT_FN_ATTRS
8338_mm256_cvtepi64_epi16 (__m256i __A)
8339{
8340 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8341 (__v8hi)_mm_undefined_si128(),
8342 (__mmask8) -1);
8343}
8344
8345static __inline__ __m128i __DEFAULT_FN_ATTRS
8346_mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8347{
8348 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8349 (__v8hi) __O, __M);
8350}
8351
8352static __inline__ __m128i __DEFAULT_FN_ATTRS
8353_mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A)
8354{
8355 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8356 (__v8hi) _mm_setzero_si128 (),
8357 __M);
8358}
8359
8360static __inline__ void __DEFAULT_FN_ATTRS
8361_mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8362{
8363 __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8364}
8365
Craig Topperd2661882016-05-17 04:41:48 +00008366#define _mm256_extractf32x4_ps(A, imm) __extension__ ({ \
8367 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8368 (int)(imm), \
8369 (__v4sf)_mm_setzero_ps(), \
8370 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008371
Craig Topperd2661882016-05-17 04:41:48 +00008372#define _mm256_mask_extractf32x4_ps(W, U, A, imm) __extension__ ({ \
8373 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8374 (int)(imm), \
8375 (__v4sf)(__m128)(W), \
8376 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008377
Craig Topperd2661882016-05-17 04:41:48 +00008378#define _mm256_maskz_extractf32x4_ps(U, A, imm) __extension__ ({ \
8379 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8380 (int)(imm), \
8381 (__v4sf)_mm_setzero_ps(), \
8382 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008383
Craig Topperd2661882016-05-17 04:41:48 +00008384#define _mm256_extracti32x4_epi32(A, imm) __extension__ ({ \
8385 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8386 (int)(imm), \
8387 (__v4si)_mm_setzero_si128(), \
8388 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008389
Craig Topperd2661882016-05-17 04:41:48 +00008390#define _mm256_mask_extracti32x4_epi32(W, U, A, imm) __extension__ ({ \
8391 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8392 (int)(imm), \
8393 (__v4si)(__m128i)(W), \
8394 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008395
Craig Topperd2661882016-05-17 04:41:48 +00008396#define _mm256_maskz_extracti32x4_epi32(U, A, imm) __extension__ ({ \
8397 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8398 (int)(imm), \
8399 (__v4si)_mm_setzero_si128(), \
8400 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008401
Craig Topperd2661882016-05-17 04:41:48 +00008402#define _mm256_insertf32x4(A, B, imm) __extension__ ({ \
8403 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8404 (__v4sf)(__m128)(B), (int)(imm), \
8405 (__v8sf)_mm256_setzero_ps(), \
8406 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008407
Craig Topperd2661882016-05-17 04:41:48 +00008408#define _mm256_mask_insertf32x4(W, U, A, B, imm) __extension__ ({ \
8409 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8410 (__v4sf)(__m128)(B), (int)(imm), \
8411 (__v8sf)(__m256)(W), \
8412 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008413
Craig Topperd2661882016-05-17 04:41:48 +00008414#define _mm256_maskz_insertf32x4(U, A, B, imm) __extension__ ({ \
8415 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8416 (__v4sf)(__m128)(B), (int)(imm), \
8417 (__v8sf)_mm256_setzero_ps(), \
8418 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008419
Craig Topperd2661882016-05-17 04:41:48 +00008420#define _mm256_inserti32x4(A, B, imm) __extension__ ({ \
8421 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8422 (__v4si)(__m128i)(B), \
8423 (int)(imm), \
8424 (__v8si)_mm256_setzero_si256(), \
8425 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008426
Craig Topperd2661882016-05-17 04:41:48 +00008427#define _mm256_mask_inserti32x4(W, U, A, B, imm) __extension__ ({ \
8428 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8429 (__v4si)(__m128i)(B), \
8430 (int)(imm), \
8431 (__v8si)(__m256i)(W), \
8432 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008433
Craig Topperd2661882016-05-17 04:41:48 +00008434#define _mm256_maskz_inserti32x4(U, A, B, imm) __extension__ ({ \
8435 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8436 (__v4si)(__m128i)(B), \
8437 (int)(imm), \
8438 (__v8si)_mm256_setzero_si256(), \
8439 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008440
Craig Topperd2661882016-05-17 04:41:48 +00008441#define _mm_getmant_pd(A, B, C) __extension__({\
8442 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8443 (int)(((C)<<2) | (B)), \
8444 (__v2df)_mm_setzero_pd(), \
8445 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008446
Craig Topperd2661882016-05-17 04:41:48 +00008447#define _mm_mask_getmant_pd(W, U, A, B, C) __extension__({\
8448 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8449 (int)(((C)<<2) | (B)), \
8450 (__v2df)(__m128d)(W), \
8451 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008452
Craig Topperd2661882016-05-17 04:41:48 +00008453#define _mm_maskz_getmant_pd(U, A, B, C) __extension__({\
8454 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8455 (int)(((C)<<2) | (B)), \
8456 (__v2df)_mm_setzero_pd(), \
8457 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008458
Craig Topperd2661882016-05-17 04:41:48 +00008459#define _mm256_getmant_pd(A, B, C) __extension__ ({ \
8460 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8461 (int)(((C)<<2) | (B)), \
8462 (__v4df)_mm256_setzero_pd(), \
8463 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008464
Craig Topperd2661882016-05-17 04:41:48 +00008465#define _mm256_mask_getmant_pd(W, U, A, B, C) __extension__ ({ \
8466 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8467 (int)(((C)<<2) | (B)), \
8468 (__v4df)(__m256d)(W), \
8469 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008470
Craig Topperd2661882016-05-17 04:41:48 +00008471#define _mm256_maskz_getmant_pd(U, A, B, C) __extension__ ({ \
8472 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8473 (int)(((C)<<2) | (B)), \
8474 (__v4df)_mm256_setzero_pd(), \
8475 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008476
Craig Topperd2661882016-05-17 04:41:48 +00008477#define _mm_getmant_ps(A, B, C) __extension__ ({ \
8478 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8479 (int)(((C)<<2) | (B)), \
8480 (__v4sf)_mm_setzero_ps(), \
8481 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008482
Craig Topperd2661882016-05-17 04:41:48 +00008483#define _mm_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8484 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8485 (int)(((C)<<2) | (B)), \
8486 (__v4sf)(__m128)(W), \
8487 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008488
Craig Topperd2661882016-05-17 04:41:48 +00008489#define _mm_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8490 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8491 (int)(((C)<<2) | (B)), \
8492 (__v4sf)_mm_setzero_ps(), \
8493 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008494
Craig Topperd2661882016-05-17 04:41:48 +00008495#define _mm256_getmant_ps(A, B, C) __extension__ ({ \
8496 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8497 (int)(((C)<<2) | (B)), \
8498 (__v8sf)_mm256_setzero_ps(), \
8499 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008500
Craig Topperd2661882016-05-17 04:41:48 +00008501#define _mm256_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8502 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8503 (int)(((C)<<2) | (B)), \
8504 (__v8sf)(__m256)(W), \
8505 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008506
Craig Topperd2661882016-05-17 04:41:48 +00008507#define _mm256_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8508 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8509 (int)(((C)<<2) | (B)), \
8510 (__v8sf)_mm256_setzero_ps(), \
8511 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008512
Craig Topperd2661882016-05-17 04:41:48 +00008513#define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8514 (__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \
8515 (double const *)(addr), \
8516 (__v2di)(__m128i)(index), \
8517 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008518
Craig Topperd2661882016-05-17 04:41:48 +00008519#define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8520 (__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \
8521 (long long const *)(addr), \
8522 (__v2di)(__m128i)(index), \
8523 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008524
Craig Topperd2661882016-05-17 04:41:48 +00008525#define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8526 (__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \
8527 (double const *)(addr), \
8528 (__v4di)(__m256i)(index), \
8529 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008530
Craig Topperd2661882016-05-17 04:41:48 +00008531#define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8532 (__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \
8533 (long long const *)(addr), \
8534 (__v4di)(__m256i)(index), \
8535 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008536
Craig Topperd2661882016-05-17 04:41:48 +00008537#define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8538 (__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \
8539 (float const *)(addr), \
8540 (__v2di)(__m128i)(index), \
8541 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008542
Craig Topperd2661882016-05-17 04:41:48 +00008543#define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8544 (__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \
8545 (int const *)(addr), \
8546 (__v2di)(__m128i)(index), \
8547 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008548
Craig Topperd2661882016-05-17 04:41:48 +00008549#define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8550 (__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \
8551 (float const *)(addr), \
8552 (__v4di)(__m256i)(index), \
8553 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008554
Craig Topperd2661882016-05-17 04:41:48 +00008555#define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8556 (__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \
8557 (int const *)(addr), \
8558 (__v4di)(__m256i)(index), \
8559 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008560
Craig Topperd2661882016-05-17 04:41:48 +00008561#define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8562 (__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \
8563 (double const *)(addr), \
8564 (__v4si)(__m128i)(index), \
8565 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008566
Craig Topperd2661882016-05-17 04:41:48 +00008567#define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8568 (__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \
8569 (long long const *)(addr), \
8570 (__v4si)(__m128i)(index), \
8571 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008572
Craig Topperd2661882016-05-17 04:41:48 +00008573#define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8574 (__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \
8575 (double const *)(addr), \
8576 (__v4si)(__m128i)(index), \
8577 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008578
Craig Topperd2661882016-05-17 04:41:48 +00008579#define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8580 (__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \
8581 (long long const *)(addr), \
8582 (__v4si)(__m128i)(index), \
8583 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008584
Craig Topperd2661882016-05-17 04:41:48 +00008585#define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8586 (__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \
8587 (float const *)(addr), \
8588 (__v4si)(__m128i)(index), \
8589 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008590
Craig Topperd2661882016-05-17 04:41:48 +00008591#define _mm_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8592 (__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \
8593 (int const *)(addr), \
8594 (__v4si)(__m128i)(index), \
8595 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008596
Craig Topperd2661882016-05-17 04:41:48 +00008597#define _mm256_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8598 (__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \
8599 (float const *)(addr), \
8600 (__v8si)(__m256i)(index), \
8601 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008602
Craig Topperd2661882016-05-17 04:41:48 +00008603#define _mm256_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8604 (__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \
8605 (int const *)(addr), \
8606 (__v8si)(__m256i)(index), \
8607 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008608
Simon Pilgrim30db8112016-07-04 13:34:44 +00008609#define _mm256_permutex_pd(X, C) __extension__ ({ \
8610 (__m256d)__builtin_shufflevector((__v4df)(__m256d)(X), \
8611 (__v4df)_mm256_undefined_pd(), \
Craig Topper2a383c92016-07-04 22:18:01 +00008612 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \
8613 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008614
Simon Pilgrim30db8112016-07-04 13:34:44 +00008615#define _mm256_mask_permutex_pd(W, U, X, C) __extension__ ({ \
8616 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8617 (__v4df)_mm256_permutex_pd((X), (C)), \
8618 (__v4df)(__m256d)(W)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008619
Simon Pilgrim30db8112016-07-04 13:34:44 +00008620#define _mm256_maskz_permutex_pd(U, X, C) __extension__ ({ \
8621 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8622 (__v4df)_mm256_permutex_pd((X), (C)), \
8623 (__v4df)_mm256_setzero_pd()); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008624
Simon Pilgrim30db8112016-07-04 13:34:44 +00008625#define _mm256_permutex_epi64(X, C) __extension__ ({ \
8626 (__m256i)__builtin_shufflevector((__v4di)(__m256i)(X), \
8627 (__v4di)_mm256_undefined_si256(), \
Craig Topper2a383c92016-07-04 22:18:01 +00008628 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \
8629 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008630
Simon Pilgrim30db8112016-07-04 13:34:44 +00008631#define _mm256_mask_permutex_epi64(W, U, X, C) __extension__ ({ \
8632 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8633 (__v4di)_mm256_permutex_epi64((X), (C)), \
8634 (__v4di)(__m256i)(W)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008635
Simon Pilgrim30db8112016-07-04 13:34:44 +00008636#define _mm256_maskz_permutex_epi64(U, X, C) __extension__ ({ \
8637 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8638 (__v4di)_mm256_permutex_epi64((X), (C)), \
8639 (__v4di)_mm256_setzero_si256()); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008640
8641static __inline__ __m256d __DEFAULT_FN_ATTRS
8642_mm256_permutexvar_pd (__m256i __X, __m256d __Y)
8643{
8644 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8645 (__v4di) __X,
8646 (__v4df) _mm256_undefined_si256 (),
8647 (__mmask8) -1);
8648}
8649
8650static __inline__ __m256d __DEFAULT_FN_ATTRS
8651_mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X,
8652 __m256d __Y)
8653{
8654 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8655 (__v4di) __X,
8656 (__v4df) __W,
8657 (__mmask8) __U);
8658}
8659
8660static __inline__ __m256d __DEFAULT_FN_ATTRS
8661_mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y)
8662{
8663 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8664 (__v4di) __X,
8665 (__v4df) _mm256_setzero_pd (),
8666 (__mmask8) __U);
8667}
8668
8669static __inline__ __m256i __DEFAULT_FN_ATTRS
8670_mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
8671{
8672 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8673 (__v4di) __X,
8674 (__v4di) _mm256_setzero_si256 (),
8675 (__mmask8) __M);
8676}
8677
8678static __inline__ __m256i __DEFAULT_FN_ATTRS
Michael Zuckermana72b49ef2016-07-05 11:30:31 +00008679_mm256_permutexvar_epi64 ( __m256i __X, __m256i __Y)
Michael Zuckerman8938e832016-04-25 05:32:35 +00008680{
8681 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8682 (__v4di) __X,
8683 (__v4di) _mm256_undefined_si256 (),
8684 (__mmask8) -1);
8685}
8686
8687static __inline__ __m256i __DEFAULT_FN_ATTRS
8688_mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X,
8689 __m256i __Y)
8690{
8691 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8692 (__v4di) __X,
8693 (__v4di) __W,
8694 __M);
8695}
8696
8697static __inline__ __m256 __DEFAULT_FN_ATTRS
8698_mm256_mask_permutexvar_ps (__m256 __W, __mmask8 __U, __m256i __X,
8699 __m256 __Y)
8700{
8701 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8702 (__v8si) __X,
8703 (__v8sf) __W,
8704 (__mmask8) __U);
8705}
8706
8707static __inline__ __m256 __DEFAULT_FN_ATTRS
8708_mm256_maskz_permutexvar_ps (__mmask8 __U, __m256i __X, __m256 __Y)
8709{
8710 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8711 (__v8si) __X,
8712 (__v8sf) _mm256_setzero_ps (),
8713 (__mmask8) __U);
8714}
8715
8716static __inline__ __m256 __DEFAULT_FN_ATTRS
8717_mm256_permutexvar_ps (__m256i __X, __m256 __Y)
8718{
8719 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8720 (__v8si) __X,
8721 (__v8sf) _mm256_undefined_si256 (),
8722 (__mmask8) -1);
8723}
8724
8725static __inline__ __m256i __DEFAULT_FN_ATTRS
8726_mm256_maskz_permutexvar_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
8727{
8728 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8729 (__v8si) __X,
8730 (__v8si) _mm256_setzero_si256 (),
8731 __M);
8732}
8733
8734static __inline__ __m256i __DEFAULT_FN_ATTRS
8735_mm256_mask_permutexvar_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
8736 __m256i __Y)
8737{
8738 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8739 (__v8si) __X,
8740 (__v8si) __W,
8741 (__mmask8) __M);
8742}
8743
8744static __inline__ __m256i __DEFAULT_FN_ATTRS
8745_mm256_permutexvar_epi32 (__m256i __X, __m256i __Y)
8746{
8747 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8748 (__v8si) __X,
8749 (__v8si) _mm256_undefined_si256(),
8750 (__mmask8) -1);
8751}
8752
Craig Topperd2661882016-05-17 04:41:48 +00008753#define _mm_alignr_epi32(A, B, imm) __extension__ ({ \
8754 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8755 (__v4si)(__m128i)(B), (int)(imm), \
8756 (__v4si)_mm_undefined_si128(), \
8757 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008758
Craig Topperd2661882016-05-17 04:41:48 +00008759#define _mm_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
8760 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8761 (__v4si)(__m128i)(B), (int)(imm), \
8762 (__v4si)(__m128i)(W), \
8763 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008764
Craig Topperd2661882016-05-17 04:41:48 +00008765#define _mm_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
8766 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8767 (__v4si)(__m128i)(B), (int)(imm), \
8768 (__v4si)_mm_setzero_si128(), \
8769 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008770
Craig Topperd2661882016-05-17 04:41:48 +00008771#define _mm256_alignr_epi32(A, B, imm) __extension__ ({ \
8772 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8773 (__v8si)(__m256i)(B), (int)(imm), \
8774 (__v8si)_mm256_undefined_si256(), \
8775 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008776
Craig Topperd2661882016-05-17 04:41:48 +00008777#define _mm256_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
8778 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8779 (__v8si)(__m256i)(B), (int)(imm), \
8780 (__v8si)(__m256i)(W), \
8781 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008782
Craig Topperd2661882016-05-17 04:41:48 +00008783#define _mm256_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
8784 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8785 (__v8si)(__m256i)(B), (int)(imm), \
8786 (__v8si)_mm256_setzero_si256(), \
8787 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008788
Craig Topperd2661882016-05-17 04:41:48 +00008789#define _mm_alignr_epi64(A, B, imm) __extension__ ({ \
8790 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8791 (__v2di)(__m128i)(B), (int)(imm), \
8792 (__v2di)_mm_setzero_di(), \
8793 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008794
Craig Topperd2661882016-05-17 04:41:48 +00008795#define _mm_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
8796 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8797 (__v2di)(__m128i)(B), (int)(imm), \
8798 (__v2di)(__m128i)(W), \
8799 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008800
Craig Topperd2661882016-05-17 04:41:48 +00008801#define _mm_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
8802 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8803 (__v2di)(__m128i)(B), (int)(imm), \
8804 (__v2di)_mm_setzero_di(), \
8805 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008806
Craig Topperd2661882016-05-17 04:41:48 +00008807#define _mm256_alignr_epi64(A, B, imm) __extension__ ({ \
8808 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
8809 (__v4di)(__m256i)(B), (int)(imm), \
8810 (__v4di)_mm256_undefined_pd(), \
8811 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008812
Craig Topperd2661882016-05-17 04:41:48 +00008813#define _mm256_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
8814 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
8815 (__v4di)(__m256i)(B), (int)(imm), \
8816 (__v4di)(__m256i)(W), \
8817 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008818
Craig Topperd2661882016-05-17 04:41:48 +00008819#define _mm256_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
8820 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
8821 (__v4di)(__m256i)(B), (int)(imm), \
8822 (__v4di)_mm256_setzero_si256(), \
8823 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008824
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008825static __inline__ __m128 __DEFAULT_FN_ATTRS
8826_mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A)
8827{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008828 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8829 (__v4sf)_mm_movehdup_ps(__A),
8830 (__v4sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008831}
8832
8833static __inline__ __m128 __DEFAULT_FN_ATTRS
8834_mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A)
8835{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008836 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8837 (__v4sf)_mm_movehdup_ps(__A),
8838 (__v4sf)_mm_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008839}
8840
8841static __inline__ __m256 __DEFAULT_FN_ATTRS
8842_mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A)
8843{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008844 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8845 (__v8sf)_mm256_movehdup_ps(__A),
8846 (__v8sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008847}
8848
8849static __inline__ __m256 __DEFAULT_FN_ATTRS
8850_mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A)
8851{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008852 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8853 (__v8sf)_mm256_movehdup_ps(__A),
8854 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008855}
8856
8857static __inline__ __m128 __DEFAULT_FN_ATTRS
8858_mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A)
8859{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008860 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8861 (__v4sf)_mm_moveldup_ps(__A),
8862 (__v4sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008863}
8864
8865static __inline__ __m128 __DEFAULT_FN_ATTRS
8866_mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A)
8867{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008868 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8869 (__v4sf)_mm_moveldup_ps(__A),
8870 (__v4sf)_mm_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008871}
8872
8873static __inline__ __m256 __DEFAULT_FN_ATTRS
8874_mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A)
8875{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008876 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8877 (__v8sf)_mm256_moveldup_ps(__A),
8878 (__v8sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008879}
8880
8881static __inline__ __m256 __DEFAULT_FN_ATTRS
8882_mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A)
8883{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008884 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8885 (__v8sf)_mm256_moveldup_ps(__A),
8886 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008887}
8888
Craig Topperd2661882016-05-17 04:41:48 +00008889#define _mm256_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008890 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8891 (__v8si)_mm256_shuffle_epi32((A), (I)), \
8892 (__v8si)(__m256i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00008893
Craig Topperd2661882016-05-17 04:41:48 +00008894#define _mm256_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008895 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8896 (__v8si)_mm256_shuffle_epi32((A), (I)), \
8897 (__v8si)_mm256_setzero_si256()); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00008898
Craig Topperd2661882016-05-17 04:41:48 +00008899#define _mm_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008900 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8901 (__v4si)_mm_shuffle_epi32((A), (I)), \
8902 (__v4si)(__m128i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00008903
Craig Topperd2661882016-05-17 04:41:48 +00008904#define _mm_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008905 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8906 (__v4si)_mm_shuffle_epi32((A), (I)), \
8907 (__v4si)_mm_setzero_si128()); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008908
8909static __inline__ __m128d __DEFAULT_FN_ATTRS
8910_mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A)
8911{
Igor Bregeraadb8762016-06-08 13:59:20 +00008912 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
8913 (__v2df) __A,
8914 (__v2df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008915}
8916
8917static __inline__ __m128d __DEFAULT_FN_ATTRS
8918_mm_maskz_mov_pd (__mmask8 __U, __m128d __A)
8919{
Igor Bregeraadb8762016-06-08 13:59:20 +00008920 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
8921 (__v2df) __A,
8922 (__v2df) _mm_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008923}
8924
8925static __inline__ __m256d __DEFAULT_FN_ATTRS
8926_mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A)
8927{
Igor Bregeraadb8762016-06-08 13:59:20 +00008928 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
8929 (__v4df) __A,
8930 (__v4df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008931}
8932
8933static __inline__ __m256d __DEFAULT_FN_ATTRS
8934_mm256_maskz_mov_pd (__mmask8 __U, __m256d __A)
8935{
Igor Bregeraadb8762016-06-08 13:59:20 +00008936 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
8937 (__v4df) __A,
8938 (__v4df) _mm256_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008939}
8940
8941static __inline__ __m128 __DEFAULT_FN_ATTRS
8942_mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A)
8943{
Igor Bregeraadb8762016-06-08 13:59:20 +00008944 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
8945 (__v4sf) __A,
8946 (__v4sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008947}
8948
8949static __inline__ __m128 __DEFAULT_FN_ATTRS
8950_mm_maskz_mov_ps (__mmask8 __U, __m128 __A)
8951{
Igor Bregeraadb8762016-06-08 13:59:20 +00008952 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
8953 (__v4sf) __A,
8954 (__v4sf) _mm_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008955}
8956
8957static __inline__ __m256 __DEFAULT_FN_ATTRS
8958_mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A)
8959{
Igor Bregeraadb8762016-06-08 13:59:20 +00008960 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
8961 (__v8sf) __A,
8962 (__v8sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008963}
8964
8965static __inline__ __m256 __DEFAULT_FN_ATTRS
8966_mm256_maskz_mov_ps (__mmask8 __U, __m256 __A)
8967{
Igor Bregeraadb8762016-06-08 13:59:20 +00008968 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
8969 (__v8sf) __A,
8970 (__v8sf) _mm256_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008971}
8972
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00008973static __inline__ __m128 __DEFAULT_FN_ATTRS
8974_mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A)
8975{
8976 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
8977 (__v4sf) __W,
8978 (__mmask8) __U);
8979}
8980
8981static __inline__ __m128 __DEFAULT_FN_ATTRS
8982_mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
8983{
8984 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
8985 (__v4sf)
8986 _mm_setzero_ps (),
8987 (__mmask8) __U);
8988}
8989
8990static __inline__ __m256 __DEFAULT_FN_ATTRS
8991_mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A)
8992{
8993 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
8994 (__v8sf) __W,
8995 (__mmask8) __U);
8996}
8997
8998static __inline__ __m256 __DEFAULT_FN_ATTRS
8999_mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
9000{
9001 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
9002 (__v8sf)
9003 _mm256_setzero_ps (),
9004 (__mmask8) __U);
9005}
9006
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009007static __inline __m128i __DEFAULT_FN_ATTRS
9008_mm_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m128 __A)
9009{
9010 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
9011 (__v8hi) __W,
9012 (__mmask8) __U);
9013}
9014
9015static __inline __m128i __DEFAULT_FN_ATTRS
9016_mm_maskz_cvtps_ph (__mmask8 __U, __m128 __A)
9017{
9018 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
9019 (__v8hi) _mm_setzero_si128 (),
9020 (__mmask8) __U);
9021}
9022
9023#define _mm_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009024 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
9025 (__v8hi)(__m128i)(W), \
9026 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009027
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009028#define _mm_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009029 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
9030 (__v8hi)_mm_setzero_si128(), \
9031 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009032
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009033static __inline __m128i __DEFAULT_FN_ATTRS
9034_mm256_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m256 __A)
9035{
9036 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
9037 (__v8hi) __W,
9038 (__mmask8) __U);
9039}
9040
9041static __inline __m128i __DEFAULT_FN_ATTRS
9042_mm256_maskz_cvtps_ph ( __mmask8 __U, __m256 __A)
9043{
9044 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
9045 (__v8hi) _mm_setzero_si128(),
9046 (__mmask8) __U);
9047}
9048#define _mm256_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009049 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
9050 (__v8hi)(__m128i)(W), \
9051 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009052
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009053#define _mm256_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009054 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
9055 (__v8hi)_mm_setzero_si128(), \
9056 (__mmask8)(U)); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009057
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009058
Michael Kupersteine45af542015-06-30 13:36:19 +00009059#undef __DEFAULT_FN_ATTRS
Eric Christopher4d1851682015-06-17 07:09:20 +00009060
Robert Khasanovb9f3a912014-10-08 17:18:13 +00009061#endif /* __AVX512VLINTRIN_H */