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