blob: 72b0292f670287e87c19bf7546dfcc215942c9e7 [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
3261_mm_mask_abs_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
3262 return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A,
3263 (__v4si) __W,
3264 (__mmask8) __U);
3265}
3266
3267static __inline__ __m128i __DEFAULT_FN_ATTRS
3268_mm_maskz_abs_epi32 (__mmask8 __U, __m128i __A) {
3269 return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A,
3270 (__v4si)
3271 _mm_setzero_si128 (),
3272 (__mmask8) __U);
3273}
3274
3275static __inline__ __m256i __DEFAULT_FN_ATTRS
3276_mm256_mask_abs_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
3277 return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A,
3278 (__v8si) __W,
3279 (__mmask8) __U);
3280}
3281
3282static __inline__ __m256i __DEFAULT_FN_ATTRS
3283_mm256_maskz_abs_epi32 (__mmask8 __U, __m256i __A) {
3284 return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A,
3285 (__v8si)
3286 _mm256_setzero_si256 (),
3287 (__mmask8) __U);
3288}
3289
3290static __inline__ __m128i __DEFAULT_FN_ATTRS
3291_mm_abs_epi64 (__m128i __A) {
3292 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3293 (__v2di)
3294 _mm_setzero_si128 (),
3295 (__mmask8) -1);
3296}
3297
3298static __inline__ __m128i __DEFAULT_FN_ATTRS
3299_mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
3300 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3301 (__v2di) __W,
3302 (__mmask8) __U);
3303}
3304
3305static __inline__ __m128i __DEFAULT_FN_ATTRS
3306_mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) {
3307 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3308 (__v2di)
3309 _mm_setzero_si128 (),
3310 (__mmask8) __U);
3311}
3312
3313static __inline__ __m256i __DEFAULT_FN_ATTRS
3314_mm256_abs_epi64 (__m256i __A) {
3315 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3316 (__v4di)
3317 _mm256_setzero_si256 (),
3318 (__mmask8) -1);
3319}
3320
3321static __inline__ __m256i __DEFAULT_FN_ATTRS
3322_mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
3323 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3324 (__v4di) __W,
3325 (__mmask8) __U);
3326}
3327
3328static __inline__ __m256i __DEFAULT_FN_ATTRS
3329_mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) {
3330 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3331 (__v4di)
3332 _mm256_setzero_si256 (),
3333 (__mmask8) __U);
3334}
3335
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003336static __inline__ __m128i __DEFAULT_FN_ATTRS
3337_mm_maskz_max_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
3338 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
3339 (__v4si) __B,
3340 (__v4si)
3341 _mm_setzero_si128 (),
3342 __M);
3343}
3344
3345static __inline__ __m128i __DEFAULT_FN_ATTRS
3346_mm_mask_max_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
3347 __m128i __B) {
3348 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
3349 (__v4si) __B,
3350 (__v4si) __W, __M);
3351}
3352
3353static __inline__ __m256i __DEFAULT_FN_ATTRS
3354_mm256_maskz_max_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
3355 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
3356 (__v8si) __B,
3357 (__v8si)
3358 _mm256_setzero_si256 (),
3359 __M);
3360}
3361
3362static __inline__ __m256i __DEFAULT_FN_ATTRS
3363_mm256_mask_max_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
3364 __m256i __B) {
3365 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
3366 (__v8si) __B,
3367 (__v8si) __W, __M);
3368}
3369
3370static __inline__ __m128i __DEFAULT_FN_ATTRS
3371_mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3372 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3373 (__v2di) __B,
3374 (__v2di)
3375 _mm_setzero_si128 (),
3376 __M);
3377}
3378
3379static __inline__ __m128i __DEFAULT_FN_ATTRS
3380_mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3381 __m128i __B) {
3382 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3383 (__v2di) __B,
3384 (__v2di) __W, __M);
3385}
3386
3387static __inline__ __m128i __DEFAULT_FN_ATTRS
3388_mm_max_epi64 (__m128i __A, __m128i __B) {
3389 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3390 (__v2di) __B,
3391 (__v2di)
3392 _mm_setzero_si128 (),
3393 (__mmask8) -1);
3394}
3395
3396static __inline__ __m256i __DEFAULT_FN_ATTRS
3397_mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3398 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3399 (__v4di) __B,
3400 (__v4di)
3401 _mm256_setzero_si256 (),
3402 __M);
3403}
3404
3405static __inline__ __m256i __DEFAULT_FN_ATTRS
3406_mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3407 __m256i __B) {
3408 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3409 (__v4di) __B,
3410 (__v4di) __W, __M);
3411}
3412
3413static __inline__ __m256i __DEFAULT_FN_ATTRS
3414_mm256_max_epi64 (__m256i __A, __m256i __B) {
3415 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3416 (__v4di) __B,
3417 (__v4di)
3418 _mm256_setzero_si256 (),
3419 (__mmask8) -1);
3420}
3421
3422static __inline__ __m128i __DEFAULT_FN_ATTRS
3423_mm_maskz_max_epu32 (__mmask8 __M, __m128i __A, __m128i __B) {
3424 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
3425 (__v4si) __B,
3426 (__v4si)
3427 _mm_setzero_si128 (),
3428 __M);
3429}
3430
3431static __inline__ __m128i __DEFAULT_FN_ATTRS
3432_mm_mask_max_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
3433 __m128i __B) {
3434 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
3435 (__v4si) __B,
3436 (__v4si) __W, __M);
3437}
3438
3439static __inline__ __m256i __DEFAULT_FN_ATTRS
3440_mm256_maskz_max_epu32 (__mmask8 __M, __m256i __A, __m256i __B) {
3441 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
3442 (__v8si) __B,
3443 (__v8si)
3444 _mm256_setzero_si256 (),
3445 __M);
3446}
3447
3448static __inline__ __m256i __DEFAULT_FN_ATTRS
3449_mm256_mask_max_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
3450 __m256i __B) {
3451 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
3452 (__v8si) __B,
3453 (__v8si) __W, __M);
3454}
3455
3456static __inline__ __m128i __DEFAULT_FN_ATTRS
3457_mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3458 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3459 (__v2di) __B,
3460 (__v2di)
3461 _mm_setzero_si128 (),
3462 __M);
3463}
3464
3465static __inline__ __m128i __DEFAULT_FN_ATTRS
3466_mm_max_epu64 (__m128i __A, __m128i __B) {
3467 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3468 (__v2di) __B,
3469 (__v2di)
3470 _mm_setzero_si128 (),
3471 (__mmask8) -1);
3472}
3473
3474static __inline__ __m128i __DEFAULT_FN_ATTRS
3475_mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3476 __m128i __B) {
3477 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3478 (__v2di) __B,
3479 (__v2di) __W, __M);
3480}
3481
3482static __inline__ __m256i __DEFAULT_FN_ATTRS
3483_mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3484 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3485 (__v4di) __B,
3486 (__v4di)
3487 _mm256_setzero_si256 (),
3488 __M);
3489}
3490
3491static __inline__ __m256i __DEFAULT_FN_ATTRS
3492_mm256_max_epu64 (__m256i __A, __m256i __B) {
3493 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3494 (__v4di) __B,
3495 (__v4di)
3496 _mm256_setzero_si256 (),
3497 (__mmask8) -1);
3498}
3499
3500static __inline__ __m256i __DEFAULT_FN_ATTRS
3501_mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3502 __m256i __B) {
3503 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3504 (__v4di) __B,
3505 (__v4di) __W, __M);
3506}
3507
3508static __inline__ __m128i __DEFAULT_FN_ATTRS
3509_mm_maskz_min_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
3510 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
3511 (__v4si) __B,
3512 (__v4si)
3513 _mm_setzero_si128 (),
3514 __M);
3515}
3516
3517static __inline__ __m128i __DEFAULT_FN_ATTRS
3518_mm_mask_min_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
3519 __m128i __B) {
3520 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
3521 (__v4si) __B,
3522 (__v4si) __W, __M);
3523}
3524
3525static __inline__ __m256i __DEFAULT_FN_ATTRS
3526_mm256_maskz_min_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
3527 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
3528 (__v8si) __B,
3529 (__v8si)
3530 _mm256_setzero_si256 (),
3531 __M);
3532}
3533
3534static __inline__ __m256i __DEFAULT_FN_ATTRS
3535_mm256_mask_min_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
3536 __m256i __B) {
3537 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
3538 (__v8si) __B,
3539 (__v8si) __W, __M);
3540}
3541
3542static __inline__ __m128i __DEFAULT_FN_ATTRS
3543_mm_min_epi64 (__m128i __A, __m128i __B) {
3544 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3545 (__v2di) __B,
3546 (__v2di)
3547 _mm_setzero_si128 (),
3548 (__mmask8) -1);
3549}
3550
3551static __inline__ __m128i __DEFAULT_FN_ATTRS
3552_mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3553 __m128i __B) {
3554 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3555 (__v2di) __B,
3556 (__v2di) __W, __M);
3557}
3558
3559static __inline__ __m128i __DEFAULT_FN_ATTRS
3560_mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3561 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3562 (__v2di) __B,
3563 (__v2di)
3564 _mm_setzero_si128 (),
3565 __M);
3566}
3567
3568static __inline__ __m256i __DEFAULT_FN_ATTRS
3569_mm256_min_epi64 (__m256i __A, __m256i __B) {
3570 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3571 (__v4di) __B,
3572 (__v4di)
3573 _mm256_setzero_si256 (),
3574 (__mmask8) -1);
3575}
3576
3577static __inline__ __m256i __DEFAULT_FN_ATTRS
3578_mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3579 __m256i __B) {
3580 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3581 (__v4di) __B,
3582 (__v4di) __W, __M);
3583}
3584
3585static __inline__ __m256i __DEFAULT_FN_ATTRS
3586_mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3587 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3588 (__v4di) __B,
3589 (__v4di)
3590 _mm256_setzero_si256 (),
3591 __M);
3592}
3593
3594static __inline__ __m128i __DEFAULT_FN_ATTRS
3595_mm_maskz_min_epu32 (__mmask8 __M, __m128i __A, __m128i __B) {
3596 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
3597 (__v4si) __B,
3598 (__v4si)
3599 _mm_setzero_si128 (),
3600 __M);
3601}
3602
3603static __inline__ __m128i __DEFAULT_FN_ATTRS
3604_mm_mask_min_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
3605 __m128i __B) {
3606 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
3607 (__v4si) __B,
3608 (__v4si) __W, __M);
3609}
3610
3611static __inline__ __m256i __DEFAULT_FN_ATTRS
3612_mm256_maskz_min_epu32 (__mmask8 __M, __m256i __A, __m256i __B) {
3613 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
3614 (__v8si) __B,
3615 (__v8si)
3616 _mm256_setzero_si256 (),
3617 __M);
3618}
3619
3620static __inline__ __m256i __DEFAULT_FN_ATTRS
3621_mm256_mask_min_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
3622 __m256i __B) {
3623 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
3624 (__v8si) __B,
3625 (__v8si) __W, __M);
3626}
3627
3628static __inline__ __m128i __DEFAULT_FN_ATTRS
3629_mm_min_epu64 (__m128i __A, __m128i __B) {
3630 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3631 (__v2di) __B,
3632 (__v2di)
3633 _mm_setzero_si128 (),
3634 (__mmask8) -1);
3635}
3636
3637static __inline__ __m128i __DEFAULT_FN_ATTRS
3638_mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3639 __m128i __B) {
3640 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3641 (__v2di) __B,
3642 (__v2di) __W, __M);
3643}
3644
3645static __inline__ __m128i __DEFAULT_FN_ATTRS
3646_mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3647 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3648 (__v2di) __B,
3649 (__v2di)
3650 _mm_setzero_si128 (),
3651 __M);
3652}
3653
3654static __inline__ __m256i __DEFAULT_FN_ATTRS
3655_mm256_min_epu64 (__m256i __A, __m256i __B) {
3656 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3657 (__v4di) __B,
3658 (__v4di)
3659 _mm256_setzero_si256 (),
3660 (__mmask8) -1);
3661}
3662
3663static __inline__ __m256i __DEFAULT_FN_ATTRS
3664_mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3665 __m256i __B) {
3666 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3667 (__v4di) __B,
3668 (__v4di) __W, __M);
3669}
3670
3671static __inline__ __m256i __DEFAULT_FN_ATTRS
3672_mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3673 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3674 (__v4di) __B,
3675 (__v4di)
3676 _mm256_setzero_si256 (),
3677 __M);
3678}
3679
Craig Topperd2661882016-05-17 04:41:48 +00003680#define _mm_roundscale_pd(A, imm) __extension__ ({ \
3681 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3682 (int)(imm), \
3683 (__v2df)_mm_setzero_pd(), \
3684 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003685
3686
Craig Topperd2661882016-05-17 04:41:48 +00003687#define _mm_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3688 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3689 (int)(imm), \
3690 (__v2df)(__m128d)(W), \
3691 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003692
3693
Craig Topperd2661882016-05-17 04:41:48 +00003694#define _mm_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3695 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3696 (int)(imm), \
3697 (__v2df)_mm_setzero_pd(), \
3698 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003699
3700
Craig Topperd2661882016-05-17 04:41:48 +00003701#define _mm256_roundscale_pd(A, imm) __extension__ ({ \
3702 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3703 (int)(imm), \
3704 (__v4df)_mm256_setzero_pd(), \
3705 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003706
3707
Craig Topperd2661882016-05-17 04:41:48 +00003708#define _mm256_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3709 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3710 (int)(imm), \
3711 (__v4df)(__m256d)(W), \
3712 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003713
3714
Craig Topperd2661882016-05-17 04:41:48 +00003715#define _mm256_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3716 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3717 (int)(imm), \
3718 (__v4df)_mm256_setzero_pd(), \
3719 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003720
Craig Topperd2661882016-05-17 04:41:48 +00003721#define _mm_roundscale_ps(A, imm) __extension__ ({ \
3722 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3723 (__v4sf)_mm_setzero_ps(), \
3724 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003725
3726
Craig Topperd2661882016-05-17 04:41:48 +00003727#define _mm_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3728 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3729 (__v4sf)(__m128)(W), \
3730 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003731
3732
Craig Topperd2661882016-05-17 04:41:48 +00003733#define _mm_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3734 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3735 (__v4sf)_mm_setzero_ps(), \
3736 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003737
Craig Topperd2661882016-05-17 04:41:48 +00003738#define _mm256_roundscale_ps(A, imm) __extension__ ({ \
3739 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3740 (__v8sf)_mm256_setzero_ps(), \
3741 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003742
Craig Topperd2661882016-05-17 04:41:48 +00003743#define _mm256_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3744 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3745 (__v8sf)(__m256)(W), \
3746 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003747
3748
Craig Topperd2661882016-05-17 04:41:48 +00003749#define _mm256_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3750 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3751 (__v8sf)_mm256_setzero_ps(), \
3752 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003753
3754static __inline__ __m128d __DEFAULT_FN_ATTRS
3755_mm_scalef_pd (__m128d __A, __m128d __B) {
3756 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3757 (__v2df) __B,
3758 (__v2df)
3759 _mm_setzero_pd (),
3760 (__mmask8) -1);
3761}
3762
3763static __inline__ __m128d __DEFAULT_FN_ATTRS
3764_mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A,
3765 __m128d __B) {
3766 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3767 (__v2df) __B,
3768 (__v2df) __W,
3769 (__mmask8) __U);
3770}
3771
3772static __inline__ __m128d __DEFAULT_FN_ATTRS
3773_mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3774 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3775 (__v2df) __B,
3776 (__v2df)
3777 _mm_setzero_pd (),
3778 (__mmask8) __U);
3779}
3780
3781static __inline__ __m256d __DEFAULT_FN_ATTRS
3782_mm256_scalef_pd (__m256d __A, __m256d __B) {
3783 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3784 (__v4df) __B,
3785 (__v4df)
3786 _mm256_setzero_pd (),
3787 (__mmask8) -1);
3788}
3789
3790static __inline__ __m256d __DEFAULT_FN_ATTRS
3791_mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A,
3792 __m256d __B) {
3793 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3794 (__v4df) __B,
3795 (__v4df) __W,
3796 (__mmask8) __U);
3797}
3798
3799static __inline__ __m256d __DEFAULT_FN_ATTRS
3800_mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3801 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3802 (__v4df) __B,
3803 (__v4df)
3804 _mm256_setzero_pd (),
3805 (__mmask8) __U);
3806}
3807
3808static __inline__ __m128 __DEFAULT_FN_ATTRS
3809_mm_scalef_ps (__m128 __A, __m128 __B) {
3810 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3811 (__v4sf) __B,
3812 (__v4sf)
3813 _mm_setzero_ps (),
3814 (__mmask8) -1);
3815}
3816
3817static __inline__ __m128 __DEFAULT_FN_ATTRS
3818_mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3819 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3820 (__v4sf) __B,
3821 (__v4sf) __W,
3822 (__mmask8) __U);
3823}
3824
3825static __inline__ __m128 __DEFAULT_FN_ATTRS
3826_mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3827 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3828 (__v4sf) __B,
3829 (__v4sf)
3830 _mm_setzero_ps (),
3831 (__mmask8) __U);
3832}
3833
3834static __inline__ __m256 __DEFAULT_FN_ATTRS
3835_mm256_scalef_ps (__m256 __A, __m256 __B) {
3836 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3837 (__v8sf) __B,
3838 (__v8sf)
3839 _mm256_setzero_ps (),
3840 (__mmask8) -1);
3841}
3842
3843static __inline__ __m256 __DEFAULT_FN_ATTRS
3844_mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A,
3845 __m256 __B) {
3846 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3847 (__v8sf) __B,
3848 (__v8sf) __W,
3849 (__mmask8) __U);
3850}
3851
3852static __inline__ __m256 __DEFAULT_FN_ATTRS
3853_mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3854 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3855 (__v8sf) __B,
3856 (__v8sf)
3857 _mm256_setzero_ps (),
3858 (__mmask8) __U);
3859}
3860
Craig Topperd2661882016-05-17 04:41:48 +00003861#define _mm_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
3862 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)-1, \
3863 (__v2di)(__m128i)(index), \
3864 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003865
Craig Topperd2661882016-05-17 04:41:48 +00003866#define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3867 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)(mask), \
3868 (__v2di)(__m128i)(index), \
3869 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003870
Craig Topperd2661882016-05-17 04:41:48 +00003871#define _mm_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3872 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)-1, \
3873 (__v2di)(__m128i)(index), \
3874 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003875
Craig Topperd2661882016-05-17 04:41:48 +00003876#define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3877 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)(mask), \
3878 (__v2di)(__m128i)(index), \
3879 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003880
Craig Topperd2661882016-05-17 04:41:48 +00003881#define _mm256_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
3882 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)-1, \
3883 (__v4di)(__m256i)(index), \
3884 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003885
Craig Topperd2661882016-05-17 04:41:48 +00003886#define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3887 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)(mask), \
3888 (__v4di)(__m256i)(index), \
3889 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003890
Craig Topperd2661882016-05-17 04:41:48 +00003891#define _mm256_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3892 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)-1, \
3893 (__v4di)(__m256i)(index), \
3894 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003895
Craig Topperd2661882016-05-17 04:41:48 +00003896#define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3897 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)(mask), \
3898 (__v4di)(__m256i)(index), \
3899 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003900
Craig Topperd2661882016-05-17 04:41:48 +00003901#define _mm_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
3902 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)-1, \
3903 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
3904 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003905
Craig Topperd2661882016-05-17 04:41:48 +00003906#define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3907 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)(mask), \
3908 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
3909 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003910
Craig Topperd2661882016-05-17 04:41:48 +00003911#define _mm_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3912 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)-1, \
3913 (__v2di)(__m128i)(index), \
3914 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003915
Craig Topperd2661882016-05-17 04:41:48 +00003916#define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3917 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)(mask), \
3918 (__v2di)(__m128i)(index), \
3919 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003920
Craig Topperd2661882016-05-17 04:41:48 +00003921#define _mm256_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
3922 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)-1, \
3923 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
3924 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003925
Craig Topperd2661882016-05-17 04:41:48 +00003926#define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3927 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)(mask), \
3928 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
3929 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003930
Craig Topperd2661882016-05-17 04:41:48 +00003931#define _mm256_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3932 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)-1, \
3933 (__v4di)(__m256i)(index), \
3934 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003935
Craig Topperd2661882016-05-17 04:41:48 +00003936#define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3937 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)(mask), \
3938 (__v4di)(__m256i)(index), \
3939 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003940
Craig Topperd2661882016-05-17 04:41:48 +00003941#define _mm_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
3942 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)-1, \
3943 (__v4si)(__m128i)(index), \
3944 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003945
Craig Topperd2661882016-05-17 04:41:48 +00003946#define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3947 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)(mask), \
3948 (__v4si)(__m128i)(index), \
3949 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003950
Craig Topperd2661882016-05-17 04:41:48 +00003951#define _mm_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3952 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)-1, \
3953 (__v4si)(__m128i)(index), \
3954 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003955
Craig Topperd2661882016-05-17 04:41:48 +00003956#define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3957 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)(mask), \
3958 (__v4si)(__m128i)(index), \
3959 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003960
Craig Topperd2661882016-05-17 04:41:48 +00003961#define _mm256_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
3962 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)-1, \
3963 (__v4si)(__m128i)(index), \
3964 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003965
Craig Topperd2661882016-05-17 04:41:48 +00003966#define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3967 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)(mask), \
3968 (__v4si)(__m128i)(index), \
3969 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003970
Craig Topperd2661882016-05-17 04:41:48 +00003971#define _mm256_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3972 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)-1, \
3973 (__v4si)(__m128i)(index), \
3974 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003975
Craig Topperd2661882016-05-17 04:41:48 +00003976#define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3977 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)(mask), \
3978 (__v4si)(__m128i)(index), \
3979 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003980
Craig Topperd2661882016-05-17 04:41:48 +00003981#define _mm_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
3982 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)-1, \
3983 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
3984 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003985
Craig Topperd2661882016-05-17 04:41:48 +00003986#define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3987 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)(mask), \
3988 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
3989 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003990
Craig Topperd2661882016-05-17 04:41:48 +00003991#define _mm_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3992 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)-1, \
3993 (__v4si)(__m128i)(index), \
3994 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003995
Craig Topperd2661882016-05-17 04:41:48 +00003996#define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3997 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)(mask), \
3998 (__v4si)(__m128i)(index), \
3999 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004000
Craig Topperd2661882016-05-17 04:41:48 +00004001#define _mm256_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
4002 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)-1, \
4003 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
4004 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004005
Craig Topperd2661882016-05-17 04:41:48 +00004006#define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4007 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)(mask), \
4008 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
4009 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004010
Craig Topperd2661882016-05-17 04:41:48 +00004011#define _mm256_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4012 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)-1, \
4013 (__v8si)(__m256i)(index), \
4014 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004015
Craig Topperd2661882016-05-17 04:41:48 +00004016#define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4017 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)(mask), \
4018 (__v8si)(__m256i)(index), \
4019 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004020
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004021static __inline__ __m128d __DEFAULT_FN_ATTRS
4022_mm_mask_sqrt_pd (__m128d __W, __mmask8 __U, __m128d __A) {
4023 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
4024 (__v2df) __W,
4025 (__mmask8) __U);
4026}
4027
4028static __inline__ __m128d __DEFAULT_FN_ATTRS
4029_mm_maskz_sqrt_pd (__mmask8 __U, __m128d __A) {
4030 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
4031 (__v2df)
4032 _mm_setzero_pd (),
4033 (__mmask8) __U);
4034}
4035
4036static __inline__ __m256d __DEFAULT_FN_ATTRS
4037_mm256_mask_sqrt_pd (__m256d __W, __mmask8 __U, __m256d __A) {
4038 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
4039 (__v4df) __W,
4040 (__mmask8) __U);
4041}
4042
4043static __inline__ __m256d __DEFAULT_FN_ATTRS
4044_mm256_maskz_sqrt_pd (__mmask8 __U, __m256d __A) {
4045 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
4046 (__v4df)
4047 _mm256_setzero_pd (),
4048 (__mmask8) __U);
4049}
4050
4051static __inline__ __m128 __DEFAULT_FN_ATTRS
4052_mm_mask_sqrt_ps (__m128 __W, __mmask8 __U, __m128 __A) {
4053 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
4054 (__v4sf) __W,
4055 (__mmask8) __U);
4056}
4057
4058static __inline__ __m128 __DEFAULT_FN_ATTRS
4059_mm_maskz_sqrt_ps (__mmask8 __U, __m128 __A) {
4060 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
4061 (__v4sf)
4062 _mm_setzero_ps (),
4063 (__mmask8) __U);
4064}
4065
4066static __inline__ __m256 __DEFAULT_FN_ATTRS
4067_mm256_mask_sqrt_ps (__m256 __W, __mmask8 __U, __m256 __A) {
4068 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4069 (__v8sf) __W,
4070 (__mmask8) __U);
4071}
4072
4073static __inline__ __m256 __DEFAULT_FN_ATTRS
4074_mm256_maskz_sqrt_ps (__mmask8 __U, __m256 __A) {
4075 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4076 (__v8sf)
4077 _mm256_setzero_ps (),
4078 (__mmask8) __U);
4079}
4080
4081static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004082_mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4083 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
4084 (__v2df)_mm_sub_pd(__A, __B),
4085 (__v2df)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004086}
4087
4088static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004089_mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4090 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
4091 (__v2df)_mm_sub_pd(__A, __B),
4092 (__v2df)_mm_setzero_pd());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004093}
4094
4095static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004096_mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4097 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
4098 (__v4df)_mm256_sub_pd(__A, __B),
4099 (__v4df)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004100}
4101
4102static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004103_mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4104 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
4105 (__v4df)_mm256_sub_pd(__A, __B),
4106 (__v4df)_mm256_setzero_pd());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004107}
4108
4109static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004110_mm_mask_sub_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4111 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
4112 (__v4sf)_mm_sub_ps(__A, __B),
4113 (__v4sf)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004114}
4115
4116static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004117_mm_maskz_sub_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4118 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
4119 (__v4sf)_mm_sub_ps(__A, __B),
4120 (__v4sf)_mm_setzero_ps());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004121}
4122
4123static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004124_mm256_mask_sub_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4125 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
4126 (__v8sf)_mm256_sub_ps(__A, __B),
4127 (__v8sf)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004128}
4129
4130static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004131_mm256_maskz_sub_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4132 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
4133 (__v8sf)_mm256_sub_ps(__A, __B),
4134 (__v8sf)_mm256_setzero_ps());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004135}
4136
4137static __inline__ __m128i __DEFAULT_FN_ATTRS
4138_mm_mask2_permutex2var_epi32 (__m128i __A, __m128i __I, __mmask8 __U,
4139 __m128i __B) {
4140 return (__m128i) __builtin_ia32_vpermi2vard128_mask ((__v4si) __A,
4141 (__v4si) __I
4142 /* idx */ ,
4143 (__v4si) __B,
4144 (__mmask8) __U);
4145}
4146
4147static __inline__ __m256i __DEFAULT_FN_ATTRS
4148_mm256_mask2_permutex2var_epi32 (__m256i __A, __m256i __I,
4149 __mmask8 __U, __m256i __B) {
4150 return (__m256i) __builtin_ia32_vpermi2vard256_mask ((__v8si) __A,
4151 (__v8si) __I
4152 /* idx */ ,
4153 (__v8si) __B,
4154 (__mmask8) __U);
4155}
4156
4157static __inline__ __m128d __DEFAULT_FN_ATTRS
4158_mm_mask2_permutex2var_pd (__m128d __A, __m128i __I, __mmask8 __U,
4159 __m128d __B) {
4160 return (__m128d) __builtin_ia32_vpermi2varpd128_mask ((__v2df) __A,
4161 (__v2di) __I
4162 /* idx */ ,
4163 (__v2df) __B,
4164 (__mmask8)
4165 __U);
4166}
4167
4168static __inline__ __m256d __DEFAULT_FN_ATTRS
4169_mm256_mask2_permutex2var_pd (__m256d __A, __m256i __I, __mmask8 __U,
4170 __m256d __B) {
4171 return (__m256d) __builtin_ia32_vpermi2varpd256_mask ((__v4df) __A,
4172 (__v4di) __I
4173 /* idx */ ,
4174 (__v4df) __B,
4175 (__mmask8)
4176 __U);
4177}
4178
4179static __inline__ __m128 __DEFAULT_FN_ATTRS
4180_mm_mask2_permutex2var_ps (__m128 __A, __m128i __I, __mmask8 __U,
4181 __m128 __B) {
4182 return (__m128) __builtin_ia32_vpermi2varps128_mask ((__v4sf) __A,
4183 (__v4si) __I
4184 /* idx */ ,
4185 (__v4sf) __B,
4186 (__mmask8) __U);
4187}
4188
4189static __inline__ __m256 __DEFAULT_FN_ATTRS
4190_mm256_mask2_permutex2var_ps (__m256 __A, __m256i __I, __mmask8 __U,
4191 __m256 __B) {
4192 return (__m256) __builtin_ia32_vpermi2varps256_mask ((__v8sf) __A,
4193 (__v8si) __I
4194 /* idx */ ,
4195 (__v8sf) __B,
4196 (__mmask8) __U);
4197}
4198
4199static __inline__ __m128i __DEFAULT_FN_ATTRS
4200_mm_mask2_permutex2var_epi64 (__m128i __A, __m128i __I, __mmask8 __U,
4201 __m128i __B) {
4202 return (__m128i) __builtin_ia32_vpermi2varq128_mask ((__v2di) __A,
4203 (__v2di) __I
4204 /* idx */ ,
4205 (__v2di) __B,
4206 (__mmask8) __U);
4207}
4208
4209static __inline__ __m256i __DEFAULT_FN_ATTRS
4210_mm256_mask2_permutex2var_epi64 (__m256i __A, __m256i __I,
4211 __mmask8 __U, __m256i __B) {
4212 return (__m256i) __builtin_ia32_vpermi2varq256_mask ((__v4di) __A,
4213 (__v4di) __I
4214 /* idx */ ,
4215 (__v4di) __B,
4216 (__mmask8) __U);
4217}
4218
4219static __inline__ __m128i __DEFAULT_FN_ATTRS
4220_mm_permutex2var_epi32 (__m128i __A, __m128i __I, __m128i __B) {
4221 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4222 /* idx */ ,
4223 (__v4si) __A,
4224 (__v4si) __B,
4225 (__mmask8) -1);
4226}
4227
4228static __inline__ __m128i __DEFAULT_FN_ATTRS
4229_mm_mask_permutex2var_epi32 (__m128i __A, __mmask8 __U, __m128i __I,
4230 __m128i __B) {
4231 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4232 /* idx */ ,
4233 (__v4si) __A,
4234 (__v4si) __B,
4235 (__mmask8) __U);
4236}
4237
4238static __inline__ __m128i __DEFAULT_FN_ATTRS
4239_mm_maskz_permutex2var_epi32 (__mmask8 __U, __m128i __A, __m128i __I,
4240 __m128i __B) {
4241 return (__m128i) __builtin_ia32_vpermt2vard128_maskz ((__v4si) __I
4242 /* idx */ ,
4243 (__v4si) __A,
4244 (__v4si) __B,
4245 (__mmask8)
4246 __U);
4247}
4248
4249static __inline__ __m256i __DEFAULT_FN_ATTRS
4250_mm256_permutex2var_epi32 (__m256i __A, __m256i __I, __m256i __B) {
4251 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4252 /* idx */ ,
4253 (__v8si) __A,
4254 (__v8si) __B,
4255 (__mmask8) -1);
4256}
4257
4258static __inline__ __m256i __DEFAULT_FN_ATTRS
4259_mm256_mask_permutex2var_epi32 (__m256i __A, __mmask8 __U, __m256i __I,
4260 __m256i __B) {
4261 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4262 /* idx */ ,
4263 (__v8si) __A,
4264 (__v8si) __B,
4265 (__mmask8) __U);
4266}
4267
4268static __inline__ __m256i __DEFAULT_FN_ATTRS
4269_mm256_maskz_permutex2var_epi32 (__mmask8 __U, __m256i __A,
4270 __m256i __I, __m256i __B) {
4271 return (__m256i) __builtin_ia32_vpermt2vard256_maskz ((__v8si) __I
4272 /* idx */ ,
4273 (__v8si) __A,
4274 (__v8si) __B,
4275 (__mmask8)
4276 __U);
4277}
4278
4279static __inline__ __m128d __DEFAULT_FN_ATTRS
4280_mm_permutex2var_pd (__m128d __A, __m128i __I, __m128d __B) {
4281 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4282 /* idx */ ,
4283 (__v2df) __A,
4284 (__v2df) __B,
4285 (__mmask8) -
4286 1);
4287}
4288
4289static __inline__ __m128d __DEFAULT_FN_ATTRS
4290_mm_mask_permutex2var_pd (__m128d __A, __mmask8 __U, __m128i __I,
4291 __m128d __B) {
4292 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4293 /* idx */ ,
4294 (__v2df) __A,
4295 (__v2df) __B,
4296 (__mmask8)
4297 __U);
4298}
4299
4300static __inline__ __m128d __DEFAULT_FN_ATTRS
4301_mm_maskz_permutex2var_pd (__mmask8 __U, __m128d __A, __m128i __I,
4302 __m128d __B) {
4303 return (__m128d) __builtin_ia32_vpermt2varpd128_maskz ((__v2di) __I
4304 /* idx */ ,
4305 (__v2df) __A,
4306 (__v2df) __B,
4307 (__mmask8)
4308 __U);
4309}
4310
4311static __inline__ __m256d __DEFAULT_FN_ATTRS
4312_mm256_permutex2var_pd (__m256d __A, __m256i __I, __m256d __B) {
4313 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4314 /* idx */ ,
4315 (__v4df) __A,
4316 (__v4df) __B,
4317 (__mmask8) -
4318 1);
4319}
4320
4321static __inline__ __m256d __DEFAULT_FN_ATTRS
4322_mm256_mask_permutex2var_pd (__m256d __A, __mmask8 __U, __m256i __I,
4323 __m256d __B) {
4324 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4325 /* idx */ ,
4326 (__v4df) __A,
4327 (__v4df) __B,
4328 (__mmask8)
4329 __U);
4330}
4331
4332static __inline__ __m256d __DEFAULT_FN_ATTRS
4333_mm256_maskz_permutex2var_pd (__mmask8 __U, __m256d __A, __m256i __I,
4334 __m256d __B) {
4335 return (__m256d) __builtin_ia32_vpermt2varpd256_maskz ((__v4di) __I
4336 /* idx */ ,
4337 (__v4df) __A,
4338 (__v4df) __B,
4339 (__mmask8)
4340 __U);
4341}
4342
4343static __inline__ __m128 __DEFAULT_FN_ATTRS
4344_mm_permutex2var_ps (__m128 __A, __m128i __I, __m128 __B) {
4345 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4346 /* idx */ ,
4347 (__v4sf) __A,
4348 (__v4sf) __B,
4349 (__mmask8) -1);
4350}
4351
4352static __inline__ __m128 __DEFAULT_FN_ATTRS
4353_mm_mask_permutex2var_ps (__m128 __A, __mmask8 __U, __m128i __I,
4354 __m128 __B) {
4355 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4356 /* idx */ ,
4357 (__v4sf) __A,
4358 (__v4sf) __B,
4359 (__mmask8) __U);
4360}
4361
4362static __inline__ __m128 __DEFAULT_FN_ATTRS
4363_mm_maskz_permutex2var_ps (__mmask8 __U, __m128 __A, __m128i __I,
4364 __m128 __B) {
4365 return (__m128) __builtin_ia32_vpermt2varps128_maskz ((__v4si) __I
4366 /* idx */ ,
4367 (__v4sf) __A,
4368 (__v4sf) __B,
4369 (__mmask8)
4370 __U);
4371}
4372
4373static __inline__ __m256 __DEFAULT_FN_ATTRS
4374_mm256_permutex2var_ps (__m256 __A, __m256i __I, __m256 __B) {
4375 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4376 /* idx */ ,
4377 (__v8sf) __A,
4378 (__v8sf) __B,
4379 (__mmask8) -1);
4380}
4381
4382static __inline__ __m256 __DEFAULT_FN_ATTRS
4383_mm256_mask_permutex2var_ps (__m256 __A, __mmask8 __U, __m256i __I,
4384 __m256 __B) {
4385 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4386 /* idx */ ,
4387 (__v8sf) __A,
4388 (__v8sf) __B,
4389 (__mmask8) __U);
4390}
4391
4392static __inline__ __m256 __DEFAULT_FN_ATTRS
4393_mm256_maskz_permutex2var_ps (__mmask8 __U, __m256 __A, __m256i __I,
4394 __m256 __B) {
4395 return (__m256) __builtin_ia32_vpermt2varps256_maskz ((__v8si) __I
4396 /* idx */ ,
4397 (__v8sf) __A,
4398 (__v8sf) __B,
4399 (__mmask8)
4400 __U);
4401}
4402
4403static __inline__ __m128i __DEFAULT_FN_ATTRS
4404_mm_permutex2var_epi64 (__m128i __A, __m128i __I, __m128i __B) {
4405 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4406 /* idx */ ,
4407 (__v2di) __A,
4408 (__v2di) __B,
4409 (__mmask8) -1);
4410}
4411
4412static __inline__ __m128i __DEFAULT_FN_ATTRS
4413_mm_mask_permutex2var_epi64 (__m128i __A, __mmask8 __U, __m128i __I,
4414 __m128i __B) {
4415 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4416 /* idx */ ,
4417 (__v2di) __A,
4418 (__v2di) __B,
4419 (__mmask8) __U);
4420}
4421
4422static __inline__ __m128i __DEFAULT_FN_ATTRS
4423_mm_maskz_permutex2var_epi64 (__mmask8 __U, __m128i __A, __m128i __I,
4424 __m128i __B) {
4425 return (__m128i) __builtin_ia32_vpermt2varq128_maskz ((__v2di) __I
4426 /* idx */ ,
4427 (__v2di) __A,
4428 (__v2di) __B,
4429 (__mmask8)
4430 __U);
4431}
4432
4433
4434static __inline__ __m256i __DEFAULT_FN_ATTRS
4435_mm256_permutex2var_epi64 (__m256i __A, __m256i __I, __m256i __B) {
4436 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4437 /* idx */ ,
4438 (__v4di) __A,
4439 (__v4di) __B,
4440 (__mmask8) -1);
4441}
4442
4443static __inline__ __m256i __DEFAULT_FN_ATTRS
4444_mm256_mask_permutex2var_epi64 (__m256i __A, __mmask8 __U, __m256i __I,
4445 __m256i __B) {
4446 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4447 /* idx */ ,
4448 (__v4di) __A,
4449 (__v4di) __B,
4450 (__mmask8) __U);
4451}
4452
4453static __inline__ __m256i __DEFAULT_FN_ATTRS
4454_mm256_maskz_permutex2var_epi64 (__mmask8 __U, __m256i __A,
4455 __m256i __I, __m256i __B) {
4456 return (__m256i) __builtin_ia32_vpermt2varq256_maskz ((__v4di) __I
4457 /* idx */ ,
4458 (__v4di) __A,
4459 (__v4di) __B,
4460 (__mmask8)
4461 __U);
4462}
4463
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004464static __inline__ __m128i __DEFAULT_FN_ATTRS
4465_mm_mask_cvtepi8_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4466{
4467 return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A,
4468 (__v4si) __W,
4469 (__mmask8) __U);
4470}
4471
4472static __inline__ __m128i __DEFAULT_FN_ATTRS
4473_mm_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4474{
4475 return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A,
4476 (__v4si)
4477 _mm_setzero_si128 (),
4478 (__mmask8) __U);
4479}
4480
4481static __inline__ __m256i __DEFAULT_FN_ATTRS
4482_mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4483{
4484 return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A,
4485 (__v8si) __W,
4486 (__mmask8) __U);
4487}
4488
4489static __inline__ __m256i __DEFAULT_FN_ATTRS
4490_mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4491{
4492 return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A,
4493 (__v8si)
4494 _mm256_setzero_si256 (),
4495 (__mmask8) __U);
4496}
4497
4498static __inline__ __m128i __DEFAULT_FN_ATTRS
4499_mm_mask_cvtepi8_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4500{
4501 return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A,
4502 (__v2di) __W,
4503 (__mmask8) __U);
4504}
4505
4506static __inline__ __m128i __DEFAULT_FN_ATTRS
4507_mm_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
4508{
4509 return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A,
4510 (__v2di)
4511 _mm_setzero_si128 (),
4512 (__mmask8) __U);
4513}
4514
4515static __inline__ __m256i __DEFAULT_FN_ATTRS
4516_mm256_mask_cvtepi8_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4517{
4518 return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A,
4519 (__v4di) __W,
4520 (__mmask8) __U);
4521}
4522
4523static __inline__ __m256i __DEFAULT_FN_ATTRS
4524_mm256_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
4525{
4526 return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A,
4527 (__v4di)
4528 _mm256_setzero_si256 (),
4529 (__mmask8) __U);
4530}
4531
4532static __inline__ __m128i __DEFAULT_FN_ATTRS
4533_mm_mask_cvtepi32_epi64 (__m128i __W, __mmask8 __U, __m128i __X)
4534{
4535 return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X,
4536 (__v2di) __W,
4537 (__mmask8) __U);
4538}
4539
4540static __inline__ __m128i __DEFAULT_FN_ATTRS
4541_mm_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X)
4542{
4543 return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X,
4544 (__v2di)
4545 _mm_setzero_si128 (),
4546 (__mmask8) __U);
4547}
4548
4549static __inline__ __m256i __DEFAULT_FN_ATTRS
4550_mm256_mask_cvtepi32_epi64 (__m256i __W, __mmask8 __U, __m128i __X)
4551{
4552 return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X,
4553 (__v4di) __W,
4554 (__mmask8) __U);
4555}
4556
4557static __inline__ __m256i __DEFAULT_FN_ATTRS
4558_mm256_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X)
4559{
4560 return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X,
4561 (__v4di)
4562 _mm256_setzero_si256 (),
4563 (__mmask8) __U);
4564}
4565
4566static __inline__ __m128i __DEFAULT_FN_ATTRS
4567_mm_mask_cvtepi16_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4568{
4569 return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A,
4570 (__v4si) __W,
4571 (__mmask8) __U);
4572}
4573
4574static __inline__ __m128i __DEFAULT_FN_ATTRS
4575_mm_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4576{
4577 return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A,
4578 (__v4si)
4579 _mm_setzero_si128 (),
4580 (__mmask8) __U);
4581}
4582
4583static __inline__ __m256i __DEFAULT_FN_ATTRS
4584_mm256_mask_cvtepi16_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4585{
4586 return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A,
4587 (__v8si) __W,
4588 (__mmask8) __U);
4589}
4590
4591static __inline__ __m256i __DEFAULT_FN_ATTRS
4592_mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4593{
4594 return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A,
4595 (__v8si)
4596 _mm256_setzero_si256 (),
4597 (__mmask8) __U);
4598}
4599
4600static __inline__ __m128i __DEFAULT_FN_ATTRS
4601_mm_mask_cvtepi16_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4602{
4603 return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A,
4604 (__v2di) __W,
4605 (__mmask8) __U);
4606}
4607
4608static __inline__ __m128i __DEFAULT_FN_ATTRS
4609_mm_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
4610{
4611 return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A,
4612 (__v2di)
4613 _mm_setzero_si128 (),
4614 (__mmask8) __U);
4615}
4616
4617static __inline__ __m256i __DEFAULT_FN_ATTRS
4618_mm256_mask_cvtepi16_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4619{
4620 return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A,
4621 (__v4di) __W,
4622 (__mmask8) __U);
4623}
4624
4625static __inline__ __m256i __DEFAULT_FN_ATTRS
4626_mm256_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
4627{
4628 return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A,
4629 (__v4di)
4630 _mm256_setzero_si256 (),
4631 (__mmask8) __U);
4632}
4633
4634
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004635static __inline__ __m128i __DEFAULT_FN_ATTRS
4636_mm_mask_cvtepu8_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4637{
4638 return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A,
4639 (__v4si) __W,
4640 (__mmask8) __U);
4641}
4642
4643static __inline__ __m128i __DEFAULT_FN_ATTRS
4644_mm_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A)
4645{
4646 return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A,
4647 (__v4si)
4648 _mm_setzero_si128 (),
4649 (__mmask8) __U);
4650}
4651
4652static __inline__ __m256i __DEFAULT_FN_ATTRS
4653_mm256_mask_cvtepu8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4654{
4655 return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A,
4656 (__v8si) __W,
4657 (__mmask8) __U);
4658}
4659
4660static __inline__ __m256i __DEFAULT_FN_ATTRS
4661_mm256_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A)
4662{
4663 return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A,
4664 (__v8si)
4665 _mm256_setzero_si256 (),
4666 (__mmask8) __U);
4667}
4668
4669static __inline__ __m128i __DEFAULT_FN_ATTRS
4670_mm_mask_cvtepu8_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4671{
4672 return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A,
4673 (__v2di) __W,
4674 (__mmask8) __U);
4675}
4676
4677static __inline__ __m128i __DEFAULT_FN_ATTRS
4678_mm_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
4679{
4680 return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A,
4681 (__v2di)
4682 _mm_setzero_si128 (),
4683 (__mmask8) __U);
4684}
4685
4686static __inline__ __m256i __DEFAULT_FN_ATTRS
4687_mm256_mask_cvtepu8_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4688{
4689 return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A,
4690 (__v4di) __W,
4691 (__mmask8) __U);
4692}
4693
4694static __inline__ __m256i __DEFAULT_FN_ATTRS
4695_mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
4696{
4697 return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A,
4698 (__v4di)
4699 _mm256_setzero_si256 (),
4700 (__mmask8) __U);
4701}
4702
4703static __inline__ __m128i __DEFAULT_FN_ATTRS
4704_mm_mask_cvtepu32_epi64 (__m128i __W, __mmask8 __U, __m128i __X)
4705{
4706 return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X,
4707 (__v2di) __W,
4708 (__mmask8) __U);
4709}
4710
4711static __inline__ __m128i __DEFAULT_FN_ATTRS
4712_mm_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X)
4713{
4714 return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X,
4715 (__v2di)
4716 _mm_setzero_si128 (),
4717 (__mmask8) __U);
4718}
4719
4720static __inline__ __m256i __DEFAULT_FN_ATTRS
4721_mm256_mask_cvtepu32_epi64 (__m256i __W, __mmask8 __U, __m128i __X)
4722{
4723 return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X,
4724 (__v4di) __W,
4725 (__mmask8) __U);
4726}
4727
4728static __inline__ __m256i __DEFAULT_FN_ATTRS
4729_mm256_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X)
4730{
4731 return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X,
4732 (__v4di)
4733 _mm256_setzero_si256 (),
4734 (__mmask8) __U);
4735}
4736
4737static __inline__ __m128i __DEFAULT_FN_ATTRS
4738_mm_mask_cvtepu16_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4739{
4740 return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A,
4741 (__v4si) __W,
4742 (__mmask8) __U);
4743}
4744
4745static __inline__ __m128i __DEFAULT_FN_ATTRS
4746_mm_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A)
4747{
4748 return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A,
4749 (__v4si)
4750 _mm_setzero_si128 (),
4751 (__mmask8) __U);
4752}
4753
4754static __inline__ __m256i __DEFAULT_FN_ATTRS
4755_mm256_mask_cvtepu16_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4756{
4757 return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A,
4758 (__v8si) __W,
4759 (__mmask8) __U);
4760}
4761
4762static __inline__ __m256i __DEFAULT_FN_ATTRS
4763_mm256_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A)
4764{
4765 return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A,
4766 (__v8si)
4767 _mm256_setzero_si256 (),
4768 (__mmask8) __U);
4769}
4770
4771static __inline__ __m128i __DEFAULT_FN_ATTRS
4772_mm_mask_cvtepu16_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4773{
4774 return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A,
4775 (__v2di) __W,
4776 (__mmask8) __U);
4777}
4778
4779static __inline__ __m128i __DEFAULT_FN_ATTRS
4780_mm_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
4781{
4782 return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A,
4783 (__v2di)
4784 _mm_setzero_si128 (),
4785 (__mmask8) __U);
4786}
4787
4788static __inline__ __m256i __DEFAULT_FN_ATTRS
4789_mm256_mask_cvtepu16_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4790{
4791 return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A,
4792 (__v4di) __W,
4793 (__mmask8) __U);
4794}
4795
4796static __inline__ __m256i __DEFAULT_FN_ATTRS
4797_mm256_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
4798{
4799 return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A,
4800 (__v4di)
4801 _mm256_setzero_si256 (),
4802 (__mmask8) __U);
4803}
4804
4805
Michael Zuckerman38a27272016-02-22 09:05:41 +00004806#define _mm_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004807 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4808 (__v4si)_mm_setzero_si128(), \
4809 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004810
4811#define _mm_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004812 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4813 (__v4si)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004814
4815#define _mm_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004816 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4817 (__v4si)_mm_setzero_si128(), \
4818 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004819
4820#define _mm256_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004821 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4822 (__v8si)_mm256_setzero_si256(), \
4823 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004824
4825#define _mm256_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004826 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4827 (__v8si)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004828
4829#define _mm256_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004830 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4831 (__v8si)_mm256_setzero_si256(), \
4832 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004833
Michael Zuckerman477e0a32016-02-22 09:42:57 +00004834#define _mm_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004835 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4836 (__v2di)_mm_setzero_di(), \
4837 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004838
4839#define _mm_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004840 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4841 (__v2di)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004842
4843#define _mm_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004844 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4845 (__v2di)_mm_setzero_di(), \
4846 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004847
4848#define _mm256_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004849 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4850 (__v4di)_mm256_setzero_si256(), \
4851 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004852
4853#define _mm256_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004854 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4855 (__v4di)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004856
4857#define _mm256_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004858 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4859 (__v4di)_mm256_setzero_si256(), \
4860 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004861
Michael Zuckerman0231f162016-02-23 13:41:13 +00004862static __inline__ __m128i __DEFAULT_FN_ATTRS
4863_mm_rolv_epi32 (__m128i __A, __m128i __B)
4864{
4865 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4866 (__v4si) __B,
4867 (__v4si)
4868 _mm_setzero_si128 (),
4869 (__mmask8) -1);
4870}
4871
4872static __inline__ __m128i __DEFAULT_FN_ATTRS
4873_mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
4874 __m128i __B)
4875{
4876 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4877 (__v4si) __B,
4878 (__v4si) __W,
4879 (__mmask8) __U);
4880}
4881
4882static __inline__ __m128i __DEFAULT_FN_ATTRS
4883_mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
4884{
4885 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4886 (__v4si) __B,
4887 (__v4si)
4888 _mm_setzero_si128 (),
4889 (__mmask8) __U);
4890}
4891
4892static __inline__ __m256i __DEFAULT_FN_ATTRS
4893_mm256_rolv_epi32 (__m256i __A, __m256i __B)
4894{
4895 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4896 (__v8si) __B,
4897 (__v8si)
4898 _mm256_setzero_si256 (),
4899 (__mmask8) -1);
4900}
4901
4902static __inline__ __m256i __DEFAULT_FN_ATTRS
4903_mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
4904 __m256i __B)
4905{
4906 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4907 (__v8si) __B,
4908 (__v8si) __W,
4909 (__mmask8) __U);
4910}
4911
4912static __inline__ __m256i __DEFAULT_FN_ATTRS
4913_mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
4914{
4915 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4916 (__v8si) __B,
4917 (__v8si)
4918 _mm256_setzero_si256 (),
4919 (__mmask8) __U);
4920}
4921
4922static __inline__ __m128i __DEFAULT_FN_ATTRS
4923_mm_rolv_epi64 (__m128i __A, __m128i __B)
4924{
4925 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
4926 (__v2di) __B,
4927 (__v2di)
4928 _mm_setzero_di (),
4929 (__mmask8) -1);
4930}
4931
4932static __inline__ __m128i __DEFAULT_FN_ATTRS
4933_mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
4934 __m128i __B)
4935{
4936 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
4937 (__v2di) __B,
4938 (__v2di) __W,
4939 (__mmask8) __U);
4940}
4941
4942static __inline__ __m128i __DEFAULT_FN_ATTRS
4943_mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
4944{
4945 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
4946 (__v2di) __B,
4947 (__v2di)
4948 _mm_setzero_di (),
4949 (__mmask8) __U);
4950}
4951
4952static __inline__ __m256i __DEFAULT_FN_ATTRS
4953_mm256_rolv_epi64 (__m256i __A, __m256i __B)
4954{
4955 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
4956 (__v4di) __B,
4957 (__v4di)
4958 _mm256_setzero_si256 (),
4959 (__mmask8) -1);
4960}
4961
4962static __inline__ __m256i __DEFAULT_FN_ATTRS
4963_mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
4964 __m256i __B)
4965{
4966 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
4967 (__v4di) __B,
4968 (__v4di) __W,
4969 (__mmask8) __U);
4970}
4971
4972static __inline__ __m256i __DEFAULT_FN_ATTRS
4973_mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
4974{
4975 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
4976 (__v4di) __B,
4977 (__v4di)
4978 _mm256_setzero_si256 (),
4979 (__mmask8) __U);
4980}
4981
Craig Topperd2661882016-05-17 04:41:48 +00004982#define _mm_ror_epi32(A, B) __extension__ ({ \
4983 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
4984 (__v4si)_mm_setzero_si128(), \
4985 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004986
Craig Topperd2661882016-05-17 04:41:48 +00004987#define _mm_mask_ror_epi32(W, U, A, B) __extension__ ({ \
4988 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
4989 (__v4si)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004990
Craig Topperd2661882016-05-17 04:41:48 +00004991#define _mm_maskz_ror_epi32(U, A, B) __extension__ ({ \
4992 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
4993 (__v4si)_mm_setzero_si128(), \
4994 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004995
Craig Topperd2661882016-05-17 04:41:48 +00004996#define _mm256_ror_epi32(A, B) __extension__ ({ \
4997 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
4998 (__v8si)_mm256_setzero_si256(), \
4999 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005000
Craig Topperd2661882016-05-17 04:41:48 +00005001#define _mm256_mask_ror_epi32(W, U, A, B) __extension__ ({ \
5002 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
5003 (__v8si)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005004
Craig Topperd2661882016-05-17 04:41:48 +00005005#define _mm256_maskz_ror_epi32(U, A, B) __extension__ ({ \
5006 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
5007 (__v8si)_mm256_setzero_si256(), \
5008 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005009
Craig Topperd2661882016-05-17 04:41:48 +00005010#define _mm_ror_epi64(A, B) __extension__ ({ \
5011 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
5012 (__v2di)_mm_setzero_di(), \
5013 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005014
Craig Topperd2661882016-05-17 04:41:48 +00005015#define _mm_mask_ror_epi64(W, U, A, B) __extension__ ({ \
5016 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
5017 (__v2di)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005018
Craig Topperd2661882016-05-17 04:41:48 +00005019#define _mm_maskz_ror_epi64(U, A, B) __extension__ ({ \
5020 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
5021 (__v2di)_mm_setzero_di(), \
5022 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005023
Craig Topperd2661882016-05-17 04:41:48 +00005024#define _mm256_ror_epi64(A, B) __extension__ ({ \
5025 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5026 (__v4di)_mm256_setzero_si256(), \
5027 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005028
Craig Topperd2661882016-05-17 04:41:48 +00005029#define _mm256_mask_ror_epi64(W, U, A, B) __extension__ ({ \
5030 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5031 (__v4di)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005032
Craig Topperd2661882016-05-17 04:41:48 +00005033#define _mm256_maskz_ror_epi64(U, A, B) __extension__ ({ \
5034 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5035 (__v4di)_mm256_setzero_si256(), \
5036 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005037
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005038static __inline__ __m128i __DEFAULT_FN_ATTRS
5039_mm_mask_sll_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5040 __m128i __B)
5041{
5042 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
5043 (__v4si) __B,
5044 (__v4si) __W,
5045 (__mmask8) __U);
5046}
5047
5048static __inline__ __m128i __DEFAULT_FN_ATTRS
5049_mm_maskz_sll_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5050{
5051 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
5052 (__v4si) __B,
5053 (__v4si)
5054 _mm_setzero_si128 (),
5055 (__mmask8) __U);
5056}
5057
5058static __inline__ __m256i __DEFAULT_FN_ATTRS
5059_mm256_mask_sll_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5060 __m128i __B)
5061{
5062 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
5063 (__v4si) __B,
5064 (__v8si) __W,
5065 (__mmask8) __U);
5066}
5067
5068static __inline__ __m256i __DEFAULT_FN_ATTRS
5069_mm256_maskz_sll_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
5070{
5071 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
5072 (__v4si) __B,
5073 (__v8si)
5074 _mm256_setzero_si256 (),
5075 (__mmask8) __U);
5076}
5077
Craig Topperd2661882016-05-17 04:41:48 +00005078#define _mm_mask_slli_epi32(W, U, A, B) __extension__ ({ \
5079 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \
5080 (__v4si)(__m128i)(W), \
5081 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005082
Craig Topperd2661882016-05-17 04:41:48 +00005083#define _mm_maskz_slli_epi32(U, A, B) __extension__ ({ \
5084 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \
5085 (__v4si)_mm_setzero_si128(), \
5086 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005087
Craig Topperd2661882016-05-17 04:41:48 +00005088#define _mm256_mask_slli_epi32(W, U, A, B) __extension__ ({ \
5089 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \
5090 (__v8si)(__m256i)(W), \
5091 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005092
Craig Topperd2661882016-05-17 04:41:48 +00005093#define _mm256_maskz_slli_epi32(U, A, B) __extension__ ({ \
5094 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \
5095 (__v8si)_mm256_setzero_si256(), \
5096 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005097
5098static __inline__ __m128i __DEFAULT_FN_ATTRS
5099_mm_mask_sll_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5100 __m128i __B)
5101{
5102 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
5103 (__v2di) __B,
5104 (__v2di) __W,
5105 (__mmask8) __U);
5106}
5107
5108static __inline__ __m128i __DEFAULT_FN_ATTRS
5109_mm_maskz_sll_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5110{
5111 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
5112 (__v2di) __B,
5113 (__v2di)
5114 _mm_setzero_di (),
5115 (__mmask8) __U);
5116}
5117
5118static __inline__ __m256i __DEFAULT_FN_ATTRS
5119_mm256_mask_sll_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5120 __m128i __B)
5121{
5122 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
5123 (__v2di) __B,
5124 (__v4di) __W,
5125 (__mmask8) __U);
5126}
5127
5128static __inline__ __m256i __DEFAULT_FN_ATTRS
5129_mm256_maskz_sll_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
5130{
5131 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
5132 (__v2di) __B,
5133 (__v4di)
5134 _mm256_setzero_si256 (),
5135 (__mmask8) __U);
5136}
5137
Craig Topperd2661882016-05-17 04:41:48 +00005138#define _mm_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5139 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \
5140 (__v2di)(__m128i)(W), \
5141 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005142
Craig Topperd2661882016-05-17 04:41:48 +00005143#define _mm_maskz_slli_epi64(U, A, B) __extension__ ({ \
5144 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \
5145 (__v2di)_mm_setzero_di(), \
5146 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005147
Craig Topperd2661882016-05-17 04:41:48 +00005148#define _mm256_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5149 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \
5150 (__v4di)(__m256i)(W), \
5151 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005152
Craig Topperd2661882016-05-17 04:41:48 +00005153#define _mm256_maskz_slli_epi64(U, A, B) __extension__ ({ \
5154 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \
5155 (__v4di)_mm256_setzero_si256(), \
5156 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005157
Michael Zuckerman0231f162016-02-23 13:41:13 +00005158
Michael Zuckermane98cc742016-02-23 15:59:47 +00005159static __inline__ __m128i __DEFAULT_FN_ATTRS
5160_mm_rorv_epi32 (__m128i __A, __m128i __B)
5161{
5162 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5163 (__v4si) __B,
5164 (__v4si)
5165 _mm_setzero_si128 (),
5166 (__mmask8) -1);
5167}
5168
5169static __inline__ __m128i __DEFAULT_FN_ATTRS
5170_mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5171 __m128i __B)
5172{
5173 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5174 (__v4si) __B,
5175 (__v4si) __W,
5176 (__mmask8) __U);
5177}
5178
5179static __inline__ __m128i __DEFAULT_FN_ATTRS
5180_mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5181{
5182 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5183 (__v4si) __B,
5184 (__v4si)
5185 _mm_setzero_si128 (),
5186 (__mmask8) __U);
5187}
5188
5189static __inline__ __m256i __DEFAULT_FN_ATTRS
5190_mm256_rorv_epi32 (__m256i __A, __m256i __B)
5191{
5192 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5193 (__v8si) __B,
5194 (__v8si)
5195 _mm256_setzero_si256 (),
5196 (__mmask8) -1);
5197}
5198
5199static __inline__ __m256i __DEFAULT_FN_ATTRS
5200_mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5201 __m256i __B)
5202{
5203 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5204 (__v8si) __B,
5205 (__v8si) __W,
5206 (__mmask8) __U);
5207}
5208
5209static __inline__ __m256i __DEFAULT_FN_ATTRS
5210_mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
5211{
5212 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5213 (__v8si) __B,
5214 (__v8si)
5215 _mm256_setzero_si256 (),
5216 (__mmask8) __U);
5217}
5218
5219static __inline__ __m128i __DEFAULT_FN_ATTRS
5220_mm_rorv_epi64 (__m128i __A, __m128i __B)
5221{
5222 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5223 (__v2di) __B,
5224 (__v2di)
5225 _mm_setzero_di (),
5226 (__mmask8) -1);
5227}
5228
5229static __inline__ __m128i __DEFAULT_FN_ATTRS
5230_mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5231 __m128i __B)
5232{
5233 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5234 (__v2di) __B,
5235 (__v2di) __W,
5236 (__mmask8) __U);
5237}
5238
5239static __inline__ __m128i __DEFAULT_FN_ATTRS
5240_mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5241{
5242 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5243 (__v2di) __B,
5244 (__v2di)
5245 _mm_setzero_di (),
5246 (__mmask8) __U);
5247}
5248
5249static __inline__ __m256i __DEFAULT_FN_ATTRS
5250_mm256_rorv_epi64 (__m256i __A, __m256i __B)
5251{
5252 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5253 (__v4di) __B,
5254 (__v4di)
5255 _mm256_setzero_si256 (),
5256 (__mmask8) -1);
5257}
5258
5259static __inline__ __m256i __DEFAULT_FN_ATTRS
5260_mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5261 __m256i __B)
5262{
5263 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5264 (__v4di) __B,
5265 (__v4di) __W,
5266 (__mmask8) __U);
5267}
5268
5269static __inline__ __m256i __DEFAULT_FN_ATTRS
5270_mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
5271{
5272 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5273 (__v4di) __B,
5274 (__v4di)
5275 _mm256_setzero_si256 (),
5276 (__mmask8) __U);
5277}
5278
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005279static __inline__ __m128i __DEFAULT_FN_ATTRS
5280_mm_mask_sllv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5281 __m128i __Y)
5282{
5283 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
5284 (__v2di) __Y,
5285 (__v2di) __W,
5286 (__mmask8) __U);
5287}
5288
5289static __inline__ __m128i __DEFAULT_FN_ATTRS
5290_mm_maskz_sllv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5291{
5292 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
5293 (__v2di) __Y,
5294 (__v2di)
5295 _mm_setzero_di (),
5296 (__mmask8) __U);
5297}
5298
5299static __inline__ __m256i __DEFAULT_FN_ATTRS
5300_mm256_mask_sllv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5301 __m256i __Y)
5302{
5303 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
5304 (__v4di) __Y,
5305 (__v4di) __W,
5306 (__mmask8) __U);
5307}
5308
5309static __inline__ __m256i __DEFAULT_FN_ATTRS
5310_mm256_maskz_sllv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5311{
5312 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
5313 (__v4di) __Y,
5314 (__v4di)
5315 _mm256_setzero_si256 (),
5316 (__mmask8) __U);
5317}
5318
5319static __inline__ __m128i __DEFAULT_FN_ATTRS
5320_mm_mask_sllv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5321 __m128i __Y)
5322{
5323 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
5324 (__v4si) __Y,
5325 (__v4si) __W,
5326 (__mmask8) __U);
5327}
5328
5329static __inline__ __m128i __DEFAULT_FN_ATTRS
5330_mm_maskz_sllv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5331{
5332 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
5333 (__v4si) __Y,
5334 (__v4si)
5335 _mm_setzero_si128 (),
5336 (__mmask8) __U);
5337}
5338
5339static __inline__ __m256i __DEFAULT_FN_ATTRS
5340_mm256_mask_sllv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5341 __m256i __Y)
5342{
5343 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
5344 (__v8si) __Y,
5345 (__v8si) __W,
5346 (__mmask8) __U);
5347}
5348
5349static __inline__ __m256i __DEFAULT_FN_ATTRS
5350_mm256_maskz_sllv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5351{
5352 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
5353 (__v8si) __Y,
5354 (__v8si)
5355 _mm256_setzero_si256 (),
5356 (__mmask8) __U);
5357}
5358
Michael Zuckerman0165e762016-03-01 13:03:45 +00005359
5360
5361static __inline__ __m128i __DEFAULT_FN_ATTRS
5362_mm_mask_srlv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5363 __m128i __Y)
5364{
5365 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
5366 (__v2di) __Y,
5367 (__v2di) __W,
5368 (__mmask8) __U);
5369}
5370
5371static __inline__ __m128i __DEFAULT_FN_ATTRS
5372_mm_maskz_srlv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5373{
5374 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
5375 (__v2di) __Y,
5376 (__v2di)
5377 _mm_setzero_di (),
5378 (__mmask8) __U);
5379}
5380
5381static __inline__ __m256i __DEFAULT_FN_ATTRS
5382_mm256_mask_srlv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5383 __m256i __Y)
5384{
5385 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
5386 (__v4di) __Y,
5387 (__v4di) __W,
5388 (__mmask8) __U);
5389}
5390
5391static __inline__ __m256i __DEFAULT_FN_ATTRS
5392_mm256_maskz_srlv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5393{
5394 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
5395 (__v4di) __Y,
5396 (__v4di)
5397 _mm256_setzero_si256 (),
5398 (__mmask8) __U);
5399}
5400
5401static __inline__ __m128i __DEFAULT_FN_ATTRS
5402_mm_mask_srlv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5403 __m128i __Y)
5404{
5405 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
5406 (__v4si) __Y,
5407 (__v4si) __W,
5408 (__mmask8) __U);
5409}
5410
5411static __inline__ __m128i __DEFAULT_FN_ATTRS
5412_mm_maskz_srlv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5413{
5414 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
5415 (__v4si) __Y,
5416 (__v4si)
5417 _mm_setzero_si128 (),
5418 (__mmask8) __U);
5419}
5420
5421static __inline__ __m256i __DEFAULT_FN_ATTRS
5422_mm256_mask_srlv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5423 __m256i __Y)
5424{
5425 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
5426 (__v8si) __Y,
5427 (__v8si) __W,
5428 (__mmask8) __U);
5429}
5430
5431static __inline__ __m256i __DEFAULT_FN_ATTRS
5432_mm256_maskz_srlv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5433{
5434 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
5435 (__v8si) __Y,
5436 (__v8si)
5437 _mm256_setzero_si256 (),
5438 (__mmask8) __U);
5439}
5440
Michael Zuckermand176d742016-03-01 17:49:03 +00005441
5442
5443static __inline__ __m128i __DEFAULT_FN_ATTRS
5444_mm_mask_srl_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5445 __m128i __B)
5446{
5447 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
5448 (__v4si) __B,
5449 (__v4si) __W,
5450 (__mmask8) __U);
5451}
5452
5453static __inline__ __m128i __DEFAULT_FN_ATTRS
5454_mm_maskz_srl_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5455{
5456 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
5457 (__v4si) __B,
5458 (__v4si)
5459 _mm_setzero_si128 (),
5460 (__mmask8) __U);
5461}
5462
5463static __inline__ __m256i __DEFAULT_FN_ATTRS
5464_mm256_mask_srl_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5465 __m128i __B)
5466{
5467 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
5468 (__v4si) __B,
5469 (__v8si) __W,
5470 (__mmask8) __U);
5471}
5472
5473static __inline__ __m256i __DEFAULT_FN_ATTRS
5474_mm256_maskz_srl_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
5475{
5476 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
5477 (__v4si) __B,
5478 (__v8si)
5479 _mm256_setzero_si256 (),
5480 (__mmask8) __U);
5481}
5482
Craig Topperd2661882016-05-17 04:41:48 +00005483#define _mm_mask_srli_epi32(W, U, A, imm) __extension__ ({ \
5484 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \
5485 (__v4si)(__m128i)(W), \
5486 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005487
Craig Topperd2661882016-05-17 04:41:48 +00005488#define _mm_maskz_srli_epi32(U, A, imm) __extension__ ({ \
5489 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \
5490 (__v4si)_mm_setzero_si128(), \
5491 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005492
Craig Topperd2661882016-05-17 04:41:48 +00005493#define _mm256_mask_srli_epi32(W, U, A, imm) __extension__ ({ \
5494 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \
5495 (__v8si)(__m256i)(W), \
5496 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005497
Craig Topperd2661882016-05-17 04:41:48 +00005498#define _mm256_maskz_srli_epi32(U, A, imm) __extension__ ({ \
5499 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \
5500 (__v8si)_mm256_setzero_si256(), \
5501 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005502
5503static __inline__ __m128i __DEFAULT_FN_ATTRS
5504_mm_mask_srl_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5505 __m128i __B)
5506{
5507 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
5508 (__v2di) __B,
5509 (__v2di) __W,
5510 (__mmask8) __U);
5511}
5512
5513static __inline__ __m128i __DEFAULT_FN_ATTRS
5514_mm_maskz_srl_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5515{
5516 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
5517 (__v2di) __B,
5518 (__v2di)
5519 _mm_setzero_di (),
5520 (__mmask8) __U);
5521}
5522
5523static __inline__ __m256i __DEFAULT_FN_ATTRS
5524_mm256_mask_srl_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5525 __m128i __B)
5526{
5527 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
5528 (__v2di) __B,
5529 (__v4di) __W,
5530 (__mmask8) __U);
5531}
5532
5533static __inline__ __m256i __DEFAULT_FN_ATTRS
5534_mm256_maskz_srl_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
5535{
5536 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
5537 (__v2di) __B,
5538 (__v4di)
5539 _mm256_setzero_si256 (),
5540 (__mmask8) __U);
5541}
5542
Craig Topperd2661882016-05-17 04:41:48 +00005543#define _mm_mask_srli_epi64(W, U, A, imm) __extension__ ({ \
5544 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
5545 (__v2di)(__m128i)(W), \
5546 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005547
Craig Topperd2661882016-05-17 04:41:48 +00005548#define _mm_maskz_srli_epi64(U, A, imm) __extension__ ({ \
5549 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
5550 (__v2di)_mm_setzero_si128(), \
5551 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005552
Craig Topperd2661882016-05-17 04:41:48 +00005553#define _mm256_mask_srli_epi64(W, U, A, imm) __extension__ ({ \
5554 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
5555 (__v4di)(__m256i)(W), \
5556 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005557
Craig Topperd2661882016-05-17 04:41:48 +00005558#define _mm256_maskz_srli_epi64(U, A, imm) __extension__ ({ \
5559 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
5560 (__v4di)_mm256_setzero_si256(), \
5561 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005562
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005563static __inline__ __m128i __DEFAULT_FN_ATTRS
5564_mm_mask_srav_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5565 __m128i __Y)
5566{
5567 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
5568 (__v4si) __Y,
5569 (__v4si) __W,
5570 (__mmask8) __U);
5571}
5572
5573static __inline__ __m128i __DEFAULT_FN_ATTRS
5574_mm_maskz_srav_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5575{
5576 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
5577 (__v4si) __Y,
5578 (__v4si)
5579 _mm_setzero_si128 (),
5580 (__mmask8) __U);
5581}
5582
5583static __inline__ __m256i __DEFAULT_FN_ATTRS
5584_mm256_mask_srav_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5585 __m256i __Y)
5586{
5587 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
5588 (__v8si) __Y,
5589 (__v8si) __W,
5590 (__mmask8) __U);
5591}
5592
5593static __inline__ __m256i __DEFAULT_FN_ATTRS
5594_mm256_maskz_srav_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5595{
5596 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
5597 (__v8si) __Y,
5598 (__v8si)
5599 _mm256_setzero_si256 (),
5600 (__mmask8) __U);
5601}
5602
5603static __inline__ __m128i __DEFAULT_FN_ATTRS
5604_mm_srav_epi64 (__m128i __X, __m128i __Y)
5605{
5606 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5607 (__v2di) __Y,
5608 (__v2di)
5609 _mm_setzero_di (),
5610 (__mmask8) -1);
5611}
5612
5613static __inline__ __m128i __DEFAULT_FN_ATTRS
5614_mm_mask_srav_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5615 __m128i __Y)
5616{
5617 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5618 (__v2di) __Y,
5619 (__v2di) __W,
5620 (__mmask8) __U);
5621}
5622
5623static __inline__ __m128i __DEFAULT_FN_ATTRS
5624_mm_maskz_srav_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5625{
5626 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5627 (__v2di) __Y,
5628 (__v2di)
5629 _mm_setzero_di (),
5630 (__mmask8) __U);
5631}
5632
5633static __inline__ __m256i __DEFAULT_FN_ATTRS
5634_mm256_srav_epi64 (__m256i __X, __m256i __Y)
5635{
5636 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5637 (__v4di) __Y,
5638 (__v4di)
5639 _mm256_setzero_si256 (),
5640 (__mmask8) -1);
5641}
5642
5643static __inline__ __m256i __DEFAULT_FN_ATTRS
5644_mm256_mask_srav_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5645 __m256i __Y)
5646{
5647 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5648 (__v4di) __Y,
5649 (__v4di) __W,
5650 (__mmask8) __U);
5651}
5652
5653static __inline__ __m256i __DEFAULT_FN_ATTRS
5654_mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5655{
5656 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5657 (__v4di) __Y,
5658 (__v4di)
5659 _mm256_setzero_si256 (),
5660 (__mmask8) __U);
5661}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005662
Michael Zuckermane6542002016-05-23 08:01:48 +00005663static __inline__ __m128i __DEFAULT_FN_ATTRS
5664_mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
5665{
Igor Bregeraadb8762016-06-08 13:59:20 +00005666 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5667 (__v4si) __A,
5668 (__v4si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005669}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005670
Michael Zuckermane6542002016-05-23 08:01:48 +00005671static __inline__ __m128i __DEFAULT_FN_ATTRS
5672_mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A)
5673{
Igor Bregeraadb8762016-06-08 13:59:20 +00005674 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5675 (__v4si) __A,
5676 (__v4si) _mm_setzero_si128 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005677}
5678
5679
5680static __inline__ __m256i __DEFAULT_FN_ATTRS
5681_mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
5682{
Igor Bregeraadb8762016-06-08 13:59:20 +00005683 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5684 (__v8si) __A,
5685 (__v8si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005686}
5687
5688static __inline__ __m256i __DEFAULT_FN_ATTRS
5689_mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A)
5690{
Igor Bregeraadb8762016-06-08 13:59:20 +00005691 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5692 (__v8si) __A,
5693 (__v8si) _mm256_setzero_si256 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005694}
5695
5696static __inline__ __m128i __DEFAULT_FN_ATTRS
5697_mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P)
5698{
5699 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5700 (__v4si) __W,
5701 (__mmask8)
5702 __U);
5703}
5704
5705static __inline__ __m128i __DEFAULT_FN_ATTRS
5706_mm_maskz_load_epi32 (__mmask8 __U, void const *__P)
5707{
5708 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5709 (__v4si)
5710 _mm_setzero_si128 (),
5711 (__mmask8)
5712 __U);
5713}
5714
5715static __inline__ __m256i __DEFAULT_FN_ATTRS
5716_mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P)
5717{
5718 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5719 (__v8si) __W,
5720 (__mmask8)
5721 __U);
5722}
5723
5724static __inline__ __m256i __DEFAULT_FN_ATTRS
5725_mm256_maskz_load_epi32 (__mmask8 __U, void const *__P)
5726{
5727 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5728 (__v8si)
5729 _mm256_setzero_si256 (),
5730 (__mmask8)
5731 __U);
5732}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005733
5734static __inline__ void __DEFAULT_FN_ATTRS
5735_mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
5736{
5737 __builtin_ia32_movdqa32store128_mask ((__v4si *) __P,
5738 (__v4si) __A,
5739 (__mmask8) __U);
5740}
5741
5742static __inline__ void __DEFAULT_FN_ATTRS
5743_mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A)
5744{
5745 __builtin_ia32_movdqa32store256_mask ((__v8si *) __P,
5746 (__v8si) __A,
5747 (__mmask8) __U);
5748}
5749
5750static __inline__ __m128i __DEFAULT_FN_ATTRS
5751_mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
5752{
Igor Bregeraadb8762016-06-08 13:59:20 +00005753 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5754 (__v2di) __A,
5755 (__v2di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005756}
5757
5758static __inline__ __m128i __DEFAULT_FN_ATTRS
5759_mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A)
5760{
Igor Bregeraadb8762016-06-08 13:59:20 +00005761 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5762 (__v2di) __A,
5763 (__v2di) _mm_setzero_di ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005764}
5765
5766static __inline__ __m256i __DEFAULT_FN_ATTRS
5767_mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
5768{
Igor Bregeraadb8762016-06-08 13:59:20 +00005769 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5770 (__v4di) __A,
5771 (__v4di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005772}
5773
5774static __inline__ __m256i __DEFAULT_FN_ATTRS
5775_mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A)
5776{
Igor Bregeraadb8762016-06-08 13:59:20 +00005777 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5778 (__v4di) __A,
5779 (__v4di) _mm256_setzero_si256 ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005780}
5781
5782static __inline__ __m128i __DEFAULT_FN_ATTRS
5783_mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P)
5784{
5785 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5786 (__v2di) __W,
5787 (__mmask8)
5788 __U);
5789}
5790
5791static __inline__ __m128i __DEFAULT_FN_ATTRS
5792_mm_maskz_load_epi64 (__mmask8 __U, void const *__P)
5793{
5794 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5795 (__v2di)
5796 _mm_setzero_di (),
5797 (__mmask8)
5798 __U);
5799}
5800
5801static __inline__ __m256i __DEFAULT_FN_ATTRS
5802_mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P)
5803{
5804 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5805 (__v4di) __W,
5806 (__mmask8)
5807 __U);
5808}
5809
5810static __inline__ __m256i __DEFAULT_FN_ATTRS
5811_mm256_maskz_load_epi64 (__mmask8 __U, void const *__P)
5812{
5813 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5814 (__v4di)
5815 _mm256_setzero_si256 (),
5816 (__mmask8)
5817 __U);
5818}
5819
5820static __inline__ void __DEFAULT_FN_ATTRS
5821_mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
5822{
5823 __builtin_ia32_movdqa64store128_mask ((__v2di *) __P,
5824 (__v2di) __A,
5825 (__mmask8) __U);
5826}
5827
5828static __inline__ void __DEFAULT_FN_ATTRS
5829_mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A)
5830{
5831 __builtin_ia32_movdqa64store256_mask ((__v4di *) __P,
5832 (__v4di) __A,
5833 (__mmask8) __U);
5834}
5835
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005836static __inline__ __m128d __DEFAULT_FN_ATTRS
5837_mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A)
5838{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005839 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5840 (__v2df)_mm_movedup_pd(__A),
5841 (__v2df)__W);
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005842}
5843
5844static __inline__ __m128d __DEFAULT_FN_ATTRS
5845_mm_maskz_movedup_pd (__mmask8 __U, __m128d __A)
5846{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005847 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5848 (__v2df)_mm_movedup_pd(__A),
5849 (__v2df)_mm_setzero_pd());
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005850}
5851
5852static __inline__ __m256d __DEFAULT_FN_ATTRS
5853_mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A)
5854{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005855 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5856 (__v4df)_mm256_movedup_pd(__A),
5857 (__v4df)__W);
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005858}
5859
5860static __inline__ __m256d __DEFAULT_FN_ATTRS
5861_mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A)
5862{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005863 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5864 (__v4df)_mm256_movedup_pd(__A),
5865 (__v4df)_mm256_setzero_pd());
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005866}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005867
Michael Zuckerman912be162016-03-07 08:29:10 +00005868
Craig Topperd2661882016-05-17 04:41:48 +00005869#define _mm_mask_set1_epi32(O, M, A) __extension__ ({ \
5870 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
5871 (__v4si)(__m128i)(O), \
5872 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005873
Craig Topperd2661882016-05-17 04:41:48 +00005874#define _mm_maskz_set1_epi32(M, A) __extension__ ({ \
5875 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
5876 (__v4si)_mm_setzero_si128(), \
5877 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005878
Craig Topperd2661882016-05-17 04:41:48 +00005879#define _mm256_mask_set1_epi32(O, M, A) __extension__ ({ \
5880 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
5881 (__v8si)(__m256i)(O), \
5882 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005883
Craig Topperd2661882016-05-17 04:41:48 +00005884#define _mm256_maskz_set1_epi32(M, A) __extension__ ({ \
5885 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
5886 (__v8si)_mm256_setzero_si256(), \
5887 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005888
Craig Topper45db56c2016-07-21 07:38:39 +00005889#ifdef __x86_64__
Michael Zuckerman912be162016-03-07 08:29:10 +00005890static __inline__ __m128i __DEFAULT_FN_ATTRS
5891_mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A)
5892{
5893 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, (__v2di) __O,
5894 __M);
5895}
5896
5897static __inline__ __m128i __DEFAULT_FN_ATTRS
5898_mm_maskz_set1_epi64 (__mmask8 __M, long long __A)
5899{
5900 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A,
5901 (__v2di)
5902 _mm_setzero_si128 (),
5903 __M);
5904}
5905
5906static __inline__ __m256i __DEFAULT_FN_ATTRS
5907_mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A)
5908{
5909 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, (__v4di) __O,
5910 __M);
5911}
5912
5913static __inline__ __m256i __DEFAULT_FN_ATTRS
5914_mm256_maskz_set1_epi64 (__mmask8 __M, long long __A)
5915{
5916 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A,
5917 (__v4di)
5918 _mm256_setzero_si256 (),
5919 __M);
5920}
Craig Topper45db56c2016-07-21 07:38:39 +00005921#endif
Michael Zuckermandef78752016-03-28 12:23:09 +00005922
Craig Topperd2661882016-05-17 04:41:48 +00005923#define _mm_fixupimm_pd(A, B, C, imm) __extension__ ({ \
5924 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
5925 (__v2df)(__m128d)(B), \
5926 (__v2di)(__m128i)(C), (int)(imm), \
5927 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005928
Craig Topperd2661882016-05-17 04:41:48 +00005929#define _mm_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
5930 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
5931 (__v2df)(__m128d)(B), \
5932 (__v2di)(__m128i)(C), (int)(imm), \
5933 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005934
Craig Topperd2661882016-05-17 04:41:48 +00005935#define _mm_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
5936 (__m128d)__builtin_ia32_fixupimmpd128_maskz((__v2df)(__m128d)(A), \
5937 (__v2df)(__m128d)(B), \
5938 (__v2di)(__m128i)(C), \
5939 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005940
Craig Topperd2661882016-05-17 04:41:48 +00005941#define _mm256_fixupimm_pd(A, B, C, imm) __extension__ ({ \
5942 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
5943 (__v4df)(__m256d)(B), \
5944 (__v4di)(__m256i)(C), (int)(imm), \
5945 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005946
Craig Topperd2661882016-05-17 04:41:48 +00005947#define _mm256_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
5948 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
5949 (__v4df)(__m256d)(B), \
5950 (__v4di)(__m256i)(C), (int)(imm), \
5951 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005952
Craig Topperd2661882016-05-17 04:41:48 +00005953#define _mm256_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
5954 (__m256d)__builtin_ia32_fixupimmpd256_maskz((__v4df)(__m256d)(A), \
5955 (__v4df)(__m256d)(B), \
5956 (__v4di)(__m256i)(C), \
5957 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005958
Craig Topperd2661882016-05-17 04:41:48 +00005959#define _mm_fixupimm_ps(A, B, C, imm) __extension__ ({ \
5960 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
5961 (__v4sf)(__m128)(B), \
5962 (__v4si)(__m128i)(C), (int)(imm), \
5963 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005964
Craig Topperd2661882016-05-17 04:41:48 +00005965#define _mm_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
5966 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
5967 (__v4sf)(__m128)(B), \
5968 (__v4si)(__m128i)(C), (int)(imm), \
5969 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005970
Craig Topperd2661882016-05-17 04:41:48 +00005971#define _mm_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
5972 (__m128)__builtin_ia32_fixupimmps128_maskz((__v4sf)(__m128)(A), \
5973 (__v4sf)(__m128)(B), \
5974 (__v4si)(__m128i)(C), (int)(imm), \
5975 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005976
Craig Topperd2661882016-05-17 04:41:48 +00005977#define _mm256_fixupimm_ps(A, B, C, imm) __extension__ ({ \
5978 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
5979 (__v8sf)(__m256)(B), \
5980 (__v8si)(__m256i)(C), (int)(imm), \
5981 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005982
Craig Topperd2661882016-05-17 04:41:48 +00005983#define _mm256_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
5984 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
5985 (__v8sf)(__m256)(B), \
5986 (__v8si)(__m256i)(C), (int)(imm), \
5987 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005988
Craig Topperd2661882016-05-17 04:41:48 +00005989#define _mm256_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
5990 (__m256)__builtin_ia32_fixupimmps256_maskz((__v8sf)(__m256)(A), \
5991 (__v8sf)(__m256)(B), \
5992 (__v8si)(__m256i)(C), (int)(imm), \
5993 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005994
5995static __inline__ __m128d __DEFAULT_FN_ATTRS
5996_mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P)
5997{
5998 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
5999 (__v2df) __W,
6000 (__mmask8) __U);
6001}
6002
6003static __inline__ __m128d __DEFAULT_FN_ATTRS
6004_mm_maskz_load_pd (__mmask8 __U, void const *__P)
6005{
6006 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
6007 (__v2df)
6008 _mm_setzero_pd (),
6009 (__mmask8) __U);
6010}
6011
6012static __inline__ __m256d __DEFAULT_FN_ATTRS
6013_mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P)
6014{
6015 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
6016 (__v4df) __W,
6017 (__mmask8) __U);
6018}
6019
6020static __inline__ __m256d __DEFAULT_FN_ATTRS
6021_mm256_maskz_load_pd (__mmask8 __U, void const *__P)
6022{
6023 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
6024 (__v4df)
6025 _mm256_setzero_pd (),
6026 (__mmask8) __U);
6027}
6028
6029static __inline__ __m128 __DEFAULT_FN_ATTRS
6030_mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P)
6031{
6032 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
6033 (__v4sf) __W,
6034 (__mmask8) __U);
6035}
6036
6037static __inline__ __m128 __DEFAULT_FN_ATTRS
6038_mm_maskz_load_ps (__mmask8 __U, void const *__P)
6039{
6040 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
6041 (__v4sf)
6042 _mm_setzero_ps (),
6043 (__mmask8) __U);
6044}
6045
6046static __inline__ __m256 __DEFAULT_FN_ATTRS
6047_mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P)
6048{
6049 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
6050 (__v8sf) __W,
6051 (__mmask8) __U);
6052}
6053
6054static __inline__ __m256 __DEFAULT_FN_ATTRS
6055_mm256_maskz_load_ps (__mmask8 __U, void const *__P)
6056{
6057 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
6058 (__v8sf)
6059 _mm256_setzero_ps (),
6060 (__mmask8) __U);
6061}
6062
6063static __inline__ __m128i __DEFAULT_FN_ATTRS
6064_mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
6065{
6066 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
6067 (__v2di) __W,
6068 (__mmask8) __U);
6069}
6070
6071static __inline__ __m128i __DEFAULT_FN_ATTRS
6072_mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6073{
6074 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
6075 (__v2di)
6076 _mm_setzero_si128 (),
6077 (__mmask8) __U);
6078}
6079
6080static __inline__ __m256i __DEFAULT_FN_ATTRS
6081_mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P)
6082{
6083 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
6084 (__v4di) __W,
6085 (__mmask8) __U);
6086}
6087
6088static __inline__ __m256i __DEFAULT_FN_ATTRS
6089_mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6090{
6091 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
6092 (__v4di)
6093 _mm256_setzero_si256 (),
6094 (__mmask8) __U);
6095}
6096
6097static __inline__ __m128i __DEFAULT_FN_ATTRS
6098_mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
6099{
6100 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
6101 (__v4si) __W,
6102 (__mmask8) __U);
6103}
6104
6105static __inline__ __m128i __DEFAULT_FN_ATTRS
6106_mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
6107{
6108 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
6109 (__v4si)
6110 _mm_setzero_si128 (),
6111 (__mmask8) __U);
6112}
6113
6114static __inline__ __m256i __DEFAULT_FN_ATTRS
6115_mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P)
6116{
6117 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
6118 (__v8si) __W,
6119 (__mmask8) __U);
6120}
6121
6122static __inline__ __m256i __DEFAULT_FN_ATTRS
6123_mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
6124{
6125 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
6126 (__v8si)
6127 _mm256_setzero_si256 (),
6128 (__mmask8) __U);
6129}
6130
6131static __inline__ __m128d __DEFAULT_FN_ATTRS
6132_mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P)
6133{
6134 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6135 (__v2df) __W,
6136 (__mmask8) __U);
6137}
6138
6139static __inline__ __m128d __DEFAULT_FN_ATTRS
6140_mm_maskz_loadu_pd (__mmask8 __U, void const *__P)
6141{
6142 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6143 (__v2df)
6144 _mm_setzero_pd (),
6145 (__mmask8) __U);
6146}
6147
6148static __inline__ __m256d __DEFAULT_FN_ATTRS
6149_mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P)
6150{
6151 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6152 (__v4df) __W,
6153 (__mmask8) __U);
6154}
6155
6156static __inline__ __m256d __DEFAULT_FN_ATTRS
6157_mm256_maskz_loadu_pd (__mmask8 __U, void const *__P)
6158{
6159 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6160 (__v4df)
6161 _mm256_setzero_pd (),
6162 (__mmask8) __U);
6163}
6164
6165static __inline__ __m128 __DEFAULT_FN_ATTRS
6166_mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P)
6167{
6168 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6169 (__v4sf) __W,
6170 (__mmask8) __U);
6171}
6172
6173static __inline__ __m128 __DEFAULT_FN_ATTRS
6174_mm_maskz_loadu_ps (__mmask8 __U, void const *__P)
6175{
6176 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6177 (__v4sf)
6178 _mm_setzero_ps (),
6179 (__mmask8) __U);
6180}
6181
6182static __inline__ __m256 __DEFAULT_FN_ATTRS
6183_mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P)
6184{
6185 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6186 (__v8sf) __W,
6187 (__mmask8) __U);
6188}
6189
6190static __inline__ __m256 __DEFAULT_FN_ATTRS
6191_mm256_maskz_loadu_ps (__mmask8 __U, void const *__P)
6192{
6193 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6194 (__v8sf)
6195 _mm256_setzero_ps (),
6196 (__mmask8) __U);
6197}
Michael Zuckermanfa7ccc52016-04-10 10:51:04 +00006198
6199static __inline__ void __DEFAULT_FN_ATTRS
6200_mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A)
6201{
6202 __builtin_ia32_storeapd128_mask ((__v2df *) __P,
6203 (__v2df) __A,
6204 (__mmask8) __U);
6205}
6206
6207static __inline__ void __DEFAULT_FN_ATTRS
6208_mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A)
6209{
6210 __builtin_ia32_storeapd256_mask ((__v4df *) __P,
6211 (__v4df) __A,
6212 (__mmask8) __U);
6213}
6214
6215static __inline__ void __DEFAULT_FN_ATTRS
6216_mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A)
6217{
6218 __builtin_ia32_storeaps128_mask ((__v4sf *) __P,
6219 (__v4sf) __A,
6220 (__mmask8) __U);
6221}
6222
6223static __inline__ void __DEFAULT_FN_ATTRS
6224_mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
6225{
6226 __builtin_ia32_storeaps256_mask ((__v8sf *) __P,
6227 (__v8sf) __A,
6228 (__mmask8) __U);
6229}
6230
6231static __inline__ void __DEFAULT_FN_ATTRS
6232_mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
6233{
6234 __builtin_ia32_storedqudi128_mask ((__v2di *) __P,
6235 (__v2di) __A,
6236 (__mmask8) __U);
6237}
6238
6239static __inline__ void __DEFAULT_FN_ATTRS
6240_mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
6241{
6242 __builtin_ia32_storedqudi256_mask ((__v4di *) __P,
6243 (__v4di) __A,
6244 (__mmask8) __U);
6245}
6246
6247static __inline__ void __DEFAULT_FN_ATTRS
6248_mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
6249{
6250 __builtin_ia32_storedqusi128_mask ((__v4si *) __P,
6251 (__v4si) __A,
6252 (__mmask8) __U);
6253}
6254
6255static __inline__ void __DEFAULT_FN_ATTRS
6256_mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
6257{
6258 __builtin_ia32_storedqusi256_mask ((__v8si *) __P,
6259 (__v8si) __A,
6260 (__mmask8) __U);
6261}
6262
6263static __inline__ void __DEFAULT_FN_ATTRS
6264_mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A)
6265{
6266 __builtin_ia32_storeupd128_mask ((__v2df *) __P,
6267 (__v2df) __A,
6268 (__mmask8) __U);
6269}
6270
6271static __inline__ void __DEFAULT_FN_ATTRS
6272_mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A)
6273{
6274 __builtin_ia32_storeupd256_mask ((__v4df *) __P,
6275 (__v4df) __A,
6276 (__mmask8) __U);
6277}
6278
6279static __inline__ void __DEFAULT_FN_ATTRS
6280_mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A)
6281{
6282 __builtin_ia32_storeups128_mask ((__v4sf *) __P,
6283 (__v4sf) __A,
6284 (__mmask8) __U);
6285}
6286
6287static __inline__ void __DEFAULT_FN_ATTRS
6288_mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A)
6289{
6290 __builtin_ia32_storeups256_mask ((__v8sf *) __P,
6291 (__v8sf) __A,
6292 (__mmask8) __U);
6293}
6294
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006295
6296static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006297_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006298{
Craig Topper79f53ca2016-06-23 06:36:42 +00006299 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6300 (__v2df)_mm_unpackhi_pd(__A, __B),
6301 (__v2df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006302}
6303
6304static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006305_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006306{
Craig Topper79f53ca2016-06-23 06:36:42 +00006307 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6308 (__v2df)_mm_unpackhi_pd(__A, __B),
6309 (__v2df)_mm_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006310}
6311
6312static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006313_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006314{
Craig Topper79f53ca2016-06-23 06:36:42 +00006315 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6316 (__v4df)_mm256_unpackhi_pd(__A, __B),
6317 (__v4df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006318}
6319
6320static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006321_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006322{
Craig Topper79f53ca2016-06-23 06:36:42 +00006323 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6324 (__v4df)_mm256_unpackhi_pd(__A, __B),
6325 (__v4df)_mm256_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006326}
6327
6328static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006329_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006330{
Craig Topper79f53ca2016-06-23 06:36:42 +00006331 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6332 (__v4sf)_mm_unpackhi_ps(__A, __B),
6333 (__v4sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006334}
6335
6336static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006337_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006338{
Craig Topper79f53ca2016-06-23 06:36:42 +00006339 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6340 (__v4sf)_mm_unpackhi_ps(__A, __B),
6341 (__v4sf)_mm_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006342}
6343
6344static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006345_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006346{
Craig Topper79f53ca2016-06-23 06:36:42 +00006347 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6348 (__v8sf)_mm256_unpackhi_ps(__A, __B),
6349 (__v8sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006350}
6351
6352static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006353_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006354{
Craig Topper79f53ca2016-06-23 06:36:42 +00006355 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6356 (__v8sf)_mm256_unpackhi_ps(__A, __B),
6357 (__v8sf)_mm256_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006358}
6359
6360static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006361_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006362{
Craig Topper79f53ca2016-06-23 06:36:42 +00006363 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6364 (__v2df)_mm_unpacklo_pd(__A, __B),
6365 (__v2df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006366}
6367
6368static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006369_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006370{
Craig Topper79f53ca2016-06-23 06:36:42 +00006371 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6372 (__v2df)_mm_unpacklo_pd(__A, __B),
6373 (__v2df)_mm_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006374}
6375
6376static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006377_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006378{
Craig Topper79f53ca2016-06-23 06:36:42 +00006379 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6380 (__v4df)_mm256_unpacklo_pd(__A, __B),
6381 (__v4df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006382}
6383
6384static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006385_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006386{
Craig Topper79f53ca2016-06-23 06:36:42 +00006387 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6388 (__v4df)_mm256_unpacklo_pd(__A, __B),
6389 (__v4df)_mm256_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006390}
6391
6392static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006393_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006394{
Craig Topper79f53ca2016-06-23 06:36:42 +00006395 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6396 (__v4sf)_mm_unpacklo_ps(__A, __B),
6397 (__v4sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006398}
6399
6400static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006401_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006402{
Craig Topper79f53ca2016-06-23 06:36:42 +00006403 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6404 (__v4sf)_mm_unpacklo_ps(__A, __B),
6405 (__v4sf)_mm_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006406}
6407
6408static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006409_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006410{
Craig Topper79f53ca2016-06-23 06:36:42 +00006411 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6412 (__v8sf)_mm256_unpacklo_ps(__A, __B),
6413 (__v8sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006414}
6415
6416static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006417_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006418{
Craig Topper79f53ca2016-06-23 06:36:42 +00006419 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6420 (__v8sf)_mm256_unpacklo_ps(__A, __B),
6421 (__v8sf)_mm256_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006422}
6423
6424static __inline__ __m128d __DEFAULT_FN_ATTRS
6425_mm_rcp14_pd (__m128d __A)
6426{
6427 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6428 (__v2df)
6429 _mm_setzero_pd (),
6430 (__mmask8) -1);
6431}
6432
6433static __inline__ __m128d __DEFAULT_FN_ATTRS
6434_mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A)
6435{
6436 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6437 (__v2df) __W,
6438 (__mmask8) __U);
6439}
6440
6441static __inline__ __m128d __DEFAULT_FN_ATTRS
6442_mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A)
6443{
6444 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6445 (__v2df)
6446 _mm_setzero_pd (),
6447 (__mmask8) __U);
6448}
6449
6450static __inline__ __m256d __DEFAULT_FN_ATTRS
6451_mm256_rcp14_pd (__m256d __A)
6452{
6453 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6454 (__v4df)
6455 _mm256_setzero_pd (),
6456 (__mmask8) -1);
6457}
6458
6459static __inline__ __m256d __DEFAULT_FN_ATTRS
6460_mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A)
6461{
6462 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6463 (__v4df) __W,
6464 (__mmask8) __U);
6465}
6466
6467static __inline__ __m256d __DEFAULT_FN_ATTRS
6468_mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A)
6469{
6470 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6471 (__v4df)
6472 _mm256_setzero_pd (),
6473 (__mmask8) __U);
6474}
6475
6476static __inline__ __m128 __DEFAULT_FN_ATTRS
6477_mm_rcp14_ps (__m128 __A)
6478{
6479 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6480 (__v4sf)
6481 _mm_setzero_ps (),
6482 (__mmask8) -1);
6483}
6484
6485static __inline__ __m128 __DEFAULT_FN_ATTRS
6486_mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A)
6487{
6488 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6489 (__v4sf) __W,
6490 (__mmask8) __U);
6491}
6492
6493static __inline__ __m128 __DEFAULT_FN_ATTRS
6494_mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A)
6495{
6496 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6497 (__v4sf)
6498 _mm_setzero_ps (),
6499 (__mmask8) __U);
6500}
6501
6502static __inline__ __m256 __DEFAULT_FN_ATTRS
6503_mm256_rcp14_ps (__m256 __A)
6504{
6505 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6506 (__v8sf)
6507 _mm256_setzero_ps (),
6508 (__mmask8) -1);
6509}
6510
6511static __inline__ __m256 __DEFAULT_FN_ATTRS
6512_mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A)
6513{
6514 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6515 (__v8sf) __W,
6516 (__mmask8) __U);
6517}
6518
6519static __inline__ __m256 __DEFAULT_FN_ATTRS
6520_mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A)
6521{
6522 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6523 (__v8sf)
6524 _mm256_setzero_ps (),
6525 (__mmask8) __U);
6526}
6527
Craig Topperd2661882016-05-17 04:41:48 +00006528#define _mm_mask_permute_pd(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006529 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6530 (__v2df)_mm_permute_pd((X), (C)), \
6531 (__v2df)(__m128d)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006532
Craig Topperd2661882016-05-17 04:41:48 +00006533#define _mm_maskz_permute_pd(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006534 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6535 (__v2df)_mm_permute_pd((X), (C)), \
6536 (__v2df)_mm_setzero_pd()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006537
Craig Topperd2661882016-05-17 04:41:48 +00006538#define _mm256_mask_permute_pd(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006539 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6540 (__v4df)_mm256_permute_pd((X), (C)), \
6541 (__v4df)(__m256d)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006542
Craig Topperd2661882016-05-17 04:41:48 +00006543#define _mm256_maskz_permute_pd(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006544 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6545 (__v4df)_mm256_permute_pd((X), (C)), \
6546 (__v4df)_mm256_setzero_pd()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006547
Craig Topperd2661882016-05-17 04:41:48 +00006548#define _mm_mask_permute_ps(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006549 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6550 (__v4sf)_mm_permute_ps((X), (C)), \
6551 (__v4sf)(__m128)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006552
Craig Topperd2661882016-05-17 04:41:48 +00006553#define _mm_maskz_permute_ps(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006554 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6555 (__v4sf)_mm_permute_ps((X), (C)), \
6556 (__v4sf)_mm_setzero_ps()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006557
Craig Topperd2661882016-05-17 04:41:48 +00006558#define _mm256_mask_permute_ps(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006559 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6560 (__v8sf)_mm256_permute_ps((X), (C)), \
6561 (__v8sf)(__m256)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006562
Craig Topperd2661882016-05-17 04:41:48 +00006563#define _mm256_maskz_permute_ps(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006564 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6565 (__v8sf)_mm256_permute_ps((X), (C)), \
6566 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006567
6568static __inline__ __m128d __DEFAULT_FN_ATTRS
6569_mm_mask_permutevar_pd (__m128d __W, __mmask8 __U, __m128d __A,
6570 __m128i __C)
6571{
6572 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
6573 (__v2di) __C,
6574 (__v2df) __W,
6575 (__mmask8) __U);
6576}
6577
6578static __inline__ __m128d __DEFAULT_FN_ATTRS
6579_mm_maskz_permutevar_pd (__mmask8 __U, __m128d __A, __m128i __C)
6580{
6581 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
6582 (__v2di) __C,
6583 (__v2df)
6584 _mm_setzero_pd (),
6585 (__mmask8) __U);
6586}
6587
6588static __inline__ __m256d __DEFAULT_FN_ATTRS
6589_mm256_mask_permutevar_pd (__m256d __W, __mmask8 __U, __m256d __A,
6590 __m256i __C)
6591{
6592 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
6593 (__v4di) __C,
6594 (__v4df) __W,
6595 (__mmask8)
6596 __U);
6597}
6598
6599static __inline__ __m256d __DEFAULT_FN_ATTRS
6600_mm256_maskz_permutevar_pd (__mmask8 __U, __m256d __A, __m256i __C)
6601{
6602 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
6603 (__v4di) __C,
6604 (__v4df)
6605 _mm256_setzero_pd (),
6606 (__mmask8)
6607 __U);
6608}
6609
6610static __inline__ __m128 __DEFAULT_FN_ATTRS
6611_mm_mask_permutevar_ps (__m128 __W, __mmask8 __U, __m128 __A,
6612 __m128i __C)
6613{
6614 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
6615 (__v4si) __C,
6616 (__v4sf) __W,
6617 (__mmask8) __U);
6618}
6619
6620static __inline__ __m128 __DEFAULT_FN_ATTRS
6621_mm_maskz_permutevar_ps (__mmask8 __U, __m128 __A, __m128i __C)
6622{
6623 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
6624 (__v4si) __C,
6625 (__v4sf)
6626 _mm_setzero_ps (),
6627 (__mmask8) __U);
6628}
6629
6630static __inline__ __m256 __DEFAULT_FN_ATTRS
6631_mm256_mask_permutevar_ps (__m256 __W, __mmask8 __U, __m256 __A,
6632 __m256i __C)
6633{
6634 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
6635 (__v8si) __C,
6636 (__v8sf) __W,
6637 (__mmask8) __U);
6638}
6639
6640static __inline__ __m256 __DEFAULT_FN_ATTRS
6641_mm256_maskz_permutevar_ps (__mmask8 __U, __m256 __A, __m256i __C)
6642{
6643 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
6644 (__v8si) __C,
6645 (__v8sf)
6646 _mm256_setzero_ps (),
6647 (__mmask8) __U);
6648}
6649
Michael Zuckerman07525092016-04-11 10:22:07 +00006650static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6651_mm_test_epi32_mask (__m128i __A, __m128i __B)
6652{
6653 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6654 (__v4si) __B,
6655 (__mmask8) -1);
6656}
6657
6658static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6659_mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6660{
6661 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6662 (__v4si) __B, __U);
6663}
6664
6665static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6666_mm256_test_epi32_mask (__m256i __A, __m256i __B)
6667{
6668 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6669 (__v8si) __B,
6670 (__mmask8) -1);
6671}
6672
6673static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6674_mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6675{
6676 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6677 (__v8si) __B, __U);
6678}
6679
6680static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6681_mm_test_epi64_mask (__m128i __A, __m128i __B)
6682{
6683 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6684 (__v2di) __B,
6685 (__mmask8) -1);
6686}
6687
6688static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6689_mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6690{
6691 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6692 (__v2di) __B, __U);
6693}
6694
6695static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6696_mm256_test_epi64_mask (__m256i __A, __m256i __B)
6697{
6698 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
6699 (__v4di) __B,
6700 (__mmask8) -1);
6701}
6702
6703static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6704_mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6705{
6706 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
6707 (__v4di) __B, __U);
6708}
6709
6710static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6711_mm_testn_epi32_mask (__m128i __A, __m128i __B)
6712{
6713 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
6714 (__v4si) __B,
6715 (__mmask8) -1);
6716}
6717
6718static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6719_mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6720{
6721 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
6722 (__v4si) __B, __U);
6723}
6724
6725static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6726_mm256_testn_epi32_mask (__m256i __A, __m256i __B)
6727{
6728 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
6729 (__v8si) __B,
6730 (__mmask8) -1);
6731}
6732
6733static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6734_mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6735{
6736 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
6737 (__v8si) __B, __U);
6738}
6739
6740static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6741_mm_testn_epi64_mask (__m128i __A, __m128i __B)
6742{
6743 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
6744 (__v2di) __B,
6745 (__mmask8) -1);
6746}
6747
6748static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6749_mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6750{
6751 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
6752 (__v2di) __B, __U);
6753}
6754
6755static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6756_mm256_testn_epi64_mask (__m256i __A, __m256i __B)
6757{
6758 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
6759 (__v4di) __B,
6760 (__mmask8) -1);
6761}
6762
6763static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6764_mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6765{
6766 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
6767 (__v4di) __B, __U);
6768}
6769
6770
6771
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006772static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006773_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006774{
Craig Topper79f53ca2016-06-23 06:36:42 +00006775 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6776 (__v4si)_mm_unpackhi_epi32(__A, __B),
6777 (__v4si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006778}
6779
6780static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006781_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006782{
Craig Topper79f53ca2016-06-23 06:36:42 +00006783 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6784 (__v4si)_mm_unpackhi_epi32(__A, __B),
6785 (__v4si)_mm_setzero_si128());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006786}
6787
6788static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006789_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006790{
Craig Topper79f53ca2016-06-23 06:36:42 +00006791 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6792 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6793 (__v8si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006794}
6795
6796static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006797_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006798{
Craig Topper79f53ca2016-06-23 06:36:42 +00006799 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6800 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6801 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006802}
6803
6804static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006805_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006806{
Craig Topper79f53ca2016-06-23 06:36:42 +00006807 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6808 (__v2di)_mm_unpackhi_epi64(__A, __B),
6809 (__v2di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006810}
6811
6812static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006813_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006814{
Craig Topper79f53ca2016-06-23 06:36:42 +00006815 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6816 (__v2di)_mm_unpackhi_epi64(__A, __B),
6817 (__v2di)_mm_setzero_di());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006818}
6819
6820static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006821_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006822{
Craig Topper79f53ca2016-06-23 06:36:42 +00006823 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6824 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6825 (__v4di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006826}
6827
6828static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006829_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006830{
Craig Topper79f53ca2016-06-23 06:36:42 +00006831 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6832 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6833 (__v4di)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006834}
6835
6836static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006837_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006838{
Craig Topper79f53ca2016-06-23 06:36:42 +00006839 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6840 (__v4si)_mm_unpacklo_epi32(__A, __B),
6841 (__v4si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006842}
6843
6844static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006845_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006846{
Craig Topper79f53ca2016-06-23 06:36:42 +00006847 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6848 (__v4si)_mm_unpacklo_epi32(__A, __B),
6849 (__v4si)_mm_setzero_si128());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006850}
6851
6852static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006853_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006854{
Craig Topper79f53ca2016-06-23 06:36:42 +00006855 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6856 (__v8si)_mm256_unpacklo_epi32(__A, __B),
6857 (__v8si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006858}
6859
6860static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006861_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006862{
Craig Topper79f53ca2016-06-23 06:36:42 +00006863 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6864 (__v8si)_mm256_unpacklo_epi32(__A, __B),
6865 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006866}
6867
6868static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006869_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006870{
Craig Topper79f53ca2016-06-23 06:36:42 +00006871 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6872 (__v2di)_mm_unpacklo_epi64(__A, __B),
6873 (__v2di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006874}
6875
6876static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006877_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006878{
Craig Topper79f53ca2016-06-23 06:36:42 +00006879 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6880 (__v2di)_mm_unpacklo_epi64(__A, __B),
6881 (__v2di)_mm_setzero_di());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006882}
6883
6884static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006885_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006886{
Craig Topper79f53ca2016-06-23 06:36:42 +00006887 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6888 (__v4di)_mm256_unpacklo_epi64(__A, __B),
6889 (__v4di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006890}
6891
6892static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006893_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006894{
Craig Topper79f53ca2016-06-23 06:36:42 +00006895 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6896 (__v4di)_mm256_unpacklo_epi64(__A, __B),
6897 (__v4di)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006898}
6899
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006900static __inline__ __m128i __DEFAULT_FN_ATTRS
6901_mm_mask_sra_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
6902 __m128i __B)
6903{
6904 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
6905 (__v4si) __B,
6906 (__v4si) __W,
6907 (__mmask8) __U);
6908}
6909
6910static __inline__ __m128i __DEFAULT_FN_ATTRS
6911_mm_maskz_sra_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
6912{
6913 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
6914 (__v4si) __B,
6915 (__v4si)
6916 _mm_setzero_si128 (),
6917 (__mmask8) __U);
6918}
6919
6920static __inline__ __m256i __DEFAULT_FN_ATTRS
6921_mm256_mask_sra_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
6922 __m128i __B)
6923{
6924 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
6925 (__v4si) __B,
6926 (__v8si) __W,
6927 (__mmask8) __U);
6928}
6929
6930static __inline__ __m256i __DEFAULT_FN_ATTRS
6931_mm256_maskz_sra_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
6932{
6933 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
6934 (__v4si) __B,
6935 (__v8si)
6936 _mm256_setzero_si256 (),
6937 (__mmask8) __U);
6938}
6939
Craig Topperd2661882016-05-17 04:41:48 +00006940#define _mm_mask_srai_epi32(W, U, A, imm) __extension__ ({ \
6941 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \
6942 (__v4si)(__m128i)(W), \
6943 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006944
Craig Topperd2661882016-05-17 04:41:48 +00006945#define _mm_maskz_srai_epi32(U, A, imm) __extension__ ({ \
6946 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \
6947 (__v4si)_mm_setzero_si128(), \
6948 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006949
Craig Topperd2661882016-05-17 04:41:48 +00006950#define _mm256_mask_srai_epi32(W, U, A, imm) __extension__ ({ \
6951 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \
6952 (__v8si)(__m256i)(W), \
6953 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006954
Craig Topperd2661882016-05-17 04:41:48 +00006955#define _mm256_maskz_srai_epi32(U, A, imm) __extension__ ({ \
6956 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \
6957 (__v8si)_mm256_setzero_si256(), \
6958 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006959
6960static __inline__ __m128i __DEFAULT_FN_ATTRS
6961_mm_sra_epi64 (__m128i __A, __m128i __B)
6962{
6963 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
6964 (__v2di) __B,
6965 (__v2di)
6966 _mm_setzero_di (),
6967 (__mmask8) -1);
6968}
6969
6970static __inline__ __m128i __DEFAULT_FN_ATTRS
6971_mm_mask_sra_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
6972 __m128i __B)
6973{
6974 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
6975 (__v2di) __B,
6976 (__v2di) __W,
6977 (__mmask8) __U);
6978}
6979
6980static __inline__ __m128i __DEFAULT_FN_ATTRS
6981_mm_maskz_sra_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
6982{
6983 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
6984 (__v2di) __B,
6985 (__v2di)
6986 _mm_setzero_di (),
6987 (__mmask8) __U);
6988}
6989
6990static __inline__ __m256i __DEFAULT_FN_ATTRS
6991_mm256_sra_epi64 (__m256i __A, __m128i __B)
6992{
6993 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
6994 (__v2di) __B,
6995 (__v4di)
6996 _mm256_setzero_si256 (),
6997 (__mmask8) -1);
6998}
6999
7000static __inline__ __m256i __DEFAULT_FN_ATTRS
7001_mm256_mask_sra_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
7002 __m128i __B)
7003{
7004 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
7005 (__v2di) __B,
7006 (__v4di) __W,
7007 (__mmask8) __U);
7008}
7009
7010static __inline__ __m256i __DEFAULT_FN_ATTRS
7011_mm256_maskz_sra_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
7012{
7013 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
7014 (__v2di) __B,
7015 (__v4di)
7016 _mm256_setzero_si256 (),
7017 (__mmask8) __U);
7018}
7019
Craig Topperd2661882016-05-17 04:41:48 +00007020#define _mm_srai_epi64(A, imm) __extension__ ({ \
7021 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7022 (__v2di)_mm_setzero_di(), \
7023 (__mmask8)-1); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007024
Craig Topperd2661882016-05-17 04:41:48 +00007025#define _mm_mask_srai_epi64(W, U, A, imm) __extension__ ({ \
7026 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7027 (__v2di)(__m128i)(W), \
7028 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007029
Craig Topperd2661882016-05-17 04:41:48 +00007030#define _mm_maskz_srai_epi64(U, A, imm) __extension__ ({ \
7031 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7032 (__v2di)_mm_setzero_si128(), \
7033 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007034
Craig Topperd2661882016-05-17 04:41:48 +00007035#define _mm256_srai_epi64(A, imm) __extension__ ({ \
7036 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7037 (__v4di)_mm256_setzero_si256(), \
7038 (__mmask8)-1); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007039
Craig Topperd2661882016-05-17 04:41:48 +00007040#define _mm256_mask_srai_epi64(W, U, A, imm) __extension__ ({ \
7041 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7042 (__v4di)(__m256i)(W), \
7043 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007044
Craig Topperd2661882016-05-17 04:41:48 +00007045#define _mm256_maskz_srai_epi64(U, A, imm) __extension__ ({ \
7046 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7047 (__v4di)_mm256_setzero_si256(), \
7048 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007049
Craig Topperd2661882016-05-17 04:41:48 +00007050#define _mm_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
7051 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
7052 (__v4si)(__m128i)(B), \
7053 (__v4si)(__m128i)(C), (int)(imm), \
7054 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007055
Craig Topperd2661882016-05-17 04:41:48 +00007056#define _mm_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
7057 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
7058 (__v4si)(__m128i)(B), \
7059 (__v4si)(__m128i)(C), (int)(imm), \
7060 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007061
Craig Topperd2661882016-05-17 04:41:48 +00007062#define _mm_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
7063 (__m128i)__builtin_ia32_pternlogd128_maskz((__v4si)(__m128i)(A), \
7064 (__v4si)(__m128i)(B), \
7065 (__v4si)(__m128i)(C), (int)(imm), \
7066 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007067
Craig Topperd2661882016-05-17 04:41:48 +00007068#define _mm256_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
7069 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
7070 (__v8si)(__m256i)(B), \
7071 (__v8si)(__m256i)(C), (int)(imm), \
7072 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007073
Craig Topperd2661882016-05-17 04:41:48 +00007074#define _mm256_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
7075 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
7076 (__v8si)(__m256i)(B), \
7077 (__v8si)(__m256i)(C), (int)(imm), \
7078 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007079
Craig Topperd2661882016-05-17 04:41:48 +00007080#define _mm256_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
7081 (__m256i)__builtin_ia32_pternlogd256_maskz((__v8si)(__m256i)(A), \
7082 (__v8si)(__m256i)(B), \
7083 (__v8si)(__m256i)(C), (int)(imm), \
7084 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007085
Craig Topperd2661882016-05-17 04:41:48 +00007086#define _mm_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
7087 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
7088 (__v2di)(__m128i)(B), \
7089 (__v2di)(__m128i)(C), (int)(imm), \
7090 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007091
Craig Topperd2661882016-05-17 04:41:48 +00007092#define _mm_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
7093 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
7094 (__v2di)(__m128i)(B), \
7095 (__v2di)(__m128i)(C), (int)(imm), \
7096 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007097
Craig Topperd2661882016-05-17 04:41:48 +00007098#define _mm_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
7099 (__m128i)__builtin_ia32_pternlogq128_maskz((__v2di)(__m128i)(A), \
7100 (__v2di)(__m128i)(B), \
7101 (__v2di)(__m128i)(C), (int)(imm), \
7102 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007103
Craig Topperd2661882016-05-17 04:41:48 +00007104#define _mm256_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
7105 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
7106 (__v4di)(__m256i)(B), \
7107 (__v4di)(__m256i)(C), (int)(imm), \
7108 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007109
Craig Topperd2661882016-05-17 04:41:48 +00007110#define _mm256_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
7111 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
7112 (__v4di)(__m256i)(B), \
7113 (__v4di)(__m256i)(C), (int)(imm), \
7114 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007115
Craig Topperd2661882016-05-17 04:41:48 +00007116#define _mm256_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
7117 (__m256i)__builtin_ia32_pternlogq256_maskz((__v4di)(__m256i)(A), \
7118 (__v4di)(__m256i)(B), \
7119 (__v4di)(__m256i)(C), (int)(imm), \
7120 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007121
7122
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007123
Craig Topperd2661882016-05-17 04:41:48 +00007124#define _mm256_shuffle_f32x4(A, B, imm) __extension__ ({ \
7125 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7126 (__v8sf)(__m256)(B), (int)(imm), \
7127 (__v8sf)_mm256_setzero_ps(), \
7128 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007129
Craig Topperd2661882016-05-17 04:41:48 +00007130#define _mm256_mask_shuffle_f32x4(W, U, A, B, imm) __extension__ ({ \
7131 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7132 (__v8sf)(__m256)(B), (int)(imm), \
7133 (__v8sf)(__m256)(W), \
7134 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007135
Craig Topperd2661882016-05-17 04:41:48 +00007136#define _mm256_maskz_shuffle_f32x4(U, A, B, imm) __extension__ ({ \
7137 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7138 (__v8sf)(__m256)(B), (int)(imm), \
7139 (__v8sf)_mm256_setzero_ps(), \
7140 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007141
Craig Topperd2661882016-05-17 04:41:48 +00007142#define _mm256_shuffle_f64x2(A, B, imm) __extension__ ({ \
7143 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7144 (__v4df)(__m256d)(B), \
7145 (int)(imm), \
7146 (__v4df)_mm256_setzero_pd(), \
7147 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007148
Craig Topperd2661882016-05-17 04:41:48 +00007149#define _mm256_mask_shuffle_f64x2(W, U, A, B, imm) __extension__ ({ \
7150 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7151 (__v4df)(__m256d)(B), \
7152 (int)(imm), \
7153 (__v4df)(__m256d)(W), \
7154 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007155
Craig Topperd2661882016-05-17 04:41:48 +00007156#define _mm256_maskz_shuffle_f64x2(U, A, B, imm) __extension__ ({ \
7157 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7158 (__v4df)(__m256d)(B), \
7159 (int)(imm), \
7160 (__v4df)_mm256_setzero_pd(), \
7161 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007162
Craig Topperd2661882016-05-17 04:41:48 +00007163#define _mm256_shuffle_i32x4(A, B, imm) __extension__ ({ \
7164 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7165 (__v8si)(__m256i)(B), \
7166 (int)(imm), \
7167 (__v8si)_mm256_setzero_si256(), \
7168 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007169
Craig Topperd2661882016-05-17 04:41:48 +00007170#define _mm256_mask_shuffle_i32x4(W, U, A, B, imm) __extension__ ({ \
7171 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7172 (__v8si)(__m256i)(B), \
7173 (int)(imm), \
7174 (__v8si)(__m256i)(W), \
7175 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007176
Craig Topperd2661882016-05-17 04:41:48 +00007177#define _mm256_maskz_shuffle_i32x4(U, A, B, imm) __extension__ ({ \
7178 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7179 (__v8si)(__m256i)(B), \
7180 (int)(imm), \
7181 (__v8si)_mm256_setzero_si256(), \
7182 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007183
Craig Topperd2661882016-05-17 04:41:48 +00007184#define _mm256_shuffle_i64x2(A, B, imm) __extension__ ({ \
7185 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7186 (__v4di)(__m256i)(B), \
7187 (int)(imm), \
7188 (__v4di)_mm256_setzero_si256(), \
7189 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007190
Craig Topperd2661882016-05-17 04:41:48 +00007191#define _mm256_mask_shuffle_i64x2(W, U, A, B, imm) __extension__ ({ \
7192 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7193 (__v4di)(__m256i)(B), \
7194 (int)(imm), \
7195 (__v4di)(__m256i)(W), \
7196 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007197
Craig Topperd2661882016-05-17 04:41:48 +00007198#define _mm256_maskz_shuffle_i64x2(U, A, B, imm) __extension__ ({ \
7199 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7200 (__v4di)(__m256i)(B), \
7201 (int)(imm), \
7202 (__v4di)_mm256_setzero_si256(), \
7203 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007204
Simon Pilgrim427154d2016-07-04 21:30:47 +00007205#define _mm_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7206 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
7207 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
7208 (__v2df)(__m128d)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007209
Simon Pilgrim427154d2016-07-04 21:30:47 +00007210#define _mm_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7211 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
7212 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
7213 (__v2df)_mm_setzero_pd()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007214
Simon Pilgrim427154d2016-07-04 21:30:47 +00007215#define _mm256_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7216 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
7217 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
7218 (__v4df)(__m256d)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007219
Simon Pilgrim427154d2016-07-04 21:30:47 +00007220#define _mm256_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7221 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
7222 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
7223 (__v4df)_mm256_setzero_pd()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007224
Simon Pilgrim427154d2016-07-04 21:30:47 +00007225#define _mm_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7226 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
7227 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
7228 (__v4sf)(__m128)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007229
Simon Pilgrim427154d2016-07-04 21:30:47 +00007230#define _mm_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7231 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
7232 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
7233 (__v4sf)_mm_setzero_ps()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007234
Simon Pilgrim427154d2016-07-04 21:30:47 +00007235#define _mm256_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7236 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7237 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
7238 (__v8sf)(__m256)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007239
Simon Pilgrim427154d2016-07-04 21:30:47 +00007240#define _mm256_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7241 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7242 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
7243 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007244
7245static __inline__ __m128d __DEFAULT_FN_ATTRS
7246_mm_rsqrt14_pd (__m128d __A)
7247{
7248 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7249 (__v2df)
7250 _mm_setzero_pd (),
7251 (__mmask8) -1);
7252}
7253
7254static __inline__ __m128d __DEFAULT_FN_ATTRS
7255_mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A)
7256{
7257 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7258 (__v2df) __W,
7259 (__mmask8) __U);
7260}
7261
7262static __inline__ __m128d __DEFAULT_FN_ATTRS
7263_mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A)
7264{
7265 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7266 (__v2df)
7267 _mm_setzero_pd (),
7268 (__mmask8) __U);
7269}
7270
7271static __inline__ __m256d __DEFAULT_FN_ATTRS
7272_mm256_rsqrt14_pd (__m256d __A)
7273{
7274 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7275 (__v4df)
7276 _mm256_setzero_pd (),
7277 (__mmask8) -1);
7278}
7279
7280static __inline__ __m256d __DEFAULT_FN_ATTRS
7281_mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A)
7282{
7283 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7284 (__v4df) __W,
7285 (__mmask8) __U);
7286}
7287
7288static __inline__ __m256d __DEFAULT_FN_ATTRS
7289_mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A)
7290{
7291 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7292 (__v4df)
7293 _mm256_setzero_pd (),
7294 (__mmask8) __U);
7295}
7296
7297static __inline__ __m128 __DEFAULT_FN_ATTRS
7298_mm_rsqrt14_ps (__m128 __A)
7299{
7300 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7301 (__v4sf)
7302 _mm_setzero_ps (),
7303 (__mmask8) -1);
7304}
7305
7306static __inline__ __m128 __DEFAULT_FN_ATTRS
7307_mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A)
7308{
7309 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7310 (__v4sf) __W,
7311 (__mmask8) __U);
7312}
7313
7314static __inline__ __m128 __DEFAULT_FN_ATTRS
7315_mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A)
7316{
7317 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7318 (__v4sf)
7319 _mm_setzero_ps (),
7320 (__mmask8) __U);
7321}
7322
7323static __inline__ __m256 __DEFAULT_FN_ATTRS
7324_mm256_rsqrt14_ps (__m256 __A)
7325{
7326 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7327 (__v8sf)
7328 _mm256_setzero_ps (),
7329 (__mmask8) -1);
7330}
7331
7332static __inline__ __m256 __DEFAULT_FN_ATTRS
7333_mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A)
7334{
7335 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7336 (__v8sf) __W,
7337 (__mmask8) __U);
7338}
7339
7340static __inline__ __m256 __DEFAULT_FN_ATTRS
7341_mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A)
7342{
7343 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7344 (__v8sf)
7345 _mm256_setzero_ps (),
7346 (__mmask8) __U);
7347}
7348
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007349static __inline__ __m256 __DEFAULT_FN_ATTRS
7350_mm256_broadcast_f32x4 (__m128 __A)
7351{
7352 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7353 (__v8sf)_mm256_undefined_pd (),
Craig Topper406d5cd2016-06-04 05:43:37 +00007354 (__mmask8) -1);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007355}
7356
7357static __inline__ __m256 __DEFAULT_FN_ATTRS
7358_mm256_mask_broadcast_f32x4 (__m256 __O, __mmask8 __M, __m128 __A)
7359{
7360 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7361 (__v8sf) __O,
7362 __M);
7363}
7364
7365static __inline__ __m256 __DEFAULT_FN_ATTRS
7366_mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A)
7367{
7368 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7369 (__v8sf) _mm256_setzero_ps (),
7370 __M);
7371}
7372
7373static __inline__ __m256i __DEFAULT_FN_ATTRS
7374_mm256_broadcast_i32x4 (__m128i __A)
7375{
7376 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
7377 (__v8si)_mm256_undefined_si256 (),
Craig Topper406d5cd2016-06-04 05:43:37 +00007378 (__mmask8) -1);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007379}
7380
7381static __inline__ __m256i __DEFAULT_FN_ATTRS
7382_mm256_mask_broadcast_i32x4 (__m256i __O, __mmask8 __M, __m128i __A)
7383{
7384 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
7385 (__v8si)
7386 __O, __M);
7387}
7388
7389static __inline__ __m256i __DEFAULT_FN_ATTRS
7390_mm256_maskz_broadcast_i32x4 (__mmask8 __M, __m128i __A)
7391{
7392 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si)
7393 __A,
7394 (__v8si) _mm256_setzero_si256 (),
7395 __M);
7396}
7397
7398static __inline__ __m256d __DEFAULT_FN_ATTRS
7399_mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A)
7400{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007401 return (__m256d)__builtin_ia32_selectpd_256(__M,
7402 (__v4df) _mm256_broadcastsd_pd(__A),
7403 (__v4df) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007404}
7405
7406static __inline__ __m256d __DEFAULT_FN_ATTRS
7407_mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
7408{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007409 return (__m256d)__builtin_ia32_selectpd_256(__M,
7410 (__v4df) _mm256_broadcastsd_pd(__A),
7411 (__v4df) _mm256_setzero_pd());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007412}
7413
7414static __inline__ __m128 __DEFAULT_FN_ATTRS
7415_mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A)
7416{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007417 return (__m128)__builtin_ia32_selectps_128(__M,
7418 (__v4sf) _mm_broadcastss_ps(__A),
7419 (__v4sf) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007420}
7421
7422static __inline__ __m128 __DEFAULT_FN_ATTRS
7423_mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7424{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007425 return (__m128)__builtin_ia32_selectps_128(__M,
7426 (__v4sf) _mm_broadcastss_ps(__A),
7427 (__v4sf) _mm_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007428}
7429
7430static __inline__ __m256 __DEFAULT_FN_ATTRS
7431_mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A)
7432{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007433 return (__m256)__builtin_ia32_selectps_256(__M,
7434 (__v8sf) _mm256_broadcastss_ps(__A),
7435 (__v8sf) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007436}
7437
7438static __inline__ __m256 __DEFAULT_FN_ATTRS
7439_mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7440{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007441 return (__m256)__builtin_ia32_selectps_256(__M,
7442 (__v8sf) _mm256_broadcastss_ps(__A),
7443 (__v8sf) _mm256_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007444}
7445
7446static __inline__ __m128i __DEFAULT_FN_ATTRS
7447_mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7448{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007449 return (__m128i)__builtin_ia32_selectd_128(__M,
7450 (__v4si) _mm_broadcastd_epi32(__A),
7451 (__v4si) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007452}
7453
7454static __inline__ __m128i __DEFAULT_FN_ATTRS
7455_mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7456{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007457 return (__m128i)__builtin_ia32_selectd_128(__M,
7458 (__v4si) _mm_broadcastd_epi32(__A),
7459 (__v4si) _mm_setzero_si128());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007460}
7461
7462static __inline__ __m256i __DEFAULT_FN_ATTRS
7463_mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A)
7464{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007465 return (__m256i)__builtin_ia32_selectd_256(__M,
7466 (__v8si) _mm256_broadcastd_epi32(__A),
7467 (__v8si) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007468}
7469
7470static __inline__ __m256i __DEFAULT_FN_ATTRS
7471_mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7472{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007473 return (__m256i)__builtin_ia32_selectd_256(__M,
7474 (__v8si) _mm256_broadcastd_epi32(__A),
7475 (__v8si) _mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007476}
7477
7478static __inline__ __m128i __DEFAULT_FN_ATTRS
7479_mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A)
7480{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007481 return (__m128i)__builtin_ia32_selectq_128(__M,
7482 (__v2di) _mm_broadcastq_epi64(__A),
7483 (__v2di) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007484}
7485
7486static __inline__ __m128i __DEFAULT_FN_ATTRS
7487_mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7488{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007489 return (__m128i)__builtin_ia32_selectq_128(__M,
7490 (__v2di) _mm_broadcastq_epi64(__A),
7491 (__v2di) _mm_setzero_si128());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007492}
7493
7494static __inline__ __m256i __DEFAULT_FN_ATTRS
7495_mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A)
7496{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007497 return (__m256i)__builtin_ia32_selectq_256(__M,
7498 (__v4di) _mm256_broadcastq_epi64(__A),
7499 (__v4di) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007500}
7501
7502static __inline__ __m256i __DEFAULT_FN_ATTRS
7503_mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7504{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007505 return (__m256i)__builtin_ia32_selectq_256(__M,
7506 (__v4di) _mm256_broadcastq_epi64(__A),
7507 (__v4di) _mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007508}
7509
Michael Zuckermane1680612016-04-13 15:02:04 +00007510static __inline__ __m128i __DEFAULT_FN_ATTRS
7511_mm_cvtsepi32_epi8 (__m128i __A)
7512{
7513 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7514 (__v16qi)_mm_undefined_si128(),
7515 (__mmask8) -1);
7516}
7517
7518static __inline__ __m128i __DEFAULT_FN_ATTRS
7519_mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7520{
7521 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7522 (__v16qi) __O, __M);
7523}
7524
7525static __inline__ __m128i __DEFAULT_FN_ATTRS
7526_mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A)
7527{
7528 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7529 (__v16qi) _mm_setzero_si128 (),
7530 __M);
7531}
7532
7533static __inline__ void __DEFAULT_FN_ATTRS
7534_mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7535{
7536 __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7537}
7538
7539static __inline__ __m128i __DEFAULT_FN_ATTRS
7540_mm256_cvtsepi32_epi8 (__m256i __A)
7541{
7542 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7543 (__v16qi)_mm_undefined_si128(),
7544 (__mmask8) -1);
7545}
7546
7547static __inline__ __m128i __DEFAULT_FN_ATTRS
7548_mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7549{
7550 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7551 (__v16qi) __O, __M);
7552}
7553
7554static __inline__ __m128i __DEFAULT_FN_ATTRS
7555_mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A)
7556{
7557 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7558 (__v16qi) _mm_setzero_si128 (),
7559 __M);
7560}
7561
7562static __inline__ void __DEFAULT_FN_ATTRS
7563_mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7564{
7565 __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
7566}
7567
7568static __inline__ __m128i __DEFAULT_FN_ATTRS
7569_mm_cvtsepi32_epi16 (__m128i __A)
7570{
7571 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7572 (__v8hi)_mm_setzero_si128 (),
7573 (__mmask8) -1);
7574}
7575
7576static __inline__ __m128i __DEFAULT_FN_ATTRS
7577_mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7578{
7579 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7580 (__v8hi)__O,
7581 __M);
7582}
7583
7584static __inline__ __m128i __DEFAULT_FN_ATTRS
7585_mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A)
7586{
7587 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7588 (__v8hi) _mm_setzero_si128 (),
7589 __M);
7590}
7591
7592static __inline__ void __DEFAULT_FN_ATTRS
7593_mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7594{
7595 __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7596}
7597
7598static __inline__ __m128i __DEFAULT_FN_ATTRS
7599_mm256_cvtsepi32_epi16 (__m256i __A)
7600{
7601 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7602 (__v8hi)_mm_undefined_si128(),
7603 (__mmask8) -1);
7604}
7605
7606static __inline__ __m128i __DEFAULT_FN_ATTRS
7607_mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7608{
7609 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7610 (__v8hi) __O, __M);
7611}
7612
7613static __inline__ __m128i __DEFAULT_FN_ATTRS
7614_mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A)
7615{
7616 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7617 (__v8hi) _mm_setzero_si128 (),
7618 __M);
7619}
7620
7621static __inline__ void __DEFAULT_FN_ATTRS
7622_mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7623{
7624 __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7625}
7626
7627static __inline__ __m128i __DEFAULT_FN_ATTRS
7628_mm_cvtsepi64_epi8 (__m128i __A)
7629{
7630 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7631 (__v16qi)_mm_undefined_si128(),
7632 (__mmask8) -1);
7633}
7634
7635static __inline__ __m128i __DEFAULT_FN_ATTRS
7636_mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7637{
7638 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7639 (__v16qi) __O, __M);
7640}
7641
7642static __inline__ __m128i __DEFAULT_FN_ATTRS
7643_mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A)
7644{
7645 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7646 (__v16qi) _mm_setzero_si128 (),
7647 __M);
7648}
7649
7650static __inline__ void __DEFAULT_FN_ATTRS
7651_mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7652{
7653 __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7654}
7655
7656static __inline__ __m128i __DEFAULT_FN_ATTRS
7657_mm256_cvtsepi64_epi8 (__m256i __A)
7658{
7659 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7660 (__v16qi)_mm_undefined_si128(),
7661 (__mmask8) -1);
7662}
7663
7664static __inline__ __m128i __DEFAULT_FN_ATTRS
7665_mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7666{
7667 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7668 (__v16qi) __O, __M);
7669}
7670
7671static __inline__ __m128i __DEFAULT_FN_ATTRS
7672_mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A)
7673{
7674 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7675 (__v16qi) _mm_setzero_si128 (),
7676 __M);
7677}
7678
7679static __inline__ void __DEFAULT_FN_ATTRS
7680_mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7681{
7682 __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7683}
7684
7685static __inline__ __m128i __DEFAULT_FN_ATTRS
7686_mm_cvtsepi64_epi32 (__m128i __A)
7687{
7688 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7689 (__v4si)_mm_undefined_si128(),
7690 (__mmask8) -1);
7691}
7692
7693static __inline__ __m128i __DEFAULT_FN_ATTRS
7694_mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7695{
7696 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7697 (__v4si) __O, __M);
7698}
7699
7700static __inline__ __m128i __DEFAULT_FN_ATTRS
7701_mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A)
7702{
7703 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7704 (__v4si) _mm_setzero_si128 (),
7705 __M);
7706}
7707
7708static __inline__ void __DEFAULT_FN_ATTRS
7709_mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
7710{
7711 __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
7712}
7713
7714static __inline__ __m128i __DEFAULT_FN_ATTRS
7715_mm256_cvtsepi64_epi32 (__m256i __A)
7716{
7717 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7718 (__v4si)_mm_undefined_si128(),
7719 (__mmask8) -1);
7720}
7721
7722static __inline__ __m128i __DEFAULT_FN_ATTRS
7723_mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
7724{
7725 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7726 (__v4si)__O,
7727 __M);
7728}
7729
7730static __inline__ __m128i __DEFAULT_FN_ATTRS
7731_mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A)
7732{
7733 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7734 (__v4si) _mm_setzero_si128 (),
7735 __M);
7736}
7737
7738static __inline__ void __DEFAULT_FN_ATTRS
7739_mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
7740{
7741 __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
7742}
7743
7744static __inline__ __m128i __DEFAULT_FN_ATTRS
7745_mm_cvtsepi64_epi16 (__m128i __A)
7746{
7747 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7748 (__v8hi)_mm_undefined_si128(),
7749 (__mmask8) -1);
7750}
7751
7752static __inline__ __m128i __DEFAULT_FN_ATTRS
7753_mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7754{
7755 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7756 (__v8hi) __O, __M);
7757}
7758
7759static __inline__ __m128i __DEFAULT_FN_ATTRS
7760_mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A)
7761{
7762 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7763 (__v8hi) _mm_setzero_si128 (),
7764 __M);
7765}
7766
7767static __inline__ void __DEFAULT_FN_ATTRS
7768_mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7769{
7770 __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
7771}
7772
7773static __inline__ __m128i __DEFAULT_FN_ATTRS
7774_mm256_cvtsepi64_epi16 (__m256i __A)
7775{
7776 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7777 (__v8hi)_mm_undefined_si128(),
7778 (__mmask8) -1);
7779}
7780
7781static __inline__ __m128i __DEFAULT_FN_ATTRS
7782_mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7783{
7784 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7785 (__v8hi) __O, __M);
7786}
7787
7788static __inline__ __m128i __DEFAULT_FN_ATTRS
7789_mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A)
7790{
7791 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7792 (__v8hi) _mm_setzero_si128 (),
7793 __M);
7794}
7795
7796static __inline__ void __DEFAULT_FN_ATTRS
7797_mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7798{
7799 __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
7800}
7801
Michael Zuckermand8715312016-04-14 06:48:09 +00007802static __inline__ __m128i __DEFAULT_FN_ATTRS
7803_mm_cvtusepi32_epi8 (__m128i __A)
7804{
7805 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7806 (__v16qi)_mm_undefined_si128(),
7807 (__mmask8) -1);
7808}
7809
7810static __inline__ __m128i __DEFAULT_FN_ATTRS
7811_mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7812{
7813 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7814 (__v16qi) __O,
7815 __M);
7816}
7817
7818static __inline__ __m128i __DEFAULT_FN_ATTRS
7819_mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A)
7820{
7821 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7822 (__v16qi) _mm_setzero_si128 (),
7823 __M);
7824}
7825
7826static __inline__ void __DEFAULT_FN_ATTRS
7827_mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7828{
7829 __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7830}
7831
7832static __inline__ __m128i __DEFAULT_FN_ATTRS
7833_mm256_cvtusepi32_epi8 (__m256i __A)
7834{
7835 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7836 (__v16qi)_mm_undefined_si128(),
7837 (__mmask8) -1);
7838}
7839
7840static __inline__ __m128i __DEFAULT_FN_ATTRS
7841_mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7842{
7843 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7844 (__v16qi) __O,
7845 __M);
7846}
7847
7848static __inline__ __m128i __DEFAULT_FN_ATTRS
7849_mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A)
7850{
7851 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7852 (__v16qi) _mm_setzero_si128 (),
7853 __M);
7854}
7855
7856static __inline__ void __DEFAULT_FN_ATTRS
7857_mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7858{
7859 __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M);
7860}
7861
7862static __inline__ __m128i __DEFAULT_FN_ATTRS
7863_mm_cvtusepi32_epi16 (__m128i __A)
7864{
7865 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7866 (__v8hi)_mm_undefined_si128(),
7867 (__mmask8) -1);
7868}
7869
7870static __inline__ __m128i __DEFAULT_FN_ATTRS
7871_mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7872{
7873 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7874 (__v8hi) __O, __M);
7875}
7876
7877static __inline__ __m128i __DEFAULT_FN_ATTRS
7878_mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A)
7879{
7880 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7881 (__v8hi) _mm_setzero_si128 (),
7882 __M);
7883}
7884
7885static __inline__ void __DEFAULT_FN_ATTRS
7886_mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7887{
7888 __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7889}
7890
7891static __inline__ __m128i __DEFAULT_FN_ATTRS
7892_mm256_cvtusepi32_epi16 (__m256i __A)
7893{
7894 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7895 (__v8hi) _mm_undefined_si128(),
7896 (__mmask8) -1);
7897}
7898
7899static __inline__ __m128i __DEFAULT_FN_ATTRS
7900_mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7901{
7902 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7903 (__v8hi) __O, __M);
7904}
7905
7906static __inline__ __m128i __DEFAULT_FN_ATTRS
7907_mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A)
7908{
7909 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7910 (__v8hi) _mm_setzero_si128 (),
7911 __M);
7912}
7913
7914static __inline__ void __DEFAULT_FN_ATTRS
7915_mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7916{
7917 __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7918}
7919
7920static __inline__ __m128i __DEFAULT_FN_ATTRS
7921_mm_cvtusepi64_epi8 (__m128i __A)
7922{
7923 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7924 (__v16qi)_mm_undefined_si128(),
7925 (__mmask8) -1);
7926}
7927
7928static __inline__ __m128i __DEFAULT_FN_ATTRS
7929_mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7930{
7931 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7932 (__v16qi) __O,
7933 __M);
7934}
7935
7936static __inline__ __m128i __DEFAULT_FN_ATTRS
7937_mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A)
7938{
7939 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7940 (__v16qi) _mm_setzero_si128 (),
7941 __M);
7942}
7943
7944static __inline__ void __DEFAULT_FN_ATTRS
7945_mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7946{
7947 __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7948}
7949
7950static __inline__ __m128i __DEFAULT_FN_ATTRS
7951_mm256_cvtusepi64_epi8 (__m256i __A)
7952{
7953 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7954 (__v16qi)_mm_undefined_si128(),
7955 (__mmask8) -1);
7956}
7957
7958static __inline__ __m128i __DEFAULT_FN_ATTRS
7959_mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7960{
7961 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7962 (__v16qi) __O,
7963 __M);
7964}
7965
7966static __inline__ __m128i __DEFAULT_FN_ATTRS
7967_mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A)
7968{
7969 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7970 (__v16qi) _mm_setzero_si128 (),
7971 __M);
7972}
7973
7974static __inline__ void __DEFAULT_FN_ATTRS
7975_mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7976{
7977 __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7978}
7979
7980static __inline__ __m128i __DEFAULT_FN_ATTRS
7981_mm_cvtusepi64_epi32 (__m128i __A)
7982{
7983 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7984 (__v4si)_mm_undefined_si128(),
7985 (__mmask8) -1);
7986}
7987
7988static __inline__ __m128i __DEFAULT_FN_ATTRS
7989_mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7990{
7991 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7992 (__v4si) __O, __M);
7993}
7994
7995static __inline__ __m128i __DEFAULT_FN_ATTRS
7996_mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A)
7997{
7998 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7999 (__v4si) _mm_setzero_si128 (),
8000 __M);
8001}
8002
8003static __inline__ void __DEFAULT_FN_ATTRS
8004_mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
8005{
8006 __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
8007}
8008
8009static __inline__ __m128i __DEFAULT_FN_ATTRS
8010_mm256_cvtusepi64_epi32 (__m256i __A)
8011{
8012 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8013 (__v4si)_mm_undefined_si128(),
8014 (__mmask8) -1);
8015}
8016
8017static __inline__ __m128i __DEFAULT_FN_ATTRS
8018_mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
8019{
8020 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8021 (__v4si) __O, __M);
8022}
8023
8024static __inline__ __m128i __DEFAULT_FN_ATTRS
8025_mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A)
8026{
8027 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8028 (__v4si) _mm_setzero_si128 (),
8029 __M);
8030}
8031
8032static __inline__ void __DEFAULT_FN_ATTRS
8033_mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8034{
8035 __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8036}
8037
8038static __inline__ __m128i __DEFAULT_FN_ATTRS
8039_mm_cvtusepi64_epi16 (__m128i __A)
8040{
8041 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8042 (__v8hi)_mm_undefined_si128(),
8043 (__mmask8) -1);
8044}
8045
8046static __inline__ __m128i __DEFAULT_FN_ATTRS
8047_mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8048{
8049 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8050 (__v8hi) __O, __M);
8051}
8052
8053static __inline__ __m128i __DEFAULT_FN_ATTRS
8054_mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A)
8055{
8056 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8057 (__v8hi) _mm_setzero_si128 (),
8058 __M);
8059}
8060
8061static __inline__ void __DEFAULT_FN_ATTRS
8062_mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8063{
8064 __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8065}
8066
8067static __inline__ __m128i __DEFAULT_FN_ATTRS
8068_mm256_cvtusepi64_epi16 (__m256i __A)
8069{
8070 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8071 (__v8hi)_mm_undefined_si128(),
8072 (__mmask8) -1);
8073}
8074
8075static __inline__ __m128i __DEFAULT_FN_ATTRS
8076_mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8077{
8078 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8079 (__v8hi) __O, __M);
8080}
8081
8082static __inline__ __m128i __DEFAULT_FN_ATTRS
8083_mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A)
8084{
8085 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8086 (__v8hi) _mm_setzero_si128 (),
8087 __M);
8088}
8089
8090static __inline__ void __DEFAULT_FN_ATTRS
8091_mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8092{
8093 return __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8094}
8095
Michael Zuckerman0a3508a2016-04-14 07:56:51 +00008096static __inline__ __m128i __DEFAULT_FN_ATTRS
8097_mm_cvtepi32_epi8 (__m128i __A)
8098{
8099 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8100 (__v16qi)_mm_undefined_si128(),
8101 (__mmask8) -1);
8102}
8103
8104static __inline__ __m128i __DEFAULT_FN_ATTRS
8105_mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8106{
8107 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8108 (__v16qi) __O, __M);
8109}
8110
8111static __inline__ __m128i __DEFAULT_FN_ATTRS
8112_mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A)
8113{
8114 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8115 (__v16qi)
8116 _mm_setzero_si128 (),
8117 __M);
8118}
8119
8120static __inline__ void __DEFAULT_FN_ATTRS
8121_mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8122{
8123 __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
8124}
8125
8126static __inline__ __m128i __DEFAULT_FN_ATTRS
8127_mm256_cvtepi32_epi8 (__m256i __A)
8128{
8129 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8130 (__v16qi)_mm_undefined_si128(),
8131 (__mmask8) -1);
8132}
8133
8134static __inline__ __m128i __DEFAULT_FN_ATTRS
8135_mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8136{
8137 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8138 (__v16qi) __O, __M);
8139}
8140
8141static __inline__ __m128i __DEFAULT_FN_ATTRS
8142_mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A)
8143{
8144 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8145 (__v16qi) _mm_setzero_si128 (),
8146 __M);
8147}
8148
8149static __inline__ void __DEFAULT_FN_ATTRS
8150_mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8151{
8152 __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
8153}
8154
8155static __inline__ __m128i __DEFAULT_FN_ATTRS
8156_mm_cvtepi32_epi16 (__m128i __A)
8157{
8158 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8159 (__v8hi) _mm_setzero_si128 (),
8160 (__mmask8) -1);
8161}
8162
8163static __inline__ __m128i __DEFAULT_FN_ATTRS
8164_mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8165{
8166 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8167 (__v8hi) __O, __M);
8168}
8169
8170static __inline__ __m128i __DEFAULT_FN_ATTRS
8171_mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A)
8172{
8173 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8174 (__v8hi) _mm_setzero_si128 (),
8175 __M);
8176}
8177
8178static __inline__ void __DEFAULT_FN_ATTRS
8179_mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8180{
8181 __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
8182}
8183
8184static __inline__ __m128i __DEFAULT_FN_ATTRS
8185_mm256_cvtepi32_epi16 (__m256i __A)
8186{
8187 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8188 (__v8hi)_mm_setzero_si128 (),
8189 (__mmask8) -1);
8190}
8191
8192static __inline__ __m128i __DEFAULT_FN_ATTRS
8193_mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8194{
8195 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8196 (__v8hi) __O, __M);
8197}
8198
8199static __inline__ __m128i __DEFAULT_FN_ATTRS
8200_mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A)
8201{
8202 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8203 (__v8hi) _mm_setzero_si128 (),
8204 __M);
8205}
8206
8207static __inline__ void __DEFAULT_FN_ATTRS
8208_mm256_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8209{
8210 __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
8211}
8212
8213static __inline__ __m128i __DEFAULT_FN_ATTRS
8214_mm_cvtepi64_epi8 (__m128i __A)
8215{
8216 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8217 (__v16qi) _mm_undefined_si128(),
8218 (__mmask8) -1);
8219}
8220
8221static __inline__ __m128i __DEFAULT_FN_ATTRS
8222_mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8223{
8224 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8225 (__v16qi) __O, __M);
8226}
8227
8228static __inline__ __m128i __DEFAULT_FN_ATTRS
8229_mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A)
8230{
8231 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8232 (__v16qi) _mm_setzero_si128 (),
8233 __M);
8234}
8235
8236static __inline__ void __DEFAULT_FN_ATTRS
8237_mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8238{
8239 __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
8240}
8241
8242static __inline__ __m128i __DEFAULT_FN_ATTRS
8243_mm256_cvtepi64_epi8 (__m256i __A)
8244{
8245 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8246 (__v16qi) _mm_undefined_si128(),
8247 (__mmask8) -1);
8248}
8249
8250static __inline__ __m128i __DEFAULT_FN_ATTRS
8251_mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8252{
8253 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8254 (__v16qi) __O, __M);
8255}
8256
8257static __inline__ __m128i __DEFAULT_FN_ATTRS
8258_mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A)
8259{
8260 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8261 (__v16qi) _mm_setzero_si128 (),
8262 __M);
8263}
8264
8265static __inline__ void __DEFAULT_FN_ATTRS
8266_mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8267{
8268 __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
8269}
8270
8271static __inline__ __m128i __DEFAULT_FN_ATTRS
8272_mm_cvtepi64_epi32 (__m128i __A)
8273{
8274 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8275 (__v4si)_mm_undefined_si128(),
8276 (__mmask8) -1);
8277}
8278
8279static __inline__ __m128i __DEFAULT_FN_ATTRS
8280_mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
8281{
8282 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8283 (__v4si) __O, __M);
8284}
8285
8286static __inline__ __m128i __DEFAULT_FN_ATTRS
8287_mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A)
8288{
8289 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8290 (__v4si) _mm_setzero_si128 (),
8291 __M);
8292}
8293
8294static __inline__ void __DEFAULT_FN_ATTRS
8295_mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
8296{
8297 __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
8298}
8299
8300static __inline__ __m128i __DEFAULT_FN_ATTRS
8301_mm256_cvtepi64_epi32 (__m256i __A)
8302{
8303 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8304 (__v4si) _mm_undefined_si128(),
8305 (__mmask8) -1);
8306}
8307
8308static __inline__ __m128i __DEFAULT_FN_ATTRS
8309_mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
8310{
8311 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8312 (__v4si) __O, __M);
8313}
8314
8315static __inline__ __m128i __DEFAULT_FN_ATTRS
8316_mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A)
8317{
8318 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8319 (__v4si) _mm_setzero_si128 (),
8320 __M);
8321}
8322
8323static __inline__ void __DEFAULT_FN_ATTRS
8324_mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8325{
8326 __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8327}
8328
8329static __inline__ __m128i __DEFAULT_FN_ATTRS
8330_mm_cvtepi64_epi16 (__m128i __A)
8331{
8332 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8333 (__v8hi) _mm_undefined_si128(),
8334 (__mmask8) -1);
8335}
8336
8337static __inline__ __m128i __DEFAULT_FN_ATTRS
8338_mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8339{
8340 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8341 (__v8hi)__O,
8342 __M);
8343}
8344
8345static __inline__ __m128i __DEFAULT_FN_ATTRS
8346_mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A)
8347{
8348 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8349 (__v8hi) _mm_setzero_si128 (),
8350 __M);
8351}
8352
8353static __inline__ void __DEFAULT_FN_ATTRS
8354_mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8355{
8356 __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8357}
8358
8359static __inline__ __m128i __DEFAULT_FN_ATTRS
8360_mm256_cvtepi64_epi16 (__m256i __A)
8361{
8362 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8363 (__v8hi)_mm_undefined_si128(),
8364 (__mmask8) -1);
8365}
8366
8367static __inline__ __m128i __DEFAULT_FN_ATTRS
8368_mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8369{
8370 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8371 (__v8hi) __O, __M);
8372}
8373
8374static __inline__ __m128i __DEFAULT_FN_ATTRS
8375_mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A)
8376{
8377 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8378 (__v8hi) _mm_setzero_si128 (),
8379 __M);
8380}
8381
8382static __inline__ void __DEFAULT_FN_ATTRS
8383_mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8384{
8385 __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8386}
8387
Craig Topperd2661882016-05-17 04:41:48 +00008388#define _mm256_extractf32x4_ps(A, imm) __extension__ ({ \
8389 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8390 (int)(imm), \
8391 (__v4sf)_mm_setzero_ps(), \
8392 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008393
Craig Topperd2661882016-05-17 04:41:48 +00008394#define _mm256_mask_extractf32x4_ps(W, U, A, imm) __extension__ ({ \
8395 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8396 (int)(imm), \
8397 (__v4sf)(__m128)(W), \
8398 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008399
Craig Topperd2661882016-05-17 04:41:48 +00008400#define _mm256_maskz_extractf32x4_ps(U, A, imm) __extension__ ({ \
8401 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8402 (int)(imm), \
8403 (__v4sf)_mm_setzero_ps(), \
8404 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008405
Craig Topperd2661882016-05-17 04:41:48 +00008406#define _mm256_extracti32x4_epi32(A, imm) __extension__ ({ \
8407 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8408 (int)(imm), \
8409 (__v4si)_mm_setzero_si128(), \
8410 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008411
Craig Topperd2661882016-05-17 04:41:48 +00008412#define _mm256_mask_extracti32x4_epi32(W, U, A, imm) __extension__ ({ \
8413 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8414 (int)(imm), \
8415 (__v4si)(__m128i)(W), \
8416 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008417
Craig Topperd2661882016-05-17 04:41:48 +00008418#define _mm256_maskz_extracti32x4_epi32(U, A, imm) __extension__ ({ \
8419 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8420 (int)(imm), \
8421 (__v4si)_mm_setzero_si128(), \
8422 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008423
Craig Topperd2661882016-05-17 04:41:48 +00008424#define _mm256_insertf32x4(A, B, imm) __extension__ ({ \
8425 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8426 (__v4sf)(__m128)(B), (int)(imm), \
8427 (__v8sf)_mm256_setzero_ps(), \
8428 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008429
Craig Topperd2661882016-05-17 04:41:48 +00008430#define _mm256_mask_insertf32x4(W, U, A, B, imm) __extension__ ({ \
8431 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8432 (__v4sf)(__m128)(B), (int)(imm), \
8433 (__v8sf)(__m256)(W), \
8434 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008435
Craig Topperd2661882016-05-17 04:41:48 +00008436#define _mm256_maskz_insertf32x4(U, A, B, imm) __extension__ ({ \
8437 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8438 (__v4sf)(__m128)(B), (int)(imm), \
8439 (__v8sf)_mm256_setzero_ps(), \
8440 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008441
Craig Topperd2661882016-05-17 04:41:48 +00008442#define _mm256_inserti32x4(A, B, imm) __extension__ ({ \
8443 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8444 (__v4si)(__m128i)(B), \
8445 (int)(imm), \
8446 (__v8si)_mm256_setzero_si256(), \
8447 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008448
Craig Topperd2661882016-05-17 04:41:48 +00008449#define _mm256_mask_inserti32x4(W, U, A, B, imm) __extension__ ({ \
8450 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8451 (__v4si)(__m128i)(B), \
8452 (int)(imm), \
8453 (__v8si)(__m256i)(W), \
8454 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008455
Craig Topperd2661882016-05-17 04:41:48 +00008456#define _mm256_maskz_inserti32x4(U, A, B, imm) __extension__ ({ \
8457 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8458 (__v4si)(__m128i)(B), \
8459 (int)(imm), \
8460 (__v8si)_mm256_setzero_si256(), \
8461 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008462
Craig Topperd2661882016-05-17 04:41:48 +00008463#define _mm_getmant_pd(A, B, C) __extension__({\
8464 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8465 (int)(((C)<<2) | (B)), \
8466 (__v2df)_mm_setzero_pd(), \
8467 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008468
Craig Topperd2661882016-05-17 04:41:48 +00008469#define _mm_mask_getmant_pd(W, U, A, B, C) __extension__({\
8470 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8471 (int)(((C)<<2) | (B)), \
8472 (__v2df)(__m128d)(W), \
8473 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008474
Craig Topperd2661882016-05-17 04:41:48 +00008475#define _mm_maskz_getmant_pd(U, A, B, C) __extension__({\
8476 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8477 (int)(((C)<<2) | (B)), \
8478 (__v2df)_mm_setzero_pd(), \
8479 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008480
Craig Topperd2661882016-05-17 04:41:48 +00008481#define _mm256_getmant_pd(A, B, C) __extension__ ({ \
8482 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8483 (int)(((C)<<2) | (B)), \
8484 (__v4df)_mm256_setzero_pd(), \
8485 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008486
Craig Topperd2661882016-05-17 04:41:48 +00008487#define _mm256_mask_getmant_pd(W, U, A, B, C) __extension__ ({ \
8488 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8489 (int)(((C)<<2) | (B)), \
8490 (__v4df)(__m256d)(W), \
8491 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008492
Craig Topperd2661882016-05-17 04:41:48 +00008493#define _mm256_maskz_getmant_pd(U, A, B, C) __extension__ ({ \
8494 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8495 (int)(((C)<<2) | (B)), \
8496 (__v4df)_mm256_setzero_pd(), \
8497 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008498
Craig Topperd2661882016-05-17 04:41:48 +00008499#define _mm_getmant_ps(A, B, C) __extension__ ({ \
8500 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8501 (int)(((C)<<2) | (B)), \
8502 (__v4sf)_mm_setzero_ps(), \
8503 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008504
Craig Topperd2661882016-05-17 04:41:48 +00008505#define _mm_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8506 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8507 (int)(((C)<<2) | (B)), \
8508 (__v4sf)(__m128)(W), \
8509 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008510
Craig Topperd2661882016-05-17 04:41:48 +00008511#define _mm_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8512 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8513 (int)(((C)<<2) | (B)), \
8514 (__v4sf)_mm_setzero_ps(), \
8515 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008516
Craig Topperd2661882016-05-17 04:41:48 +00008517#define _mm256_getmant_ps(A, B, C) __extension__ ({ \
8518 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8519 (int)(((C)<<2) | (B)), \
8520 (__v8sf)_mm256_setzero_ps(), \
8521 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008522
Craig Topperd2661882016-05-17 04:41:48 +00008523#define _mm256_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8524 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8525 (int)(((C)<<2) | (B)), \
8526 (__v8sf)(__m256)(W), \
8527 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008528
Craig Topperd2661882016-05-17 04:41:48 +00008529#define _mm256_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8530 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8531 (int)(((C)<<2) | (B)), \
8532 (__v8sf)_mm256_setzero_ps(), \
8533 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008534
Craig Topperd2661882016-05-17 04:41:48 +00008535#define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8536 (__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \
8537 (double const *)(addr), \
8538 (__v2di)(__m128i)(index), \
8539 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008540
Craig Topperd2661882016-05-17 04:41:48 +00008541#define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8542 (__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \
8543 (long long const *)(addr), \
8544 (__v2di)(__m128i)(index), \
8545 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008546
Craig Topperd2661882016-05-17 04:41:48 +00008547#define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8548 (__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \
8549 (double const *)(addr), \
8550 (__v4di)(__m256i)(index), \
8551 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008552
Craig Topperd2661882016-05-17 04:41:48 +00008553#define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8554 (__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \
8555 (long long const *)(addr), \
8556 (__v4di)(__m256i)(index), \
8557 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008558
Craig Topperd2661882016-05-17 04:41:48 +00008559#define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8560 (__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \
8561 (float const *)(addr), \
8562 (__v2di)(__m128i)(index), \
8563 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008564
Craig Topperd2661882016-05-17 04:41:48 +00008565#define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8566 (__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \
8567 (int const *)(addr), \
8568 (__v2di)(__m128i)(index), \
8569 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008570
Craig Topperd2661882016-05-17 04:41:48 +00008571#define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8572 (__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \
8573 (float const *)(addr), \
8574 (__v4di)(__m256i)(index), \
8575 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008576
Craig Topperd2661882016-05-17 04:41:48 +00008577#define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8578 (__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \
8579 (int const *)(addr), \
8580 (__v4di)(__m256i)(index), \
8581 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008582
Craig Topperd2661882016-05-17 04:41:48 +00008583#define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8584 (__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \
8585 (double const *)(addr), \
8586 (__v4si)(__m128i)(index), \
8587 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008588
Craig Topperd2661882016-05-17 04:41:48 +00008589#define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8590 (__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \
8591 (long long const *)(addr), \
8592 (__v4si)(__m128i)(index), \
8593 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008594
Craig Topperd2661882016-05-17 04:41:48 +00008595#define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8596 (__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \
8597 (double const *)(addr), \
8598 (__v4si)(__m128i)(index), \
8599 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008600
Craig Topperd2661882016-05-17 04:41:48 +00008601#define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8602 (__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \
8603 (long long const *)(addr), \
8604 (__v4si)(__m128i)(index), \
8605 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008606
Craig Topperd2661882016-05-17 04:41:48 +00008607#define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8608 (__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \
8609 (float const *)(addr), \
8610 (__v4si)(__m128i)(index), \
8611 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008612
Craig Topperd2661882016-05-17 04:41:48 +00008613#define _mm_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8614 (__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \
8615 (int const *)(addr), \
8616 (__v4si)(__m128i)(index), \
8617 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008618
Craig Topperd2661882016-05-17 04:41:48 +00008619#define _mm256_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8620 (__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \
8621 (float const *)(addr), \
8622 (__v8si)(__m256i)(index), \
8623 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008624
Craig Topperd2661882016-05-17 04:41:48 +00008625#define _mm256_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8626 (__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \
8627 (int const *)(addr), \
8628 (__v8si)(__m256i)(index), \
8629 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008630
Simon Pilgrim30db8112016-07-04 13:34:44 +00008631#define _mm256_permutex_pd(X, C) __extension__ ({ \
8632 (__m256d)__builtin_shufflevector((__v4df)(__m256d)(X), \
8633 (__v4df)_mm256_undefined_pd(), \
Craig Topper2a383c92016-07-04 22:18:01 +00008634 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \
8635 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008636
Simon Pilgrim30db8112016-07-04 13:34:44 +00008637#define _mm256_mask_permutex_pd(W, U, X, C) __extension__ ({ \
8638 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8639 (__v4df)_mm256_permutex_pd((X), (C)), \
8640 (__v4df)(__m256d)(W)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008641
Simon Pilgrim30db8112016-07-04 13:34:44 +00008642#define _mm256_maskz_permutex_pd(U, X, C) __extension__ ({ \
8643 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8644 (__v4df)_mm256_permutex_pd((X), (C)), \
8645 (__v4df)_mm256_setzero_pd()); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008646
Simon Pilgrim30db8112016-07-04 13:34:44 +00008647#define _mm256_permutex_epi64(X, C) __extension__ ({ \
8648 (__m256i)__builtin_shufflevector((__v4di)(__m256i)(X), \
8649 (__v4di)_mm256_undefined_si256(), \
Craig Topper2a383c92016-07-04 22:18:01 +00008650 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \
8651 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008652
Simon Pilgrim30db8112016-07-04 13:34:44 +00008653#define _mm256_mask_permutex_epi64(W, U, X, C) __extension__ ({ \
8654 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8655 (__v4di)_mm256_permutex_epi64((X), (C)), \
8656 (__v4di)(__m256i)(W)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008657
Simon Pilgrim30db8112016-07-04 13:34:44 +00008658#define _mm256_maskz_permutex_epi64(U, X, C) __extension__ ({ \
8659 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8660 (__v4di)_mm256_permutex_epi64((X), (C)), \
8661 (__v4di)_mm256_setzero_si256()); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008662
8663static __inline__ __m256d __DEFAULT_FN_ATTRS
8664_mm256_permutexvar_pd (__m256i __X, __m256d __Y)
8665{
8666 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8667 (__v4di) __X,
8668 (__v4df) _mm256_undefined_si256 (),
8669 (__mmask8) -1);
8670}
8671
8672static __inline__ __m256d __DEFAULT_FN_ATTRS
8673_mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X,
8674 __m256d __Y)
8675{
8676 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8677 (__v4di) __X,
8678 (__v4df) __W,
8679 (__mmask8) __U);
8680}
8681
8682static __inline__ __m256d __DEFAULT_FN_ATTRS
8683_mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y)
8684{
8685 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8686 (__v4di) __X,
8687 (__v4df) _mm256_setzero_pd (),
8688 (__mmask8) __U);
8689}
8690
8691static __inline__ __m256i __DEFAULT_FN_ATTRS
8692_mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
8693{
8694 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8695 (__v4di) __X,
8696 (__v4di) _mm256_setzero_si256 (),
8697 (__mmask8) __M);
8698}
8699
8700static __inline__ __m256i __DEFAULT_FN_ATTRS
Michael Zuckermana72b49ef2016-07-05 11:30:31 +00008701_mm256_permutexvar_epi64 ( __m256i __X, __m256i __Y)
Michael Zuckerman8938e832016-04-25 05:32:35 +00008702{
8703 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8704 (__v4di) __X,
8705 (__v4di) _mm256_undefined_si256 (),
8706 (__mmask8) -1);
8707}
8708
8709static __inline__ __m256i __DEFAULT_FN_ATTRS
8710_mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X,
8711 __m256i __Y)
8712{
8713 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8714 (__v4di) __X,
8715 (__v4di) __W,
8716 __M);
8717}
8718
8719static __inline__ __m256 __DEFAULT_FN_ATTRS
8720_mm256_mask_permutexvar_ps (__m256 __W, __mmask8 __U, __m256i __X,
8721 __m256 __Y)
8722{
8723 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8724 (__v8si) __X,
8725 (__v8sf) __W,
8726 (__mmask8) __U);
8727}
8728
8729static __inline__ __m256 __DEFAULT_FN_ATTRS
8730_mm256_maskz_permutexvar_ps (__mmask8 __U, __m256i __X, __m256 __Y)
8731{
8732 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8733 (__v8si) __X,
8734 (__v8sf) _mm256_setzero_ps (),
8735 (__mmask8) __U);
8736}
8737
8738static __inline__ __m256 __DEFAULT_FN_ATTRS
8739_mm256_permutexvar_ps (__m256i __X, __m256 __Y)
8740{
8741 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8742 (__v8si) __X,
8743 (__v8sf) _mm256_undefined_si256 (),
8744 (__mmask8) -1);
8745}
8746
8747static __inline__ __m256i __DEFAULT_FN_ATTRS
8748_mm256_maskz_permutexvar_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
8749{
8750 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8751 (__v8si) __X,
8752 (__v8si) _mm256_setzero_si256 (),
8753 __M);
8754}
8755
8756static __inline__ __m256i __DEFAULT_FN_ATTRS
8757_mm256_mask_permutexvar_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
8758 __m256i __Y)
8759{
8760 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8761 (__v8si) __X,
8762 (__v8si) __W,
8763 (__mmask8) __M);
8764}
8765
8766static __inline__ __m256i __DEFAULT_FN_ATTRS
8767_mm256_permutexvar_epi32 (__m256i __X, __m256i __Y)
8768{
8769 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8770 (__v8si) __X,
8771 (__v8si) _mm256_undefined_si256(),
8772 (__mmask8) -1);
8773}
8774
Craig Topperd2661882016-05-17 04:41:48 +00008775#define _mm_alignr_epi32(A, B, imm) __extension__ ({ \
8776 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8777 (__v4si)(__m128i)(B), (int)(imm), \
8778 (__v4si)_mm_undefined_si128(), \
8779 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008780
Craig Topperd2661882016-05-17 04:41:48 +00008781#define _mm_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
8782 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8783 (__v4si)(__m128i)(B), (int)(imm), \
8784 (__v4si)(__m128i)(W), \
8785 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008786
Craig Topperd2661882016-05-17 04:41:48 +00008787#define _mm_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
8788 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8789 (__v4si)(__m128i)(B), (int)(imm), \
8790 (__v4si)_mm_setzero_si128(), \
8791 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008792
Craig Topperd2661882016-05-17 04:41:48 +00008793#define _mm256_alignr_epi32(A, B, imm) __extension__ ({ \
8794 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8795 (__v8si)(__m256i)(B), (int)(imm), \
8796 (__v8si)_mm256_undefined_si256(), \
8797 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008798
Craig Topperd2661882016-05-17 04:41:48 +00008799#define _mm256_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
8800 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8801 (__v8si)(__m256i)(B), (int)(imm), \
8802 (__v8si)(__m256i)(W), \
8803 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008804
Craig Topperd2661882016-05-17 04:41:48 +00008805#define _mm256_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
8806 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8807 (__v8si)(__m256i)(B), (int)(imm), \
8808 (__v8si)_mm256_setzero_si256(), \
8809 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008810
Craig Topperd2661882016-05-17 04:41:48 +00008811#define _mm_alignr_epi64(A, B, imm) __extension__ ({ \
8812 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8813 (__v2di)(__m128i)(B), (int)(imm), \
8814 (__v2di)_mm_setzero_di(), \
8815 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008816
Craig Topperd2661882016-05-17 04:41:48 +00008817#define _mm_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
8818 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8819 (__v2di)(__m128i)(B), (int)(imm), \
8820 (__v2di)(__m128i)(W), \
8821 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008822
Craig Topperd2661882016-05-17 04:41:48 +00008823#define _mm_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
8824 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8825 (__v2di)(__m128i)(B), (int)(imm), \
8826 (__v2di)_mm_setzero_di(), \
8827 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008828
Craig Topperd2661882016-05-17 04:41:48 +00008829#define _mm256_alignr_epi64(A, B, imm) __extension__ ({ \
8830 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
8831 (__v4di)(__m256i)(B), (int)(imm), \
8832 (__v4di)_mm256_undefined_pd(), \
8833 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008834
Craig Topperd2661882016-05-17 04:41:48 +00008835#define _mm256_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
8836 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
8837 (__v4di)(__m256i)(B), (int)(imm), \
8838 (__v4di)(__m256i)(W), \
8839 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008840
Craig Topperd2661882016-05-17 04:41:48 +00008841#define _mm256_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
8842 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
8843 (__v4di)(__m256i)(B), (int)(imm), \
8844 (__v4di)_mm256_setzero_si256(), \
8845 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008846
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008847static __inline__ __m128 __DEFAULT_FN_ATTRS
8848_mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A)
8849{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008850 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8851 (__v4sf)_mm_movehdup_ps(__A),
8852 (__v4sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008853}
8854
8855static __inline__ __m128 __DEFAULT_FN_ATTRS
8856_mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A)
8857{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008858 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8859 (__v4sf)_mm_movehdup_ps(__A),
8860 (__v4sf)_mm_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008861}
8862
8863static __inline__ __m256 __DEFAULT_FN_ATTRS
8864_mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A)
8865{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008866 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8867 (__v8sf)_mm256_movehdup_ps(__A),
8868 (__v8sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008869}
8870
8871static __inline__ __m256 __DEFAULT_FN_ATTRS
8872_mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A)
8873{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008874 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8875 (__v8sf)_mm256_movehdup_ps(__A),
8876 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008877}
8878
8879static __inline__ __m128 __DEFAULT_FN_ATTRS
8880_mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A)
8881{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008882 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8883 (__v4sf)_mm_moveldup_ps(__A),
8884 (__v4sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008885}
8886
8887static __inline__ __m128 __DEFAULT_FN_ATTRS
8888_mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A)
8889{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008890 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8891 (__v4sf)_mm_moveldup_ps(__A),
8892 (__v4sf)_mm_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008893}
8894
8895static __inline__ __m256 __DEFAULT_FN_ATTRS
8896_mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A)
8897{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008898 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8899 (__v8sf)_mm256_moveldup_ps(__A),
8900 (__v8sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008901}
8902
8903static __inline__ __m256 __DEFAULT_FN_ATTRS
8904_mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A)
8905{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008906 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8907 (__v8sf)_mm256_moveldup_ps(__A),
8908 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008909}
8910
Craig Topperd2661882016-05-17 04:41:48 +00008911#define _mm256_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008912 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8913 (__v8si)_mm256_shuffle_epi32((A), (I)), \
8914 (__v8si)(__m256i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00008915
Craig Topperd2661882016-05-17 04:41:48 +00008916#define _mm256_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008917 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8918 (__v8si)_mm256_shuffle_epi32((A), (I)), \
8919 (__v8si)_mm256_setzero_si256()); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00008920
Craig Topperd2661882016-05-17 04:41:48 +00008921#define _mm_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008922 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8923 (__v4si)_mm_shuffle_epi32((A), (I)), \
8924 (__v4si)(__m128i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00008925
Craig Topperd2661882016-05-17 04:41:48 +00008926#define _mm_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008927 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8928 (__v4si)_mm_shuffle_epi32((A), (I)), \
8929 (__v4si)_mm_setzero_si128()); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008930
8931static __inline__ __m128d __DEFAULT_FN_ATTRS
8932_mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A)
8933{
Igor Bregeraadb8762016-06-08 13:59:20 +00008934 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
8935 (__v2df) __A,
8936 (__v2df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008937}
8938
8939static __inline__ __m128d __DEFAULT_FN_ATTRS
8940_mm_maskz_mov_pd (__mmask8 __U, __m128d __A)
8941{
Igor Bregeraadb8762016-06-08 13:59:20 +00008942 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
8943 (__v2df) __A,
8944 (__v2df) _mm_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008945}
8946
8947static __inline__ __m256d __DEFAULT_FN_ATTRS
8948_mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A)
8949{
Igor Bregeraadb8762016-06-08 13:59:20 +00008950 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
8951 (__v4df) __A,
8952 (__v4df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008953}
8954
8955static __inline__ __m256d __DEFAULT_FN_ATTRS
8956_mm256_maskz_mov_pd (__mmask8 __U, __m256d __A)
8957{
Igor Bregeraadb8762016-06-08 13:59:20 +00008958 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
8959 (__v4df) __A,
8960 (__v4df) _mm256_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008961}
8962
8963static __inline__ __m128 __DEFAULT_FN_ATTRS
8964_mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A)
8965{
Igor Bregeraadb8762016-06-08 13:59:20 +00008966 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
8967 (__v4sf) __A,
8968 (__v4sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008969}
8970
8971static __inline__ __m128 __DEFAULT_FN_ATTRS
8972_mm_maskz_mov_ps (__mmask8 __U, __m128 __A)
8973{
Igor Bregeraadb8762016-06-08 13:59:20 +00008974 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
8975 (__v4sf) __A,
8976 (__v4sf) _mm_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008977}
8978
8979static __inline__ __m256 __DEFAULT_FN_ATTRS
8980_mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A)
8981{
Igor Bregeraadb8762016-06-08 13:59:20 +00008982 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
8983 (__v8sf) __A,
8984 (__v8sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008985}
8986
8987static __inline__ __m256 __DEFAULT_FN_ATTRS
8988_mm256_maskz_mov_ps (__mmask8 __U, __m256 __A)
8989{
Igor Bregeraadb8762016-06-08 13:59:20 +00008990 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
8991 (__v8sf) __A,
8992 (__v8sf) _mm256_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008993}
8994
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00008995static __inline__ __m128 __DEFAULT_FN_ATTRS
8996_mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A)
8997{
8998 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
8999 (__v4sf) __W,
9000 (__mmask8) __U);
9001}
9002
9003static __inline__ __m128 __DEFAULT_FN_ATTRS
9004_mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
9005{
9006 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
9007 (__v4sf)
9008 _mm_setzero_ps (),
9009 (__mmask8) __U);
9010}
9011
9012static __inline__ __m256 __DEFAULT_FN_ATTRS
9013_mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A)
9014{
9015 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
9016 (__v8sf) __W,
9017 (__mmask8) __U);
9018}
9019
9020static __inline__ __m256 __DEFAULT_FN_ATTRS
9021_mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
9022{
9023 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
9024 (__v8sf)
9025 _mm256_setzero_ps (),
9026 (__mmask8) __U);
9027}
9028
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009029static __inline __m128i __DEFAULT_FN_ATTRS
9030_mm_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m128 __A)
9031{
9032 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
9033 (__v8hi) __W,
9034 (__mmask8) __U);
9035}
9036
9037static __inline __m128i __DEFAULT_FN_ATTRS
9038_mm_maskz_cvtps_ph (__mmask8 __U, __m128 __A)
9039{
9040 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
9041 (__v8hi) _mm_setzero_si128 (),
9042 (__mmask8) __U);
9043}
9044
9045#define _mm_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009046 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
9047 (__v8hi)(__m128i)(W), \
9048 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009049
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009050#define _mm_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009051 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
9052 (__v8hi)_mm_setzero_si128(), \
9053 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009054
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009055static __inline __m128i __DEFAULT_FN_ATTRS
9056_mm256_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m256 __A)
9057{
9058 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
9059 (__v8hi) __W,
9060 (__mmask8) __U);
9061}
9062
9063static __inline __m128i __DEFAULT_FN_ATTRS
9064_mm256_maskz_cvtps_ph ( __mmask8 __U, __m256 __A)
9065{
9066 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
9067 (__v8hi) _mm_setzero_si128(),
9068 (__mmask8) __U);
9069}
9070#define _mm256_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009071 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
9072 (__v8hi)(__m128i)(W), \
9073 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009074
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009075#define _mm256_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009076 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
9077 (__v8hi)_mm_setzero_si128(), \
9078 (__mmask8)(U)); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009079
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009080
Michael Kupersteine45af542015-06-30 13:36:19 +00009081#undef __DEFAULT_FN_ATTRS
Eric Christopher4d1851682015-06-17 07:09:20 +00009082
Robert Khasanovb9f3a912014-10-08 17:18:13 +00009083#endif /* __AVX512VLINTRIN_H */