blob: 3a8ccb4ab923a4d1bf05d56f86b8d27fdc1739ef [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
Craig Topper09e94002016-10-29 19:02:07 +0000747_mm256_mask_mul_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000748{
Craig Topper09e94002016-10-29 19:02:07 +0000749 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
750 (__v4di)_mm256_mul_epi32(__X, __Y),
751 (__v4di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000752}
753
Michael Kupersteine45af542015-06-30 13:36:19 +0000754static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper09e94002016-10-29 19:02:07 +0000755_mm256_maskz_mul_epi32(__mmask8 __M, __m256i __X, __m256i __Y)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000756{
Craig Topper09e94002016-10-29 19:02:07 +0000757 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
758 (__v4di)_mm256_mul_epi32(__X, __Y),
759 (__v4di)_mm256_setzero_si256());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000760}
761
Michael Kupersteine45af542015-06-30 13:36:19 +0000762static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper09e94002016-10-29 19:02:07 +0000763_mm_mask_mul_epi32(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000764{
Craig Topper09e94002016-10-29 19:02:07 +0000765 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
766 (__v2di)_mm_mul_epi32(__X, __Y),
767 (__v2di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000768}
769
Michael Kupersteine45af542015-06-30 13:36:19 +0000770static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper09e94002016-10-29 19:02:07 +0000771_mm_maskz_mul_epi32(__mmask8 __M, __m128i __X, __m128i __Y)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000772{
Craig Topper09e94002016-10-29 19:02:07 +0000773 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
774 (__v2di)_mm_mul_epi32(__X, __Y),
775 (__v2di)_mm_setzero_si128());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000776}
777
Michael Kupersteine45af542015-06-30 13:36:19 +0000778static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper09e94002016-10-29 19:02:07 +0000779_mm256_mask_mul_epu32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000780{
Craig Topper09e94002016-10-29 19:02:07 +0000781 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
782 (__v4di)_mm256_mul_epu32(__X, __Y),
783 (__v4di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000784}
785
Michael Kupersteine45af542015-06-30 13:36:19 +0000786static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper09e94002016-10-29 19:02:07 +0000787_mm256_maskz_mul_epu32(__mmask8 __M, __m256i __X, __m256i __Y)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000788{
Craig Topper09e94002016-10-29 19:02:07 +0000789 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
790 (__v4di)_mm256_mul_epu32(__X, __Y),
791 (__v4di)_mm256_setzero_si256());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000792}
793
Michael Kupersteine45af542015-06-30 13:36:19 +0000794static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper09e94002016-10-29 19:02:07 +0000795_mm_mask_mul_epu32(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000796{
Craig Topper09e94002016-10-29 19:02:07 +0000797 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
798 (__v2di)_mm_mul_epu32(__X, __Y),
799 (__v2di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000800}
801
Michael Kupersteine45af542015-06-30 13:36:19 +0000802static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper09e94002016-10-29 19:02:07 +0000803_mm_maskz_mul_epu32(__mmask8 __M, __m128i __X, __m128i __Y)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000804{
Craig Topper09e94002016-10-29 19:02:07 +0000805 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
806 (__v2di)_mm_mul_epu32(__X, __Y),
807 (__v2di)_mm_setzero_si128());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000808}
809
Michael Kupersteine45af542015-06-30 13:36:19 +0000810static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topperf43e4a12016-09-03 19:19:49 +0000811_mm256_maskz_mullo_epi32(__mmask8 __M, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000812{
Craig Topperf43e4a12016-09-03 19:19:49 +0000813 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
814 (__v8si)_mm256_mullo_epi32(__A, __B),
815 (__v8si)_mm256_setzero_si256());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000816}
817
Michael Kupersteine45af542015-06-30 13:36:19 +0000818static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topperf43e4a12016-09-03 19:19:49 +0000819_mm256_mask_mullo_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000820{
Craig Topperf43e4a12016-09-03 19:19:49 +0000821 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
822 (__v8si)_mm256_mullo_epi32(__A, __B),
823 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000824}
825
Michael Kupersteine45af542015-06-30 13:36:19 +0000826static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topperf43e4a12016-09-03 19:19:49 +0000827_mm_maskz_mullo_epi32(__mmask8 __M, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000828{
Craig Topperf43e4a12016-09-03 19:19:49 +0000829 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
830 (__v4si)_mm_mullo_epi32(__A, __B),
831 (__v4si)_mm_setzero_si128());
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000832}
833
Michael Kupersteine45af542015-06-30 13:36:19 +0000834static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topperf43e4a12016-09-03 19:19:49 +0000835_mm_mask_mullo_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000836{
Craig Topperf43e4a12016-09-03 19:19:49 +0000837 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
838 (__v4si)_mm_mullo_epi32(__A, __B),
839 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000840}
841
Michael Kupersteine45af542015-06-30 13:36:19 +0000842static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000843_mm256_mask_and_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000844{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000845 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
846 (__v8si)_mm256_and_si256(__A, __B),
847 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000848}
849
Michael Kupersteine45af542015-06-30 13:36:19 +0000850static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000851_mm256_maskz_and_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000852{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000853 return (__m256i)_mm256_mask_and_epi32(_mm256_setzero_si256(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000854}
855
Michael Kupersteine45af542015-06-30 13:36:19 +0000856static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000857_mm_mask_and_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000858{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000859 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
860 (__v4si)_mm_and_si128(__A, __B),
861 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000862}
863
Michael Kupersteine45af542015-06-30 13:36:19 +0000864static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000865_mm_maskz_and_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000866{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000867 return (__m128i)_mm_mask_and_epi32(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000868}
869
Michael Kupersteine45af542015-06-30 13:36:19 +0000870static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000871_mm256_mask_andnot_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000872{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000873 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
874 (__v8si)_mm256_andnot_si256(__A, __B),
875 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000876}
877
Michael Kupersteine45af542015-06-30 13:36:19 +0000878static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000879_mm256_maskz_andnot_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000880{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000881 return (__m256i)_mm256_mask_andnot_epi32(_mm256_setzero_si256(),
882 __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000883}
884
Michael Kupersteine45af542015-06-30 13:36:19 +0000885static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000886_mm_mask_andnot_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000887{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000888 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
889 (__v4si)_mm_andnot_si128(__A, __B),
890 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000891}
892
Michael Kupersteine45af542015-06-30 13:36:19 +0000893static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000894_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
895{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000896 return (__m128i)_mm_mask_andnot_epi32(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000897}
898
Michael Kupersteine45af542015-06-30 13:36:19 +0000899static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000900_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000901{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000902 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
903 (__v8si)_mm256_or_si256(__A, __B),
904 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000905}
906
Michael Kupersteine45af542015-06-30 13:36:19 +0000907static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000908_mm256_maskz_or_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000909{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000910 return (__m256i)_mm256_mask_or_epi32(_mm256_setzero_si256(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000911}
912
Michael Kupersteine45af542015-06-30 13:36:19 +0000913static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000914_mm_mask_or_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000915{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000916 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
917 (__v4si)_mm_or_si128(__A, __B),
918 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000919}
920
Michael Kupersteine45af542015-06-30 13:36:19 +0000921static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000922_mm_maskz_or_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000923{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000924 return (__m128i)_mm_mask_or_epi32(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000925}
926
Michael Kupersteine45af542015-06-30 13:36:19 +0000927static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000928_mm256_mask_xor_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000929{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000930 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
931 (__v8si)_mm256_xor_si256(__A, __B),
932 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000933}
934
Michael Kupersteine45af542015-06-30 13:36:19 +0000935static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000936_mm256_maskz_xor_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000937{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000938 return (__m256i)_mm256_mask_xor_epi32(_mm256_setzero_si256(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000939}
940
Michael Kupersteine45af542015-06-30 13:36:19 +0000941static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000942_mm_mask_xor_epi32(__m128i __W, __mmask8 __U, __m128i __A,
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000943 __m128i __B)
944{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000945 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
946 (__v4si)_mm_xor_si128(__A, __B),
947 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000948}
949
Michael Kupersteine45af542015-06-30 13:36:19 +0000950static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000951_mm_maskz_xor_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000952{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000953 return (__m128i)_mm_mask_xor_epi32(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000954}
955
Michael Kupersteine45af542015-06-30 13:36:19 +0000956static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000957_mm256_mask_and_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000958{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000959 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
960 (__v4di)_mm256_and_si256(__A, __B),
961 (__v4di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000962}
963
Michael Kupersteine45af542015-06-30 13:36:19 +0000964static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000965_mm256_maskz_and_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000966{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000967 return (__m256i)_mm256_mask_and_epi64(_mm256_setzero_si256(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000968}
969
Michael Kupersteine45af542015-06-30 13:36:19 +0000970static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000971_mm_mask_and_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
972{
973 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
974 (__v2di)_mm_and_si128(__A, __B),
975 (__v2di)__W);
976}
977
978static __inline__ __m128i __DEFAULT_FN_ATTRS
979_mm_maskz_and_epi64(__mmask8 __U, __m128i __A, __m128i __B)
980{
981 return (__m128i)_mm_mask_and_epi64(_mm_setzero_si128(), __U, __A, __B);
982}
983
984static __inline__ __m256i __DEFAULT_FN_ATTRS
985_mm256_mask_andnot_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
986{
987 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
988 (__v4di)_mm256_andnot_si256(__A, __B),
989 (__v4di)__W);
990}
991
992static __inline__ __m256i __DEFAULT_FN_ATTRS
993_mm256_maskz_andnot_epi64(__mmask8 __U, __m256i __A, __m256i __B)
994{
995 return (__m256i)_mm256_mask_andnot_epi64(_mm256_setzero_si256(),
996 __U, __A, __B);
997}
998
999static __inline__ __m128i __DEFAULT_FN_ATTRS
1000_mm_mask_andnot_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1001{
1002 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
1003 (__v2di)_mm_andnot_si128(__A, __B),
1004 (__v2di)__W);
1005}
1006
1007static __inline__ __m128i __DEFAULT_FN_ATTRS
1008_mm_maskz_andnot_epi64(__mmask8 __U, __m128i __A, __m128i __B)
1009{
1010 return (__m128i)_mm_mask_andnot_epi64(_mm_setzero_si128(), __U, __A, __B);
1011}
1012
1013static __inline__ __m256i __DEFAULT_FN_ATTRS
1014_mm256_mask_or_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
1015{
1016 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
1017 (__v4di)_mm256_or_si256(__A, __B),
1018 (__v4di)__W);
1019}
1020
1021static __inline__ __m256i __DEFAULT_FN_ATTRS
1022_mm256_maskz_or_epi64(__mmask8 __U, __m256i __A, __m256i __B)
1023{
1024 return (__m256i)_mm256_mask_or_epi64(_mm256_setzero_si256(), __U, __A, __B);
1025}
1026
1027static __inline__ __m128i __DEFAULT_FN_ATTRS
1028_mm_mask_or_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1029{
1030 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
1031 (__v2di)_mm_or_si128(__A, __B),
1032 (__v2di)__W);
1033}
1034
1035static __inline__ __m128i __DEFAULT_FN_ATTRS
1036_mm_maskz_or_epi64(__mmask8 __U, __m128i __A, __m128i __B)
1037{
1038 return (__m128i)_mm_mask_or_epi64(_mm_setzero_si128(), __U, __A, __B);
1039}
1040
1041static __inline__ __m256i __DEFAULT_FN_ATTRS
1042_mm256_mask_xor_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
1043{
1044 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
1045 (__v4di)_mm256_xor_si256(__A, __B),
1046 (__v4di)__W);
1047}
1048
1049static __inline__ __m256i __DEFAULT_FN_ATTRS
1050_mm256_maskz_xor_epi64(__mmask8 __U, __m256i __A, __m256i __B)
1051{
1052 return (__m256i)_mm256_mask_xor_epi64(_mm256_setzero_si256(), __U, __A, __B);
1053}
1054
1055static __inline__ __m128i __DEFAULT_FN_ATTRS
1056_mm_mask_xor_epi64(__m128i __W, __mmask8 __U, __m128i __A,
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001057 __m128i __B)
1058{
Craig Topper4d61a3c2016-07-11 06:14:18 +00001059 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
1060 (__v2di)_mm_xor_si128(__A, __B),
1061 (__v2di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001062}
1063
Michael Kupersteine45af542015-06-30 13:36:19 +00001064static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +00001065_mm_maskz_xor_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001066{
Craig Topper4d61a3c2016-07-11 06:14:18 +00001067 return (__m128i)_mm_mask_xor_epi64(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001068}
1069
Craig Topper2f25a5a2015-01-26 08:11:49 +00001070#define _mm_cmp_epi32_mask(a, b, p) __extension__ ({ \
1071 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001072 (__v4si)(__m128i)(b), (int)(p), \
1073 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001074
1075#define _mm_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1076 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001077 (__v4si)(__m128i)(b), (int)(p), \
1078 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001079
1080#define _mm_cmp_epu32_mask(a, b, p) __extension__ ({ \
1081 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001082 (__v4si)(__m128i)(b), (int)(p), \
1083 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001084
1085#define _mm_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1086 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001087 (__v4si)(__m128i)(b), (int)(p), \
1088 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001089
1090#define _mm256_cmp_epi32_mask(a, b, p) __extension__ ({ \
1091 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001092 (__v8si)(__m256i)(b), (int)(p), \
1093 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001094
1095#define _mm256_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1096 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001097 (__v8si)(__m256i)(b), (int)(p), \
1098 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001099
1100#define _mm256_cmp_epu32_mask(a, b, p) __extension__ ({ \
1101 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001102 (__v8si)(__m256i)(b), (int)(p), \
1103 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001104
1105#define _mm256_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1106 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001107 (__v8si)(__m256i)(b), (int)(p), \
1108 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001109
1110#define _mm_cmp_epi64_mask(a, b, p) __extension__ ({ \
1111 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001112 (__v2di)(__m128i)(b), (int)(p), \
1113 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001114
1115#define _mm_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1116 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001117 (__v2di)(__m128i)(b), (int)(p), \
1118 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001119
1120#define _mm_cmp_epu64_mask(a, b, p) __extension__ ({ \
1121 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001122 (__v2di)(__m128i)(b), (int)(p), \
1123 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001124
1125#define _mm_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1126 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001127 (__v2di)(__m128i)(b), (int)(p), \
1128 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001129
1130#define _mm256_cmp_epi64_mask(a, b, p) __extension__ ({ \
1131 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001132 (__v4di)(__m256i)(b), (int)(p), \
1133 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001134
1135#define _mm256_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1136 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001137 (__v4di)(__m256i)(b), (int)(p), \
1138 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001139
1140#define _mm256_cmp_epu64_mask(a, b, p) __extension__ ({ \
1141 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001142 (__v4di)(__m256i)(b), (int)(p), \
1143 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001144
1145#define _mm256_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1146 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001147 (__v4di)(__m256i)(b), (int)(p), \
1148 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001149
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001150#define _mm256_cmp_ps_mask(a, b, p) __extension__ ({ \
1151 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001152 (__v8sf)(__m256)(b), (int)(p), \
1153 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001154
1155#define _mm256_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
1156 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001157 (__v8sf)(__m256)(b), (int)(p), \
1158 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001159
1160#define _mm256_cmp_pd_mask(a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001161 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
1162 (__v4df)(__m256d)(b), (int)(p), \
1163 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001164
1165#define _mm256_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001166 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
1167 (__v4df)(__m256d)(b), (int)(p), \
1168 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001169
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001170#define _mm_cmp_ps_mask(a, b, p) __extension__ ({ \
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001171 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001172 (__v4sf)(__m128)(b), (int)(p), \
1173 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001174
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001175#define _mm_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001176 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001177 (__v4sf)(__m128)(b), (int)(p), \
1178 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001179
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001180#define _mm_cmp_pd_mask(a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001181 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
1182 (__v2df)(__m128d)(b), (int)(p), \
1183 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001184
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001185#define _mm_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001186 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
1187 (__v2df)(__m128d)(b), (int)(p), \
1188 (__mmask8)(m)); })
Eric Christopher4d1851682015-06-17 07:09:20 +00001189
Michael Kupersteine45af542015-06-30 13:36:19 +00001190static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001191_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1192{
1193 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1194 (__v2df) __B,
1195 (__v2df) __C,
1196 (__mmask8) __U);
1197}
1198
Michael Kupersteine45af542015-06-30 13:36:19 +00001199static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001200_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1201{
1202 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 ((__v2df) __A,
1203 (__v2df) __B,
1204 (__v2df) __C,
1205 (__mmask8) __U);
1206}
1207
Michael Kupersteine45af542015-06-30 13:36:19 +00001208static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001209_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1210{
1211 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1212 (__v2df) __B,
1213 (__v2df) __C,
1214 (__mmask8) __U);
1215}
1216
Michael Kupersteine45af542015-06-30 13:36:19 +00001217static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001218_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1219{
1220 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1221 (__v2df) __B,
1222 -(__v2df) __C,
1223 (__mmask8) __U);
1224}
1225
Michael Kupersteine45af542015-06-30 13:36:19 +00001226static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001227_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1228{
1229 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1230 (__v2df) __B,
1231 -(__v2df) __C,
1232 (__mmask8) __U);
1233}
1234
Michael Kupersteine45af542015-06-30 13:36:19 +00001235static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001236_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1237{
1238 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 (-(__v2df) __A,
1239 (__v2df) __B,
1240 (__v2df) __C,
1241 (__mmask8) __U);
1242}
1243
Michael Kupersteine45af542015-06-30 13:36:19 +00001244static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001245_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1246{
1247 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1248 (__v2df) __B,
1249 (__v2df) __C,
1250 (__mmask8) __U);
1251}
1252
Michael Kupersteine45af542015-06-30 13:36:19 +00001253static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001254_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1255{
1256 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1257 (__v2df) __B,
1258 -(__v2df) __C,
1259 (__mmask8) __U);
1260}
1261
Michael Kupersteine45af542015-06-30 13:36:19 +00001262static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001263_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1264{
1265 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1266 (__v4df) __B,
1267 (__v4df) __C,
1268 (__mmask8) __U);
1269}
1270
Michael Kupersteine45af542015-06-30 13:36:19 +00001271static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001272_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1273{
1274 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 ((__v4df) __A,
1275 (__v4df) __B,
1276 (__v4df) __C,
1277 (__mmask8) __U);
1278}
1279
Michael Kupersteine45af542015-06-30 13:36:19 +00001280static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001281_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1282{
1283 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1284 (__v4df) __B,
1285 (__v4df) __C,
1286 (__mmask8) __U);
1287}
1288
Michael Kupersteine45af542015-06-30 13:36:19 +00001289static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001290_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1291{
1292 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1293 (__v4df) __B,
1294 -(__v4df) __C,
1295 (__mmask8) __U);
1296}
1297
Michael Kupersteine45af542015-06-30 13:36:19 +00001298static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001299_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1300{
1301 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1302 (__v4df) __B,
1303 -(__v4df) __C,
1304 (__mmask8) __U);
1305}
1306
Michael Kupersteine45af542015-06-30 13:36:19 +00001307static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001308_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1309{
1310 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 (-(__v4df) __A,
1311 (__v4df) __B,
1312 (__v4df) __C,
1313 (__mmask8) __U);
1314}
1315
Michael Kupersteine45af542015-06-30 13:36:19 +00001316static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001317_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1318{
1319 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1320 (__v4df) __B,
1321 (__v4df) __C,
1322 (__mmask8) __U);
1323}
1324
Michael Kupersteine45af542015-06-30 13:36:19 +00001325static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001326_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1327{
1328 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1329 (__v4df) __B,
1330 -(__v4df) __C,
1331 (__mmask8) __U);
1332}
1333
Michael Kupersteine45af542015-06-30 13:36:19 +00001334static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001335_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1336{
1337 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1338 (__v4sf) __B,
1339 (__v4sf) __C,
1340 (__mmask8) __U);
1341}
1342
Michael Kupersteine45af542015-06-30 13:36:19 +00001343static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001344_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1345{
1346 return (__m128) __builtin_ia32_vfmaddps128_mask3 ((__v4sf) __A,
1347 (__v4sf) __B,
1348 (__v4sf) __C,
1349 (__mmask8) __U);
1350}
1351
Michael Kupersteine45af542015-06-30 13:36:19 +00001352static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001353_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1354{
1355 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1356 (__v4sf) __B,
1357 (__v4sf) __C,
1358 (__mmask8) __U);
1359}
1360
Michael Kupersteine45af542015-06-30 13:36:19 +00001361static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001362_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1363{
1364 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1365 (__v4sf) __B,
1366 -(__v4sf) __C,
1367 (__mmask8) __U);
1368}
1369
Michael Kupersteine45af542015-06-30 13:36:19 +00001370static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001371_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1372{
1373 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1374 (__v4sf) __B,
1375 -(__v4sf) __C,
1376 (__mmask8) __U);
1377}
1378
Michael Kupersteine45af542015-06-30 13:36:19 +00001379static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001380_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1381{
1382 return (__m128) __builtin_ia32_vfmaddps128_mask3 (-(__v4sf) __A,
1383 (__v4sf) __B,
1384 (__v4sf) __C,
1385 (__mmask8) __U);
1386}
1387
Michael Kupersteine45af542015-06-30 13:36:19 +00001388static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001389_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1390{
1391 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1392 (__v4sf) __B,
1393 (__v4sf) __C,
1394 (__mmask8) __U);
1395}
1396
Michael Kupersteine45af542015-06-30 13:36:19 +00001397static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001398_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1399{
1400 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1401 (__v4sf) __B,
1402 -(__v4sf) __C,
1403 (__mmask8) __U);
1404}
1405
Michael Kupersteine45af542015-06-30 13:36:19 +00001406static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001407_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1408{
1409 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1410 (__v8sf) __B,
1411 (__v8sf) __C,
1412 (__mmask8) __U);
1413}
1414
Michael Kupersteine45af542015-06-30 13:36:19 +00001415static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001416_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1417{
1418 return (__m256) __builtin_ia32_vfmaddps256_mask3 ((__v8sf) __A,
1419 (__v8sf) __B,
1420 (__v8sf) __C,
1421 (__mmask8) __U);
1422}
1423
Michael Kupersteine45af542015-06-30 13:36:19 +00001424static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001425_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1426{
1427 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1428 (__v8sf) __B,
1429 (__v8sf) __C,
1430 (__mmask8) __U);
1431}
1432
Michael Kupersteine45af542015-06-30 13:36:19 +00001433static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001434_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1435{
1436 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1437 (__v8sf) __B,
1438 -(__v8sf) __C,
1439 (__mmask8) __U);
1440}
1441
Michael Kupersteine45af542015-06-30 13:36:19 +00001442static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001443_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1444{
1445 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1446 (__v8sf) __B,
1447 -(__v8sf) __C,
1448 (__mmask8) __U);
1449}
1450
Michael Kupersteine45af542015-06-30 13:36:19 +00001451static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001452_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1453{
1454 return (__m256) __builtin_ia32_vfmaddps256_mask3 (-(__v8sf) __A,
1455 (__v8sf) __B,
1456 (__v8sf) __C,
1457 (__mmask8) __U);
1458}
1459
Michael Kupersteine45af542015-06-30 13:36:19 +00001460static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001461_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1462{
1463 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1464 (__v8sf) __B,
1465 (__v8sf) __C,
1466 (__mmask8) __U);
1467}
1468
Michael Kupersteine45af542015-06-30 13:36:19 +00001469static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001470_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1471{
1472 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1473 (__v8sf) __B,
1474 -(__v8sf) __C,
1475 (__mmask8) __U);
1476}
1477
Michael Kupersteine45af542015-06-30 13:36:19 +00001478static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001479_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1480{
1481 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1482 (__v2df) __B,
1483 (__v2df) __C,
1484 (__mmask8) __U);
1485}
1486
Michael Kupersteine45af542015-06-30 13:36:19 +00001487static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001488_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1489{
1490 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask3 ((__v2df) __A,
1491 (__v2df) __B,
1492 (__v2df) __C,
1493 (__mmask8)
1494 __U);
1495}
1496
Michael Kupersteine45af542015-06-30 13:36:19 +00001497static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001498_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1499{
1500 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1501 (__v2df) __B,
1502 (__v2df) __C,
1503 (__mmask8)
1504 __U);
1505}
1506
Michael Kupersteine45af542015-06-30 13:36:19 +00001507static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001508_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1509{
1510 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1511 (__v2df) __B,
1512 -(__v2df) __C,
1513 (__mmask8) __U);
1514}
1515
Michael Kupersteine45af542015-06-30 13:36:19 +00001516static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001517_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1518{
1519 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1520 (__v2df) __B,
1521 -(__v2df) __C,
1522 (__mmask8)
1523 __U);
1524}
1525
Michael Kupersteine45af542015-06-30 13:36:19 +00001526static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001527_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1528{
1529 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1530 (__v4df) __B,
1531 (__v4df) __C,
1532 (__mmask8) __U);
1533}
1534
Michael Kupersteine45af542015-06-30 13:36:19 +00001535static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001536_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1537{
1538 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask3 ((__v4df) __A,
1539 (__v4df) __B,
1540 (__v4df) __C,
1541 (__mmask8)
1542 __U);
1543}
1544
Michael Kupersteine45af542015-06-30 13:36:19 +00001545static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001546_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1547{
1548 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1549 (__v4df) __B,
1550 (__v4df) __C,
1551 (__mmask8)
1552 __U);
1553}
1554
Michael Kupersteine45af542015-06-30 13:36:19 +00001555static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001556_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1557{
1558 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1559 (__v4df) __B,
1560 -(__v4df) __C,
1561 (__mmask8) __U);
1562}
1563
Michael Kupersteine45af542015-06-30 13:36:19 +00001564static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001565_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1566{
1567 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1568 (__v4df) __B,
1569 -(__v4df) __C,
1570 (__mmask8)
1571 __U);
1572}
1573
Michael Kupersteine45af542015-06-30 13:36:19 +00001574static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001575_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1576{
1577 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1578 (__v4sf) __B,
1579 (__v4sf) __C,
1580 (__mmask8) __U);
1581}
1582
Michael Kupersteine45af542015-06-30 13:36:19 +00001583static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001584_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1585{
1586 return (__m128) __builtin_ia32_vfmaddsubps128_mask3 ((__v4sf) __A,
1587 (__v4sf) __B,
1588 (__v4sf) __C,
1589 (__mmask8) __U);
1590}
1591
Michael Kupersteine45af542015-06-30 13:36:19 +00001592static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001593_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1594{
1595 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1596 (__v4sf) __B,
1597 (__v4sf) __C,
1598 (__mmask8) __U);
1599}
1600
Michael Kupersteine45af542015-06-30 13:36:19 +00001601static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001602_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1603{
1604 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1605 (__v4sf) __B,
1606 -(__v4sf) __C,
1607 (__mmask8) __U);
1608}
1609
Michael Kupersteine45af542015-06-30 13:36:19 +00001610static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001611_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1612{
1613 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1614 (__v4sf) __B,
1615 -(__v4sf) __C,
1616 (__mmask8) __U);
1617}
1618
Michael Kupersteine45af542015-06-30 13:36:19 +00001619static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001620_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B,
1621 __m256 __C)
1622{
1623 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1624 (__v8sf) __B,
1625 (__v8sf) __C,
1626 (__mmask8) __U);
1627}
1628
Michael Kupersteine45af542015-06-30 13:36:19 +00001629static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001630_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1631{
1632 return (__m256) __builtin_ia32_vfmaddsubps256_mask3 ((__v8sf) __A,
1633 (__v8sf) __B,
1634 (__v8sf) __C,
1635 (__mmask8) __U);
1636}
1637
Michael Kupersteine45af542015-06-30 13:36:19 +00001638static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001639_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1640{
1641 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1642 (__v8sf) __B,
1643 (__v8sf) __C,
1644 (__mmask8) __U);
1645}
1646
Michael Kupersteine45af542015-06-30 13:36:19 +00001647static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001648_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1649{
1650 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1651 (__v8sf) __B,
1652 -(__v8sf) __C,
1653 (__mmask8) __U);
1654}
1655
Michael Kupersteine45af542015-06-30 13:36:19 +00001656static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001657_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1658{
1659 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1660 (__v8sf) __B,
1661 -(__v8sf) __C,
1662 (__mmask8) __U);
1663}
1664
Michael Kupersteine45af542015-06-30 13:36:19 +00001665static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001666_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1667{
1668 return (__m128d) __builtin_ia32_vfmsubpd128_mask3 ((__v2df) __A,
1669 (__v2df) __B,
1670 (__v2df) __C,
1671 (__mmask8) __U);
1672}
1673
Michael Kupersteine45af542015-06-30 13:36:19 +00001674static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001675_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1676{
1677 return (__m256d) __builtin_ia32_vfmsubpd256_mask3 ((__v4df) __A,
1678 (__v4df) __B,
1679 (__v4df) __C,
1680 (__mmask8) __U);
1681}
1682
Michael Kupersteine45af542015-06-30 13:36:19 +00001683static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001684_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1685{
1686 return (__m128) __builtin_ia32_vfmsubps128_mask3 ((__v4sf) __A,
1687 (__v4sf) __B,
1688 (__v4sf) __C,
1689 (__mmask8) __U);
1690}
1691
Michael Kupersteine45af542015-06-30 13:36:19 +00001692static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001693_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1694{
1695 return (__m256) __builtin_ia32_vfmsubps256_mask3 ((__v8sf) __A,
1696 (__v8sf) __B,
1697 (__v8sf) __C,
1698 (__mmask8) __U);
1699}
1700
Michael Kupersteine45af542015-06-30 13:36:19 +00001701static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001702_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1703{
1704 return (__m128d) __builtin_ia32_vfmsubaddpd128_mask3 ((__v2df) __A,
1705 (__v2df) __B,
1706 (__v2df) __C,
1707 (__mmask8)
1708 __U);
1709}
1710
Michael Kupersteine45af542015-06-30 13:36:19 +00001711static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001712_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1713{
1714 return (__m256d) __builtin_ia32_vfmsubaddpd256_mask3 ((__v4df) __A,
1715 (__v4df) __B,
1716 (__v4df) __C,
1717 (__mmask8)
1718 __U);
1719}
1720
Michael Kupersteine45af542015-06-30 13:36:19 +00001721static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001722_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1723{
1724 return (__m128) __builtin_ia32_vfmsubaddps128_mask3 ((__v4sf) __A,
1725 (__v4sf) __B,
1726 (__v4sf) __C,
1727 (__mmask8) __U);
1728}
1729
Michael Kupersteine45af542015-06-30 13:36:19 +00001730static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001731_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1732{
1733 return (__m256) __builtin_ia32_vfmsubaddps256_mask3 ((__v8sf) __A,
1734 (__v8sf) __B,
1735 (__v8sf) __C,
1736 (__mmask8) __U);
1737}
1738
Michael Kupersteine45af542015-06-30 13:36:19 +00001739static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001740_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1741{
1742 return (__m128d) __builtin_ia32_vfnmaddpd128_mask ((__v2df) __A,
1743 (__v2df) __B,
1744 (__v2df) __C,
1745 (__mmask8) __U);
1746}
1747
Michael Kupersteine45af542015-06-30 13:36:19 +00001748static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001749_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1750{
1751 return (__m256d) __builtin_ia32_vfnmaddpd256_mask ((__v4df) __A,
1752 (__v4df) __B,
1753 (__v4df) __C,
1754 (__mmask8) __U);
1755}
1756
Michael Kupersteine45af542015-06-30 13:36:19 +00001757static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001758_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1759{
1760 return (__m128) __builtin_ia32_vfnmaddps128_mask ((__v4sf) __A,
1761 (__v4sf) __B,
1762 (__v4sf) __C,
1763 (__mmask8) __U);
1764}
1765
Michael Kupersteine45af542015-06-30 13:36:19 +00001766static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001767_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1768{
1769 return (__m256) __builtin_ia32_vfnmaddps256_mask ((__v8sf) __A,
1770 (__v8sf) __B,
1771 (__v8sf) __C,
1772 (__mmask8) __U);
1773}
1774
Michael Kupersteine45af542015-06-30 13:36:19 +00001775static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001776_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1777{
1778 return (__m128d) __builtin_ia32_vfnmsubpd128_mask ((__v2df) __A,
1779 (__v2df) __B,
1780 (__v2df) __C,
1781 (__mmask8) __U);
1782}
1783
Michael Kupersteine45af542015-06-30 13:36:19 +00001784static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001785_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1786{
1787 return (__m128d) __builtin_ia32_vfnmsubpd128_mask3 ((__v2df) __A,
1788 (__v2df) __B,
1789 (__v2df) __C,
1790 (__mmask8) __U);
1791}
1792
Michael Kupersteine45af542015-06-30 13:36:19 +00001793static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001794_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1795{
1796 return (__m256d) __builtin_ia32_vfnmsubpd256_mask ((__v4df) __A,
1797 (__v4df) __B,
1798 (__v4df) __C,
1799 (__mmask8) __U);
1800}
1801
Michael Kupersteine45af542015-06-30 13:36:19 +00001802static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001803_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1804{
1805 return (__m256d) __builtin_ia32_vfnmsubpd256_mask3 ((__v4df) __A,
1806 (__v4df) __B,
1807 (__v4df) __C,
1808 (__mmask8) __U);
1809}
1810
Michael Kupersteine45af542015-06-30 13:36:19 +00001811static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001812_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1813{
1814 return (__m128) __builtin_ia32_vfnmsubps128_mask ((__v4sf) __A,
1815 (__v4sf) __B,
1816 (__v4sf) __C,
1817 (__mmask8) __U);
1818}
1819
Michael Kupersteine45af542015-06-30 13:36:19 +00001820static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001821_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1822{
1823 return (__m128) __builtin_ia32_vfnmsubps128_mask3 ((__v4sf) __A,
1824 (__v4sf) __B,
1825 (__v4sf) __C,
1826 (__mmask8) __U);
1827}
1828
Michael Kupersteine45af542015-06-30 13:36:19 +00001829static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001830_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1831{
1832 return (__m256) __builtin_ia32_vfnmsubps256_mask ((__v8sf) __A,
1833 (__v8sf) __B,
1834 (__v8sf) __C,
1835 (__mmask8) __U);
1836}
1837
Michael Kupersteine45af542015-06-30 13:36:19 +00001838static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001839_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1840{
1841 return (__m256) __builtin_ia32_vfnmsubps256_mask3 ((__v8sf) __A,
1842 (__v8sf) __B,
1843 (__v8sf) __C,
1844 (__mmask8) __U);
1845}
1846
Asaf Badouh74da3872015-07-28 08:26:14 +00001847static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001848_mm_mask_add_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1849 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
1850 (__v2df)_mm_add_pd(__A, __B),
1851 (__v2df)__W);
Asaf Badouh74da3872015-07-28 08:26:14 +00001852}
1853
1854static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001855_mm_maskz_add_pd(__mmask8 __U, __m128d __A, __m128d __B) {
1856 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
1857 (__v2df)_mm_add_pd(__A, __B),
1858 (__v2df)_mm_setzero_pd());
Asaf Badouh74da3872015-07-28 08:26:14 +00001859}
1860
1861static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001862_mm256_mask_add_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
1863 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
1864 (__v4df)_mm256_add_pd(__A, __B),
1865 (__v4df)__W);
Asaf Badouh74da3872015-07-28 08:26:14 +00001866}
1867
1868static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001869_mm256_maskz_add_pd(__mmask8 __U, __m256d __A, __m256d __B) {
1870 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
1871 (__v4df)_mm256_add_pd(__A, __B),
1872 (__v4df)_mm256_setzero_pd());
Asaf Badouh74da3872015-07-28 08:26:14 +00001873}
1874
1875static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001876_mm_mask_add_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1877 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
1878 (__v4sf)_mm_add_ps(__A, __B),
1879 (__v4sf)__W);
Asaf Badouh74da3872015-07-28 08:26:14 +00001880}
1881
1882static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001883_mm_maskz_add_ps(__mmask8 __U, __m128 __A, __m128 __B) {
1884 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
1885 (__v4sf)_mm_add_ps(__A, __B),
1886 (__v4sf)_mm_setzero_ps());
Asaf Badouh74da3872015-07-28 08:26:14 +00001887}
1888
1889static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001890_mm256_mask_add_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
1891 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
1892 (__v8sf)_mm256_add_ps(__A, __B),
1893 (__v8sf)__W);
Asaf Badouh74da3872015-07-28 08:26:14 +00001894}
1895
1896static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00001897_mm256_maskz_add_ps(__mmask8 __U, __m256 __A, __m256 __B) {
1898 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
1899 (__v8sf)_mm256_add_ps(__A, __B),
1900 (__v8sf)_mm256_setzero_ps());
Asaf Badouh74da3872015-07-28 08:26:14 +00001901}
1902
1903static __inline__ __m128i __DEFAULT_FN_ATTRS
1904_mm_mask_blend_epi32 (__mmask8 __U, __m128i __A, __m128i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001905 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001906 (__v4si) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001907 (__v4si) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001908}
1909
1910static __inline__ __m256i __DEFAULT_FN_ATTRS
1911_mm256_mask_blend_epi32 (__mmask8 __U, __m256i __A, __m256i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001912 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001913 (__v8si) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001914 (__v8si) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001915}
1916
1917static __inline__ __m128d __DEFAULT_FN_ATTRS
1918_mm_mask_blend_pd (__mmask8 __U, __m128d __A, __m128d __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001919 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001920 (__v2df) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001921 (__v2df) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001922}
1923
1924static __inline__ __m256d __DEFAULT_FN_ATTRS
1925_mm256_mask_blend_pd (__mmask8 __U, __m256d __A, __m256d __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001926 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001927 (__v4df) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001928 (__v4df) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001929}
1930
1931static __inline__ __m128 __DEFAULT_FN_ATTRS
1932_mm_mask_blend_ps (__mmask8 __U, __m128 __A, __m128 __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001933 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001934 (__v4sf) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001935 (__v4sf) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001936}
1937
1938static __inline__ __m256 __DEFAULT_FN_ATTRS
1939_mm256_mask_blend_ps (__mmask8 __U, __m256 __A, __m256 __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001940 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001941 (__v8sf) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001942 (__v8sf) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001943}
1944
1945static __inline__ __m128i __DEFAULT_FN_ATTRS
1946_mm_mask_blend_epi64 (__mmask8 __U, __m128i __A, __m128i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001947 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001948 (__v2di) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001949 (__v2di) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001950}
1951
1952static __inline__ __m256i __DEFAULT_FN_ATTRS
1953_mm256_mask_blend_epi64 (__mmask8 __U, __m256i __A, __m256i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001954 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001955 (__v4di) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001956 (__v4di) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001957}
1958
1959static __inline__ __m128d __DEFAULT_FN_ATTRS
1960_mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A) {
1961 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
1962 (__v2df) __W,
1963 (__mmask8) __U);
1964}
1965
1966static __inline__ __m128d __DEFAULT_FN_ATTRS
1967_mm_maskz_compress_pd (__mmask8 __U, __m128d __A) {
1968 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
1969 (__v2df)
1970 _mm_setzero_pd (),
1971 (__mmask8) __U);
1972}
1973
1974static __inline__ __m256d __DEFAULT_FN_ATTRS
1975_mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A) {
1976 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
1977 (__v4df) __W,
1978 (__mmask8) __U);
1979}
1980
1981static __inline__ __m256d __DEFAULT_FN_ATTRS
1982_mm256_maskz_compress_pd (__mmask8 __U, __m256d __A) {
1983 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
1984 (__v4df)
1985 _mm256_setzero_pd (),
1986 (__mmask8) __U);
1987}
1988
1989static __inline__ __m128i __DEFAULT_FN_ATTRS
1990_mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
1991 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
1992 (__v2di) __W,
1993 (__mmask8) __U);
1994}
1995
1996static __inline__ __m128i __DEFAULT_FN_ATTRS
1997_mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A) {
1998 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
1999 (__v2di)
2000 _mm_setzero_si128 (),
2001 (__mmask8) __U);
2002}
2003
2004static __inline__ __m256i __DEFAULT_FN_ATTRS
2005_mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2006 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
2007 (__v4di) __W,
2008 (__mmask8) __U);
2009}
2010
2011static __inline__ __m256i __DEFAULT_FN_ATTRS
2012_mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A) {
2013 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
2014 (__v4di)
2015 _mm256_setzero_si256 (),
2016 (__mmask8) __U);
2017}
2018
2019static __inline__ __m128 __DEFAULT_FN_ATTRS
2020_mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A) {
2021 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
2022 (__v4sf) __W,
2023 (__mmask8) __U);
2024}
2025
2026static __inline__ __m128 __DEFAULT_FN_ATTRS
2027_mm_maskz_compress_ps (__mmask8 __U, __m128 __A) {
2028 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
2029 (__v4sf)
2030 _mm_setzero_ps (),
2031 (__mmask8) __U);
2032}
2033
2034static __inline__ __m256 __DEFAULT_FN_ATTRS
2035_mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A) {
2036 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
2037 (__v8sf) __W,
2038 (__mmask8) __U);
2039}
2040
2041static __inline__ __m256 __DEFAULT_FN_ATTRS
2042_mm256_maskz_compress_ps (__mmask8 __U, __m256 __A) {
2043 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
2044 (__v8sf)
2045 _mm256_setzero_ps (),
2046 (__mmask8) __U);
2047}
2048
2049static __inline__ __m128i __DEFAULT_FN_ATTRS
2050_mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
2051 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
2052 (__v4si) __W,
2053 (__mmask8) __U);
2054}
2055
2056static __inline__ __m128i __DEFAULT_FN_ATTRS
2057_mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A) {
2058 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
2059 (__v4si)
2060 _mm_setzero_si128 (),
2061 (__mmask8) __U);
2062}
2063
2064static __inline__ __m256i __DEFAULT_FN_ATTRS
2065_mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
2066 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
2067 (__v8si) __W,
2068 (__mmask8) __U);
2069}
2070
2071static __inline__ __m256i __DEFAULT_FN_ATTRS
2072_mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A) {
2073 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
2074 (__v8si)
2075 _mm256_setzero_si256 (),
2076 (__mmask8) __U);
2077}
2078
2079static __inline__ void __DEFAULT_FN_ATTRS
2080_mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A) {
2081 __builtin_ia32_compressstoredf128_mask ((__v2df *) __P,
2082 (__v2df) __A,
2083 (__mmask8) __U);
2084}
2085
2086static __inline__ void __DEFAULT_FN_ATTRS
2087_mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A) {
2088 __builtin_ia32_compressstoredf256_mask ((__v4df *) __P,
2089 (__v4df) __A,
2090 (__mmask8) __U);
2091}
2092
2093static __inline__ void __DEFAULT_FN_ATTRS
2094_mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A) {
2095 __builtin_ia32_compressstoredi128_mask ((__v2di *) __P,
2096 (__v2di) __A,
2097 (__mmask8) __U);
2098}
2099
2100static __inline__ void __DEFAULT_FN_ATTRS
2101_mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A) {
2102 __builtin_ia32_compressstoredi256_mask ((__v4di *) __P,
2103 (__v4di) __A,
2104 (__mmask8) __U);
2105}
2106
2107static __inline__ void __DEFAULT_FN_ATTRS
2108_mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A) {
2109 __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P,
2110 (__v4sf) __A,
2111 (__mmask8) __U);
2112}
2113
2114static __inline__ void __DEFAULT_FN_ATTRS
2115_mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A) {
2116 __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P,
2117 (__v8sf) __A,
2118 (__mmask8) __U);
2119}
2120
2121static __inline__ void __DEFAULT_FN_ATTRS
2122_mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A) {
2123 __builtin_ia32_compressstoresi128_mask ((__v4si *) __P,
2124 (__v4si) __A,
2125 (__mmask8) __U);
2126}
2127
2128static __inline__ void __DEFAULT_FN_ATTRS
2129_mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A) {
2130 __builtin_ia32_compressstoresi256_mask ((__v8si *) __P,
2131 (__v8si) __A,
2132 (__mmask8) __U);
2133}
2134
2135static __inline__ __m128d __DEFAULT_FN_ATTRS
2136_mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2137 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
2138 (__v2df) __W,
2139 (__mmask8) __U);
2140}
2141
2142static __inline__ __m128d __DEFAULT_FN_ATTRS
2143_mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
2144 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
2145 (__v2df)
2146 _mm_setzero_pd (),
2147 (__mmask8) __U);
2148}
2149
2150static __inline__ __m256d __DEFAULT_FN_ATTRS
2151_mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2152 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
2153 (__v4df) __W,
2154 (__mmask8) __U);
2155}
2156
2157static __inline__ __m256d __DEFAULT_FN_ATTRS
2158_mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
2159 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
2160 (__v4df)
2161 _mm256_setzero_pd (),
2162 (__mmask8) __U);
2163}
2164
2165static __inline__ __m128 __DEFAULT_FN_ATTRS
2166_mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2167 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2168 (__v4sf) __W,
2169 (__mmask8) __U);
2170}
2171
2172static __inline__ __m128 __DEFAULT_FN_ATTRS
2173_mm_maskz_cvtepi32_ps (__mmask16 __U, __m128i __A) {
2174 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2175 (__v4sf)
2176 _mm_setzero_ps (),
2177 (__mmask8) __U);
2178}
2179
2180static __inline__ __m256 __DEFAULT_FN_ATTRS
2181_mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2182 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2183 (__v8sf) __W,
2184 (__mmask8) __U);
2185}
2186
2187static __inline__ __m256 __DEFAULT_FN_ATTRS
2188_mm256_maskz_cvtepi32_ps (__mmask16 __U, __m256i __A) {
2189 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2190 (__v8sf)
2191 _mm256_setzero_ps (),
2192 (__mmask8) __U);
2193}
2194
2195static __inline__ __m128i __DEFAULT_FN_ATTRS
2196_mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2197 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2198 (__v4si) __W,
2199 (__mmask8) __U);
2200}
2201
2202static __inline__ __m128i __DEFAULT_FN_ATTRS
2203_mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) {
2204 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2205 (__v4si)
2206 _mm_setzero_si128 (),
2207 (__mmask8) __U);
2208}
2209
2210static __inline__ __m128i __DEFAULT_FN_ATTRS
2211_mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2212 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2213 (__v4si) __W,
2214 (__mmask8) __U);
2215}
2216
2217static __inline__ __m128i __DEFAULT_FN_ATTRS
2218_mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) {
2219 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2220 (__v4si)
2221 _mm_setzero_si128 (),
2222 (__mmask8) __U);
2223}
2224
2225static __inline__ __m128 __DEFAULT_FN_ATTRS
2226_mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) {
2227 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2228 (__v4sf) __W,
2229 (__mmask8) __U);
2230}
2231
2232static __inline__ __m128 __DEFAULT_FN_ATTRS
2233_mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) {
2234 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2235 (__v4sf)
2236 _mm_setzero_ps (),
2237 (__mmask8) __U);
2238}
2239
2240static __inline__ __m128 __DEFAULT_FN_ATTRS
2241_mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) {
2242 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2243 (__v4sf) __W,
2244 (__mmask8) __U);
2245}
2246
2247static __inline__ __m128 __DEFAULT_FN_ATTRS
2248_mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) {
2249 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2250 (__v4sf)
2251 _mm_setzero_ps (),
2252 (__mmask8) __U);
2253}
2254
2255static __inline__ __m128i __DEFAULT_FN_ATTRS
2256_mm_cvtpd_epu32 (__m128d __A) {
2257 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2258 (__v4si)
2259 _mm_setzero_si128 (),
2260 (__mmask8) -1);
2261}
2262
2263static __inline__ __m128i __DEFAULT_FN_ATTRS
2264_mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2265 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2266 (__v4si) __W,
2267 (__mmask8) __U);
2268}
2269
2270static __inline__ __m128i __DEFAULT_FN_ATTRS
2271_mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) {
2272 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2273 (__v4si)
2274 _mm_setzero_si128 (),
2275 (__mmask8) __U);
2276}
2277
2278static __inline__ __m128i __DEFAULT_FN_ATTRS
2279_mm256_cvtpd_epu32 (__m256d __A) {
2280 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2281 (__v4si)
2282 _mm_setzero_si128 (),
2283 (__mmask8) -1);
2284}
2285
2286static __inline__ __m128i __DEFAULT_FN_ATTRS
2287_mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2288 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2289 (__v4si) __W,
2290 (__mmask8) __U);
2291}
2292
2293static __inline__ __m128i __DEFAULT_FN_ATTRS
2294_mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) {
2295 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2296 (__v4si)
2297 _mm_setzero_si128 (),
2298 (__mmask8) __U);
2299}
2300
2301static __inline__ __m128i __DEFAULT_FN_ATTRS
2302_mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2303 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2304 (__v4si) __W,
2305 (__mmask8) __U);
2306}
2307
2308static __inline__ __m128i __DEFAULT_FN_ATTRS
2309_mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) {
2310 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2311 (__v4si)
2312 _mm_setzero_si128 (),
2313 (__mmask8) __U);
2314}
2315
2316static __inline__ __m256i __DEFAULT_FN_ATTRS
2317_mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2318 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2319 (__v8si) __W,
2320 (__mmask8) __U);
2321}
2322
2323static __inline__ __m256i __DEFAULT_FN_ATTRS
2324_mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) {
2325 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2326 (__v8si)
2327 _mm256_setzero_si256 (),
2328 (__mmask8) __U);
2329}
2330
2331static __inline__ __m128d __DEFAULT_FN_ATTRS
2332_mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) {
2333 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2334 (__v2df) __W,
2335 (__mmask8) __U);
2336}
2337
2338static __inline__ __m128d __DEFAULT_FN_ATTRS
2339_mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2340 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2341 (__v2df)
2342 _mm_setzero_pd (),
2343 (__mmask8) __U);
2344}
2345
2346static __inline__ __m256d __DEFAULT_FN_ATTRS
2347_mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) {
2348 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2349 (__v4df) __W,
2350 (__mmask8) __U);
2351}
2352
2353static __inline__ __m256d __DEFAULT_FN_ATTRS
2354_mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2355 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2356 (__v4df)
2357 _mm256_setzero_pd (),
2358 (__mmask8) __U);
2359}
2360
2361static __inline__ __m128i __DEFAULT_FN_ATTRS
2362_mm_cvtps_epu32 (__m128 __A) {
2363 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2364 (__v4si)
2365 _mm_setzero_si128 (),
2366 (__mmask8) -1);
2367}
2368
2369static __inline__ __m128i __DEFAULT_FN_ATTRS
2370_mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2371 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2372 (__v4si) __W,
2373 (__mmask8) __U);
2374}
2375
2376static __inline__ __m128i __DEFAULT_FN_ATTRS
2377_mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) {
2378 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2379 (__v4si)
2380 _mm_setzero_si128 (),
2381 (__mmask8) __U);
2382}
2383
2384static __inline__ __m256i __DEFAULT_FN_ATTRS
2385_mm256_cvtps_epu32 (__m256 __A) {
2386 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2387 (__v8si)
2388 _mm256_setzero_si256 (),
2389 (__mmask8) -1);
2390}
2391
2392static __inline__ __m256i __DEFAULT_FN_ATTRS
2393_mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2394 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2395 (__v8si) __W,
2396 (__mmask8) __U);
2397}
2398
2399static __inline__ __m256i __DEFAULT_FN_ATTRS
2400_mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) {
2401 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2402 (__v8si)
2403 _mm256_setzero_si256 (),
2404 (__mmask8) __U);
2405}
2406
2407static __inline__ __m128i __DEFAULT_FN_ATTRS
2408_mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2409 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2410 (__v4si) __W,
2411 (__mmask8) __U);
2412}
2413
2414static __inline__ __m128i __DEFAULT_FN_ATTRS
2415_mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) {
2416 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2417 (__v4si)
2418 _mm_setzero_si128 (),
2419 (__mmask8) __U);
2420}
2421
2422static __inline__ __m128i __DEFAULT_FN_ATTRS
2423_mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2424 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2425 (__v4si) __W,
2426 (__mmask8) __U);
2427}
2428
2429static __inline__ __m128i __DEFAULT_FN_ATTRS
2430_mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) {
2431 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2432 (__v4si)
2433 _mm_setzero_si128 (),
2434 (__mmask8) __U);
2435}
2436
2437static __inline__ __m128i __DEFAULT_FN_ATTRS
2438_mm_cvttpd_epu32 (__m128d __A) {
2439 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2440 (__v4si)
2441 _mm_setzero_si128 (),
2442 (__mmask8) -1);
2443}
2444
2445static __inline__ __m128i __DEFAULT_FN_ATTRS
2446_mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2447 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2448 (__v4si) __W,
2449 (__mmask8) __U);
2450}
2451
2452static __inline__ __m128i __DEFAULT_FN_ATTRS
2453_mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) {
2454 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2455 (__v4si)
2456 _mm_setzero_si128 (),
2457 (__mmask8) __U);
2458}
2459
2460static __inline__ __m128i __DEFAULT_FN_ATTRS
2461_mm256_cvttpd_epu32 (__m256d __A) {
2462 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2463 (__v4si)
2464 _mm_setzero_si128 (),
2465 (__mmask8) -1);
2466}
2467
2468static __inline__ __m128i __DEFAULT_FN_ATTRS
2469_mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2470 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2471 (__v4si) __W,
2472 (__mmask8) __U);
2473}
2474
2475static __inline__ __m128i __DEFAULT_FN_ATTRS
2476_mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) {
2477 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2478 (__v4si)
2479 _mm_setzero_si128 (),
2480 (__mmask8) __U);
2481}
2482
2483static __inline__ __m128i __DEFAULT_FN_ATTRS
2484_mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2485 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2486 (__v4si) __W,
2487 (__mmask8) __U);
2488}
2489
2490static __inline__ __m128i __DEFAULT_FN_ATTRS
2491_mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) {
2492 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2493 (__v4si)
2494 _mm_setzero_si128 (),
2495 (__mmask8) __U);
2496}
2497
2498static __inline__ __m256i __DEFAULT_FN_ATTRS
2499_mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2500 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2501 (__v8si) __W,
2502 (__mmask8) __U);
2503}
2504
2505static __inline__ __m256i __DEFAULT_FN_ATTRS
2506_mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) {
2507 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2508 (__v8si)
2509 _mm256_setzero_si256 (),
2510 (__mmask8) __U);
2511}
2512
2513static __inline__ __m128i __DEFAULT_FN_ATTRS
2514_mm_cvttps_epu32 (__m128 __A) {
2515 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2516 (__v4si)
2517 _mm_setzero_si128 (),
2518 (__mmask8) -1);
2519}
2520
2521static __inline__ __m128i __DEFAULT_FN_ATTRS
2522_mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2523 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2524 (__v4si) __W,
2525 (__mmask8) __U);
2526}
2527
2528static __inline__ __m128i __DEFAULT_FN_ATTRS
2529_mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) {
2530 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2531 (__v4si)
2532 _mm_setzero_si128 (),
2533 (__mmask8) __U);
2534}
2535
2536static __inline__ __m256i __DEFAULT_FN_ATTRS
2537_mm256_cvttps_epu32 (__m256 __A) {
2538 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2539 (__v8si)
2540 _mm256_setzero_si256 (),
2541 (__mmask8) -1);
2542}
2543
2544static __inline__ __m256i __DEFAULT_FN_ATTRS
2545_mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2546 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2547 (__v8si) __W,
2548 (__mmask8) __U);
2549}
2550
2551static __inline__ __m256i __DEFAULT_FN_ATTRS
2552_mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) {
2553 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2554 (__v8si)
2555 _mm256_setzero_si256 (),
2556 (__mmask8) __U);
2557}
2558
2559static __inline__ __m128d __DEFAULT_FN_ATTRS
2560_mm_cvtepu32_pd (__m128i __A) {
2561 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2562 (__v2df)
2563 _mm_setzero_pd (),
2564 (__mmask8) -1);
2565}
2566
2567static __inline__ __m128d __DEFAULT_FN_ATTRS
2568_mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2569 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2570 (__v2df) __W,
2571 (__mmask8) __U);
2572}
2573
2574static __inline__ __m128d __DEFAULT_FN_ATTRS
2575_mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2576 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2577 (__v2df)
2578 _mm_setzero_pd (),
2579 (__mmask8) __U);
2580}
2581
2582static __inline__ __m256d __DEFAULT_FN_ATTRS
2583_mm256_cvtepu32_pd (__m128i __A) {
2584 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2585 (__v4df)
2586 _mm256_setzero_pd (),
2587 (__mmask8) -1);
2588}
2589
2590static __inline__ __m256d __DEFAULT_FN_ATTRS
2591_mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2592 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2593 (__v4df) __W,
2594 (__mmask8) __U);
2595}
2596
2597static __inline__ __m256d __DEFAULT_FN_ATTRS
2598_mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2599 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2600 (__v4df)
2601 _mm256_setzero_pd (),
2602 (__mmask8) __U);
2603}
2604
2605static __inline__ __m128 __DEFAULT_FN_ATTRS
2606_mm_cvtepu32_ps (__m128i __A) {
2607 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2608 (__v4sf)
2609 _mm_setzero_ps (),
2610 (__mmask8) -1);
2611}
2612
2613static __inline__ __m128 __DEFAULT_FN_ATTRS
2614_mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2615 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2616 (__v4sf) __W,
2617 (__mmask8) __U);
2618}
2619
2620static __inline__ __m128 __DEFAULT_FN_ATTRS
2621_mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) {
2622 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2623 (__v4sf)
2624 _mm_setzero_ps (),
2625 (__mmask8) __U);
2626}
2627
2628static __inline__ __m256 __DEFAULT_FN_ATTRS
2629_mm256_cvtepu32_ps (__m256i __A) {
2630 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2631 (__v8sf)
2632 _mm256_setzero_ps (),
2633 (__mmask8) -1);
2634}
2635
2636static __inline__ __m256 __DEFAULT_FN_ATTRS
2637_mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2638 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2639 (__v8sf) __W,
2640 (__mmask8) __U);
2641}
2642
2643static __inline__ __m256 __DEFAULT_FN_ATTRS
2644_mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) {
2645 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2646 (__v8sf)
2647 _mm256_setzero_ps (),
2648 (__mmask8) __U);
2649}
2650
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002651static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002652_mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2653 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2654 (__v2df)_mm_div_pd(__A, __B),
2655 (__v2df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002656}
2657
2658static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002659_mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) {
2660 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2661 (__v2df)_mm_div_pd(__A, __B),
2662 (__v2df)_mm_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002663}
2664
2665static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002666_mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2667 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2668 (__v4df)_mm256_div_pd(__A, __B),
2669 (__v4df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002670}
2671
2672static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002673_mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2674 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2675 (__v4df)_mm256_div_pd(__A, __B),
2676 (__v4df)_mm256_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002677}
2678
2679static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002680_mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2681 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2682 (__v4sf)_mm_div_ps(__A, __B),
2683 (__v4sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002684}
2685
2686static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002687_mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) {
2688 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2689 (__v4sf)_mm_div_ps(__A, __B),
2690 (__v4sf)_mm_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002691}
2692
2693static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002694_mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2695 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2696 (__v8sf)_mm256_div_ps(__A, __B),
2697 (__v8sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002698}
2699
2700static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002701_mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2702 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2703 (__v8sf)_mm256_div_ps(__A, __B),
2704 (__v8sf)_mm256_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002705}
2706
2707static __inline__ __m128d __DEFAULT_FN_ATTRS
2708_mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2709 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2710 (__v2df) __W,
2711 (__mmask8) __U);
2712}
2713
2714static __inline__ __m128d __DEFAULT_FN_ATTRS
2715_mm_maskz_expand_pd (__mmask8 __U, __m128d __A) {
2716 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2717 (__v2df)
2718 _mm_setzero_pd (),
2719 (__mmask8) __U);
2720}
2721
2722static __inline__ __m256d __DEFAULT_FN_ATTRS
2723_mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2724 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2725 (__v4df) __W,
2726 (__mmask8) __U);
2727}
2728
2729static __inline__ __m256d __DEFAULT_FN_ATTRS
2730_mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) {
2731 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2732 (__v4df)
2733 _mm256_setzero_pd (),
2734 (__mmask8) __U);
2735}
2736
2737static __inline__ __m128i __DEFAULT_FN_ATTRS
2738_mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2739 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2740 (__v2di) __W,
2741 (__mmask8) __U);
2742}
2743
2744static __inline__ __m128i __DEFAULT_FN_ATTRS
2745_mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) {
2746 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2747 (__v2di)
2748 _mm_setzero_si128 (),
2749 (__mmask8) __U);
2750}
2751
2752static __inline__ __m256i __DEFAULT_FN_ATTRS
2753_mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2754 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2755 (__v4di) __W,
2756 (__mmask8) __U);
2757}
2758
2759static __inline__ __m256i __DEFAULT_FN_ATTRS
2760_mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) {
2761 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2762 (__v4di)
2763 _mm256_setzero_si256 (),
2764 (__mmask8) __U);
2765}
2766
2767static __inline__ __m128d __DEFAULT_FN_ATTRS
2768_mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) {
2769 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2770 (__v2df) __W,
2771 (__mmask8)
2772 __U);
2773}
2774
2775static __inline__ __m128d __DEFAULT_FN_ATTRS
2776_mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2777 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2778 (__v2df)
2779 _mm_setzero_pd (),
2780 (__mmask8)
2781 __U);
2782}
2783
2784static __inline__ __m256d __DEFAULT_FN_ATTRS
2785_mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) {
2786 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2787 (__v4df) __W,
2788 (__mmask8)
2789 __U);
2790}
2791
2792static __inline__ __m256d __DEFAULT_FN_ATTRS
2793_mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2794 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2795 (__v4df)
2796 _mm256_setzero_pd (),
2797 (__mmask8)
2798 __U);
2799}
2800
2801static __inline__ __m128i __DEFAULT_FN_ATTRS
2802_mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) {
2803 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2804 (__v2di) __W,
2805 (__mmask8)
2806 __U);
2807}
2808
2809static __inline__ __m128i __DEFAULT_FN_ATTRS
2810_mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2811 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2812 (__v2di)
2813 _mm_setzero_si128 (),
2814 (__mmask8)
2815 __U);
2816}
2817
2818static __inline__ __m256i __DEFAULT_FN_ATTRS
2819_mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U,
2820 void const *__P) {
2821 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2822 (__v4di) __W,
2823 (__mmask8)
2824 __U);
2825}
2826
2827static __inline__ __m256i __DEFAULT_FN_ATTRS
2828_mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2829 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2830 (__v4di)
2831 _mm256_setzero_si256 (),
2832 (__mmask8)
2833 __U);
2834}
2835
2836static __inline__ __m128 __DEFAULT_FN_ATTRS
2837_mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) {
2838 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
2839 (__v4sf) __W,
2840 (__mmask8) __U);
2841}
2842
2843static __inline__ __m128 __DEFAULT_FN_ATTRS
2844_mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
2845 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
2846 (__v4sf)
2847 _mm_setzero_ps (),
2848 (__mmask8)
2849 __U);
2850}
2851
2852static __inline__ __m256 __DEFAULT_FN_ATTRS
2853_mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) {
2854 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
2855 (__v8sf) __W,
2856 (__mmask8) __U);
2857}
2858
2859static __inline__ __m256 __DEFAULT_FN_ATTRS
2860_mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
2861 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
2862 (__v8sf)
2863 _mm256_setzero_ps (),
2864 (__mmask8)
2865 __U);
2866}
2867
2868static __inline__ __m128i __DEFAULT_FN_ATTRS
2869_mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) {
2870 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
2871 (__v4si) __W,
2872 (__mmask8)
2873 __U);
2874}
2875
2876static __inline__ __m128i __DEFAULT_FN_ATTRS
2877_mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
2878 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
2879 (__v4si)
2880 _mm_setzero_si128 (),
2881 (__mmask8) __U);
2882}
2883
2884static __inline__ __m256i __DEFAULT_FN_ATTRS
2885_mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U,
2886 void const *__P) {
2887 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
2888 (__v8si) __W,
2889 (__mmask8)
2890 __U);
2891}
2892
2893static __inline__ __m256i __DEFAULT_FN_ATTRS
2894_mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
2895 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
2896 (__v8si)
2897 _mm256_setzero_si256 (),
2898 (__mmask8)
2899 __U);
2900}
2901
2902static __inline__ __m128 __DEFAULT_FN_ATTRS
2903_mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) {
2904 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
2905 (__v4sf) __W,
2906 (__mmask8) __U);
2907}
2908
2909static __inline__ __m128 __DEFAULT_FN_ATTRS
2910_mm_maskz_expand_ps (__mmask8 __U, __m128 __A) {
2911 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
2912 (__v4sf)
2913 _mm_setzero_ps (),
2914 (__mmask8) __U);
2915}
2916
2917static __inline__ __m256 __DEFAULT_FN_ATTRS
2918_mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) {
2919 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
2920 (__v8sf) __W,
2921 (__mmask8) __U);
2922}
2923
2924static __inline__ __m256 __DEFAULT_FN_ATTRS
2925_mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) {
2926 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
2927 (__v8sf)
2928 _mm256_setzero_ps (),
2929 (__mmask8) __U);
2930}
2931
2932static __inline__ __m128i __DEFAULT_FN_ATTRS
2933_mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
2934 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
2935 (__v4si) __W,
2936 (__mmask8) __U);
2937}
2938
2939static __inline__ __m128i __DEFAULT_FN_ATTRS
2940_mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) {
2941 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
2942 (__v4si)
2943 _mm_setzero_si128 (),
2944 (__mmask8) __U);
2945}
2946
2947static __inline__ __m256i __DEFAULT_FN_ATTRS
2948_mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
2949 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
2950 (__v8si) __W,
2951 (__mmask8) __U);
2952}
2953
2954static __inline__ __m256i __DEFAULT_FN_ATTRS
2955_mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) {
2956 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
2957 (__v8si)
2958 _mm256_setzero_si256 (),
2959 (__mmask8) __U);
2960}
2961
2962static __inline__ __m128d __DEFAULT_FN_ATTRS
2963_mm_getexp_pd (__m128d __A) {
2964 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
2965 (__v2df)
2966 _mm_setzero_pd (),
2967 (__mmask8) -1);
2968}
2969
2970static __inline__ __m128d __DEFAULT_FN_ATTRS
2971_mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2972 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
2973 (__v2df) __W,
2974 (__mmask8) __U);
2975}
2976
2977static __inline__ __m128d __DEFAULT_FN_ATTRS
2978_mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) {
2979 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
2980 (__v2df)
2981 _mm_setzero_pd (),
2982 (__mmask8) __U);
2983}
2984
2985static __inline__ __m256d __DEFAULT_FN_ATTRS
2986_mm256_getexp_pd (__m256d __A) {
2987 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
2988 (__v4df)
2989 _mm256_setzero_pd (),
2990 (__mmask8) -1);
2991}
2992
2993static __inline__ __m256d __DEFAULT_FN_ATTRS
2994_mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2995 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
2996 (__v4df) __W,
2997 (__mmask8) __U);
2998}
2999
3000static __inline__ __m256d __DEFAULT_FN_ATTRS
3001_mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) {
3002 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3003 (__v4df)
3004 _mm256_setzero_pd (),
3005 (__mmask8) __U);
3006}
3007
3008static __inline__ __m128 __DEFAULT_FN_ATTRS
3009_mm_getexp_ps (__m128 __A) {
3010 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3011 (__v4sf)
3012 _mm_setzero_ps (),
3013 (__mmask8) -1);
3014}
3015
3016static __inline__ __m128 __DEFAULT_FN_ATTRS
3017_mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) {
3018 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3019 (__v4sf) __W,
3020 (__mmask8) __U);
3021}
3022
3023static __inline__ __m128 __DEFAULT_FN_ATTRS
3024_mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) {
3025 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3026 (__v4sf)
3027 _mm_setzero_ps (),
3028 (__mmask8) __U);
3029}
3030
3031static __inline__ __m256 __DEFAULT_FN_ATTRS
3032_mm256_getexp_ps (__m256 __A) {
3033 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3034 (__v8sf)
3035 _mm256_setzero_ps (),
3036 (__mmask8) -1);
3037}
3038
3039static __inline__ __m256 __DEFAULT_FN_ATTRS
3040_mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) {
3041 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3042 (__v8sf) __W,
3043 (__mmask8) __U);
3044}
3045
3046static __inline__ __m256 __DEFAULT_FN_ATTRS
3047_mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) {
3048 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3049 (__v8sf)
3050 _mm256_setzero_ps (),
3051 (__mmask8) __U);
3052}
3053
3054static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003055_mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3056 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3057 (__v2df)_mm_max_pd(__A, __B),
3058 (__v2df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003059}
3060
3061static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003062_mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) {
3063 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3064 (__v2df)_mm_max_pd(__A, __B),
3065 (__v2df)_mm_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003066}
3067
3068static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003069_mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
3070 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3071 (__v4df)_mm256_max_pd(__A, __B),
3072 (__v4df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003073}
3074
3075static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003076_mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) {
3077 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3078 (__v4df)_mm256_max_pd(__A, __B),
3079 (__v4df)_mm256_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003080}
3081
3082static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003083_mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3084 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3085 (__v4sf)_mm_max_ps(__A, __B),
3086 (__v4sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003087}
3088
3089static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003090_mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) {
3091 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3092 (__v4sf)_mm_max_ps(__A, __B),
3093 (__v4sf)_mm_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003094}
3095
3096static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003097_mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3098 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3099 (__v8sf)_mm256_max_ps(__A, __B),
3100 (__v8sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003101}
3102
3103static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003104_mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) {
3105 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3106 (__v8sf)_mm256_max_ps(__A, __B),
3107 (__v8sf)_mm256_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003108}
3109
3110static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003111_mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3112 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3113 (__v2df)_mm_min_pd(__A, __B),
3114 (__v2df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003115}
3116
3117static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003118_mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) {
3119 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3120 (__v2df)_mm_min_pd(__A, __B),
3121 (__v2df)_mm_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003122}
3123
3124static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003125_mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
3126 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3127 (__v4df)_mm256_min_pd(__A, __B),
3128 (__v4df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003129}
3130
3131static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003132_mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) {
3133 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3134 (__v4df)_mm256_min_pd(__A, __B),
3135 (__v4df)_mm256_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003136}
3137
3138static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003139_mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3140 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3141 (__v4sf)_mm_min_ps(__A, __B),
3142 (__v4sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003143}
3144
3145static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003146_mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) {
3147 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3148 (__v4sf)_mm_min_ps(__A, __B),
3149 (__v4sf)_mm_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003150}
3151
3152static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003153_mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3154 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3155 (__v8sf)_mm256_min_ps(__A, __B),
3156 (__v8sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003157}
3158
3159static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003160_mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) {
3161 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3162 (__v8sf)_mm256_min_ps(__A, __B),
3163 (__v8sf)_mm256_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003164}
3165
3166static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003167_mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3168 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3169 (__v2df)_mm_mul_pd(__A, __B),
3170 (__v2df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003171}
3172
3173static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003174_mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) {
3175 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3176 (__v2df)_mm_mul_pd(__A, __B),
3177 (__v2df)_mm_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003178}
3179
3180static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003181_mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
3182 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3183 (__v4df)_mm256_mul_pd(__A, __B),
3184 (__v4df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003185}
3186
3187static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003188_mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) {
3189 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3190 (__v4df)_mm256_mul_pd(__A, __B),
3191 (__v4df)_mm256_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003192}
3193
3194static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003195_mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3196 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3197 (__v4sf)_mm_mul_ps(__A, __B),
3198 (__v4sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003199}
3200
3201static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003202_mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) {
3203 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3204 (__v4sf)_mm_mul_ps(__A, __B),
3205 (__v4sf)_mm_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003206}
3207
3208static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003209_mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3210 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3211 (__v8sf)_mm256_mul_ps(__A, __B),
3212 (__v8sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003213}
3214
3215static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003216_mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) {
3217 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3218 (__v8sf)_mm256_mul_ps(__A, __B),
3219 (__v8sf)_mm256_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003220}
3221
3222static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper78a9c402016-10-22 21:24:38 +00003223_mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
3224 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
3225 (__v4si)_mm_abs_epi32(__A),
3226 (__v4si)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003227}
3228
3229static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper78a9c402016-10-22 21:24:38 +00003230_mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) {
3231 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
3232 (__v4si)_mm_abs_epi32(__A),
3233 (__v4si)_mm_setzero_si128());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003234}
3235
3236static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper78a9c402016-10-22 21:24:38 +00003237_mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
3238 return (__m256i)__builtin_ia32_selectd_256((__mmask16)__U,
3239 (__v8si)_mm256_abs_epi32(__A),
3240 (__v8si)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003241}
3242
3243static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper78a9c402016-10-22 21:24:38 +00003244_mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) {
3245 return (__m256i)__builtin_ia32_selectd_256((__mmask16)__U,
3246 (__v8si)_mm256_abs_epi32(__A),
3247 (__v8si)_mm256_setzero_si256());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003248}
3249
3250static __inline__ __m128i __DEFAULT_FN_ATTRS
3251_mm_abs_epi64 (__m128i __A) {
3252 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3253 (__v2di)
3254 _mm_setzero_si128 (),
3255 (__mmask8) -1);
3256}
3257
3258static __inline__ __m128i __DEFAULT_FN_ATTRS
3259_mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
3260 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3261 (__v2di) __W,
3262 (__mmask8) __U);
3263}
3264
3265static __inline__ __m128i __DEFAULT_FN_ATTRS
3266_mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) {
3267 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3268 (__v2di)
3269 _mm_setzero_si128 (),
3270 (__mmask8) __U);
3271}
3272
3273static __inline__ __m256i __DEFAULT_FN_ATTRS
3274_mm256_abs_epi64 (__m256i __A) {
3275 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3276 (__v4di)
3277 _mm256_setzero_si256 (),
3278 (__mmask8) -1);
3279}
3280
3281static __inline__ __m256i __DEFAULT_FN_ATTRS
3282_mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
3283 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3284 (__v4di) __W,
3285 (__mmask8) __U);
3286}
3287
3288static __inline__ __m256i __DEFAULT_FN_ATTRS
3289_mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) {
3290 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3291 (__v4di)
3292 _mm256_setzero_si256 (),
3293 (__mmask8) __U);
3294}
3295
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003296static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003297_mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
3298 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3299 (__v4si)_mm_max_epi32(__A, __B),
3300 (__v4si)_mm_setzero_si128());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003301}
3302
3303static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003304_mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3305 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3306 (__v4si)_mm_max_epi32(__A, __B),
3307 (__v4si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003308}
3309
3310static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003311_mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
3312 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3313 (__v8si)_mm256_max_epi32(__A, __B),
3314 (__v8si)_mm256_setzero_si256());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003315}
3316
3317static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003318_mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3319 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3320 (__v8si)_mm256_max_epi32(__A, __B),
3321 (__v8si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003322}
3323
3324static __inline__ __m128i __DEFAULT_FN_ATTRS
3325_mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3326 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3327 (__v2di) __B,
3328 (__v2di)
3329 _mm_setzero_si128 (),
3330 __M);
3331}
3332
3333static __inline__ __m128i __DEFAULT_FN_ATTRS
3334_mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3335 __m128i __B) {
3336 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3337 (__v2di) __B,
3338 (__v2di) __W, __M);
3339}
3340
3341static __inline__ __m128i __DEFAULT_FN_ATTRS
3342_mm_max_epi64 (__m128i __A, __m128i __B) {
3343 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3344 (__v2di) __B,
3345 (__v2di)
3346 _mm_setzero_si128 (),
3347 (__mmask8) -1);
3348}
3349
3350static __inline__ __m256i __DEFAULT_FN_ATTRS
3351_mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3352 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3353 (__v4di) __B,
3354 (__v4di)
3355 _mm256_setzero_si256 (),
3356 __M);
3357}
3358
3359static __inline__ __m256i __DEFAULT_FN_ATTRS
3360_mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3361 __m256i __B) {
3362 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3363 (__v4di) __B,
3364 (__v4di) __W, __M);
3365}
3366
3367static __inline__ __m256i __DEFAULT_FN_ATTRS
3368_mm256_max_epi64 (__m256i __A, __m256i __B) {
3369 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3370 (__v4di) __B,
3371 (__v4di)
3372 _mm256_setzero_si256 (),
3373 (__mmask8) -1);
3374}
3375
3376static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003377_mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
3378 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3379 (__v4si)_mm_max_epu32(__A, __B),
3380 (__v4si)_mm_setzero_si128());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003381}
3382
3383static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003384_mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3385 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3386 (__v4si)_mm_max_epu32(__A, __B),
3387 (__v4si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003388}
3389
3390static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003391_mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
3392 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3393 (__v8si)_mm256_max_epu32(__A, __B),
3394 (__v8si)_mm256_setzero_si256());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003395}
3396
3397static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003398_mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3399 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3400 (__v8si)_mm256_max_epu32(__A, __B),
3401 (__v8si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003402}
3403
3404static __inline__ __m128i __DEFAULT_FN_ATTRS
3405_mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3406 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3407 (__v2di) __B,
3408 (__v2di)
3409 _mm_setzero_si128 (),
3410 __M);
3411}
3412
3413static __inline__ __m128i __DEFAULT_FN_ATTRS
3414_mm_max_epu64 (__m128i __A, __m128i __B) {
3415 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3416 (__v2di) __B,
3417 (__v2di)
3418 _mm_setzero_si128 (),
3419 (__mmask8) -1);
3420}
3421
3422static __inline__ __m128i __DEFAULT_FN_ATTRS
3423_mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3424 __m128i __B) {
3425 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3426 (__v2di) __B,
3427 (__v2di) __W, __M);
3428}
3429
3430static __inline__ __m256i __DEFAULT_FN_ATTRS
3431_mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3432 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3433 (__v4di) __B,
3434 (__v4di)
3435 _mm256_setzero_si256 (),
3436 __M);
3437}
3438
3439static __inline__ __m256i __DEFAULT_FN_ATTRS
3440_mm256_max_epu64 (__m256i __A, __m256i __B) {
3441 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3442 (__v4di) __B,
3443 (__v4di)
3444 _mm256_setzero_si256 (),
3445 (__mmask8) -1);
3446}
3447
3448static __inline__ __m256i __DEFAULT_FN_ATTRS
3449_mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3450 __m256i __B) {
3451 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3452 (__v4di) __B,
3453 (__v4di) __W, __M);
3454}
3455
3456static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003457_mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
3458 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3459 (__v4si)_mm_min_epi32(__A, __B),
3460 (__v4si)_mm_setzero_si128());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003461}
3462
3463static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003464_mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3465 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3466 (__v4si)_mm_min_epi32(__A, __B),
3467 (__v4si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003468}
3469
3470static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003471_mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
3472 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3473 (__v8si)_mm256_min_epi32(__A, __B),
3474 (__v8si)_mm256_setzero_si256());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003475}
3476
3477static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003478_mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3479 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3480 (__v8si)_mm256_min_epi32(__A, __B),
3481 (__v8si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003482}
3483
3484static __inline__ __m128i __DEFAULT_FN_ATTRS
3485_mm_min_epi64 (__m128i __A, __m128i __B) {
3486 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3487 (__v2di) __B,
3488 (__v2di)
3489 _mm_setzero_si128 (),
3490 (__mmask8) -1);
3491}
3492
3493static __inline__ __m128i __DEFAULT_FN_ATTRS
3494_mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3495 __m128i __B) {
3496 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3497 (__v2di) __B,
3498 (__v2di) __W, __M);
3499}
3500
3501static __inline__ __m128i __DEFAULT_FN_ATTRS
3502_mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3503 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3504 (__v2di) __B,
3505 (__v2di)
3506 _mm_setzero_si128 (),
3507 __M);
3508}
3509
3510static __inline__ __m256i __DEFAULT_FN_ATTRS
3511_mm256_min_epi64 (__m256i __A, __m256i __B) {
3512 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3513 (__v4di) __B,
3514 (__v4di)
3515 _mm256_setzero_si256 (),
3516 (__mmask8) -1);
3517}
3518
3519static __inline__ __m256i __DEFAULT_FN_ATTRS
3520_mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3521 __m256i __B) {
3522 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3523 (__v4di) __B,
3524 (__v4di) __W, __M);
3525}
3526
3527static __inline__ __m256i __DEFAULT_FN_ATTRS
3528_mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3529 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3530 (__v4di) __B,
3531 (__v4di)
3532 _mm256_setzero_si256 (),
3533 __M);
3534}
3535
3536static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003537_mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
3538 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3539 (__v4si)_mm_min_epu32(__A, __B),
3540 (__v4si)_mm_setzero_si128());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003541}
3542
3543static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003544_mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3545 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3546 (__v4si)_mm_min_epu32(__A, __B),
3547 (__v4si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003548}
3549
3550static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003551_mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
3552 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3553 (__v8si)_mm256_min_epu32(__A, __B),
3554 (__v8si)_mm256_setzero_si256());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003555}
3556
3557static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003558_mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3559 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3560 (__v8si)_mm256_min_epu32(__A, __B),
3561 (__v8si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003562}
3563
3564static __inline__ __m128i __DEFAULT_FN_ATTRS
3565_mm_min_epu64 (__m128i __A, __m128i __B) {
3566 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3567 (__v2di) __B,
3568 (__v2di)
3569 _mm_setzero_si128 (),
3570 (__mmask8) -1);
3571}
3572
3573static __inline__ __m128i __DEFAULT_FN_ATTRS
3574_mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3575 __m128i __B) {
3576 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3577 (__v2di) __B,
3578 (__v2di) __W, __M);
3579}
3580
3581static __inline__ __m128i __DEFAULT_FN_ATTRS
3582_mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3583 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3584 (__v2di) __B,
3585 (__v2di)
3586 _mm_setzero_si128 (),
3587 __M);
3588}
3589
3590static __inline__ __m256i __DEFAULT_FN_ATTRS
3591_mm256_min_epu64 (__m256i __A, __m256i __B) {
3592 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3593 (__v4di) __B,
3594 (__v4di)
3595 _mm256_setzero_si256 (),
3596 (__mmask8) -1);
3597}
3598
3599static __inline__ __m256i __DEFAULT_FN_ATTRS
3600_mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3601 __m256i __B) {
3602 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3603 (__v4di) __B,
3604 (__v4di) __W, __M);
3605}
3606
3607static __inline__ __m256i __DEFAULT_FN_ATTRS
3608_mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3609 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3610 (__v4di) __B,
3611 (__v4di)
3612 _mm256_setzero_si256 (),
3613 __M);
3614}
3615
Craig Topperd2661882016-05-17 04:41:48 +00003616#define _mm_roundscale_pd(A, imm) __extension__ ({ \
3617 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3618 (int)(imm), \
3619 (__v2df)_mm_setzero_pd(), \
3620 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003621
3622
Craig Topperd2661882016-05-17 04:41:48 +00003623#define _mm_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3624 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3625 (int)(imm), \
3626 (__v2df)(__m128d)(W), \
3627 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003628
3629
Craig Topperd2661882016-05-17 04:41:48 +00003630#define _mm_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3631 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3632 (int)(imm), \
3633 (__v2df)_mm_setzero_pd(), \
3634 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003635
3636
Craig Topperd2661882016-05-17 04:41:48 +00003637#define _mm256_roundscale_pd(A, imm) __extension__ ({ \
3638 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3639 (int)(imm), \
3640 (__v4df)_mm256_setzero_pd(), \
3641 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003642
3643
Craig Topperd2661882016-05-17 04:41:48 +00003644#define _mm256_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3645 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3646 (int)(imm), \
3647 (__v4df)(__m256d)(W), \
3648 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003649
3650
Craig Topperd2661882016-05-17 04:41:48 +00003651#define _mm256_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3652 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3653 (int)(imm), \
3654 (__v4df)_mm256_setzero_pd(), \
3655 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003656
Craig Topperd2661882016-05-17 04:41:48 +00003657#define _mm_roundscale_ps(A, imm) __extension__ ({ \
3658 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3659 (__v4sf)_mm_setzero_ps(), \
3660 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003661
3662
Craig Topperd2661882016-05-17 04:41:48 +00003663#define _mm_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3664 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3665 (__v4sf)(__m128)(W), \
3666 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003667
3668
Craig Topperd2661882016-05-17 04:41:48 +00003669#define _mm_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3670 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3671 (__v4sf)_mm_setzero_ps(), \
3672 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003673
Craig Topperd2661882016-05-17 04:41:48 +00003674#define _mm256_roundscale_ps(A, imm) __extension__ ({ \
3675 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3676 (__v8sf)_mm256_setzero_ps(), \
3677 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003678
Craig Topperd2661882016-05-17 04:41:48 +00003679#define _mm256_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3680 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3681 (__v8sf)(__m256)(W), \
3682 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003683
3684
Craig Topperd2661882016-05-17 04:41:48 +00003685#define _mm256_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3686 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3687 (__v8sf)_mm256_setzero_ps(), \
3688 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003689
3690static __inline__ __m128d __DEFAULT_FN_ATTRS
3691_mm_scalef_pd (__m128d __A, __m128d __B) {
3692 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3693 (__v2df) __B,
3694 (__v2df)
3695 _mm_setzero_pd (),
3696 (__mmask8) -1);
3697}
3698
3699static __inline__ __m128d __DEFAULT_FN_ATTRS
3700_mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A,
3701 __m128d __B) {
3702 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3703 (__v2df) __B,
3704 (__v2df) __W,
3705 (__mmask8) __U);
3706}
3707
3708static __inline__ __m128d __DEFAULT_FN_ATTRS
3709_mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3710 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3711 (__v2df) __B,
3712 (__v2df)
3713 _mm_setzero_pd (),
3714 (__mmask8) __U);
3715}
3716
3717static __inline__ __m256d __DEFAULT_FN_ATTRS
3718_mm256_scalef_pd (__m256d __A, __m256d __B) {
3719 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3720 (__v4df) __B,
3721 (__v4df)
3722 _mm256_setzero_pd (),
3723 (__mmask8) -1);
3724}
3725
3726static __inline__ __m256d __DEFAULT_FN_ATTRS
3727_mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A,
3728 __m256d __B) {
3729 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3730 (__v4df) __B,
3731 (__v4df) __W,
3732 (__mmask8) __U);
3733}
3734
3735static __inline__ __m256d __DEFAULT_FN_ATTRS
3736_mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3737 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3738 (__v4df) __B,
3739 (__v4df)
3740 _mm256_setzero_pd (),
3741 (__mmask8) __U);
3742}
3743
3744static __inline__ __m128 __DEFAULT_FN_ATTRS
3745_mm_scalef_ps (__m128 __A, __m128 __B) {
3746 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3747 (__v4sf) __B,
3748 (__v4sf)
3749 _mm_setzero_ps (),
3750 (__mmask8) -1);
3751}
3752
3753static __inline__ __m128 __DEFAULT_FN_ATTRS
3754_mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3755 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3756 (__v4sf) __B,
3757 (__v4sf) __W,
3758 (__mmask8) __U);
3759}
3760
3761static __inline__ __m128 __DEFAULT_FN_ATTRS
3762_mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3763 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3764 (__v4sf) __B,
3765 (__v4sf)
3766 _mm_setzero_ps (),
3767 (__mmask8) __U);
3768}
3769
3770static __inline__ __m256 __DEFAULT_FN_ATTRS
3771_mm256_scalef_ps (__m256 __A, __m256 __B) {
3772 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3773 (__v8sf) __B,
3774 (__v8sf)
3775 _mm256_setzero_ps (),
3776 (__mmask8) -1);
3777}
3778
3779static __inline__ __m256 __DEFAULT_FN_ATTRS
3780_mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A,
3781 __m256 __B) {
3782 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3783 (__v8sf) __B,
3784 (__v8sf) __W,
3785 (__mmask8) __U);
3786}
3787
3788static __inline__ __m256 __DEFAULT_FN_ATTRS
3789_mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3790 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3791 (__v8sf) __B,
3792 (__v8sf)
3793 _mm256_setzero_ps (),
3794 (__mmask8) __U);
3795}
3796
Craig Topperd2661882016-05-17 04:41:48 +00003797#define _mm_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
3798 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)-1, \
3799 (__v2di)(__m128i)(index), \
3800 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003801
Craig Topperd2661882016-05-17 04:41:48 +00003802#define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3803 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)(mask), \
3804 (__v2di)(__m128i)(index), \
3805 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003806
Craig Topperd2661882016-05-17 04:41:48 +00003807#define _mm_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3808 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)-1, \
3809 (__v2di)(__m128i)(index), \
3810 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003811
Craig Topperd2661882016-05-17 04:41:48 +00003812#define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3813 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)(mask), \
3814 (__v2di)(__m128i)(index), \
3815 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003816
Craig Topperd2661882016-05-17 04:41:48 +00003817#define _mm256_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
3818 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)-1, \
3819 (__v4di)(__m256i)(index), \
3820 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003821
Craig Topperd2661882016-05-17 04:41:48 +00003822#define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3823 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)(mask), \
3824 (__v4di)(__m256i)(index), \
3825 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003826
Craig Topperd2661882016-05-17 04:41:48 +00003827#define _mm256_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3828 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)-1, \
3829 (__v4di)(__m256i)(index), \
3830 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003831
Craig Topperd2661882016-05-17 04:41:48 +00003832#define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3833 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)(mask), \
3834 (__v4di)(__m256i)(index), \
3835 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003836
Craig Topperd2661882016-05-17 04:41:48 +00003837#define _mm_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
3838 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)-1, \
3839 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
3840 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003841
Craig Topperd2661882016-05-17 04:41:48 +00003842#define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3843 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)(mask), \
3844 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
3845 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003846
Craig Topperd2661882016-05-17 04:41:48 +00003847#define _mm_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3848 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)-1, \
3849 (__v2di)(__m128i)(index), \
3850 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003851
Craig Topperd2661882016-05-17 04:41:48 +00003852#define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3853 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)(mask), \
3854 (__v2di)(__m128i)(index), \
3855 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003856
Craig Topperd2661882016-05-17 04:41:48 +00003857#define _mm256_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
3858 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)-1, \
3859 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
3860 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003861
Craig Topperd2661882016-05-17 04:41:48 +00003862#define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3863 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)(mask), \
3864 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
3865 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003866
Craig Topperd2661882016-05-17 04:41:48 +00003867#define _mm256_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3868 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)-1, \
3869 (__v4di)(__m256i)(index), \
3870 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003871
Craig Topperd2661882016-05-17 04:41:48 +00003872#define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3873 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)(mask), \
3874 (__v4di)(__m256i)(index), \
3875 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003876
Craig Topperd2661882016-05-17 04:41:48 +00003877#define _mm_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
3878 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)-1, \
3879 (__v4si)(__m128i)(index), \
3880 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003881
Craig Topperd2661882016-05-17 04:41:48 +00003882#define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3883 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)(mask), \
3884 (__v4si)(__m128i)(index), \
3885 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003886
Craig Topperd2661882016-05-17 04:41:48 +00003887#define _mm_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3888 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)-1, \
3889 (__v4si)(__m128i)(index), \
3890 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003891
Craig Topperd2661882016-05-17 04:41:48 +00003892#define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3893 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)(mask), \
3894 (__v4si)(__m128i)(index), \
3895 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003896
Craig Topperd2661882016-05-17 04:41:48 +00003897#define _mm256_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
3898 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)-1, \
3899 (__v4si)(__m128i)(index), \
3900 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003901
Craig Topperd2661882016-05-17 04:41:48 +00003902#define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3903 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)(mask), \
3904 (__v4si)(__m128i)(index), \
3905 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003906
Craig Topperd2661882016-05-17 04:41:48 +00003907#define _mm256_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3908 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)-1, \
3909 (__v4si)(__m128i)(index), \
3910 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003911
Craig Topperd2661882016-05-17 04:41:48 +00003912#define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3913 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)(mask), \
3914 (__v4si)(__m128i)(index), \
3915 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003916
Craig Topperd2661882016-05-17 04:41:48 +00003917#define _mm_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
3918 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)-1, \
3919 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
3920 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003921
Craig Topperd2661882016-05-17 04:41:48 +00003922#define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3923 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)(mask), \
3924 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
3925 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003926
Craig Topperd2661882016-05-17 04:41:48 +00003927#define _mm_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3928 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)-1, \
3929 (__v4si)(__m128i)(index), \
3930 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003931
Craig Topperd2661882016-05-17 04:41:48 +00003932#define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3933 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)(mask), \
3934 (__v4si)(__m128i)(index), \
3935 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003936
Craig Topperd2661882016-05-17 04:41:48 +00003937#define _mm256_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
3938 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)-1, \
3939 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
3940 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003941
Craig Topperd2661882016-05-17 04:41:48 +00003942#define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3943 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)(mask), \
3944 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
3945 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003946
Craig Topperd2661882016-05-17 04:41:48 +00003947#define _mm256_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3948 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)-1, \
3949 (__v8si)(__m256i)(index), \
3950 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003951
Craig Topperd2661882016-05-17 04:41:48 +00003952#define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3953 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)(mask), \
3954 (__v8si)(__m256i)(index), \
3955 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003956
Asaf Badouh93aa4c82015-07-28 12:04:40 +00003957static __inline__ __m128d __DEFAULT_FN_ATTRS
3958_mm_mask_sqrt_pd (__m128d __W, __mmask8 __U, __m128d __A) {
3959 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
3960 (__v2df) __W,
3961 (__mmask8) __U);
3962}
3963
3964static __inline__ __m128d __DEFAULT_FN_ATTRS
3965_mm_maskz_sqrt_pd (__mmask8 __U, __m128d __A) {
3966 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
3967 (__v2df)
3968 _mm_setzero_pd (),
3969 (__mmask8) __U);
3970}
3971
3972static __inline__ __m256d __DEFAULT_FN_ATTRS
3973_mm256_mask_sqrt_pd (__m256d __W, __mmask8 __U, __m256d __A) {
3974 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
3975 (__v4df) __W,
3976 (__mmask8) __U);
3977}
3978
3979static __inline__ __m256d __DEFAULT_FN_ATTRS
3980_mm256_maskz_sqrt_pd (__mmask8 __U, __m256d __A) {
3981 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
3982 (__v4df)
3983 _mm256_setzero_pd (),
3984 (__mmask8) __U);
3985}
3986
3987static __inline__ __m128 __DEFAULT_FN_ATTRS
3988_mm_mask_sqrt_ps (__m128 __W, __mmask8 __U, __m128 __A) {
3989 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
3990 (__v4sf) __W,
3991 (__mmask8) __U);
3992}
3993
3994static __inline__ __m128 __DEFAULT_FN_ATTRS
3995_mm_maskz_sqrt_ps (__mmask8 __U, __m128 __A) {
3996 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
3997 (__v4sf)
3998 _mm_setzero_ps (),
3999 (__mmask8) __U);
4000}
4001
4002static __inline__ __m256 __DEFAULT_FN_ATTRS
4003_mm256_mask_sqrt_ps (__m256 __W, __mmask8 __U, __m256 __A) {
4004 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4005 (__v8sf) __W,
4006 (__mmask8) __U);
4007}
4008
4009static __inline__ __m256 __DEFAULT_FN_ATTRS
4010_mm256_maskz_sqrt_ps (__mmask8 __U, __m256 __A) {
4011 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4012 (__v8sf)
4013 _mm256_setzero_ps (),
4014 (__mmask8) __U);
4015}
4016
4017static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004018_mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4019 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
4020 (__v2df)_mm_sub_pd(__A, __B),
4021 (__v2df)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004022}
4023
4024static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004025_mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4026 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
4027 (__v2df)_mm_sub_pd(__A, __B),
4028 (__v2df)_mm_setzero_pd());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004029}
4030
4031static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004032_mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4033 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
4034 (__v4df)_mm256_sub_pd(__A, __B),
4035 (__v4df)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004036}
4037
4038static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004039_mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4040 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
4041 (__v4df)_mm256_sub_pd(__A, __B),
4042 (__v4df)_mm256_setzero_pd());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004043}
4044
4045static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004046_mm_mask_sub_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4047 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
4048 (__v4sf)_mm_sub_ps(__A, __B),
4049 (__v4sf)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004050}
4051
4052static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004053_mm_maskz_sub_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4054 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
4055 (__v4sf)_mm_sub_ps(__A, __B),
4056 (__v4sf)_mm_setzero_ps());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004057}
4058
4059static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004060_mm256_mask_sub_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4061 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
4062 (__v8sf)_mm256_sub_ps(__A, __B),
4063 (__v8sf)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004064}
4065
4066static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004067_mm256_maskz_sub_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4068 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
4069 (__v8sf)_mm256_sub_ps(__A, __B),
4070 (__v8sf)_mm256_setzero_ps());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004071}
4072
4073static __inline__ __m128i __DEFAULT_FN_ATTRS
4074_mm_mask2_permutex2var_epi32 (__m128i __A, __m128i __I, __mmask8 __U,
4075 __m128i __B) {
4076 return (__m128i) __builtin_ia32_vpermi2vard128_mask ((__v4si) __A,
4077 (__v4si) __I
4078 /* idx */ ,
4079 (__v4si) __B,
4080 (__mmask8) __U);
4081}
4082
4083static __inline__ __m256i __DEFAULT_FN_ATTRS
4084_mm256_mask2_permutex2var_epi32 (__m256i __A, __m256i __I,
4085 __mmask8 __U, __m256i __B) {
4086 return (__m256i) __builtin_ia32_vpermi2vard256_mask ((__v8si) __A,
4087 (__v8si) __I
4088 /* idx */ ,
4089 (__v8si) __B,
4090 (__mmask8) __U);
4091}
4092
4093static __inline__ __m128d __DEFAULT_FN_ATTRS
4094_mm_mask2_permutex2var_pd (__m128d __A, __m128i __I, __mmask8 __U,
4095 __m128d __B) {
4096 return (__m128d) __builtin_ia32_vpermi2varpd128_mask ((__v2df) __A,
4097 (__v2di) __I
4098 /* idx */ ,
4099 (__v2df) __B,
4100 (__mmask8)
4101 __U);
4102}
4103
4104static __inline__ __m256d __DEFAULT_FN_ATTRS
4105_mm256_mask2_permutex2var_pd (__m256d __A, __m256i __I, __mmask8 __U,
4106 __m256d __B) {
4107 return (__m256d) __builtin_ia32_vpermi2varpd256_mask ((__v4df) __A,
4108 (__v4di) __I
4109 /* idx */ ,
4110 (__v4df) __B,
4111 (__mmask8)
4112 __U);
4113}
4114
4115static __inline__ __m128 __DEFAULT_FN_ATTRS
4116_mm_mask2_permutex2var_ps (__m128 __A, __m128i __I, __mmask8 __U,
4117 __m128 __B) {
4118 return (__m128) __builtin_ia32_vpermi2varps128_mask ((__v4sf) __A,
4119 (__v4si) __I
4120 /* idx */ ,
4121 (__v4sf) __B,
4122 (__mmask8) __U);
4123}
4124
4125static __inline__ __m256 __DEFAULT_FN_ATTRS
4126_mm256_mask2_permutex2var_ps (__m256 __A, __m256i __I, __mmask8 __U,
4127 __m256 __B) {
4128 return (__m256) __builtin_ia32_vpermi2varps256_mask ((__v8sf) __A,
4129 (__v8si) __I
4130 /* idx */ ,
4131 (__v8sf) __B,
4132 (__mmask8) __U);
4133}
4134
4135static __inline__ __m128i __DEFAULT_FN_ATTRS
4136_mm_mask2_permutex2var_epi64 (__m128i __A, __m128i __I, __mmask8 __U,
4137 __m128i __B) {
4138 return (__m128i) __builtin_ia32_vpermi2varq128_mask ((__v2di) __A,
4139 (__v2di) __I
4140 /* idx */ ,
4141 (__v2di) __B,
4142 (__mmask8) __U);
4143}
4144
4145static __inline__ __m256i __DEFAULT_FN_ATTRS
4146_mm256_mask2_permutex2var_epi64 (__m256i __A, __m256i __I,
4147 __mmask8 __U, __m256i __B) {
4148 return (__m256i) __builtin_ia32_vpermi2varq256_mask ((__v4di) __A,
4149 (__v4di) __I
4150 /* idx */ ,
4151 (__v4di) __B,
4152 (__mmask8) __U);
4153}
4154
4155static __inline__ __m128i __DEFAULT_FN_ATTRS
4156_mm_permutex2var_epi32 (__m128i __A, __m128i __I, __m128i __B) {
4157 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4158 /* idx */ ,
4159 (__v4si) __A,
4160 (__v4si) __B,
4161 (__mmask8) -1);
4162}
4163
4164static __inline__ __m128i __DEFAULT_FN_ATTRS
4165_mm_mask_permutex2var_epi32 (__m128i __A, __mmask8 __U, __m128i __I,
4166 __m128i __B) {
4167 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4168 /* idx */ ,
4169 (__v4si) __A,
4170 (__v4si) __B,
4171 (__mmask8) __U);
4172}
4173
4174static __inline__ __m128i __DEFAULT_FN_ATTRS
4175_mm_maskz_permutex2var_epi32 (__mmask8 __U, __m128i __A, __m128i __I,
4176 __m128i __B) {
4177 return (__m128i) __builtin_ia32_vpermt2vard128_maskz ((__v4si) __I
4178 /* idx */ ,
4179 (__v4si) __A,
4180 (__v4si) __B,
4181 (__mmask8)
4182 __U);
4183}
4184
4185static __inline__ __m256i __DEFAULT_FN_ATTRS
4186_mm256_permutex2var_epi32 (__m256i __A, __m256i __I, __m256i __B) {
4187 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4188 /* idx */ ,
4189 (__v8si) __A,
4190 (__v8si) __B,
4191 (__mmask8) -1);
4192}
4193
4194static __inline__ __m256i __DEFAULT_FN_ATTRS
4195_mm256_mask_permutex2var_epi32 (__m256i __A, __mmask8 __U, __m256i __I,
4196 __m256i __B) {
4197 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4198 /* idx */ ,
4199 (__v8si) __A,
4200 (__v8si) __B,
4201 (__mmask8) __U);
4202}
4203
4204static __inline__ __m256i __DEFAULT_FN_ATTRS
4205_mm256_maskz_permutex2var_epi32 (__mmask8 __U, __m256i __A,
4206 __m256i __I, __m256i __B) {
4207 return (__m256i) __builtin_ia32_vpermt2vard256_maskz ((__v8si) __I
4208 /* idx */ ,
4209 (__v8si) __A,
4210 (__v8si) __B,
4211 (__mmask8)
4212 __U);
4213}
4214
4215static __inline__ __m128d __DEFAULT_FN_ATTRS
4216_mm_permutex2var_pd (__m128d __A, __m128i __I, __m128d __B) {
4217 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4218 /* idx */ ,
4219 (__v2df) __A,
4220 (__v2df) __B,
4221 (__mmask8) -
4222 1);
4223}
4224
4225static __inline__ __m128d __DEFAULT_FN_ATTRS
4226_mm_mask_permutex2var_pd (__m128d __A, __mmask8 __U, __m128i __I,
4227 __m128d __B) {
4228 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4229 /* idx */ ,
4230 (__v2df) __A,
4231 (__v2df) __B,
4232 (__mmask8)
4233 __U);
4234}
4235
4236static __inline__ __m128d __DEFAULT_FN_ATTRS
4237_mm_maskz_permutex2var_pd (__mmask8 __U, __m128d __A, __m128i __I,
4238 __m128d __B) {
4239 return (__m128d) __builtin_ia32_vpermt2varpd128_maskz ((__v2di) __I
4240 /* idx */ ,
4241 (__v2df) __A,
4242 (__v2df) __B,
4243 (__mmask8)
4244 __U);
4245}
4246
4247static __inline__ __m256d __DEFAULT_FN_ATTRS
4248_mm256_permutex2var_pd (__m256d __A, __m256i __I, __m256d __B) {
4249 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4250 /* idx */ ,
4251 (__v4df) __A,
4252 (__v4df) __B,
4253 (__mmask8) -
4254 1);
4255}
4256
4257static __inline__ __m256d __DEFAULT_FN_ATTRS
4258_mm256_mask_permutex2var_pd (__m256d __A, __mmask8 __U, __m256i __I,
4259 __m256d __B) {
4260 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4261 /* idx */ ,
4262 (__v4df) __A,
4263 (__v4df) __B,
4264 (__mmask8)
4265 __U);
4266}
4267
4268static __inline__ __m256d __DEFAULT_FN_ATTRS
4269_mm256_maskz_permutex2var_pd (__mmask8 __U, __m256d __A, __m256i __I,
4270 __m256d __B) {
4271 return (__m256d) __builtin_ia32_vpermt2varpd256_maskz ((__v4di) __I
4272 /* idx */ ,
4273 (__v4df) __A,
4274 (__v4df) __B,
4275 (__mmask8)
4276 __U);
4277}
4278
4279static __inline__ __m128 __DEFAULT_FN_ATTRS
4280_mm_permutex2var_ps (__m128 __A, __m128i __I, __m128 __B) {
4281 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4282 /* idx */ ,
4283 (__v4sf) __A,
4284 (__v4sf) __B,
4285 (__mmask8) -1);
4286}
4287
4288static __inline__ __m128 __DEFAULT_FN_ATTRS
4289_mm_mask_permutex2var_ps (__m128 __A, __mmask8 __U, __m128i __I,
4290 __m128 __B) {
4291 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4292 /* idx */ ,
4293 (__v4sf) __A,
4294 (__v4sf) __B,
4295 (__mmask8) __U);
4296}
4297
4298static __inline__ __m128 __DEFAULT_FN_ATTRS
4299_mm_maskz_permutex2var_ps (__mmask8 __U, __m128 __A, __m128i __I,
4300 __m128 __B) {
4301 return (__m128) __builtin_ia32_vpermt2varps128_maskz ((__v4si) __I
4302 /* idx */ ,
4303 (__v4sf) __A,
4304 (__v4sf) __B,
4305 (__mmask8)
4306 __U);
4307}
4308
4309static __inline__ __m256 __DEFAULT_FN_ATTRS
4310_mm256_permutex2var_ps (__m256 __A, __m256i __I, __m256 __B) {
4311 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4312 /* idx */ ,
4313 (__v8sf) __A,
4314 (__v8sf) __B,
4315 (__mmask8) -1);
4316}
4317
4318static __inline__ __m256 __DEFAULT_FN_ATTRS
4319_mm256_mask_permutex2var_ps (__m256 __A, __mmask8 __U, __m256i __I,
4320 __m256 __B) {
4321 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4322 /* idx */ ,
4323 (__v8sf) __A,
4324 (__v8sf) __B,
4325 (__mmask8) __U);
4326}
4327
4328static __inline__ __m256 __DEFAULT_FN_ATTRS
4329_mm256_maskz_permutex2var_ps (__mmask8 __U, __m256 __A, __m256i __I,
4330 __m256 __B) {
4331 return (__m256) __builtin_ia32_vpermt2varps256_maskz ((__v8si) __I
4332 /* idx */ ,
4333 (__v8sf) __A,
4334 (__v8sf) __B,
4335 (__mmask8)
4336 __U);
4337}
4338
4339static __inline__ __m128i __DEFAULT_FN_ATTRS
4340_mm_permutex2var_epi64 (__m128i __A, __m128i __I, __m128i __B) {
4341 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4342 /* idx */ ,
4343 (__v2di) __A,
4344 (__v2di) __B,
4345 (__mmask8) -1);
4346}
4347
4348static __inline__ __m128i __DEFAULT_FN_ATTRS
4349_mm_mask_permutex2var_epi64 (__m128i __A, __mmask8 __U, __m128i __I,
4350 __m128i __B) {
4351 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4352 /* idx */ ,
4353 (__v2di) __A,
4354 (__v2di) __B,
4355 (__mmask8) __U);
4356}
4357
4358static __inline__ __m128i __DEFAULT_FN_ATTRS
4359_mm_maskz_permutex2var_epi64 (__mmask8 __U, __m128i __A, __m128i __I,
4360 __m128i __B) {
4361 return (__m128i) __builtin_ia32_vpermt2varq128_maskz ((__v2di) __I
4362 /* idx */ ,
4363 (__v2di) __A,
4364 (__v2di) __B,
4365 (__mmask8)
4366 __U);
4367}
4368
4369
4370static __inline__ __m256i __DEFAULT_FN_ATTRS
4371_mm256_permutex2var_epi64 (__m256i __A, __m256i __I, __m256i __B) {
4372 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4373 /* idx */ ,
4374 (__v4di) __A,
4375 (__v4di) __B,
4376 (__mmask8) -1);
4377}
4378
4379static __inline__ __m256i __DEFAULT_FN_ATTRS
4380_mm256_mask_permutex2var_epi64 (__m256i __A, __mmask8 __U, __m256i __I,
4381 __m256i __B) {
4382 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4383 /* idx */ ,
4384 (__v4di) __A,
4385 (__v4di) __B,
4386 (__mmask8) __U);
4387}
4388
4389static __inline__ __m256i __DEFAULT_FN_ATTRS
4390_mm256_maskz_permutex2var_epi64 (__mmask8 __U, __m256i __A,
4391 __m256i __I, __m256i __B) {
4392 return (__m256i) __builtin_ia32_vpermt2varq256_maskz ((__v4di) __I
4393 /* idx */ ,
4394 (__v4di) __A,
4395 (__v4di) __B,
4396 (__mmask8)
4397 __U);
4398}
4399
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004400static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004401_mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004402{
Craig Topper11dda922016-10-22 21:24:48 +00004403 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4404 (__v4si)_mm_cvtepi8_epi32(__A),
4405 (__v4si)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004406}
4407
4408static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004409_mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004410{
Craig Topper11dda922016-10-22 21:24:48 +00004411 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4412 (__v4si)_mm_cvtepi8_epi32(__A),
4413 (__v4si)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004414}
4415
4416static __inline__ __m256i __DEFAULT_FN_ATTRS
4417_mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4418{
Craig Topper11dda922016-10-22 21:24:48 +00004419 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4420 (__v8si)_mm256_cvtepi8_epi32(__A),
4421 (__v8si)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004422}
4423
4424static __inline__ __m256i __DEFAULT_FN_ATTRS
4425_mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4426{
Craig Topper11dda922016-10-22 21:24:48 +00004427 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4428 (__v8si)_mm256_cvtepi8_epi32(__A),
4429 (__v8si)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004430}
4431
4432static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004433_mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004434{
Craig Topper11dda922016-10-22 21:24:48 +00004435 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4436 (__v2di)_mm_cvtepi8_epi64(__A),
4437 (__v2di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004438}
4439
4440static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004441_mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004442{
Craig Topper11dda922016-10-22 21:24:48 +00004443 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4444 (__v2di)_mm_cvtepi8_epi64(__A),
4445 (__v2di)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004446}
4447
4448static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004449_mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004450{
Craig Topper11dda922016-10-22 21:24:48 +00004451 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4452 (__v4di)_mm256_cvtepi8_epi64(__A),
4453 (__v4di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004454}
4455
4456static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004457_mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004458{
Craig Topper11dda922016-10-22 21:24:48 +00004459 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4460 (__v4di)_mm256_cvtepi8_epi64(__A),
4461 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004462}
4463
4464static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004465_mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004466{
Craig Topper11dda922016-10-22 21:24:48 +00004467 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4468 (__v2di)_mm_cvtepi32_epi64(__X),
4469 (__v2di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004470}
4471
4472static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004473_mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004474{
Craig Topper11dda922016-10-22 21:24:48 +00004475 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4476 (__v2di)_mm_cvtepi32_epi64(__X),
4477 (__v2di)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004478}
4479
4480static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004481_mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004482{
Craig Topper11dda922016-10-22 21:24:48 +00004483 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4484 (__v4di)_mm256_cvtepi32_epi64(__X),
4485 (__v4di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004486}
4487
4488static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004489_mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004490{
Craig Topper11dda922016-10-22 21:24:48 +00004491 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4492 (__v4di)_mm256_cvtepi32_epi64(__X),
4493 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004494}
4495
4496static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004497_mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004498{
Craig Topper11dda922016-10-22 21:24:48 +00004499 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4500 (__v4si)_mm_cvtepi16_epi32(__A),
4501 (__v4si)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004502}
4503
4504static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004505_mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004506{
Craig Topper11dda922016-10-22 21:24:48 +00004507 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4508 (__v4si)_mm_cvtepi16_epi32(__A),
4509 (__v4si)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004510}
4511
4512static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004513_mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004514{
Craig Topper11dda922016-10-22 21:24:48 +00004515 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4516 (__v8si)_mm256_cvtepi16_epi32(__A),
4517 (__v8si)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004518}
4519
4520static __inline__ __m256i __DEFAULT_FN_ATTRS
4521_mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4522{
Craig Topper11dda922016-10-22 21:24:48 +00004523 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4524 (__v8si)_mm256_cvtepi16_epi32(__A),
4525 (__v8si)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004526}
4527
4528static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004529_mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004530{
Craig Topper11dda922016-10-22 21:24:48 +00004531 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4532 (__v2di)_mm_cvtepi16_epi64(__A),
4533 (__v2di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004534}
4535
4536static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004537_mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004538{
Craig Topper11dda922016-10-22 21:24:48 +00004539 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4540 (__v2di)_mm_cvtepi16_epi64(__A),
4541 (__v2di)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004542}
4543
4544static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004545_mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004546{
Craig Topper11dda922016-10-22 21:24:48 +00004547 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4548 (__v4di)_mm256_cvtepi16_epi64(__A),
4549 (__v4di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004550}
4551
4552static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004553_mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004554{
Craig Topper11dda922016-10-22 21:24:48 +00004555 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4556 (__v4di)_mm256_cvtepi16_epi64(__A),
4557 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004558}
4559
4560
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004561static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004562_mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004563{
Craig Topper11dda922016-10-22 21:24:48 +00004564 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4565 (__v4si)_mm_cvtepu8_epi32(__A),
4566 (__v4si)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004567}
4568
4569static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004570_mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004571{
Craig Topper11dda922016-10-22 21:24:48 +00004572 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4573 (__v4si)_mm_cvtepu8_epi32(__A),
4574 (__v4si)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004575}
4576
4577static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004578_mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004579{
Craig Topper11dda922016-10-22 21:24:48 +00004580 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4581 (__v8si)_mm256_cvtepu8_epi32(__A),
4582 (__v8si)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004583}
4584
4585static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004586_mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004587{
Craig Topper11dda922016-10-22 21:24:48 +00004588 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4589 (__v8si)_mm256_cvtepu8_epi32(__A),
4590 (__v8si)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004591}
4592
4593static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004594_mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004595{
Craig Topper11dda922016-10-22 21:24:48 +00004596 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4597 (__v2di)_mm_cvtepu8_epi64(__A),
4598 (__v2di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004599}
4600
4601static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004602_mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004603{
Craig Topper11dda922016-10-22 21:24:48 +00004604 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4605 (__v2di)_mm_cvtepu8_epi64(__A),
4606 (__v2di)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004607}
4608
4609static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004610_mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004611{
Craig Topper11dda922016-10-22 21:24:48 +00004612 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4613 (__v4di)_mm256_cvtepu8_epi64(__A),
4614 (__v4di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004615}
4616
4617static __inline__ __m256i __DEFAULT_FN_ATTRS
4618_mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
4619{
Craig Topper11dda922016-10-22 21:24:48 +00004620 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4621 (__v4di)_mm256_cvtepu8_epi64(__A),
4622 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004623}
4624
4625static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004626_mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004627{
Craig Topper11dda922016-10-22 21:24:48 +00004628 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4629 (__v2di)_mm_cvtepu32_epi64(__X),
4630 (__v2di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004631}
4632
4633static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004634_mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004635{
Craig Topper11dda922016-10-22 21:24:48 +00004636 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4637 (__v2di)_mm_cvtepu32_epi64(__X),
4638 (__v2di)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004639}
4640
4641static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004642_mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004643{
Craig Topper11dda922016-10-22 21:24:48 +00004644 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4645 (__v4di)_mm256_cvtepu32_epi64(__X),
4646 (__v4di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004647}
4648
4649static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004650_mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004651{
Craig Topper11dda922016-10-22 21:24:48 +00004652 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4653 (__v4di)_mm256_cvtepu32_epi64(__X),
4654 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004655}
4656
4657static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004658_mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004659{
Craig Topper11dda922016-10-22 21:24:48 +00004660 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4661 (__v4si)_mm_cvtepu16_epi32(__A),
4662 (__v4si)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004663}
4664
4665static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004666_mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004667{
Craig Topper11dda922016-10-22 21:24:48 +00004668 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4669 (__v4si)_mm_cvtepu16_epi32(__A),
4670 (__v4si)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004671}
4672
4673static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004674_mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004675{
Craig Topper11dda922016-10-22 21:24:48 +00004676 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4677 (__v8si)_mm256_cvtepu16_epi32(__A),
4678 (__v8si)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004679}
4680
4681static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004682_mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004683{
Craig Topper11dda922016-10-22 21:24:48 +00004684 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4685 (__v8si)_mm256_cvtepu16_epi32(__A),
4686 (__v8si)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004687}
4688
4689static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004690_mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004691{
Craig Topper11dda922016-10-22 21:24:48 +00004692 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4693 (__v2di)_mm_cvtepu16_epi64(__A),
4694 (__v2di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004695}
4696
4697static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004698_mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004699{
Craig Topper11dda922016-10-22 21:24:48 +00004700 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4701 (__v2di)_mm_cvtepu16_epi64(__A),
4702 (__v2di)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004703}
4704
4705static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004706_mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004707{
Craig Topper11dda922016-10-22 21:24:48 +00004708 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4709 (__v4di)_mm256_cvtepu16_epi64(__A),
4710 (__v4di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004711}
4712
4713static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004714_mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004715{
Craig Topper11dda922016-10-22 21:24:48 +00004716 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4717 (__v4di)_mm256_cvtepu16_epi64(__A),
4718 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004719}
4720
4721
Michael Zuckerman38a27272016-02-22 09:05:41 +00004722#define _mm_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004723 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4724 (__v4si)_mm_setzero_si128(), \
4725 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004726
4727#define _mm_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004728 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4729 (__v4si)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004730
4731#define _mm_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004732 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4733 (__v4si)_mm_setzero_si128(), \
4734 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004735
4736#define _mm256_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004737 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4738 (__v8si)_mm256_setzero_si256(), \
4739 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004740
4741#define _mm256_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004742 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4743 (__v8si)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004744
4745#define _mm256_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004746 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4747 (__v8si)_mm256_setzero_si256(), \
4748 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004749
Michael Zuckerman477e0a32016-02-22 09:42:57 +00004750#define _mm_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004751 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4752 (__v2di)_mm_setzero_di(), \
4753 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004754
4755#define _mm_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004756 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4757 (__v2di)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004758
4759#define _mm_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004760 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4761 (__v2di)_mm_setzero_di(), \
4762 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004763
4764#define _mm256_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004765 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4766 (__v4di)_mm256_setzero_si256(), \
4767 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004768
4769#define _mm256_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004770 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4771 (__v4di)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004772
4773#define _mm256_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004774 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4775 (__v4di)_mm256_setzero_si256(), \
4776 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004777
Michael Zuckerman0231f162016-02-23 13:41:13 +00004778static __inline__ __m128i __DEFAULT_FN_ATTRS
4779_mm_rolv_epi32 (__m128i __A, __m128i __B)
4780{
4781 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4782 (__v4si) __B,
4783 (__v4si)
4784 _mm_setzero_si128 (),
4785 (__mmask8) -1);
4786}
4787
4788static __inline__ __m128i __DEFAULT_FN_ATTRS
4789_mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
4790 __m128i __B)
4791{
4792 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4793 (__v4si) __B,
4794 (__v4si) __W,
4795 (__mmask8) __U);
4796}
4797
4798static __inline__ __m128i __DEFAULT_FN_ATTRS
4799_mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
4800{
4801 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4802 (__v4si) __B,
4803 (__v4si)
4804 _mm_setzero_si128 (),
4805 (__mmask8) __U);
4806}
4807
4808static __inline__ __m256i __DEFAULT_FN_ATTRS
4809_mm256_rolv_epi32 (__m256i __A, __m256i __B)
4810{
4811 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4812 (__v8si) __B,
4813 (__v8si)
4814 _mm256_setzero_si256 (),
4815 (__mmask8) -1);
4816}
4817
4818static __inline__ __m256i __DEFAULT_FN_ATTRS
4819_mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
4820 __m256i __B)
4821{
4822 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4823 (__v8si) __B,
4824 (__v8si) __W,
4825 (__mmask8) __U);
4826}
4827
4828static __inline__ __m256i __DEFAULT_FN_ATTRS
4829_mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
4830{
4831 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4832 (__v8si) __B,
4833 (__v8si)
4834 _mm256_setzero_si256 (),
4835 (__mmask8) __U);
4836}
4837
4838static __inline__ __m128i __DEFAULT_FN_ATTRS
4839_mm_rolv_epi64 (__m128i __A, __m128i __B)
4840{
4841 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
4842 (__v2di) __B,
4843 (__v2di)
4844 _mm_setzero_di (),
4845 (__mmask8) -1);
4846}
4847
4848static __inline__ __m128i __DEFAULT_FN_ATTRS
4849_mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
4850 __m128i __B)
4851{
4852 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
4853 (__v2di) __B,
4854 (__v2di) __W,
4855 (__mmask8) __U);
4856}
4857
4858static __inline__ __m128i __DEFAULT_FN_ATTRS
4859_mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
4860{
4861 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
4862 (__v2di) __B,
4863 (__v2di)
4864 _mm_setzero_di (),
4865 (__mmask8) __U);
4866}
4867
4868static __inline__ __m256i __DEFAULT_FN_ATTRS
4869_mm256_rolv_epi64 (__m256i __A, __m256i __B)
4870{
4871 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
4872 (__v4di) __B,
4873 (__v4di)
4874 _mm256_setzero_si256 (),
4875 (__mmask8) -1);
4876}
4877
4878static __inline__ __m256i __DEFAULT_FN_ATTRS
4879_mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
4880 __m256i __B)
4881{
4882 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
4883 (__v4di) __B,
4884 (__v4di) __W,
4885 (__mmask8) __U);
4886}
4887
4888static __inline__ __m256i __DEFAULT_FN_ATTRS
4889_mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
4890{
4891 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
4892 (__v4di) __B,
4893 (__v4di)
4894 _mm256_setzero_si256 (),
4895 (__mmask8) __U);
4896}
4897
Craig Topperd2661882016-05-17 04:41:48 +00004898#define _mm_ror_epi32(A, B) __extension__ ({ \
4899 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
4900 (__v4si)_mm_setzero_si128(), \
4901 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004902
Craig Topperd2661882016-05-17 04:41:48 +00004903#define _mm_mask_ror_epi32(W, U, A, B) __extension__ ({ \
4904 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
4905 (__v4si)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004906
Craig Topperd2661882016-05-17 04:41:48 +00004907#define _mm_maskz_ror_epi32(U, A, B) __extension__ ({ \
4908 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
4909 (__v4si)_mm_setzero_si128(), \
4910 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004911
Craig Topperd2661882016-05-17 04:41:48 +00004912#define _mm256_ror_epi32(A, B) __extension__ ({ \
4913 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
4914 (__v8si)_mm256_setzero_si256(), \
4915 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004916
Craig Topperd2661882016-05-17 04:41:48 +00004917#define _mm256_mask_ror_epi32(W, U, A, B) __extension__ ({ \
4918 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
4919 (__v8si)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004920
Craig Topperd2661882016-05-17 04:41:48 +00004921#define _mm256_maskz_ror_epi32(U, A, B) __extension__ ({ \
4922 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
4923 (__v8si)_mm256_setzero_si256(), \
4924 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004925
Craig Topperd2661882016-05-17 04:41:48 +00004926#define _mm_ror_epi64(A, B) __extension__ ({ \
4927 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
4928 (__v2di)_mm_setzero_di(), \
4929 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004930
Craig Topperd2661882016-05-17 04:41:48 +00004931#define _mm_mask_ror_epi64(W, U, A, B) __extension__ ({ \
4932 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
4933 (__v2di)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004934
Craig Topperd2661882016-05-17 04:41:48 +00004935#define _mm_maskz_ror_epi64(U, A, B) __extension__ ({ \
4936 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
4937 (__v2di)_mm_setzero_di(), \
4938 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004939
Craig Topperd2661882016-05-17 04:41:48 +00004940#define _mm256_ror_epi64(A, B) __extension__ ({ \
4941 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
4942 (__v4di)_mm256_setzero_si256(), \
4943 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004944
Craig Topperd2661882016-05-17 04:41:48 +00004945#define _mm256_mask_ror_epi64(W, U, A, B) __extension__ ({ \
4946 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
4947 (__v4di)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004948
Craig Topperd2661882016-05-17 04:41:48 +00004949#define _mm256_maskz_ror_epi64(U, A, B) __extension__ ({ \
4950 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
4951 (__v4di)_mm256_setzero_si256(), \
4952 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004953
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004954static __inline__ __m128i __DEFAULT_FN_ATTRS
4955_mm_mask_sll_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
4956 __m128i __B)
4957{
4958 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
4959 (__v4si) __B,
4960 (__v4si) __W,
4961 (__mmask8) __U);
4962}
4963
4964static __inline__ __m128i __DEFAULT_FN_ATTRS
4965_mm_maskz_sll_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
4966{
4967 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
4968 (__v4si) __B,
4969 (__v4si)
4970 _mm_setzero_si128 (),
4971 (__mmask8) __U);
4972}
4973
4974static __inline__ __m256i __DEFAULT_FN_ATTRS
4975_mm256_mask_sll_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
4976 __m128i __B)
4977{
4978 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
4979 (__v4si) __B,
4980 (__v8si) __W,
4981 (__mmask8) __U);
4982}
4983
4984static __inline__ __m256i __DEFAULT_FN_ATTRS
4985_mm256_maskz_sll_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
4986{
4987 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
4988 (__v4si) __B,
4989 (__v8si)
4990 _mm256_setzero_si256 (),
4991 (__mmask8) __U);
4992}
4993
Craig Topperd2661882016-05-17 04:41:48 +00004994#define _mm_mask_slli_epi32(W, U, A, B) __extension__ ({ \
4995 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \
4996 (__v4si)(__m128i)(W), \
4997 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004998
Craig Topperd2661882016-05-17 04:41:48 +00004999#define _mm_maskz_slli_epi32(U, A, B) __extension__ ({ \
5000 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \
5001 (__v4si)_mm_setzero_si128(), \
5002 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005003
Craig Topperd2661882016-05-17 04:41:48 +00005004#define _mm256_mask_slli_epi32(W, U, A, B) __extension__ ({ \
5005 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \
5006 (__v8si)(__m256i)(W), \
5007 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005008
Craig Topperd2661882016-05-17 04:41:48 +00005009#define _mm256_maskz_slli_epi32(U, A, B) __extension__ ({ \
5010 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \
5011 (__v8si)_mm256_setzero_si256(), \
5012 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005013
5014static __inline__ __m128i __DEFAULT_FN_ATTRS
5015_mm_mask_sll_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5016 __m128i __B)
5017{
5018 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
5019 (__v2di) __B,
5020 (__v2di) __W,
5021 (__mmask8) __U);
5022}
5023
5024static __inline__ __m128i __DEFAULT_FN_ATTRS
5025_mm_maskz_sll_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5026{
5027 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
5028 (__v2di) __B,
5029 (__v2di)
5030 _mm_setzero_di (),
5031 (__mmask8) __U);
5032}
5033
5034static __inline__ __m256i __DEFAULT_FN_ATTRS
5035_mm256_mask_sll_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5036 __m128i __B)
5037{
5038 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
5039 (__v2di) __B,
5040 (__v4di) __W,
5041 (__mmask8) __U);
5042}
5043
5044static __inline__ __m256i __DEFAULT_FN_ATTRS
5045_mm256_maskz_sll_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
5046{
5047 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
5048 (__v2di) __B,
5049 (__v4di)
5050 _mm256_setzero_si256 (),
5051 (__mmask8) __U);
5052}
5053
Craig Topperd2661882016-05-17 04:41:48 +00005054#define _mm_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5055 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \
5056 (__v2di)(__m128i)(W), \
5057 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005058
Craig Topperd2661882016-05-17 04:41:48 +00005059#define _mm_maskz_slli_epi64(U, A, B) __extension__ ({ \
5060 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \
5061 (__v2di)_mm_setzero_di(), \
5062 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005063
Craig Topperd2661882016-05-17 04:41:48 +00005064#define _mm256_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5065 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \
5066 (__v4di)(__m256i)(W), \
5067 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005068
Craig Topperd2661882016-05-17 04:41:48 +00005069#define _mm256_maskz_slli_epi64(U, A, B) __extension__ ({ \
5070 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \
5071 (__v4di)_mm256_setzero_si256(), \
5072 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005073
Michael Zuckerman0231f162016-02-23 13:41:13 +00005074
Michael Zuckermane98cc742016-02-23 15:59:47 +00005075static __inline__ __m128i __DEFAULT_FN_ATTRS
5076_mm_rorv_epi32 (__m128i __A, __m128i __B)
5077{
5078 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5079 (__v4si) __B,
5080 (__v4si)
5081 _mm_setzero_si128 (),
5082 (__mmask8) -1);
5083}
5084
5085static __inline__ __m128i __DEFAULT_FN_ATTRS
5086_mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5087 __m128i __B)
5088{
5089 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5090 (__v4si) __B,
5091 (__v4si) __W,
5092 (__mmask8) __U);
5093}
5094
5095static __inline__ __m128i __DEFAULT_FN_ATTRS
5096_mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5097{
5098 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5099 (__v4si) __B,
5100 (__v4si)
5101 _mm_setzero_si128 (),
5102 (__mmask8) __U);
5103}
5104
5105static __inline__ __m256i __DEFAULT_FN_ATTRS
5106_mm256_rorv_epi32 (__m256i __A, __m256i __B)
5107{
5108 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5109 (__v8si) __B,
5110 (__v8si)
5111 _mm256_setzero_si256 (),
5112 (__mmask8) -1);
5113}
5114
5115static __inline__ __m256i __DEFAULT_FN_ATTRS
5116_mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5117 __m256i __B)
5118{
5119 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5120 (__v8si) __B,
5121 (__v8si) __W,
5122 (__mmask8) __U);
5123}
5124
5125static __inline__ __m256i __DEFAULT_FN_ATTRS
5126_mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
5127{
5128 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5129 (__v8si) __B,
5130 (__v8si)
5131 _mm256_setzero_si256 (),
5132 (__mmask8) __U);
5133}
5134
5135static __inline__ __m128i __DEFAULT_FN_ATTRS
5136_mm_rorv_epi64 (__m128i __A, __m128i __B)
5137{
5138 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5139 (__v2di) __B,
5140 (__v2di)
5141 _mm_setzero_di (),
5142 (__mmask8) -1);
5143}
5144
5145static __inline__ __m128i __DEFAULT_FN_ATTRS
5146_mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5147 __m128i __B)
5148{
5149 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5150 (__v2di) __B,
5151 (__v2di) __W,
5152 (__mmask8) __U);
5153}
5154
5155static __inline__ __m128i __DEFAULT_FN_ATTRS
5156_mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5157{
5158 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5159 (__v2di) __B,
5160 (__v2di)
5161 _mm_setzero_di (),
5162 (__mmask8) __U);
5163}
5164
5165static __inline__ __m256i __DEFAULT_FN_ATTRS
5166_mm256_rorv_epi64 (__m256i __A, __m256i __B)
5167{
5168 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5169 (__v4di) __B,
5170 (__v4di)
5171 _mm256_setzero_si256 (),
5172 (__mmask8) -1);
5173}
5174
5175static __inline__ __m256i __DEFAULT_FN_ATTRS
5176_mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5177 __m256i __B)
5178{
5179 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5180 (__v4di) __B,
5181 (__v4di) __W,
5182 (__mmask8) __U);
5183}
5184
5185static __inline__ __m256i __DEFAULT_FN_ATTRS
5186_mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
5187{
5188 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5189 (__v4di) __B,
5190 (__v4di)
5191 _mm256_setzero_si256 (),
5192 (__mmask8) __U);
5193}
5194
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005195static __inline__ __m128i __DEFAULT_FN_ATTRS
5196_mm_mask_sllv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5197 __m128i __Y)
5198{
5199 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
5200 (__v2di) __Y,
5201 (__v2di) __W,
5202 (__mmask8) __U);
5203}
5204
5205static __inline__ __m128i __DEFAULT_FN_ATTRS
5206_mm_maskz_sllv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5207{
5208 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
5209 (__v2di) __Y,
5210 (__v2di)
5211 _mm_setzero_di (),
5212 (__mmask8) __U);
5213}
5214
5215static __inline__ __m256i __DEFAULT_FN_ATTRS
5216_mm256_mask_sllv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5217 __m256i __Y)
5218{
5219 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
5220 (__v4di) __Y,
5221 (__v4di) __W,
5222 (__mmask8) __U);
5223}
5224
5225static __inline__ __m256i __DEFAULT_FN_ATTRS
5226_mm256_maskz_sllv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5227{
5228 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
5229 (__v4di) __Y,
5230 (__v4di)
5231 _mm256_setzero_si256 (),
5232 (__mmask8) __U);
5233}
5234
5235static __inline__ __m128i __DEFAULT_FN_ATTRS
5236_mm_mask_sllv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5237 __m128i __Y)
5238{
5239 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
5240 (__v4si) __Y,
5241 (__v4si) __W,
5242 (__mmask8) __U);
5243}
5244
5245static __inline__ __m128i __DEFAULT_FN_ATTRS
5246_mm_maskz_sllv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5247{
5248 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
5249 (__v4si) __Y,
5250 (__v4si)
5251 _mm_setzero_si128 (),
5252 (__mmask8) __U);
5253}
5254
5255static __inline__ __m256i __DEFAULT_FN_ATTRS
5256_mm256_mask_sllv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5257 __m256i __Y)
5258{
5259 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
5260 (__v8si) __Y,
5261 (__v8si) __W,
5262 (__mmask8) __U);
5263}
5264
5265static __inline__ __m256i __DEFAULT_FN_ATTRS
5266_mm256_maskz_sllv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5267{
5268 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
5269 (__v8si) __Y,
5270 (__v8si)
5271 _mm256_setzero_si256 (),
5272 (__mmask8) __U);
5273}
5274
Michael Zuckerman0165e762016-03-01 13:03:45 +00005275
5276
5277static __inline__ __m128i __DEFAULT_FN_ATTRS
5278_mm_mask_srlv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5279 __m128i __Y)
5280{
5281 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
5282 (__v2di) __Y,
5283 (__v2di) __W,
5284 (__mmask8) __U);
5285}
5286
5287static __inline__ __m128i __DEFAULT_FN_ATTRS
5288_mm_maskz_srlv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5289{
5290 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
5291 (__v2di) __Y,
5292 (__v2di)
5293 _mm_setzero_di (),
5294 (__mmask8) __U);
5295}
5296
5297static __inline__ __m256i __DEFAULT_FN_ATTRS
5298_mm256_mask_srlv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5299 __m256i __Y)
5300{
5301 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
5302 (__v4di) __Y,
5303 (__v4di) __W,
5304 (__mmask8) __U);
5305}
5306
5307static __inline__ __m256i __DEFAULT_FN_ATTRS
5308_mm256_maskz_srlv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5309{
5310 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
5311 (__v4di) __Y,
5312 (__v4di)
5313 _mm256_setzero_si256 (),
5314 (__mmask8) __U);
5315}
5316
5317static __inline__ __m128i __DEFAULT_FN_ATTRS
5318_mm_mask_srlv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5319 __m128i __Y)
5320{
5321 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
5322 (__v4si) __Y,
5323 (__v4si) __W,
5324 (__mmask8) __U);
5325}
5326
5327static __inline__ __m128i __DEFAULT_FN_ATTRS
5328_mm_maskz_srlv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5329{
5330 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
5331 (__v4si) __Y,
5332 (__v4si)
5333 _mm_setzero_si128 (),
5334 (__mmask8) __U);
5335}
5336
5337static __inline__ __m256i __DEFAULT_FN_ATTRS
5338_mm256_mask_srlv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5339 __m256i __Y)
5340{
5341 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
5342 (__v8si) __Y,
5343 (__v8si) __W,
5344 (__mmask8) __U);
5345}
5346
5347static __inline__ __m256i __DEFAULT_FN_ATTRS
5348_mm256_maskz_srlv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5349{
5350 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
5351 (__v8si) __Y,
5352 (__v8si)
5353 _mm256_setzero_si256 (),
5354 (__mmask8) __U);
5355}
5356
Michael Zuckermand176d742016-03-01 17:49:03 +00005357
5358
5359static __inline__ __m128i __DEFAULT_FN_ATTRS
5360_mm_mask_srl_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5361 __m128i __B)
5362{
5363 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
5364 (__v4si) __B,
5365 (__v4si) __W,
5366 (__mmask8) __U);
5367}
5368
5369static __inline__ __m128i __DEFAULT_FN_ATTRS
5370_mm_maskz_srl_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5371{
5372 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
5373 (__v4si) __B,
5374 (__v4si)
5375 _mm_setzero_si128 (),
5376 (__mmask8) __U);
5377}
5378
5379static __inline__ __m256i __DEFAULT_FN_ATTRS
5380_mm256_mask_srl_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5381 __m128i __B)
5382{
5383 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
5384 (__v4si) __B,
5385 (__v8si) __W,
5386 (__mmask8) __U);
5387}
5388
5389static __inline__ __m256i __DEFAULT_FN_ATTRS
5390_mm256_maskz_srl_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
5391{
5392 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
5393 (__v4si) __B,
5394 (__v8si)
5395 _mm256_setzero_si256 (),
5396 (__mmask8) __U);
5397}
5398
Craig Topperd2661882016-05-17 04:41:48 +00005399#define _mm_mask_srli_epi32(W, U, A, imm) __extension__ ({ \
5400 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \
5401 (__v4si)(__m128i)(W), \
5402 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005403
Craig Topperd2661882016-05-17 04:41:48 +00005404#define _mm_maskz_srli_epi32(U, A, imm) __extension__ ({ \
5405 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \
5406 (__v4si)_mm_setzero_si128(), \
5407 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005408
Craig Topperd2661882016-05-17 04:41:48 +00005409#define _mm256_mask_srli_epi32(W, U, A, imm) __extension__ ({ \
5410 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \
5411 (__v8si)(__m256i)(W), \
5412 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005413
Craig Topperd2661882016-05-17 04:41:48 +00005414#define _mm256_maskz_srli_epi32(U, A, imm) __extension__ ({ \
5415 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \
5416 (__v8si)_mm256_setzero_si256(), \
5417 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005418
5419static __inline__ __m128i __DEFAULT_FN_ATTRS
5420_mm_mask_srl_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5421 __m128i __B)
5422{
5423 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
5424 (__v2di) __B,
5425 (__v2di) __W,
5426 (__mmask8) __U);
5427}
5428
5429static __inline__ __m128i __DEFAULT_FN_ATTRS
5430_mm_maskz_srl_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5431{
5432 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
5433 (__v2di) __B,
5434 (__v2di)
5435 _mm_setzero_di (),
5436 (__mmask8) __U);
5437}
5438
5439static __inline__ __m256i __DEFAULT_FN_ATTRS
5440_mm256_mask_srl_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5441 __m128i __B)
5442{
5443 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
5444 (__v2di) __B,
5445 (__v4di) __W,
5446 (__mmask8) __U);
5447}
5448
5449static __inline__ __m256i __DEFAULT_FN_ATTRS
5450_mm256_maskz_srl_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
5451{
5452 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
5453 (__v2di) __B,
5454 (__v4di)
5455 _mm256_setzero_si256 (),
5456 (__mmask8) __U);
5457}
5458
Craig Topperd2661882016-05-17 04:41:48 +00005459#define _mm_mask_srli_epi64(W, U, A, imm) __extension__ ({ \
5460 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
5461 (__v2di)(__m128i)(W), \
5462 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005463
Craig Topperd2661882016-05-17 04:41:48 +00005464#define _mm_maskz_srli_epi64(U, A, imm) __extension__ ({ \
5465 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
5466 (__v2di)_mm_setzero_si128(), \
5467 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005468
Craig Topperd2661882016-05-17 04:41:48 +00005469#define _mm256_mask_srli_epi64(W, U, A, imm) __extension__ ({ \
5470 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
5471 (__v4di)(__m256i)(W), \
5472 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005473
Craig Topperd2661882016-05-17 04:41:48 +00005474#define _mm256_maskz_srli_epi64(U, A, imm) __extension__ ({ \
5475 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
5476 (__v4di)_mm256_setzero_si256(), \
5477 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005478
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005479static __inline__ __m128i __DEFAULT_FN_ATTRS
5480_mm_mask_srav_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5481 __m128i __Y)
5482{
5483 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
5484 (__v4si) __Y,
5485 (__v4si) __W,
5486 (__mmask8) __U);
5487}
5488
5489static __inline__ __m128i __DEFAULT_FN_ATTRS
5490_mm_maskz_srav_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5491{
5492 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
5493 (__v4si) __Y,
5494 (__v4si)
5495 _mm_setzero_si128 (),
5496 (__mmask8) __U);
5497}
5498
5499static __inline__ __m256i __DEFAULT_FN_ATTRS
5500_mm256_mask_srav_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5501 __m256i __Y)
5502{
5503 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
5504 (__v8si) __Y,
5505 (__v8si) __W,
5506 (__mmask8) __U);
5507}
5508
5509static __inline__ __m256i __DEFAULT_FN_ATTRS
5510_mm256_maskz_srav_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5511{
5512 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
5513 (__v8si) __Y,
5514 (__v8si)
5515 _mm256_setzero_si256 (),
5516 (__mmask8) __U);
5517}
5518
5519static __inline__ __m128i __DEFAULT_FN_ATTRS
5520_mm_srav_epi64 (__m128i __X, __m128i __Y)
5521{
5522 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5523 (__v2di) __Y,
5524 (__v2di)
5525 _mm_setzero_di (),
5526 (__mmask8) -1);
5527}
5528
5529static __inline__ __m128i __DEFAULT_FN_ATTRS
5530_mm_mask_srav_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5531 __m128i __Y)
5532{
5533 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5534 (__v2di) __Y,
5535 (__v2di) __W,
5536 (__mmask8) __U);
5537}
5538
5539static __inline__ __m128i __DEFAULT_FN_ATTRS
5540_mm_maskz_srav_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5541{
5542 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5543 (__v2di) __Y,
5544 (__v2di)
5545 _mm_setzero_di (),
5546 (__mmask8) __U);
5547}
5548
5549static __inline__ __m256i __DEFAULT_FN_ATTRS
5550_mm256_srav_epi64 (__m256i __X, __m256i __Y)
5551{
5552 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5553 (__v4di) __Y,
5554 (__v4di)
5555 _mm256_setzero_si256 (),
5556 (__mmask8) -1);
5557}
5558
5559static __inline__ __m256i __DEFAULT_FN_ATTRS
5560_mm256_mask_srav_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5561 __m256i __Y)
5562{
5563 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5564 (__v4di) __Y,
5565 (__v4di) __W,
5566 (__mmask8) __U);
5567}
5568
5569static __inline__ __m256i __DEFAULT_FN_ATTRS
5570_mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5571{
5572 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5573 (__v4di) __Y,
5574 (__v4di)
5575 _mm256_setzero_si256 (),
5576 (__mmask8) __U);
5577}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005578
Michael Zuckermane6542002016-05-23 08:01:48 +00005579static __inline__ __m128i __DEFAULT_FN_ATTRS
5580_mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
5581{
Igor Bregeraadb8762016-06-08 13:59:20 +00005582 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5583 (__v4si) __A,
5584 (__v4si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005585}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005586
Michael Zuckermane6542002016-05-23 08:01:48 +00005587static __inline__ __m128i __DEFAULT_FN_ATTRS
5588_mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A)
5589{
Igor Bregeraadb8762016-06-08 13:59:20 +00005590 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5591 (__v4si) __A,
5592 (__v4si) _mm_setzero_si128 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005593}
5594
5595
5596static __inline__ __m256i __DEFAULT_FN_ATTRS
5597_mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
5598{
Igor Bregeraadb8762016-06-08 13:59:20 +00005599 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5600 (__v8si) __A,
5601 (__v8si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005602}
5603
5604static __inline__ __m256i __DEFAULT_FN_ATTRS
5605_mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A)
5606{
Igor Bregeraadb8762016-06-08 13:59:20 +00005607 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5608 (__v8si) __A,
5609 (__v8si) _mm256_setzero_si256 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005610}
5611
5612static __inline__ __m128i __DEFAULT_FN_ATTRS
5613_mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P)
5614{
5615 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5616 (__v4si) __W,
5617 (__mmask8)
5618 __U);
5619}
5620
5621static __inline__ __m128i __DEFAULT_FN_ATTRS
5622_mm_maskz_load_epi32 (__mmask8 __U, void const *__P)
5623{
5624 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5625 (__v4si)
5626 _mm_setzero_si128 (),
5627 (__mmask8)
5628 __U);
5629}
5630
5631static __inline__ __m256i __DEFAULT_FN_ATTRS
5632_mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P)
5633{
5634 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5635 (__v8si) __W,
5636 (__mmask8)
5637 __U);
5638}
5639
5640static __inline__ __m256i __DEFAULT_FN_ATTRS
5641_mm256_maskz_load_epi32 (__mmask8 __U, void const *__P)
5642{
5643 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5644 (__v8si)
5645 _mm256_setzero_si256 (),
5646 (__mmask8)
5647 __U);
5648}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005649
5650static __inline__ void __DEFAULT_FN_ATTRS
5651_mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
5652{
5653 __builtin_ia32_movdqa32store128_mask ((__v4si *) __P,
5654 (__v4si) __A,
5655 (__mmask8) __U);
5656}
5657
5658static __inline__ void __DEFAULT_FN_ATTRS
5659_mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A)
5660{
5661 __builtin_ia32_movdqa32store256_mask ((__v8si *) __P,
5662 (__v8si) __A,
5663 (__mmask8) __U);
5664}
5665
5666static __inline__ __m128i __DEFAULT_FN_ATTRS
5667_mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
5668{
Igor Bregeraadb8762016-06-08 13:59:20 +00005669 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5670 (__v2di) __A,
5671 (__v2di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005672}
5673
5674static __inline__ __m128i __DEFAULT_FN_ATTRS
5675_mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A)
5676{
Igor Bregeraadb8762016-06-08 13:59:20 +00005677 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5678 (__v2di) __A,
5679 (__v2di) _mm_setzero_di ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005680}
5681
5682static __inline__ __m256i __DEFAULT_FN_ATTRS
5683_mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
5684{
Igor Bregeraadb8762016-06-08 13:59:20 +00005685 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5686 (__v4di) __A,
5687 (__v4di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005688}
5689
5690static __inline__ __m256i __DEFAULT_FN_ATTRS
5691_mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A)
5692{
Igor Bregeraadb8762016-06-08 13:59:20 +00005693 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5694 (__v4di) __A,
5695 (__v4di) _mm256_setzero_si256 ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005696}
5697
5698static __inline__ __m128i __DEFAULT_FN_ATTRS
5699_mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P)
5700{
5701 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5702 (__v2di) __W,
5703 (__mmask8)
5704 __U);
5705}
5706
5707static __inline__ __m128i __DEFAULT_FN_ATTRS
5708_mm_maskz_load_epi64 (__mmask8 __U, void const *__P)
5709{
5710 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5711 (__v2di)
5712 _mm_setzero_di (),
5713 (__mmask8)
5714 __U);
5715}
5716
5717static __inline__ __m256i __DEFAULT_FN_ATTRS
5718_mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P)
5719{
5720 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5721 (__v4di) __W,
5722 (__mmask8)
5723 __U);
5724}
5725
5726static __inline__ __m256i __DEFAULT_FN_ATTRS
5727_mm256_maskz_load_epi64 (__mmask8 __U, void const *__P)
5728{
5729 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5730 (__v4di)
5731 _mm256_setzero_si256 (),
5732 (__mmask8)
5733 __U);
5734}
5735
5736static __inline__ void __DEFAULT_FN_ATTRS
5737_mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
5738{
5739 __builtin_ia32_movdqa64store128_mask ((__v2di *) __P,
5740 (__v2di) __A,
5741 (__mmask8) __U);
5742}
5743
5744static __inline__ void __DEFAULT_FN_ATTRS
5745_mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A)
5746{
5747 __builtin_ia32_movdqa64store256_mask ((__v4di *) __P,
5748 (__v4di) __A,
5749 (__mmask8) __U);
5750}
5751
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005752static __inline__ __m128d __DEFAULT_FN_ATTRS
5753_mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A)
5754{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005755 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5756 (__v2df)_mm_movedup_pd(__A),
5757 (__v2df)__W);
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005758}
5759
5760static __inline__ __m128d __DEFAULT_FN_ATTRS
5761_mm_maskz_movedup_pd (__mmask8 __U, __m128d __A)
5762{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005763 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5764 (__v2df)_mm_movedup_pd(__A),
5765 (__v2df)_mm_setzero_pd());
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005766}
5767
5768static __inline__ __m256d __DEFAULT_FN_ATTRS
5769_mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A)
5770{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005771 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5772 (__v4df)_mm256_movedup_pd(__A),
5773 (__v4df)__W);
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005774}
5775
5776static __inline__ __m256d __DEFAULT_FN_ATTRS
5777_mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A)
5778{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005779 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5780 (__v4df)_mm256_movedup_pd(__A),
5781 (__v4df)_mm256_setzero_pd());
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005782}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005783
Michael Zuckerman912be162016-03-07 08:29:10 +00005784
Craig Topperd2661882016-05-17 04:41:48 +00005785#define _mm_mask_set1_epi32(O, M, A) __extension__ ({ \
5786 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
5787 (__v4si)(__m128i)(O), \
5788 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005789
Craig Topperd2661882016-05-17 04:41:48 +00005790#define _mm_maskz_set1_epi32(M, A) __extension__ ({ \
5791 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
5792 (__v4si)_mm_setzero_si128(), \
5793 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005794
Craig Topperd2661882016-05-17 04:41:48 +00005795#define _mm256_mask_set1_epi32(O, M, A) __extension__ ({ \
5796 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
5797 (__v8si)(__m256i)(O), \
5798 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005799
Craig Topperd2661882016-05-17 04:41:48 +00005800#define _mm256_maskz_set1_epi32(M, A) __extension__ ({ \
5801 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
5802 (__v8si)_mm256_setzero_si256(), \
5803 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005804
Craig Topper45db56c2016-07-21 07:38:39 +00005805#ifdef __x86_64__
Michael Zuckerman912be162016-03-07 08:29:10 +00005806static __inline__ __m128i __DEFAULT_FN_ATTRS
5807_mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A)
5808{
5809 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, (__v2di) __O,
5810 __M);
5811}
5812
5813static __inline__ __m128i __DEFAULT_FN_ATTRS
5814_mm_maskz_set1_epi64 (__mmask8 __M, long long __A)
5815{
5816 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A,
5817 (__v2di)
5818 _mm_setzero_si128 (),
5819 __M);
5820}
5821
5822static __inline__ __m256i __DEFAULT_FN_ATTRS
5823_mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A)
5824{
5825 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, (__v4di) __O,
5826 __M);
5827}
5828
5829static __inline__ __m256i __DEFAULT_FN_ATTRS
5830_mm256_maskz_set1_epi64 (__mmask8 __M, long long __A)
5831{
5832 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A,
5833 (__v4di)
5834 _mm256_setzero_si256 (),
5835 __M);
5836}
Craig Topper45db56c2016-07-21 07:38:39 +00005837#endif
Michael Zuckermandef78752016-03-28 12:23:09 +00005838
Craig Topperd2661882016-05-17 04:41:48 +00005839#define _mm_fixupimm_pd(A, B, C, imm) __extension__ ({ \
5840 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
5841 (__v2df)(__m128d)(B), \
5842 (__v2di)(__m128i)(C), (int)(imm), \
5843 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005844
Craig Topperd2661882016-05-17 04:41:48 +00005845#define _mm_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
5846 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
5847 (__v2df)(__m128d)(B), \
5848 (__v2di)(__m128i)(C), (int)(imm), \
5849 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005850
Craig Topperd2661882016-05-17 04:41:48 +00005851#define _mm_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
5852 (__m128d)__builtin_ia32_fixupimmpd128_maskz((__v2df)(__m128d)(A), \
5853 (__v2df)(__m128d)(B), \
5854 (__v2di)(__m128i)(C), \
5855 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005856
Craig Topperd2661882016-05-17 04:41:48 +00005857#define _mm256_fixupimm_pd(A, B, C, imm) __extension__ ({ \
5858 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
5859 (__v4df)(__m256d)(B), \
5860 (__v4di)(__m256i)(C), (int)(imm), \
5861 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005862
Craig Topperd2661882016-05-17 04:41:48 +00005863#define _mm256_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
5864 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
5865 (__v4df)(__m256d)(B), \
5866 (__v4di)(__m256i)(C), (int)(imm), \
5867 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005868
Craig Topperd2661882016-05-17 04:41:48 +00005869#define _mm256_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
5870 (__m256d)__builtin_ia32_fixupimmpd256_maskz((__v4df)(__m256d)(A), \
5871 (__v4df)(__m256d)(B), \
5872 (__v4di)(__m256i)(C), \
5873 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005874
Craig Topperd2661882016-05-17 04:41:48 +00005875#define _mm_fixupimm_ps(A, B, C, imm) __extension__ ({ \
5876 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
5877 (__v4sf)(__m128)(B), \
5878 (__v4si)(__m128i)(C), (int)(imm), \
5879 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005880
Craig Topperd2661882016-05-17 04:41:48 +00005881#define _mm_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
5882 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
5883 (__v4sf)(__m128)(B), \
5884 (__v4si)(__m128i)(C), (int)(imm), \
5885 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005886
Craig Topperd2661882016-05-17 04:41:48 +00005887#define _mm_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
5888 (__m128)__builtin_ia32_fixupimmps128_maskz((__v4sf)(__m128)(A), \
5889 (__v4sf)(__m128)(B), \
5890 (__v4si)(__m128i)(C), (int)(imm), \
5891 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005892
Craig Topperd2661882016-05-17 04:41:48 +00005893#define _mm256_fixupimm_ps(A, B, C, imm) __extension__ ({ \
5894 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
5895 (__v8sf)(__m256)(B), \
5896 (__v8si)(__m256i)(C), (int)(imm), \
5897 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005898
Craig Topperd2661882016-05-17 04:41:48 +00005899#define _mm256_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
5900 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
5901 (__v8sf)(__m256)(B), \
5902 (__v8si)(__m256i)(C), (int)(imm), \
5903 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005904
Craig Topperd2661882016-05-17 04:41:48 +00005905#define _mm256_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
5906 (__m256)__builtin_ia32_fixupimmps256_maskz((__v8sf)(__m256)(A), \
5907 (__v8sf)(__m256)(B), \
5908 (__v8si)(__m256i)(C), (int)(imm), \
5909 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005910
5911static __inline__ __m128d __DEFAULT_FN_ATTRS
5912_mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P)
5913{
5914 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
5915 (__v2df) __W,
5916 (__mmask8) __U);
5917}
5918
5919static __inline__ __m128d __DEFAULT_FN_ATTRS
5920_mm_maskz_load_pd (__mmask8 __U, void const *__P)
5921{
5922 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
5923 (__v2df)
5924 _mm_setzero_pd (),
5925 (__mmask8) __U);
5926}
5927
5928static __inline__ __m256d __DEFAULT_FN_ATTRS
5929_mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P)
5930{
5931 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
5932 (__v4df) __W,
5933 (__mmask8) __U);
5934}
5935
5936static __inline__ __m256d __DEFAULT_FN_ATTRS
5937_mm256_maskz_load_pd (__mmask8 __U, void const *__P)
5938{
5939 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
5940 (__v4df)
5941 _mm256_setzero_pd (),
5942 (__mmask8) __U);
5943}
5944
5945static __inline__ __m128 __DEFAULT_FN_ATTRS
5946_mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P)
5947{
5948 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
5949 (__v4sf) __W,
5950 (__mmask8) __U);
5951}
5952
5953static __inline__ __m128 __DEFAULT_FN_ATTRS
5954_mm_maskz_load_ps (__mmask8 __U, void const *__P)
5955{
5956 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
5957 (__v4sf)
5958 _mm_setzero_ps (),
5959 (__mmask8) __U);
5960}
5961
5962static __inline__ __m256 __DEFAULT_FN_ATTRS
5963_mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P)
5964{
5965 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
5966 (__v8sf) __W,
5967 (__mmask8) __U);
5968}
5969
5970static __inline__ __m256 __DEFAULT_FN_ATTRS
5971_mm256_maskz_load_ps (__mmask8 __U, void const *__P)
5972{
5973 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
5974 (__v8sf)
5975 _mm256_setzero_ps (),
5976 (__mmask8) __U);
5977}
5978
5979static __inline__ __m128i __DEFAULT_FN_ATTRS
5980_mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
5981{
5982 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
5983 (__v2di) __W,
5984 (__mmask8) __U);
5985}
5986
5987static __inline__ __m128i __DEFAULT_FN_ATTRS
5988_mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
5989{
5990 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
5991 (__v2di)
5992 _mm_setzero_si128 (),
5993 (__mmask8) __U);
5994}
5995
5996static __inline__ __m256i __DEFAULT_FN_ATTRS
5997_mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P)
5998{
5999 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
6000 (__v4di) __W,
6001 (__mmask8) __U);
6002}
6003
6004static __inline__ __m256i __DEFAULT_FN_ATTRS
6005_mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6006{
6007 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
6008 (__v4di)
6009 _mm256_setzero_si256 (),
6010 (__mmask8) __U);
6011}
6012
6013static __inline__ __m128i __DEFAULT_FN_ATTRS
6014_mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
6015{
6016 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
6017 (__v4si) __W,
6018 (__mmask8) __U);
6019}
6020
6021static __inline__ __m128i __DEFAULT_FN_ATTRS
6022_mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
6023{
6024 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
6025 (__v4si)
6026 _mm_setzero_si128 (),
6027 (__mmask8) __U);
6028}
6029
6030static __inline__ __m256i __DEFAULT_FN_ATTRS
6031_mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P)
6032{
6033 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
6034 (__v8si) __W,
6035 (__mmask8) __U);
6036}
6037
6038static __inline__ __m256i __DEFAULT_FN_ATTRS
6039_mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
6040{
6041 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
6042 (__v8si)
6043 _mm256_setzero_si256 (),
6044 (__mmask8) __U);
6045}
6046
6047static __inline__ __m128d __DEFAULT_FN_ATTRS
6048_mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P)
6049{
6050 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6051 (__v2df) __W,
6052 (__mmask8) __U);
6053}
6054
6055static __inline__ __m128d __DEFAULT_FN_ATTRS
6056_mm_maskz_loadu_pd (__mmask8 __U, void const *__P)
6057{
6058 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6059 (__v2df)
6060 _mm_setzero_pd (),
6061 (__mmask8) __U);
6062}
6063
6064static __inline__ __m256d __DEFAULT_FN_ATTRS
6065_mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P)
6066{
6067 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6068 (__v4df) __W,
6069 (__mmask8) __U);
6070}
6071
6072static __inline__ __m256d __DEFAULT_FN_ATTRS
6073_mm256_maskz_loadu_pd (__mmask8 __U, void const *__P)
6074{
6075 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6076 (__v4df)
6077 _mm256_setzero_pd (),
6078 (__mmask8) __U);
6079}
6080
6081static __inline__ __m128 __DEFAULT_FN_ATTRS
6082_mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P)
6083{
6084 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6085 (__v4sf) __W,
6086 (__mmask8) __U);
6087}
6088
6089static __inline__ __m128 __DEFAULT_FN_ATTRS
6090_mm_maskz_loadu_ps (__mmask8 __U, void const *__P)
6091{
6092 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6093 (__v4sf)
6094 _mm_setzero_ps (),
6095 (__mmask8) __U);
6096}
6097
6098static __inline__ __m256 __DEFAULT_FN_ATTRS
6099_mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P)
6100{
6101 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6102 (__v8sf) __W,
6103 (__mmask8) __U);
6104}
6105
6106static __inline__ __m256 __DEFAULT_FN_ATTRS
6107_mm256_maskz_loadu_ps (__mmask8 __U, void const *__P)
6108{
6109 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6110 (__v8sf)
6111 _mm256_setzero_ps (),
6112 (__mmask8) __U);
6113}
Michael Zuckermanfa7ccc52016-04-10 10:51:04 +00006114
6115static __inline__ void __DEFAULT_FN_ATTRS
6116_mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A)
6117{
6118 __builtin_ia32_storeapd128_mask ((__v2df *) __P,
6119 (__v2df) __A,
6120 (__mmask8) __U);
6121}
6122
6123static __inline__ void __DEFAULT_FN_ATTRS
6124_mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A)
6125{
6126 __builtin_ia32_storeapd256_mask ((__v4df *) __P,
6127 (__v4df) __A,
6128 (__mmask8) __U);
6129}
6130
6131static __inline__ void __DEFAULT_FN_ATTRS
6132_mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A)
6133{
6134 __builtin_ia32_storeaps128_mask ((__v4sf *) __P,
6135 (__v4sf) __A,
6136 (__mmask8) __U);
6137}
6138
6139static __inline__ void __DEFAULT_FN_ATTRS
6140_mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
6141{
6142 __builtin_ia32_storeaps256_mask ((__v8sf *) __P,
6143 (__v8sf) __A,
6144 (__mmask8) __U);
6145}
6146
6147static __inline__ void __DEFAULT_FN_ATTRS
6148_mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
6149{
6150 __builtin_ia32_storedqudi128_mask ((__v2di *) __P,
6151 (__v2di) __A,
6152 (__mmask8) __U);
6153}
6154
6155static __inline__ void __DEFAULT_FN_ATTRS
6156_mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
6157{
6158 __builtin_ia32_storedqudi256_mask ((__v4di *) __P,
6159 (__v4di) __A,
6160 (__mmask8) __U);
6161}
6162
6163static __inline__ void __DEFAULT_FN_ATTRS
6164_mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
6165{
6166 __builtin_ia32_storedqusi128_mask ((__v4si *) __P,
6167 (__v4si) __A,
6168 (__mmask8) __U);
6169}
6170
6171static __inline__ void __DEFAULT_FN_ATTRS
6172_mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
6173{
6174 __builtin_ia32_storedqusi256_mask ((__v8si *) __P,
6175 (__v8si) __A,
6176 (__mmask8) __U);
6177}
6178
6179static __inline__ void __DEFAULT_FN_ATTRS
6180_mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A)
6181{
6182 __builtin_ia32_storeupd128_mask ((__v2df *) __P,
6183 (__v2df) __A,
6184 (__mmask8) __U);
6185}
6186
6187static __inline__ void __DEFAULT_FN_ATTRS
6188_mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A)
6189{
6190 __builtin_ia32_storeupd256_mask ((__v4df *) __P,
6191 (__v4df) __A,
6192 (__mmask8) __U);
6193}
6194
6195static __inline__ void __DEFAULT_FN_ATTRS
6196_mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A)
6197{
6198 __builtin_ia32_storeups128_mask ((__v4sf *) __P,
6199 (__v4sf) __A,
6200 (__mmask8) __U);
6201}
6202
6203static __inline__ void __DEFAULT_FN_ATTRS
6204_mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A)
6205{
6206 __builtin_ia32_storeups256_mask ((__v8sf *) __P,
6207 (__v8sf) __A,
6208 (__mmask8) __U);
6209}
6210
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006211
6212static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006213_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006214{
Craig Topper79f53ca2016-06-23 06:36:42 +00006215 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6216 (__v2df)_mm_unpackhi_pd(__A, __B),
6217 (__v2df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006218}
6219
6220static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006221_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006222{
Craig Topper79f53ca2016-06-23 06:36:42 +00006223 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6224 (__v2df)_mm_unpackhi_pd(__A, __B),
6225 (__v2df)_mm_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006226}
6227
6228static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006229_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006230{
Craig Topper79f53ca2016-06-23 06:36:42 +00006231 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6232 (__v4df)_mm256_unpackhi_pd(__A, __B),
6233 (__v4df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006234}
6235
6236static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006237_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006238{
Craig Topper79f53ca2016-06-23 06:36:42 +00006239 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6240 (__v4df)_mm256_unpackhi_pd(__A, __B),
6241 (__v4df)_mm256_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006242}
6243
6244static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006245_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006246{
Craig Topper79f53ca2016-06-23 06:36:42 +00006247 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6248 (__v4sf)_mm_unpackhi_ps(__A, __B),
6249 (__v4sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006250}
6251
6252static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006253_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006254{
Craig Topper79f53ca2016-06-23 06:36:42 +00006255 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6256 (__v4sf)_mm_unpackhi_ps(__A, __B),
6257 (__v4sf)_mm_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006258}
6259
6260static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006261_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006262{
Craig Topper79f53ca2016-06-23 06:36:42 +00006263 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6264 (__v8sf)_mm256_unpackhi_ps(__A, __B),
6265 (__v8sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006266}
6267
6268static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006269_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006270{
Craig Topper79f53ca2016-06-23 06:36:42 +00006271 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6272 (__v8sf)_mm256_unpackhi_ps(__A, __B),
6273 (__v8sf)_mm256_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006274}
6275
6276static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006277_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006278{
Craig Topper79f53ca2016-06-23 06:36:42 +00006279 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6280 (__v2df)_mm_unpacklo_pd(__A, __B),
6281 (__v2df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006282}
6283
6284static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006285_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006286{
Craig Topper79f53ca2016-06-23 06:36:42 +00006287 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6288 (__v2df)_mm_unpacklo_pd(__A, __B),
6289 (__v2df)_mm_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006290}
6291
6292static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006293_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006294{
Craig Topper79f53ca2016-06-23 06:36:42 +00006295 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6296 (__v4df)_mm256_unpacklo_pd(__A, __B),
6297 (__v4df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006298}
6299
6300static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006301_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006302{
Craig Topper79f53ca2016-06-23 06:36:42 +00006303 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6304 (__v4df)_mm256_unpacklo_pd(__A, __B),
6305 (__v4df)_mm256_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006306}
6307
6308static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006309_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006310{
Craig Topper79f53ca2016-06-23 06:36:42 +00006311 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6312 (__v4sf)_mm_unpacklo_ps(__A, __B),
6313 (__v4sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006314}
6315
6316static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006317_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006318{
Craig Topper79f53ca2016-06-23 06:36:42 +00006319 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6320 (__v4sf)_mm_unpacklo_ps(__A, __B),
6321 (__v4sf)_mm_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006322}
6323
6324static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006325_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006326{
Craig Topper79f53ca2016-06-23 06:36:42 +00006327 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6328 (__v8sf)_mm256_unpacklo_ps(__A, __B),
6329 (__v8sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006330}
6331
6332static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006333_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006334{
Craig Topper79f53ca2016-06-23 06:36:42 +00006335 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6336 (__v8sf)_mm256_unpacklo_ps(__A, __B),
6337 (__v8sf)_mm256_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006338}
6339
6340static __inline__ __m128d __DEFAULT_FN_ATTRS
6341_mm_rcp14_pd (__m128d __A)
6342{
6343 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6344 (__v2df)
6345 _mm_setzero_pd (),
6346 (__mmask8) -1);
6347}
6348
6349static __inline__ __m128d __DEFAULT_FN_ATTRS
6350_mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A)
6351{
6352 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6353 (__v2df) __W,
6354 (__mmask8) __U);
6355}
6356
6357static __inline__ __m128d __DEFAULT_FN_ATTRS
6358_mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A)
6359{
6360 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6361 (__v2df)
6362 _mm_setzero_pd (),
6363 (__mmask8) __U);
6364}
6365
6366static __inline__ __m256d __DEFAULT_FN_ATTRS
6367_mm256_rcp14_pd (__m256d __A)
6368{
6369 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6370 (__v4df)
6371 _mm256_setzero_pd (),
6372 (__mmask8) -1);
6373}
6374
6375static __inline__ __m256d __DEFAULT_FN_ATTRS
6376_mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A)
6377{
6378 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6379 (__v4df) __W,
6380 (__mmask8) __U);
6381}
6382
6383static __inline__ __m256d __DEFAULT_FN_ATTRS
6384_mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A)
6385{
6386 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6387 (__v4df)
6388 _mm256_setzero_pd (),
6389 (__mmask8) __U);
6390}
6391
6392static __inline__ __m128 __DEFAULT_FN_ATTRS
6393_mm_rcp14_ps (__m128 __A)
6394{
6395 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6396 (__v4sf)
6397 _mm_setzero_ps (),
6398 (__mmask8) -1);
6399}
6400
6401static __inline__ __m128 __DEFAULT_FN_ATTRS
6402_mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A)
6403{
6404 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6405 (__v4sf) __W,
6406 (__mmask8) __U);
6407}
6408
6409static __inline__ __m128 __DEFAULT_FN_ATTRS
6410_mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A)
6411{
6412 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6413 (__v4sf)
6414 _mm_setzero_ps (),
6415 (__mmask8) __U);
6416}
6417
6418static __inline__ __m256 __DEFAULT_FN_ATTRS
6419_mm256_rcp14_ps (__m256 __A)
6420{
6421 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6422 (__v8sf)
6423 _mm256_setzero_ps (),
6424 (__mmask8) -1);
6425}
6426
6427static __inline__ __m256 __DEFAULT_FN_ATTRS
6428_mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A)
6429{
6430 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6431 (__v8sf) __W,
6432 (__mmask8) __U);
6433}
6434
6435static __inline__ __m256 __DEFAULT_FN_ATTRS
6436_mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A)
6437{
6438 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6439 (__v8sf)
6440 _mm256_setzero_ps (),
6441 (__mmask8) __U);
6442}
6443
Craig Topperd2661882016-05-17 04:41:48 +00006444#define _mm_mask_permute_pd(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006445 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6446 (__v2df)_mm_permute_pd((X), (C)), \
6447 (__v2df)(__m128d)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006448
Craig Topperd2661882016-05-17 04:41:48 +00006449#define _mm_maskz_permute_pd(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006450 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6451 (__v2df)_mm_permute_pd((X), (C)), \
6452 (__v2df)_mm_setzero_pd()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006453
Craig Topperd2661882016-05-17 04:41:48 +00006454#define _mm256_mask_permute_pd(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006455 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6456 (__v4df)_mm256_permute_pd((X), (C)), \
6457 (__v4df)(__m256d)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006458
Craig Topperd2661882016-05-17 04:41:48 +00006459#define _mm256_maskz_permute_pd(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006460 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6461 (__v4df)_mm256_permute_pd((X), (C)), \
6462 (__v4df)_mm256_setzero_pd()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006463
Craig Topperd2661882016-05-17 04:41:48 +00006464#define _mm_mask_permute_ps(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006465 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6466 (__v4sf)_mm_permute_ps((X), (C)), \
6467 (__v4sf)(__m128)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006468
Craig Topperd2661882016-05-17 04:41:48 +00006469#define _mm_maskz_permute_ps(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006470 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6471 (__v4sf)_mm_permute_ps((X), (C)), \
6472 (__v4sf)_mm_setzero_ps()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006473
Craig Topperd2661882016-05-17 04:41:48 +00006474#define _mm256_mask_permute_ps(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006475 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6476 (__v8sf)_mm256_permute_ps((X), (C)), \
6477 (__v8sf)(__m256)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006478
Craig Topperd2661882016-05-17 04:41:48 +00006479#define _mm256_maskz_permute_ps(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006480 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6481 (__v8sf)_mm256_permute_ps((X), (C)), \
6482 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006483
6484static __inline__ __m128d __DEFAULT_FN_ATTRS
6485_mm_mask_permutevar_pd (__m128d __W, __mmask8 __U, __m128d __A,
6486 __m128i __C)
6487{
6488 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
6489 (__v2di) __C,
6490 (__v2df) __W,
6491 (__mmask8) __U);
6492}
6493
6494static __inline__ __m128d __DEFAULT_FN_ATTRS
6495_mm_maskz_permutevar_pd (__mmask8 __U, __m128d __A, __m128i __C)
6496{
6497 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
6498 (__v2di) __C,
6499 (__v2df)
6500 _mm_setzero_pd (),
6501 (__mmask8) __U);
6502}
6503
6504static __inline__ __m256d __DEFAULT_FN_ATTRS
6505_mm256_mask_permutevar_pd (__m256d __W, __mmask8 __U, __m256d __A,
6506 __m256i __C)
6507{
6508 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
6509 (__v4di) __C,
6510 (__v4df) __W,
6511 (__mmask8)
6512 __U);
6513}
6514
6515static __inline__ __m256d __DEFAULT_FN_ATTRS
6516_mm256_maskz_permutevar_pd (__mmask8 __U, __m256d __A, __m256i __C)
6517{
6518 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
6519 (__v4di) __C,
6520 (__v4df)
6521 _mm256_setzero_pd (),
6522 (__mmask8)
6523 __U);
6524}
6525
6526static __inline__ __m128 __DEFAULT_FN_ATTRS
6527_mm_mask_permutevar_ps (__m128 __W, __mmask8 __U, __m128 __A,
6528 __m128i __C)
6529{
6530 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
6531 (__v4si) __C,
6532 (__v4sf) __W,
6533 (__mmask8) __U);
6534}
6535
6536static __inline__ __m128 __DEFAULT_FN_ATTRS
6537_mm_maskz_permutevar_ps (__mmask8 __U, __m128 __A, __m128i __C)
6538{
6539 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
6540 (__v4si) __C,
6541 (__v4sf)
6542 _mm_setzero_ps (),
6543 (__mmask8) __U);
6544}
6545
6546static __inline__ __m256 __DEFAULT_FN_ATTRS
6547_mm256_mask_permutevar_ps (__m256 __W, __mmask8 __U, __m256 __A,
6548 __m256i __C)
6549{
6550 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
6551 (__v8si) __C,
6552 (__v8sf) __W,
6553 (__mmask8) __U);
6554}
6555
6556static __inline__ __m256 __DEFAULT_FN_ATTRS
6557_mm256_maskz_permutevar_ps (__mmask8 __U, __m256 __A, __m256i __C)
6558{
6559 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
6560 (__v8si) __C,
6561 (__v8sf)
6562 _mm256_setzero_ps (),
6563 (__mmask8) __U);
6564}
6565
Michael Zuckerman07525092016-04-11 10:22:07 +00006566static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6567_mm_test_epi32_mask (__m128i __A, __m128i __B)
6568{
6569 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6570 (__v4si) __B,
6571 (__mmask8) -1);
6572}
6573
6574static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6575_mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6576{
6577 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6578 (__v4si) __B, __U);
6579}
6580
6581static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6582_mm256_test_epi32_mask (__m256i __A, __m256i __B)
6583{
6584 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6585 (__v8si) __B,
6586 (__mmask8) -1);
6587}
6588
6589static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6590_mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6591{
6592 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6593 (__v8si) __B, __U);
6594}
6595
6596static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6597_mm_test_epi64_mask (__m128i __A, __m128i __B)
6598{
6599 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6600 (__v2di) __B,
6601 (__mmask8) -1);
6602}
6603
6604static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6605_mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6606{
6607 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6608 (__v2di) __B, __U);
6609}
6610
6611static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6612_mm256_test_epi64_mask (__m256i __A, __m256i __B)
6613{
6614 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
6615 (__v4di) __B,
6616 (__mmask8) -1);
6617}
6618
6619static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6620_mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6621{
6622 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
6623 (__v4di) __B, __U);
6624}
6625
6626static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6627_mm_testn_epi32_mask (__m128i __A, __m128i __B)
6628{
6629 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
6630 (__v4si) __B,
6631 (__mmask8) -1);
6632}
6633
6634static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6635_mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6636{
6637 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
6638 (__v4si) __B, __U);
6639}
6640
6641static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6642_mm256_testn_epi32_mask (__m256i __A, __m256i __B)
6643{
6644 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
6645 (__v8si) __B,
6646 (__mmask8) -1);
6647}
6648
6649static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6650_mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6651{
6652 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
6653 (__v8si) __B, __U);
6654}
6655
6656static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6657_mm_testn_epi64_mask (__m128i __A, __m128i __B)
6658{
6659 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
6660 (__v2di) __B,
6661 (__mmask8) -1);
6662}
6663
6664static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6665_mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6666{
6667 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
6668 (__v2di) __B, __U);
6669}
6670
6671static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6672_mm256_testn_epi64_mask (__m256i __A, __m256i __B)
6673{
6674 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
6675 (__v4di) __B,
6676 (__mmask8) -1);
6677}
6678
6679static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6680_mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6681{
6682 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
6683 (__v4di) __B, __U);
6684}
6685
6686
6687
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006688static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006689_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006690{
Craig Topper79f53ca2016-06-23 06:36:42 +00006691 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6692 (__v4si)_mm_unpackhi_epi32(__A, __B),
6693 (__v4si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006694}
6695
6696static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006697_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006698{
Craig Topper79f53ca2016-06-23 06:36:42 +00006699 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6700 (__v4si)_mm_unpackhi_epi32(__A, __B),
6701 (__v4si)_mm_setzero_si128());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006702}
6703
6704static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006705_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006706{
Craig Topper79f53ca2016-06-23 06:36:42 +00006707 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6708 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6709 (__v8si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006710}
6711
6712static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006713_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006714{
Craig Topper79f53ca2016-06-23 06:36:42 +00006715 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6716 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6717 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006718}
6719
6720static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006721_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006722{
Craig Topper79f53ca2016-06-23 06:36:42 +00006723 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6724 (__v2di)_mm_unpackhi_epi64(__A, __B),
6725 (__v2di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006726}
6727
6728static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006729_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006730{
Craig Topper79f53ca2016-06-23 06:36:42 +00006731 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6732 (__v2di)_mm_unpackhi_epi64(__A, __B),
6733 (__v2di)_mm_setzero_di());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006734}
6735
6736static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006737_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006738{
Craig Topper79f53ca2016-06-23 06:36:42 +00006739 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6740 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6741 (__v4di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006742}
6743
6744static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006745_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006746{
Craig Topper79f53ca2016-06-23 06:36:42 +00006747 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6748 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6749 (__v4di)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006750}
6751
6752static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006753_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006754{
Craig Topper79f53ca2016-06-23 06:36:42 +00006755 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6756 (__v4si)_mm_unpacklo_epi32(__A, __B),
6757 (__v4si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006758}
6759
6760static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006761_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006762{
Craig Topper79f53ca2016-06-23 06:36:42 +00006763 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6764 (__v4si)_mm_unpacklo_epi32(__A, __B),
6765 (__v4si)_mm_setzero_si128());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006766}
6767
6768static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006769_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006770{
Craig Topper79f53ca2016-06-23 06:36:42 +00006771 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6772 (__v8si)_mm256_unpacklo_epi32(__A, __B),
6773 (__v8si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006774}
6775
6776static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006777_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006778{
Craig Topper79f53ca2016-06-23 06:36:42 +00006779 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6780 (__v8si)_mm256_unpacklo_epi32(__A, __B),
6781 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006782}
6783
6784static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006785_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006786{
Craig Topper79f53ca2016-06-23 06:36:42 +00006787 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6788 (__v2di)_mm_unpacklo_epi64(__A, __B),
6789 (__v2di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006790}
6791
6792static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006793_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006794{
Craig Topper79f53ca2016-06-23 06:36:42 +00006795 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6796 (__v2di)_mm_unpacklo_epi64(__A, __B),
6797 (__v2di)_mm_setzero_di());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006798}
6799
6800static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006801_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006802{
Craig Topper79f53ca2016-06-23 06:36:42 +00006803 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6804 (__v4di)_mm256_unpacklo_epi64(__A, __B),
6805 (__v4di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006806}
6807
6808static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006809_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006810{
Craig Topper79f53ca2016-06-23 06:36:42 +00006811 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6812 (__v4di)_mm256_unpacklo_epi64(__A, __B),
6813 (__v4di)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006814}
6815
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006816static __inline__ __m128i __DEFAULT_FN_ATTRS
6817_mm_mask_sra_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
6818 __m128i __B)
6819{
6820 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
6821 (__v4si) __B,
6822 (__v4si) __W,
6823 (__mmask8) __U);
6824}
6825
6826static __inline__ __m128i __DEFAULT_FN_ATTRS
6827_mm_maskz_sra_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
6828{
6829 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
6830 (__v4si) __B,
6831 (__v4si)
6832 _mm_setzero_si128 (),
6833 (__mmask8) __U);
6834}
6835
6836static __inline__ __m256i __DEFAULT_FN_ATTRS
6837_mm256_mask_sra_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
6838 __m128i __B)
6839{
6840 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
6841 (__v4si) __B,
6842 (__v8si) __W,
6843 (__mmask8) __U);
6844}
6845
6846static __inline__ __m256i __DEFAULT_FN_ATTRS
6847_mm256_maskz_sra_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
6848{
6849 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
6850 (__v4si) __B,
6851 (__v8si)
6852 _mm256_setzero_si256 (),
6853 (__mmask8) __U);
6854}
6855
Craig Topperd2661882016-05-17 04:41:48 +00006856#define _mm_mask_srai_epi32(W, U, A, imm) __extension__ ({ \
6857 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \
6858 (__v4si)(__m128i)(W), \
6859 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006860
Craig Topperd2661882016-05-17 04:41:48 +00006861#define _mm_maskz_srai_epi32(U, A, imm) __extension__ ({ \
6862 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \
6863 (__v4si)_mm_setzero_si128(), \
6864 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006865
Craig Topperd2661882016-05-17 04:41:48 +00006866#define _mm256_mask_srai_epi32(W, U, A, imm) __extension__ ({ \
6867 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \
6868 (__v8si)(__m256i)(W), \
6869 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006870
Craig Topperd2661882016-05-17 04:41:48 +00006871#define _mm256_maskz_srai_epi32(U, A, imm) __extension__ ({ \
6872 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \
6873 (__v8si)_mm256_setzero_si256(), \
6874 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006875
6876static __inline__ __m128i __DEFAULT_FN_ATTRS
6877_mm_sra_epi64 (__m128i __A, __m128i __B)
6878{
6879 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
6880 (__v2di) __B,
6881 (__v2di)
6882 _mm_setzero_di (),
6883 (__mmask8) -1);
6884}
6885
6886static __inline__ __m128i __DEFAULT_FN_ATTRS
6887_mm_mask_sra_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
6888 __m128i __B)
6889{
6890 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
6891 (__v2di) __B,
6892 (__v2di) __W,
6893 (__mmask8) __U);
6894}
6895
6896static __inline__ __m128i __DEFAULT_FN_ATTRS
6897_mm_maskz_sra_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
6898{
6899 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
6900 (__v2di) __B,
6901 (__v2di)
6902 _mm_setzero_di (),
6903 (__mmask8) __U);
6904}
6905
6906static __inline__ __m256i __DEFAULT_FN_ATTRS
6907_mm256_sra_epi64 (__m256i __A, __m128i __B)
6908{
6909 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
6910 (__v2di) __B,
6911 (__v4di)
6912 _mm256_setzero_si256 (),
6913 (__mmask8) -1);
6914}
6915
6916static __inline__ __m256i __DEFAULT_FN_ATTRS
6917_mm256_mask_sra_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
6918 __m128i __B)
6919{
6920 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
6921 (__v2di) __B,
6922 (__v4di) __W,
6923 (__mmask8) __U);
6924}
6925
6926static __inline__ __m256i __DEFAULT_FN_ATTRS
6927_mm256_maskz_sra_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
6928{
6929 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
6930 (__v2di) __B,
6931 (__v4di)
6932 _mm256_setzero_si256 (),
6933 (__mmask8) __U);
6934}
6935
Craig Topperd2661882016-05-17 04:41:48 +00006936#define _mm_srai_epi64(A, imm) __extension__ ({ \
6937 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
6938 (__v2di)_mm_setzero_di(), \
6939 (__mmask8)-1); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006940
Craig Topperd2661882016-05-17 04:41:48 +00006941#define _mm_mask_srai_epi64(W, U, A, imm) __extension__ ({ \
6942 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
6943 (__v2di)(__m128i)(W), \
6944 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006945
Craig Topperd2661882016-05-17 04:41:48 +00006946#define _mm_maskz_srai_epi64(U, A, imm) __extension__ ({ \
6947 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
6948 (__v2di)_mm_setzero_si128(), \
6949 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006950
Craig Topperd2661882016-05-17 04:41:48 +00006951#define _mm256_srai_epi64(A, imm) __extension__ ({ \
6952 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
6953 (__v4di)_mm256_setzero_si256(), \
6954 (__mmask8)-1); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006955
Craig Topperd2661882016-05-17 04:41:48 +00006956#define _mm256_mask_srai_epi64(W, U, A, imm) __extension__ ({ \
6957 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
6958 (__v4di)(__m256i)(W), \
6959 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006960
Craig Topperd2661882016-05-17 04:41:48 +00006961#define _mm256_maskz_srai_epi64(U, A, imm) __extension__ ({ \
6962 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
6963 (__v4di)_mm256_setzero_si256(), \
6964 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006965
Craig Topperd2661882016-05-17 04:41:48 +00006966#define _mm_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
6967 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
6968 (__v4si)(__m128i)(B), \
6969 (__v4si)(__m128i)(C), (int)(imm), \
6970 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006971
Craig Topperd2661882016-05-17 04:41:48 +00006972#define _mm_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
6973 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
6974 (__v4si)(__m128i)(B), \
6975 (__v4si)(__m128i)(C), (int)(imm), \
6976 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006977
Craig Topperd2661882016-05-17 04:41:48 +00006978#define _mm_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
6979 (__m128i)__builtin_ia32_pternlogd128_maskz((__v4si)(__m128i)(A), \
6980 (__v4si)(__m128i)(B), \
6981 (__v4si)(__m128i)(C), (int)(imm), \
6982 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006983
Craig Topperd2661882016-05-17 04:41:48 +00006984#define _mm256_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
6985 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
6986 (__v8si)(__m256i)(B), \
6987 (__v8si)(__m256i)(C), (int)(imm), \
6988 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006989
Craig Topperd2661882016-05-17 04:41:48 +00006990#define _mm256_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
6991 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
6992 (__v8si)(__m256i)(B), \
6993 (__v8si)(__m256i)(C), (int)(imm), \
6994 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006995
Craig Topperd2661882016-05-17 04:41:48 +00006996#define _mm256_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
6997 (__m256i)__builtin_ia32_pternlogd256_maskz((__v8si)(__m256i)(A), \
6998 (__v8si)(__m256i)(B), \
6999 (__v8si)(__m256i)(C), (int)(imm), \
7000 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007001
Craig Topperd2661882016-05-17 04:41:48 +00007002#define _mm_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
7003 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
7004 (__v2di)(__m128i)(B), \
7005 (__v2di)(__m128i)(C), (int)(imm), \
7006 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007007
Craig Topperd2661882016-05-17 04:41:48 +00007008#define _mm_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
7009 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
7010 (__v2di)(__m128i)(B), \
7011 (__v2di)(__m128i)(C), (int)(imm), \
7012 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007013
Craig Topperd2661882016-05-17 04:41:48 +00007014#define _mm_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
7015 (__m128i)__builtin_ia32_pternlogq128_maskz((__v2di)(__m128i)(A), \
7016 (__v2di)(__m128i)(B), \
7017 (__v2di)(__m128i)(C), (int)(imm), \
7018 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007019
Craig Topperd2661882016-05-17 04:41:48 +00007020#define _mm256_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
7021 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
7022 (__v4di)(__m256i)(B), \
7023 (__v4di)(__m256i)(C), (int)(imm), \
7024 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007025
Craig Topperd2661882016-05-17 04:41:48 +00007026#define _mm256_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
7027 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
7028 (__v4di)(__m256i)(B), \
7029 (__v4di)(__m256i)(C), (int)(imm), \
7030 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007031
Craig Topperd2661882016-05-17 04:41:48 +00007032#define _mm256_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
7033 (__m256i)__builtin_ia32_pternlogq256_maskz((__v4di)(__m256i)(A), \
7034 (__v4di)(__m256i)(B), \
7035 (__v4di)(__m256i)(C), (int)(imm), \
7036 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007037
7038
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007039
Craig Topperd2661882016-05-17 04:41:48 +00007040#define _mm256_shuffle_f32x4(A, B, imm) __extension__ ({ \
7041 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7042 (__v8sf)(__m256)(B), (int)(imm), \
7043 (__v8sf)_mm256_setzero_ps(), \
7044 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007045
Craig Topperd2661882016-05-17 04:41:48 +00007046#define _mm256_mask_shuffle_f32x4(W, U, A, B, imm) __extension__ ({ \
7047 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7048 (__v8sf)(__m256)(B), (int)(imm), \
7049 (__v8sf)(__m256)(W), \
7050 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007051
Craig Topperd2661882016-05-17 04:41:48 +00007052#define _mm256_maskz_shuffle_f32x4(U, A, B, imm) __extension__ ({ \
7053 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7054 (__v8sf)(__m256)(B), (int)(imm), \
7055 (__v8sf)_mm256_setzero_ps(), \
7056 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007057
Craig Topperd2661882016-05-17 04:41:48 +00007058#define _mm256_shuffle_f64x2(A, B, imm) __extension__ ({ \
7059 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7060 (__v4df)(__m256d)(B), \
7061 (int)(imm), \
7062 (__v4df)_mm256_setzero_pd(), \
7063 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007064
Craig Topperd2661882016-05-17 04:41:48 +00007065#define _mm256_mask_shuffle_f64x2(W, U, A, B, imm) __extension__ ({ \
7066 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7067 (__v4df)(__m256d)(B), \
7068 (int)(imm), \
7069 (__v4df)(__m256d)(W), \
7070 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007071
Craig Topperd2661882016-05-17 04:41:48 +00007072#define _mm256_maskz_shuffle_f64x2(U, A, B, imm) __extension__ ({ \
7073 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7074 (__v4df)(__m256d)(B), \
7075 (int)(imm), \
7076 (__v4df)_mm256_setzero_pd(), \
7077 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007078
Craig Topperd2661882016-05-17 04:41:48 +00007079#define _mm256_shuffle_i32x4(A, B, imm) __extension__ ({ \
7080 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7081 (__v8si)(__m256i)(B), \
7082 (int)(imm), \
7083 (__v8si)_mm256_setzero_si256(), \
7084 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007085
Craig Topperd2661882016-05-17 04:41:48 +00007086#define _mm256_mask_shuffle_i32x4(W, U, A, B, imm) __extension__ ({ \
7087 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7088 (__v8si)(__m256i)(B), \
7089 (int)(imm), \
7090 (__v8si)(__m256i)(W), \
7091 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007092
Craig Topperd2661882016-05-17 04:41:48 +00007093#define _mm256_maskz_shuffle_i32x4(U, A, B, imm) __extension__ ({ \
7094 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7095 (__v8si)(__m256i)(B), \
7096 (int)(imm), \
7097 (__v8si)_mm256_setzero_si256(), \
7098 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007099
Craig Topperd2661882016-05-17 04:41:48 +00007100#define _mm256_shuffle_i64x2(A, B, imm) __extension__ ({ \
7101 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7102 (__v4di)(__m256i)(B), \
7103 (int)(imm), \
7104 (__v4di)_mm256_setzero_si256(), \
7105 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007106
Craig Topperd2661882016-05-17 04:41:48 +00007107#define _mm256_mask_shuffle_i64x2(W, U, A, B, imm) __extension__ ({ \
7108 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7109 (__v4di)(__m256i)(B), \
7110 (int)(imm), \
7111 (__v4di)(__m256i)(W), \
7112 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007113
Craig Topperd2661882016-05-17 04:41:48 +00007114#define _mm256_maskz_shuffle_i64x2(U, A, B, imm) __extension__ ({ \
7115 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7116 (__v4di)(__m256i)(B), \
7117 (int)(imm), \
7118 (__v4di)_mm256_setzero_si256(), \
7119 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007120
Simon Pilgrim427154d2016-07-04 21:30:47 +00007121#define _mm_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7122 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
7123 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
7124 (__v2df)(__m128d)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007125
Simon Pilgrim427154d2016-07-04 21:30:47 +00007126#define _mm_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7127 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
7128 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
7129 (__v2df)_mm_setzero_pd()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007130
Simon Pilgrim427154d2016-07-04 21:30:47 +00007131#define _mm256_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7132 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
7133 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
7134 (__v4df)(__m256d)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007135
Simon Pilgrim427154d2016-07-04 21:30:47 +00007136#define _mm256_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7137 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
7138 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
7139 (__v4df)_mm256_setzero_pd()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007140
Simon Pilgrim427154d2016-07-04 21:30:47 +00007141#define _mm_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7142 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
7143 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
7144 (__v4sf)(__m128)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007145
Simon Pilgrim427154d2016-07-04 21:30:47 +00007146#define _mm_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7147 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
7148 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
7149 (__v4sf)_mm_setzero_ps()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007150
Simon Pilgrim427154d2016-07-04 21:30:47 +00007151#define _mm256_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7152 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7153 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
7154 (__v8sf)(__m256)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007155
Simon Pilgrim427154d2016-07-04 21:30:47 +00007156#define _mm256_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7157 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7158 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
7159 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007160
7161static __inline__ __m128d __DEFAULT_FN_ATTRS
7162_mm_rsqrt14_pd (__m128d __A)
7163{
7164 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7165 (__v2df)
7166 _mm_setzero_pd (),
7167 (__mmask8) -1);
7168}
7169
7170static __inline__ __m128d __DEFAULT_FN_ATTRS
7171_mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A)
7172{
7173 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7174 (__v2df) __W,
7175 (__mmask8) __U);
7176}
7177
7178static __inline__ __m128d __DEFAULT_FN_ATTRS
7179_mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A)
7180{
7181 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7182 (__v2df)
7183 _mm_setzero_pd (),
7184 (__mmask8) __U);
7185}
7186
7187static __inline__ __m256d __DEFAULT_FN_ATTRS
7188_mm256_rsqrt14_pd (__m256d __A)
7189{
7190 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7191 (__v4df)
7192 _mm256_setzero_pd (),
7193 (__mmask8) -1);
7194}
7195
7196static __inline__ __m256d __DEFAULT_FN_ATTRS
7197_mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A)
7198{
7199 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7200 (__v4df) __W,
7201 (__mmask8) __U);
7202}
7203
7204static __inline__ __m256d __DEFAULT_FN_ATTRS
7205_mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A)
7206{
7207 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7208 (__v4df)
7209 _mm256_setzero_pd (),
7210 (__mmask8) __U);
7211}
7212
7213static __inline__ __m128 __DEFAULT_FN_ATTRS
7214_mm_rsqrt14_ps (__m128 __A)
7215{
7216 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7217 (__v4sf)
7218 _mm_setzero_ps (),
7219 (__mmask8) -1);
7220}
7221
7222static __inline__ __m128 __DEFAULT_FN_ATTRS
7223_mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A)
7224{
7225 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7226 (__v4sf) __W,
7227 (__mmask8) __U);
7228}
7229
7230static __inline__ __m128 __DEFAULT_FN_ATTRS
7231_mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A)
7232{
7233 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7234 (__v4sf)
7235 _mm_setzero_ps (),
7236 (__mmask8) __U);
7237}
7238
7239static __inline__ __m256 __DEFAULT_FN_ATTRS
7240_mm256_rsqrt14_ps (__m256 __A)
7241{
7242 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7243 (__v8sf)
7244 _mm256_setzero_ps (),
7245 (__mmask8) -1);
7246}
7247
7248static __inline__ __m256 __DEFAULT_FN_ATTRS
7249_mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A)
7250{
7251 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7252 (__v8sf) __W,
7253 (__mmask8) __U);
7254}
7255
7256static __inline__ __m256 __DEFAULT_FN_ATTRS
7257_mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A)
7258{
7259 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7260 (__v8sf)
7261 _mm256_setzero_ps (),
7262 (__mmask8) __U);
7263}
7264
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007265static __inline__ __m256 __DEFAULT_FN_ATTRS
7266_mm256_broadcast_f32x4 (__m128 __A)
7267{
7268 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7269 (__v8sf)_mm256_undefined_pd (),
Craig Topper406d5cd2016-06-04 05:43:37 +00007270 (__mmask8) -1);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007271}
7272
7273static __inline__ __m256 __DEFAULT_FN_ATTRS
7274_mm256_mask_broadcast_f32x4 (__m256 __O, __mmask8 __M, __m128 __A)
7275{
7276 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7277 (__v8sf) __O,
7278 __M);
7279}
7280
7281static __inline__ __m256 __DEFAULT_FN_ATTRS
7282_mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A)
7283{
7284 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7285 (__v8sf) _mm256_setzero_ps (),
7286 __M);
7287}
7288
7289static __inline__ __m256i __DEFAULT_FN_ATTRS
7290_mm256_broadcast_i32x4 (__m128i __A)
7291{
7292 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
7293 (__v8si)_mm256_undefined_si256 (),
Craig Topper406d5cd2016-06-04 05:43:37 +00007294 (__mmask8) -1);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007295}
7296
7297static __inline__ __m256i __DEFAULT_FN_ATTRS
7298_mm256_mask_broadcast_i32x4 (__m256i __O, __mmask8 __M, __m128i __A)
7299{
7300 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
7301 (__v8si)
7302 __O, __M);
7303}
7304
7305static __inline__ __m256i __DEFAULT_FN_ATTRS
7306_mm256_maskz_broadcast_i32x4 (__mmask8 __M, __m128i __A)
7307{
7308 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si)
7309 __A,
7310 (__v8si) _mm256_setzero_si256 (),
7311 __M);
7312}
7313
7314static __inline__ __m256d __DEFAULT_FN_ATTRS
7315_mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A)
7316{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007317 return (__m256d)__builtin_ia32_selectpd_256(__M,
7318 (__v4df) _mm256_broadcastsd_pd(__A),
7319 (__v4df) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007320}
7321
7322static __inline__ __m256d __DEFAULT_FN_ATTRS
7323_mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
7324{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007325 return (__m256d)__builtin_ia32_selectpd_256(__M,
7326 (__v4df) _mm256_broadcastsd_pd(__A),
7327 (__v4df) _mm256_setzero_pd());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007328}
7329
7330static __inline__ __m128 __DEFAULT_FN_ATTRS
7331_mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A)
7332{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007333 return (__m128)__builtin_ia32_selectps_128(__M,
7334 (__v4sf) _mm_broadcastss_ps(__A),
7335 (__v4sf) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007336}
7337
7338static __inline__ __m128 __DEFAULT_FN_ATTRS
7339_mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7340{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007341 return (__m128)__builtin_ia32_selectps_128(__M,
7342 (__v4sf) _mm_broadcastss_ps(__A),
7343 (__v4sf) _mm_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007344}
7345
7346static __inline__ __m256 __DEFAULT_FN_ATTRS
7347_mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A)
7348{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007349 return (__m256)__builtin_ia32_selectps_256(__M,
7350 (__v8sf) _mm256_broadcastss_ps(__A),
7351 (__v8sf) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007352}
7353
7354static __inline__ __m256 __DEFAULT_FN_ATTRS
7355_mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7356{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007357 return (__m256)__builtin_ia32_selectps_256(__M,
7358 (__v8sf) _mm256_broadcastss_ps(__A),
7359 (__v8sf) _mm256_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007360}
7361
7362static __inline__ __m128i __DEFAULT_FN_ATTRS
7363_mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7364{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007365 return (__m128i)__builtin_ia32_selectd_128(__M,
7366 (__v4si) _mm_broadcastd_epi32(__A),
7367 (__v4si) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007368}
7369
7370static __inline__ __m128i __DEFAULT_FN_ATTRS
7371_mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7372{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007373 return (__m128i)__builtin_ia32_selectd_128(__M,
7374 (__v4si) _mm_broadcastd_epi32(__A),
7375 (__v4si) _mm_setzero_si128());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007376}
7377
7378static __inline__ __m256i __DEFAULT_FN_ATTRS
7379_mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A)
7380{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007381 return (__m256i)__builtin_ia32_selectd_256(__M,
7382 (__v8si) _mm256_broadcastd_epi32(__A),
7383 (__v8si) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007384}
7385
7386static __inline__ __m256i __DEFAULT_FN_ATTRS
7387_mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7388{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007389 return (__m256i)__builtin_ia32_selectd_256(__M,
7390 (__v8si) _mm256_broadcastd_epi32(__A),
7391 (__v8si) _mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007392}
7393
7394static __inline__ __m128i __DEFAULT_FN_ATTRS
7395_mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A)
7396{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007397 return (__m128i)__builtin_ia32_selectq_128(__M,
7398 (__v2di) _mm_broadcastq_epi64(__A),
7399 (__v2di) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007400}
7401
7402static __inline__ __m128i __DEFAULT_FN_ATTRS
7403_mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7404{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007405 return (__m128i)__builtin_ia32_selectq_128(__M,
7406 (__v2di) _mm_broadcastq_epi64(__A),
7407 (__v2di) _mm_setzero_si128());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007408}
7409
7410static __inline__ __m256i __DEFAULT_FN_ATTRS
7411_mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A)
7412{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007413 return (__m256i)__builtin_ia32_selectq_256(__M,
7414 (__v4di) _mm256_broadcastq_epi64(__A),
7415 (__v4di) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007416}
7417
7418static __inline__ __m256i __DEFAULT_FN_ATTRS
7419_mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7420{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007421 return (__m256i)__builtin_ia32_selectq_256(__M,
7422 (__v4di) _mm256_broadcastq_epi64(__A),
7423 (__v4di) _mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007424}
7425
Michael Zuckermane1680612016-04-13 15:02:04 +00007426static __inline__ __m128i __DEFAULT_FN_ATTRS
7427_mm_cvtsepi32_epi8 (__m128i __A)
7428{
7429 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7430 (__v16qi)_mm_undefined_si128(),
7431 (__mmask8) -1);
7432}
7433
7434static __inline__ __m128i __DEFAULT_FN_ATTRS
7435_mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7436{
7437 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7438 (__v16qi) __O, __M);
7439}
7440
7441static __inline__ __m128i __DEFAULT_FN_ATTRS
7442_mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A)
7443{
7444 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7445 (__v16qi) _mm_setzero_si128 (),
7446 __M);
7447}
7448
7449static __inline__ void __DEFAULT_FN_ATTRS
7450_mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7451{
7452 __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7453}
7454
7455static __inline__ __m128i __DEFAULT_FN_ATTRS
7456_mm256_cvtsepi32_epi8 (__m256i __A)
7457{
7458 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7459 (__v16qi)_mm_undefined_si128(),
7460 (__mmask8) -1);
7461}
7462
7463static __inline__ __m128i __DEFAULT_FN_ATTRS
7464_mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7465{
7466 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7467 (__v16qi) __O, __M);
7468}
7469
7470static __inline__ __m128i __DEFAULT_FN_ATTRS
7471_mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A)
7472{
7473 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7474 (__v16qi) _mm_setzero_si128 (),
7475 __M);
7476}
7477
7478static __inline__ void __DEFAULT_FN_ATTRS
7479_mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7480{
7481 __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
7482}
7483
7484static __inline__ __m128i __DEFAULT_FN_ATTRS
7485_mm_cvtsepi32_epi16 (__m128i __A)
7486{
7487 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7488 (__v8hi)_mm_setzero_si128 (),
7489 (__mmask8) -1);
7490}
7491
7492static __inline__ __m128i __DEFAULT_FN_ATTRS
7493_mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7494{
7495 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7496 (__v8hi)__O,
7497 __M);
7498}
7499
7500static __inline__ __m128i __DEFAULT_FN_ATTRS
7501_mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A)
7502{
7503 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7504 (__v8hi) _mm_setzero_si128 (),
7505 __M);
7506}
7507
7508static __inline__ void __DEFAULT_FN_ATTRS
7509_mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7510{
7511 __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7512}
7513
7514static __inline__ __m128i __DEFAULT_FN_ATTRS
7515_mm256_cvtsepi32_epi16 (__m256i __A)
7516{
7517 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7518 (__v8hi)_mm_undefined_si128(),
7519 (__mmask8) -1);
7520}
7521
7522static __inline__ __m128i __DEFAULT_FN_ATTRS
7523_mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7524{
7525 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7526 (__v8hi) __O, __M);
7527}
7528
7529static __inline__ __m128i __DEFAULT_FN_ATTRS
7530_mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A)
7531{
7532 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7533 (__v8hi) _mm_setzero_si128 (),
7534 __M);
7535}
7536
7537static __inline__ void __DEFAULT_FN_ATTRS
7538_mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7539{
7540 __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7541}
7542
7543static __inline__ __m128i __DEFAULT_FN_ATTRS
7544_mm_cvtsepi64_epi8 (__m128i __A)
7545{
7546 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7547 (__v16qi)_mm_undefined_si128(),
7548 (__mmask8) -1);
7549}
7550
7551static __inline__ __m128i __DEFAULT_FN_ATTRS
7552_mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7553{
7554 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7555 (__v16qi) __O, __M);
7556}
7557
7558static __inline__ __m128i __DEFAULT_FN_ATTRS
7559_mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A)
7560{
7561 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7562 (__v16qi) _mm_setzero_si128 (),
7563 __M);
7564}
7565
7566static __inline__ void __DEFAULT_FN_ATTRS
7567_mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7568{
7569 __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7570}
7571
7572static __inline__ __m128i __DEFAULT_FN_ATTRS
7573_mm256_cvtsepi64_epi8 (__m256i __A)
7574{
7575 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7576 (__v16qi)_mm_undefined_si128(),
7577 (__mmask8) -1);
7578}
7579
7580static __inline__ __m128i __DEFAULT_FN_ATTRS
7581_mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7582{
7583 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7584 (__v16qi) __O, __M);
7585}
7586
7587static __inline__ __m128i __DEFAULT_FN_ATTRS
7588_mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A)
7589{
7590 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7591 (__v16qi) _mm_setzero_si128 (),
7592 __M);
7593}
7594
7595static __inline__ void __DEFAULT_FN_ATTRS
7596_mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7597{
7598 __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7599}
7600
7601static __inline__ __m128i __DEFAULT_FN_ATTRS
7602_mm_cvtsepi64_epi32 (__m128i __A)
7603{
7604 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7605 (__v4si)_mm_undefined_si128(),
7606 (__mmask8) -1);
7607}
7608
7609static __inline__ __m128i __DEFAULT_FN_ATTRS
7610_mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7611{
7612 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7613 (__v4si) __O, __M);
7614}
7615
7616static __inline__ __m128i __DEFAULT_FN_ATTRS
7617_mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A)
7618{
7619 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7620 (__v4si) _mm_setzero_si128 (),
7621 __M);
7622}
7623
7624static __inline__ void __DEFAULT_FN_ATTRS
7625_mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
7626{
7627 __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
7628}
7629
7630static __inline__ __m128i __DEFAULT_FN_ATTRS
7631_mm256_cvtsepi64_epi32 (__m256i __A)
7632{
7633 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7634 (__v4si)_mm_undefined_si128(),
7635 (__mmask8) -1);
7636}
7637
7638static __inline__ __m128i __DEFAULT_FN_ATTRS
7639_mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
7640{
7641 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7642 (__v4si)__O,
7643 __M);
7644}
7645
7646static __inline__ __m128i __DEFAULT_FN_ATTRS
7647_mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A)
7648{
7649 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7650 (__v4si) _mm_setzero_si128 (),
7651 __M);
7652}
7653
7654static __inline__ void __DEFAULT_FN_ATTRS
7655_mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
7656{
7657 __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
7658}
7659
7660static __inline__ __m128i __DEFAULT_FN_ATTRS
7661_mm_cvtsepi64_epi16 (__m128i __A)
7662{
7663 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7664 (__v8hi)_mm_undefined_si128(),
7665 (__mmask8) -1);
7666}
7667
7668static __inline__ __m128i __DEFAULT_FN_ATTRS
7669_mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7670{
7671 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7672 (__v8hi) __O, __M);
7673}
7674
7675static __inline__ __m128i __DEFAULT_FN_ATTRS
7676_mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A)
7677{
7678 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7679 (__v8hi) _mm_setzero_si128 (),
7680 __M);
7681}
7682
7683static __inline__ void __DEFAULT_FN_ATTRS
7684_mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7685{
7686 __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
7687}
7688
7689static __inline__ __m128i __DEFAULT_FN_ATTRS
7690_mm256_cvtsepi64_epi16 (__m256i __A)
7691{
7692 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7693 (__v8hi)_mm_undefined_si128(),
7694 (__mmask8) -1);
7695}
7696
7697static __inline__ __m128i __DEFAULT_FN_ATTRS
7698_mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7699{
7700 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7701 (__v8hi) __O, __M);
7702}
7703
7704static __inline__ __m128i __DEFAULT_FN_ATTRS
7705_mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A)
7706{
7707 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7708 (__v8hi) _mm_setzero_si128 (),
7709 __M);
7710}
7711
7712static __inline__ void __DEFAULT_FN_ATTRS
7713_mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7714{
7715 __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
7716}
7717
Michael Zuckermand8715312016-04-14 06:48:09 +00007718static __inline__ __m128i __DEFAULT_FN_ATTRS
7719_mm_cvtusepi32_epi8 (__m128i __A)
7720{
7721 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7722 (__v16qi)_mm_undefined_si128(),
7723 (__mmask8) -1);
7724}
7725
7726static __inline__ __m128i __DEFAULT_FN_ATTRS
7727_mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7728{
7729 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7730 (__v16qi) __O,
7731 __M);
7732}
7733
7734static __inline__ __m128i __DEFAULT_FN_ATTRS
7735_mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A)
7736{
7737 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7738 (__v16qi) _mm_setzero_si128 (),
7739 __M);
7740}
7741
7742static __inline__ void __DEFAULT_FN_ATTRS
7743_mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7744{
7745 __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7746}
7747
7748static __inline__ __m128i __DEFAULT_FN_ATTRS
7749_mm256_cvtusepi32_epi8 (__m256i __A)
7750{
7751 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7752 (__v16qi)_mm_undefined_si128(),
7753 (__mmask8) -1);
7754}
7755
7756static __inline__ __m128i __DEFAULT_FN_ATTRS
7757_mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7758{
7759 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7760 (__v16qi) __O,
7761 __M);
7762}
7763
7764static __inline__ __m128i __DEFAULT_FN_ATTRS
7765_mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A)
7766{
7767 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7768 (__v16qi) _mm_setzero_si128 (),
7769 __M);
7770}
7771
7772static __inline__ void __DEFAULT_FN_ATTRS
7773_mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7774{
7775 __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M);
7776}
7777
7778static __inline__ __m128i __DEFAULT_FN_ATTRS
7779_mm_cvtusepi32_epi16 (__m128i __A)
7780{
7781 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7782 (__v8hi)_mm_undefined_si128(),
7783 (__mmask8) -1);
7784}
7785
7786static __inline__ __m128i __DEFAULT_FN_ATTRS
7787_mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7788{
7789 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7790 (__v8hi) __O, __M);
7791}
7792
7793static __inline__ __m128i __DEFAULT_FN_ATTRS
7794_mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A)
7795{
7796 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7797 (__v8hi) _mm_setzero_si128 (),
7798 __M);
7799}
7800
7801static __inline__ void __DEFAULT_FN_ATTRS
7802_mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7803{
7804 __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7805}
7806
7807static __inline__ __m128i __DEFAULT_FN_ATTRS
7808_mm256_cvtusepi32_epi16 (__m256i __A)
7809{
7810 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7811 (__v8hi) _mm_undefined_si128(),
7812 (__mmask8) -1);
7813}
7814
7815static __inline__ __m128i __DEFAULT_FN_ATTRS
7816_mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7817{
7818 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7819 (__v8hi) __O, __M);
7820}
7821
7822static __inline__ __m128i __DEFAULT_FN_ATTRS
7823_mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A)
7824{
7825 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7826 (__v8hi) _mm_setzero_si128 (),
7827 __M);
7828}
7829
7830static __inline__ void __DEFAULT_FN_ATTRS
7831_mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7832{
7833 __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7834}
7835
7836static __inline__ __m128i __DEFAULT_FN_ATTRS
7837_mm_cvtusepi64_epi8 (__m128i __A)
7838{
7839 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7840 (__v16qi)_mm_undefined_si128(),
7841 (__mmask8) -1);
7842}
7843
7844static __inline__ __m128i __DEFAULT_FN_ATTRS
7845_mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7846{
7847 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7848 (__v16qi) __O,
7849 __M);
7850}
7851
7852static __inline__ __m128i __DEFAULT_FN_ATTRS
7853_mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A)
7854{
7855 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7856 (__v16qi) _mm_setzero_si128 (),
7857 __M);
7858}
7859
7860static __inline__ void __DEFAULT_FN_ATTRS
7861_mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7862{
7863 __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7864}
7865
7866static __inline__ __m128i __DEFAULT_FN_ATTRS
7867_mm256_cvtusepi64_epi8 (__m256i __A)
7868{
7869 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7870 (__v16qi)_mm_undefined_si128(),
7871 (__mmask8) -1);
7872}
7873
7874static __inline__ __m128i __DEFAULT_FN_ATTRS
7875_mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7876{
7877 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7878 (__v16qi) __O,
7879 __M);
7880}
7881
7882static __inline__ __m128i __DEFAULT_FN_ATTRS
7883_mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A)
7884{
7885 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7886 (__v16qi) _mm_setzero_si128 (),
7887 __M);
7888}
7889
7890static __inline__ void __DEFAULT_FN_ATTRS
7891_mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7892{
7893 __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7894}
7895
7896static __inline__ __m128i __DEFAULT_FN_ATTRS
7897_mm_cvtusepi64_epi32 (__m128i __A)
7898{
7899 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7900 (__v4si)_mm_undefined_si128(),
7901 (__mmask8) -1);
7902}
7903
7904static __inline__ __m128i __DEFAULT_FN_ATTRS
7905_mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7906{
7907 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7908 (__v4si) __O, __M);
7909}
7910
7911static __inline__ __m128i __DEFAULT_FN_ATTRS
7912_mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A)
7913{
7914 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7915 (__v4si) _mm_setzero_si128 (),
7916 __M);
7917}
7918
7919static __inline__ void __DEFAULT_FN_ATTRS
7920_mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
7921{
7922 __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
7923}
7924
7925static __inline__ __m128i __DEFAULT_FN_ATTRS
7926_mm256_cvtusepi64_epi32 (__m256i __A)
7927{
7928 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
7929 (__v4si)_mm_undefined_si128(),
7930 (__mmask8) -1);
7931}
7932
7933static __inline__ __m128i __DEFAULT_FN_ATTRS
7934_mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
7935{
7936 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
7937 (__v4si) __O, __M);
7938}
7939
7940static __inline__ __m128i __DEFAULT_FN_ATTRS
7941_mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A)
7942{
7943 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
7944 (__v4si) _mm_setzero_si128 (),
7945 __M);
7946}
7947
7948static __inline__ void __DEFAULT_FN_ATTRS
7949_mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
7950{
7951 __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
7952}
7953
7954static __inline__ __m128i __DEFAULT_FN_ATTRS
7955_mm_cvtusepi64_epi16 (__m128i __A)
7956{
7957 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
7958 (__v8hi)_mm_undefined_si128(),
7959 (__mmask8) -1);
7960}
7961
7962static __inline__ __m128i __DEFAULT_FN_ATTRS
7963_mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7964{
7965 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
7966 (__v8hi) __O, __M);
7967}
7968
7969static __inline__ __m128i __DEFAULT_FN_ATTRS
7970_mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A)
7971{
7972 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
7973 (__v8hi) _mm_setzero_si128 (),
7974 __M);
7975}
7976
7977static __inline__ void __DEFAULT_FN_ATTRS
7978_mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7979{
7980 __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
7981}
7982
7983static __inline__ __m128i __DEFAULT_FN_ATTRS
7984_mm256_cvtusepi64_epi16 (__m256i __A)
7985{
7986 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
7987 (__v8hi)_mm_undefined_si128(),
7988 (__mmask8) -1);
7989}
7990
7991static __inline__ __m128i __DEFAULT_FN_ATTRS
7992_mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7993{
7994 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
7995 (__v8hi) __O, __M);
7996}
7997
7998static __inline__ __m128i __DEFAULT_FN_ATTRS
7999_mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A)
8000{
8001 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8002 (__v8hi) _mm_setzero_si128 (),
8003 __M);
8004}
8005
8006static __inline__ void __DEFAULT_FN_ATTRS
8007_mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8008{
8009 return __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8010}
8011
Michael Zuckerman0a3508a2016-04-14 07:56:51 +00008012static __inline__ __m128i __DEFAULT_FN_ATTRS
8013_mm_cvtepi32_epi8 (__m128i __A)
8014{
8015 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8016 (__v16qi)_mm_undefined_si128(),
8017 (__mmask8) -1);
8018}
8019
8020static __inline__ __m128i __DEFAULT_FN_ATTRS
8021_mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8022{
8023 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8024 (__v16qi) __O, __M);
8025}
8026
8027static __inline__ __m128i __DEFAULT_FN_ATTRS
8028_mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A)
8029{
8030 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8031 (__v16qi)
8032 _mm_setzero_si128 (),
8033 __M);
8034}
8035
8036static __inline__ void __DEFAULT_FN_ATTRS
8037_mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8038{
8039 __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
8040}
8041
8042static __inline__ __m128i __DEFAULT_FN_ATTRS
8043_mm256_cvtepi32_epi8 (__m256i __A)
8044{
8045 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8046 (__v16qi)_mm_undefined_si128(),
8047 (__mmask8) -1);
8048}
8049
8050static __inline__ __m128i __DEFAULT_FN_ATTRS
8051_mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8052{
8053 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8054 (__v16qi) __O, __M);
8055}
8056
8057static __inline__ __m128i __DEFAULT_FN_ATTRS
8058_mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A)
8059{
8060 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8061 (__v16qi) _mm_setzero_si128 (),
8062 __M);
8063}
8064
8065static __inline__ void __DEFAULT_FN_ATTRS
8066_mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8067{
8068 __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
8069}
8070
8071static __inline__ __m128i __DEFAULT_FN_ATTRS
8072_mm_cvtepi32_epi16 (__m128i __A)
8073{
8074 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8075 (__v8hi) _mm_setzero_si128 (),
8076 (__mmask8) -1);
8077}
8078
8079static __inline__ __m128i __DEFAULT_FN_ATTRS
8080_mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8081{
8082 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8083 (__v8hi) __O, __M);
8084}
8085
8086static __inline__ __m128i __DEFAULT_FN_ATTRS
8087_mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A)
8088{
8089 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8090 (__v8hi) _mm_setzero_si128 (),
8091 __M);
8092}
8093
8094static __inline__ void __DEFAULT_FN_ATTRS
8095_mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8096{
8097 __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
8098}
8099
8100static __inline__ __m128i __DEFAULT_FN_ATTRS
8101_mm256_cvtepi32_epi16 (__m256i __A)
8102{
8103 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8104 (__v8hi)_mm_setzero_si128 (),
8105 (__mmask8) -1);
8106}
8107
8108static __inline__ __m128i __DEFAULT_FN_ATTRS
8109_mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8110{
8111 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8112 (__v8hi) __O, __M);
8113}
8114
8115static __inline__ __m128i __DEFAULT_FN_ATTRS
8116_mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A)
8117{
8118 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8119 (__v8hi) _mm_setzero_si128 (),
8120 __M);
8121}
8122
8123static __inline__ void __DEFAULT_FN_ATTRS
8124_mm256_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8125{
8126 __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
8127}
8128
8129static __inline__ __m128i __DEFAULT_FN_ATTRS
8130_mm_cvtepi64_epi8 (__m128i __A)
8131{
8132 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8133 (__v16qi) _mm_undefined_si128(),
8134 (__mmask8) -1);
8135}
8136
8137static __inline__ __m128i __DEFAULT_FN_ATTRS
8138_mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8139{
8140 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8141 (__v16qi) __O, __M);
8142}
8143
8144static __inline__ __m128i __DEFAULT_FN_ATTRS
8145_mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A)
8146{
8147 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8148 (__v16qi) _mm_setzero_si128 (),
8149 __M);
8150}
8151
8152static __inline__ void __DEFAULT_FN_ATTRS
8153_mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8154{
8155 __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
8156}
8157
8158static __inline__ __m128i __DEFAULT_FN_ATTRS
8159_mm256_cvtepi64_epi8 (__m256i __A)
8160{
8161 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8162 (__v16qi) _mm_undefined_si128(),
8163 (__mmask8) -1);
8164}
8165
8166static __inline__ __m128i __DEFAULT_FN_ATTRS
8167_mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8168{
8169 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8170 (__v16qi) __O, __M);
8171}
8172
8173static __inline__ __m128i __DEFAULT_FN_ATTRS
8174_mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A)
8175{
8176 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8177 (__v16qi) _mm_setzero_si128 (),
8178 __M);
8179}
8180
8181static __inline__ void __DEFAULT_FN_ATTRS
8182_mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8183{
8184 __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
8185}
8186
8187static __inline__ __m128i __DEFAULT_FN_ATTRS
8188_mm_cvtepi64_epi32 (__m128i __A)
8189{
8190 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8191 (__v4si)_mm_undefined_si128(),
8192 (__mmask8) -1);
8193}
8194
8195static __inline__ __m128i __DEFAULT_FN_ATTRS
8196_mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
8197{
8198 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8199 (__v4si) __O, __M);
8200}
8201
8202static __inline__ __m128i __DEFAULT_FN_ATTRS
8203_mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A)
8204{
8205 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8206 (__v4si) _mm_setzero_si128 (),
8207 __M);
8208}
8209
8210static __inline__ void __DEFAULT_FN_ATTRS
8211_mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
8212{
8213 __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
8214}
8215
8216static __inline__ __m128i __DEFAULT_FN_ATTRS
8217_mm256_cvtepi64_epi32 (__m256i __A)
8218{
8219 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8220 (__v4si) _mm_undefined_si128(),
8221 (__mmask8) -1);
8222}
8223
8224static __inline__ __m128i __DEFAULT_FN_ATTRS
8225_mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
8226{
8227 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8228 (__v4si) __O, __M);
8229}
8230
8231static __inline__ __m128i __DEFAULT_FN_ATTRS
8232_mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A)
8233{
8234 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8235 (__v4si) _mm_setzero_si128 (),
8236 __M);
8237}
8238
8239static __inline__ void __DEFAULT_FN_ATTRS
8240_mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8241{
8242 __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8243}
8244
8245static __inline__ __m128i __DEFAULT_FN_ATTRS
8246_mm_cvtepi64_epi16 (__m128i __A)
8247{
8248 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8249 (__v8hi) _mm_undefined_si128(),
8250 (__mmask8) -1);
8251}
8252
8253static __inline__ __m128i __DEFAULT_FN_ATTRS
8254_mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8255{
8256 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8257 (__v8hi)__O,
8258 __M);
8259}
8260
8261static __inline__ __m128i __DEFAULT_FN_ATTRS
8262_mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A)
8263{
8264 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8265 (__v8hi) _mm_setzero_si128 (),
8266 __M);
8267}
8268
8269static __inline__ void __DEFAULT_FN_ATTRS
8270_mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8271{
8272 __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8273}
8274
8275static __inline__ __m128i __DEFAULT_FN_ATTRS
8276_mm256_cvtepi64_epi16 (__m256i __A)
8277{
8278 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8279 (__v8hi)_mm_undefined_si128(),
8280 (__mmask8) -1);
8281}
8282
8283static __inline__ __m128i __DEFAULT_FN_ATTRS
8284_mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8285{
8286 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8287 (__v8hi) __O, __M);
8288}
8289
8290static __inline__ __m128i __DEFAULT_FN_ATTRS
8291_mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A)
8292{
8293 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8294 (__v8hi) _mm_setzero_si128 (),
8295 __M);
8296}
8297
8298static __inline__ void __DEFAULT_FN_ATTRS
8299_mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8300{
8301 __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8302}
8303
Craig Topperd2661882016-05-17 04:41:48 +00008304#define _mm256_extractf32x4_ps(A, imm) __extension__ ({ \
8305 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8306 (int)(imm), \
8307 (__v4sf)_mm_setzero_ps(), \
8308 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008309
Craig Topperd2661882016-05-17 04:41:48 +00008310#define _mm256_mask_extractf32x4_ps(W, U, A, imm) __extension__ ({ \
8311 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8312 (int)(imm), \
8313 (__v4sf)(__m128)(W), \
8314 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008315
Craig Topperd2661882016-05-17 04:41:48 +00008316#define _mm256_maskz_extractf32x4_ps(U, A, imm) __extension__ ({ \
8317 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8318 (int)(imm), \
8319 (__v4sf)_mm_setzero_ps(), \
8320 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008321
Craig Topperd2661882016-05-17 04:41:48 +00008322#define _mm256_extracti32x4_epi32(A, imm) __extension__ ({ \
8323 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8324 (int)(imm), \
8325 (__v4si)_mm_setzero_si128(), \
8326 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008327
Craig Topperd2661882016-05-17 04:41:48 +00008328#define _mm256_mask_extracti32x4_epi32(W, U, A, imm) __extension__ ({ \
8329 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8330 (int)(imm), \
8331 (__v4si)(__m128i)(W), \
8332 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008333
Craig Topperd2661882016-05-17 04:41:48 +00008334#define _mm256_maskz_extracti32x4_epi32(U, A, imm) __extension__ ({ \
8335 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8336 (int)(imm), \
8337 (__v4si)_mm_setzero_si128(), \
8338 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008339
Craig Topperd2661882016-05-17 04:41:48 +00008340#define _mm256_insertf32x4(A, B, imm) __extension__ ({ \
8341 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8342 (__v4sf)(__m128)(B), (int)(imm), \
8343 (__v8sf)_mm256_setzero_ps(), \
8344 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008345
Craig Topperd2661882016-05-17 04:41:48 +00008346#define _mm256_mask_insertf32x4(W, U, A, B, imm) __extension__ ({ \
8347 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8348 (__v4sf)(__m128)(B), (int)(imm), \
8349 (__v8sf)(__m256)(W), \
8350 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008351
Craig Topperd2661882016-05-17 04:41:48 +00008352#define _mm256_maskz_insertf32x4(U, A, B, imm) __extension__ ({ \
8353 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8354 (__v4sf)(__m128)(B), (int)(imm), \
8355 (__v8sf)_mm256_setzero_ps(), \
8356 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008357
Craig Topperd2661882016-05-17 04:41:48 +00008358#define _mm256_inserti32x4(A, B, imm) __extension__ ({ \
8359 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8360 (__v4si)(__m128i)(B), \
8361 (int)(imm), \
8362 (__v8si)_mm256_setzero_si256(), \
8363 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008364
Craig Topperd2661882016-05-17 04:41:48 +00008365#define _mm256_mask_inserti32x4(W, U, A, B, imm) __extension__ ({ \
8366 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8367 (__v4si)(__m128i)(B), \
8368 (int)(imm), \
8369 (__v8si)(__m256i)(W), \
8370 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008371
Craig Topperd2661882016-05-17 04:41:48 +00008372#define _mm256_maskz_inserti32x4(U, A, B, imm) __extension__ ({ \
8373 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8374 (__v4si)(__m128i)(B), \
8375 (int)(imm), \
8376 (__v8si)_mm256_setzero_si256(), \
8377 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008378
Craig Topperd2661882016-05-17 04:41:48 +00008379#define _mm_getmant_pd(A, B, C) __extension__({\
8380 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8381 (int)(((C)<<2) | (B)), \
8382 (__v2df)_mm_setzero_pd(), \
8383 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008384
Craig Topperd2661882016-05-17 04:41:48 +00008385#define _mm_mask_getmant_pd(W, U, A, B, C) __extension__({\
8386 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8387 (int)(((C)<<2) | (B)), \
8388 (__v2df)(__m128d)(W), \
8389 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008390
Craig Topperd2661882016-05-17 04:41:48 +00008391#define _mm_maskz_getmant_pd(U, A, B, C) __extension__({\
8392 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8393 (int)(((C)<<2) | (B)), \
8394 (__v2df)_mm_setzero_pd(), \
8395 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008396
Craig Topperd2661882016-05-17 04:41:48 +00008397#define _mm256_getmant_pd(A, B, C) __extension__ ({ \
8398 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8399 (int)(((C)<<2) | (B)), \
8400 (__v4df)_mm256_setzero_pd(), \
8401 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008402
Craig Topperd2661882016-05-17 04:41:48 +00008403#define _mm256_mask_getmant_pd(W, U, A, B, C) __extension__ ({ \
8404 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8405 (int)(((C)<<2) | (B)), \
8406 (__v4df)(__m256d)(W), \
8407 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008408
Craig Topperd2661882016-05-17 04:41:48 +00008409#define _mm256_maskz_getmant_pd(U, A, B, C) __extension__ ({ \
8410 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8411 (int)(((C)<<2) | (B)), \
8412 (__v4df)_mm256_setzero_pd(), \
8413 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008414
Craig Topperd2661882016-05-17 04:41:48 +00008415#define _mm_getmant_ps(A, B, C) __extension__ ({ \
8416 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8417 (int)(((C)<<2) | (B)), \
8418 (__v4sf)_mm_setzero_ps(), \
8419 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008420
Craig Topperd2661882016-05-17 04:41:48 +00008421#define _mm_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8422 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8423 (int)(((C)<<2) | (B)), \
8424 (__v4sf)(__m128)(W), \
8425 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008426
Craig Topperd2661882016-05-17 04:41:48 +00008427#define _mm_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8428 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8429 (int)(((C)<<2) | (B)), \
8430 (__v4sf)_mm_setzero_ps(), \
8431 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008432
Craig Topperd2661882016-05-17 04:41:48 +00008433#define _mm256_getmant_ps(A, B, C) __extension__ ({ \
8434 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8435 (int)(((C)<<2) | (B)), \
8436 (__v8sf)_mm256_setzero_ps(), \
8437 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008438
Craig Topperd2661882016-05-17 04:41:48 +00008439#define _mm256_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8440 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8441 (int)(((C)<<2) | (B)), \
8442 (__v8sf)(__m256)(W), \
8443 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008444
Craig Topperd2661882016-05-17 04:41:48 +00008445#define _mm256_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8446 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8447 (int)(((C)<<2) | (B)), \
8448 (__v8sf)_mm256_setzero_ps(), \
8449 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008450
Craig Topperd2661882016-05-17 04:41:48 +00008451#define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8452 (__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \
8453 (double const *)(addr), \
8454 (__v2di)(__m128i)(index), \
8455 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008456
Craig Topperd2661882016-05-17 04:41:48 +00008457#define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8458 (__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \
8459 (long long const *)(addr), \
8460 (__v2di)(__m128i)(index), \
8461 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008462
Craig Topperd2661882016-05-17 04:41:48 +00008463#define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8464 (__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \
8465 (double const *)(addr), \
8466 (__v4di)(__m256i)(index), \
8467 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008468
Craig Topperd2661882016-05-17 04:41:48 +00008469#define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8470 (__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \
8471 (long long const *)(addr), \
8472 (__v4di)(__m256i)(index), \
8473 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008474
Craig Topperd2661882016-05-17 04:41:48 +00008475#define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8476 (__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \
8477 (float const *)(addr), \
8478 (__v2di)(__m128i)(index), \
8479 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008480
Craig Topperd2661882016-05-17 04:41:48 +00008481#define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8482 (__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \
8483 (int const *)(addr), \
8484 (__v2di)(__m128i)(index), \
8485 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008486
Craig Topperd2661882016-05-17 04:41:48 +00008487#define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8488 (__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \
8489 (float const *)(addr), \
8490 (__v4di)(__m256i)(index), \
8491 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008492
Craig Topperd2661882016-05-17 04:41:48 +00008493#define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8494 (__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \
8495 (int const *)(addr), \
8496 (__v4di)(__m256i)(index), \
8497 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008498
Craig Topperd2661882016-05-17 04:41:48 +00008499#define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8500 (__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \
8501 (double const *)(addr), \
8502 (__v4si)(__m128i)(index), \
8503 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008504
Craig Topperd2661882016-05-17 04:41:48 +00008505#define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8506 (__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \
8507 (long long const *)(addr), \
8508 (__v4si)(__m128i)(index), \
8509 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008510
Craig Topperd2661882016-05-17 04:41:48 +00008511#define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8512 (__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \
8513 (double const *)(addr), \
8514 (__v4si)(__m128i)(index), \
8515 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008516
Craig Topperd2661882016-05-17 04:41:48 +00008517#define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8518 (__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \
8519 (long long const *)(addr), \
8520 (__v4si)(__m128i)(index), \
8521 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008522
Craig Topperd2661882016-05-17 04:41:48 +00008523#define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8524 (__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \
8525 (float const *)(addr), \
8526 (__v4si)(__m128i)(index), \
8527 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008528
Craig Topperd2661882016-05-17 04:41:48 +00008529#define _mm_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8530 (__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \
8531 (int const *)(addr), \
8532 (__v4si)(__m128i)(index), \
8533 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008534
Craig Topperd2661882016-05-17 04:41:48 +00008535#define _mm256_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8536 (__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \
8537 (float const *)(addr), \
8538 (__v8si)(__m256i)(index), \
8539 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008540
Craig Topperd2661882016-05-17 04:41:48 +00008541#define _mm256_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8542 (__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \
8543 (int const *)(addr), \
8544 (__v8si)(__m256i)(index), \
8545 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008546
Simon Pilgrim30db8112016-07-04 13:34:44 +00008547#define _mm256_permutex_pd(X, C) __extension__ ({ \
8548 (__m256d)__builtin_shufflevector((__v4df)(__m256d)(X), \
8549 (__v4df)_mm256_undefined_pd(), \
Craig Topper2a383c92016-07-04 22:18:01 +00008550 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \
8551 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008552
Simon Pilgrim30db8112016-07-04 13:34:44 +00008553#define _mm256_mask_permutex_pd(W, U, X, C) __extension__ ({ \
8554 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8555 (__v4df)_mm256_permutex_pd((X), (C)), \
8556 (__v4df)(__m256d)(W)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008557
Simon Pilgrim30db8112016-07-04 13:34:44 +00008558#define _mm256_maskz_permutex_pd(U, X, C) __extension__ ({ \
8559 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8560 (__v4df)_mm256_permutex_pd((X), (C)), \
8561 (__v4df)_mm256_setzero_pd()); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008562
Simon Pilgrim30db8112016-07-04 13:34:44 +00008563#define _mm256_permutex_epi64(X, C) __extension__ ({ \
8564 (__m256i)__builtin_shufflevector((__v4di)(__m256i)(X), \
8565 (__v4di)_mm256_undefined_si256(), \
Craig Topper2a383c92016-07-04 22:18:01 +00008566 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \
8567 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008568
Simon Pilgrim30db8112016-07-04 13:34:44 +00008569#define _mm256_mask_permutex_epi64(W, U, X, C) __extension__ ({ \
8570 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8571 (__v4di)_mm256_permutex_epi64((X), (C)), \
8572 (__v4di)(__m256i)(W)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008573
Simon Pilgrim30db8112016-07-04 13:34:44 +00008574#define _mm256_maskz_permutex_epi64(U, X, C) __extension__ ({ \
8575 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8576 (__v4di)_mm256_permutex_epi64((X), (C)), \
8577 (__v4di)_mm256_setzero_si256()); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008578
8579static __inline__ __m256d __DEFAULT_FN_ATTRS
8580_mm256_permutexvar_pd (__m256i __X, __m256d __Y)
8581{
8582 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8583 (__v4di) __X,
8584 (__v4df) _mm256_undefined_si256 (),
8585 (__mmask8) -1);
8586}
8587
8588static __inline__ __m256d __DEFAULT_FN_ATTRS
8589_mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X,
8590 __m256d __Y)
8591{
8592 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8593 (__v4di) __X,
8594 (__v4df) __W,
8595 (__mmask8) __U);
8596}
8597
8598static __inline__ __m256d __DEFAULT_FN_ATTRS
8599_mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y)
8600{
8601 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8602 (__v4di) __X,
8603 (__v4df) _mm256_setzero_pd (),
8604 (__mmask8) __U);
8605}
8606
8607static __inline__ __m256i __DEFAULT_FN_ATTRS
8608_mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
8609{
8610 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8611 (__v4di) __X,
8612 (__v4di) _mm256_setzero_si256 (),
8613 (__mmask8) __M);
8614}
8615
8616static __inline__ __m256i __DEFAULT_FN_ATTRS
Michael Zuckermana72b49ef2016-07-05 11:30:31 +00008617_mm256_permutexvar_epi64 ( __m256i __X, __m256i __Y)
Michael Zuckerman8938e832016-04-25 05:32:35 +00008618{
8619 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8620 (__v4di) __X,
8621 (__v4di) _mm256_undefined_si256 (),
8622 (__mmask8) -1);
8623}
8624
8625static __inline__ __m256i __DEFAULT_FN_ATTRS
8626_mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X,
8627 __m256i __Y)
8628{
8629 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8630 (__v4di) __X,
8631 (__v4di) __W,
8632 __M);
8633}
8634
8635static __inline__ __m256 __DEFAULT_FN_ATTRS
8636_mm256_mask_permutexvar_ps (__m256 __W, __mmask8 __U, __m256i __X,
8637 __m256 __Y)
8638{
8639 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8640 (__v8si) __X,
8641 (__v8sf) __W,
8642 (__mmask8) __U);
8643}
8644
8645static __inline__ __m256 __DEFAULT_FN_ATTRS
8646_mm256_maskz_permutexvar_ps (__mmask8 __U, __m256i __X, __m256 __Y)
8647{
8648 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8649 (__v8si) __X,
8650 (__v8sf) _mm256_setzero_ps (),
8651 (__mmask8) __U);
8652}
8653
8654static __inline__ __m256 __DEFAULT_FN_ATTRS
8655_mm256_permutexvar_ps (__m256i __X, __m256 __Y)
8656{
8657 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8658 (__v8si) __X,
8659 (__v8sf) _mm256_undefined_si256 (),
8660 (__mmask8) -1);
8661}
8662
8663static __inline__ __m256i __DEFAULT_FN_ATTRS
8664_mm256_maskz_permutexvar_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
8665{
8666 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8667 (__v8si) __X,
8668 (__v8si) _mm256_setzero_si256 (),
8669 __M);
8670}
8671
8672static __inline__ __m256i __DEFAULT_FN_ATTRS
8673_mm256_mask_permutexvar_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
8674 __m256i __Y)
8675{
8676 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8677 (__v8si) __X,
8678 (__v8si) __W,
8679 (__mmask8) __M);
8680}
8681
8682static __inline__ __m256i __DEFAULT_FN_ATTRS
8683_mm256_permutexvar_epi32 (__m256i __X, __m256i __Y)
8684{
8685 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8686 (__v8si) __X,
8687 (__v8si) _mm256_undefined_si256(),
8688 (__mmask8) -1);
8689}
8690
Craig Topperd2661882016-05-17 04:41:48 +00008691#define _mm_alignr_epi32(A, B, imm) __extension__ ({ \
8692 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8693 (__v4si)(__m128i)(B), (int)(imm), \
8694 (__v4si)_mm_undefined_si128(), \
8695 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008696
Craig Topperd2661882016-05-17 04:41:48 +00008697#define _mm_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
8698 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8699 (__v4si)(__m128i)(B), (int)(imm), \
8700 (__v4si)(__m128i)(W), \
8701 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008702
Craig Topperd2661882016-05-17 04:41:48 +00008703#define _mm_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
8704 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8705 (__v4si)(__m128i)(B), (int)(imm), \
8706 (__v4si)_mm_setzero_si128(), \
8707 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008708
Craig Topperd2661882016-05-17 04:41:48 +00008709#define _mm256_alignr_epi32(A, B, imm) __extension__ ({ \
8710 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8711 (__v8si)(__m256i)(B), (int)(imm), \
8712 (__v8si)_mm256_undefined_si256(), \
8713 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008714
Craig Topperd2661882016-05-17 04:41:48 +00008715#define _mm256_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
8716 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8717 (__v8si)(__m256i)(B), (int)(imm), \
8718 (__v8si)(__m256i)(W), \
8719 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008720
Craig Topperd2661882016-05-17 04:41:48 +00008721#define _mm256_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
8722 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8723 (__v8si)(__m256i)(B), (int)(imm), \
8724 (__v8si)_mm256_setzero_si256(), \
8725 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008726
Craig Topperd2661882016-05-17 04:41:48 +00008727#define _mm_alignr_epi64(A, B, imm) __extension__ ({ \
8728 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8729 (__v2di)(__m128i)(B), (int)(imm), \
8730 (__v2di)_mm_setzero_di(), \
8731 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008732
Craig Topperd2661882016-05-17 04:41:48 +00008733#define _mm_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
8734 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8735 (__v2di)(__m128i)(B), (int)(imm), \
8736 (__v2di)(__m128i)(W), \
8737 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008738
Craig Topperd2661882016-05-17 04:41:48 +00008739#define _mm_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
8740 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8741 (__v2di)(__m128i)(B), (int)(imm), \
8742 (__v2di)_mm_setzero_di(), \
8743 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008744
Craig Topperd2661882016-05-17 04:41:48 +00008745#define _mm256_alignr_epi64(A, B, imm) __extension__ ({ \
8746 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
8747 (__v4di)(__m256i)(B), (int)(imm), \
8748 (__v4di)_mm256_undefined_pd(), \
8749 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008750
Craig Topperd2661882016-05-17 04:41:48 +00008751#define _mm256_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
8752 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
8753 (__v4di)(__m256i)(B), (int)(imm), \
8754 (__v4di)(__m256i)(W), \
8755 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008756
Craig Topperd2661882016-05-17 04:41:48 +00008757#define _mm256_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
8758 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
8759 (__v4di)(__m256i)(B), (int)(imm), \
8760 (__v4di)_mm256_setzero_si256(), \
8761 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008762
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008763static __inline__ __m128 __DEFAULT_FN_ATTRS
8764_mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A)
8765{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008766 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8767 (__v4sf)_mm_movehdup_ps(__A),
8768 (__v4sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008769}
8770
8771static __inline__ __m128 __DEFAULT_FN_ATTRS
8772_mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A)
8773{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008774 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8775 (__v4sf)_mm_movehdup_ps(__A),
8776 (__v4sf)_mm_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008777}
8778
8779static __inline__ __m256 __DEFAULT_FN_ATTRS
8780_mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A)
8781{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008782 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8783 (__v8sf)_mm256_movehdup_ps(__A),
8784 (__v8sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008785}
8786
8787static __inline__ __m256 __DEFAULT_FN_ATTRS
8788_mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A)
8789{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008790 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8791 (__v8sf)_mm256_movehdup_ps(__A),
8792 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008793}
8794
8795static __inline__ __m128 __DEFAULT_FN_ATTRS
8796_mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A)
8797{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008798 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8799 (__v4sf)_mm_moveldup_ps(__A),
8800 (__v4sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008801}
8802
8803static __inline__ __m128 __DEFAULT_FN_ATTRS
8804_mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A)
8805{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008806 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8807 (__v4sf)_mm_moveldup_ps(__A),
8808 (__v4sf)_mm_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008809}
8810
8811static __inline__ __m256 __DEFAULT_FN_ATTRS
8812_mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A)
8813{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008814 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8815 (__v8sf)_mm256_moveldup_ps(__A),
8816 (__v8sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008817}
8818
8819static __inline__ __m256 __DEFAULT_FN_ATTRS
8820_mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A)
8821{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008822 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8823 (__v8sf)_mm256_moveldup_ps(__A),
8824 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008825}
8826
Craig Topperd2661882016-05-17 04:41:48 +00008827#define _mm256_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008828 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8829 (__v8si)_mm256_shuffle_epi32((A), (I)), \
8830 (__v8si)(__m256i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00008831
Craig Topperd2661882016-05-17 04:41:48 +00008832#define _mm256_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008833 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8834 (__v8si)_mm256_shuffle_epi32((A), (I)), \
8835 (__v8si)_mm256_setzero_si256()); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00008836
Craig Topperd2661882016-05-17 04:41:48 +00008837#define _mm_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008838 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8839 (__v4si)_mm_shuffle_epi32((A), (I)), \
8840 (__v4si)(__m128i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00008841
Craig Topperd2661882016-05-17 04:41:48 +00008842#define _mm_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008843 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8844 (__v4si)_mm_shuffle_epi32((A), (I)), \
8845 (__v4si)_mm_setzero_si128()); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008846
8847static __inline__ __m128d __DEFAULT_FN_ATTRS
8848_mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A)
8849{
Igor Bregeraadb8762016-06-08 13:59:20 +00008850 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
8851 (__v2df) __A,
8852 (__v2df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008853}
8854
8855static __inline__ __m128d __DEFAULT_FN_ATTRS
8856_mm_maskz_mov_pd (__mmask8 __U, __m128d __A)
8857{
Igor Bregeraadb8762016-06-08 13:59:20 +00008858 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
8859 (__v2df) __A,
8860 (__v2df) _mm_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008861}
8862
8863static __inline__ __m256d __DEFAULT_FN_ATTRS
8864_mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A)
8865{
Igor Bregeraadb8762016-06-08 13:59:20 +00008866 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
8867 (__v4df) __A,
8868 (__v4df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008869}
8870
8871static __inline__ __m256d __DEFAULT_FN_ATTRS
8872_mm256_maskz_mov_pd (__mmask8 __U, __m256d __A)
8873{
Igor Bregeraadb8762016-06-08 13:59:20 +00008874 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
8875 (__v4df) __A,
8876 (__v4df) _mm256_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008877}
8878
8879static __inline__ __m128 __DEFAULT_FN_ATTRS
8880_mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A)
8881{
Igor Bregeraadb8762016-06-08 13:59:20 +00008882 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
8883 (__v4sf) __A,
8884 (__v4sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008885}
8886
8887static __inline__ __m128 __DEFAULT_FN_ATTRS
8888_mm_maskz_mov_ps (__mmask8 __U, __m128 __A)
8889{
Igor Bregeraadb8762016-06-08 13:59:20 +00008890 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
8891 (__v4sf) __A,
8892 (__v4sf) _mm_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008893}
8894
8895static __inline__ __m256 __DEFAULT_FN_ATTRS
8896_mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A)
8897{
Igor Bregeraadb8762016-06-08 13:59:20 +00008898 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
8899 (__v8sf) __A,
8900 (__v8sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008901}
8902
8903static __inline__ __m256 __DEFAULT_FN_ATTRS
8904_mm256_maskz_mov_ps (__mmask8 __U, __m256 __A)
8905{
Igor Bregeraadb8762016-06-08 13:59:20 +00008906 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
8907 (__v8sf) __A,
8908 (__v8sf) _mm256_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008909}
8910
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00008911static __inline__ __m128 __DEFAULT_FN_ATTRS
8912_mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A)
8913{
8914 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
8915 (__v4sf) __W,
8916 (__mmask8) __U);
8917}
8918
8919static __inline__ __m128 __DEFAULT_FN_ATTRS
8920_mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
8921{
8922 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
8923 (__v4sf)
8924 _mm_setzero_ps (),
8925 (__mmask8) __U);
8926}
8927
8928static __inline__ __m256 __DEFAULT_FN_ATTRS
8929_mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A)
8930{
8931 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
8932 (__v8sf) __W,
8933 (__mmask8) __U);
8934}
8935
8936static __inline__ __m256 __DEFAULT_FN_ATTRS
8937_mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
8938{
8939 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
8940 (__v8sf)
8941 _mm256_setzero_ps (),
8942 (__mmask8) __U);
8943}
8944
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00008945static __inline __m128i __DEFAULT_FN_ATTRS
8946_mm_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m128 __A)
8947{
8948 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
8949 (__v8hi) __W,
8950 (__mmask8) __U);
8951}
8952
8953static __inline __m128i __DEFAULT_FN_ATTRS
8954_mm_maskz_cvtps_ph (__mmask8 __U, __m128 __A)
8955{
8956 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
8957 (__v8hi) _mm_setzero_si128 (),
8958 (__mmask8) __U);
8959}
8960
8961#define _mm_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00008962 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
8963 (__v8hi)(__m128i)(W), \
8964 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00008965
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00008966#define _mm_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00008967 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
8968 (__v8hi)_mm_setzero_si128(), \
8969 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00008970
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00008971static __inline __m128i __DEFAULT_FN_ATTRS
8972_mm256_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m256 __A)
8973{
8974 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
8975 (__v8hi) __W,
8976 (__mmask8) __U);
8977}
8978
8979static __inline __m128i __DEFAULT_FN_ATTRS
8980_mm256_maskz_cvtps_ph ( __mmask8 __U, __m256 __A)
8981{
8982 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
8983 (__v8hi) _mm_setzero_si128(),
8984 (__mmask8) __U);
8985}
8986#define _mm256_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00008987 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
8988 (__v8hi)(__m128i)(W), \
8989 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00008990
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00008991#define _mm256_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00008992 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
8993 (__v8hi)_mm_setzero_si128(), \
8994 (__mmask8)(U)); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008995
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00008996
Michael Kupersteine45af542015-06-30 13:36:19 +00008997#undef __DEFAULT_FN_ATTRS
Eric Christopher4d1851682015-06-17 07:09:20 +00008998
Robert Khasanovb9f3a912014-10-08 17:18:13 +00008999#endif /* __AVX512VLINTRIN_H */