blob: 99bb050de4d716350ea25ac8035d58095f3c21d1 [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) {
Simon Pilgrim698528d2016-11-16 09:27:40 +00002137 return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U,
2138 (__v2df)_mm_cvtepi32_pd(__A),
2139 (__v2df)__W);
Asaf Badouh74da3872015-07-28 08:26:14 +00002140}
2141
2142static __inline__ __m128d __DEFAULT_FN_ATTRS
2143_mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
Simon Pilgrim698528d2016-11-16 09:27:40 +00002144 return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U,
2145 (__v2df)_mm_cvtepi32_pd(__A),
2146 (__v2df)_mm_setzero_pd());
Asaf Badouh74da3872015-07-28 08:26:14 +00002147}
2148
2149static __inline__ __m256d __DEFAULT_FN_ATTRS
2150_mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
Simon Pilgrim698528d2016-11-16 09:27:40 +00002151 return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U,
2152 (__v4df)_mm256_cvtepi32_pd(__A),
2153 (__v4df)__W);
Asaf Badouh74da3872015-07-28 08:26:14 +00002154}
2155
2156static __inline__ __m256d __DEFAULT_FN_ATTRS
2157_mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
Simon Pilgrim698528d2016-11-16 09:27:40 +00002158 return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U,
2159 (__v4df)_mm256_cvtepi32_pd(__A),
2160 (__v4df)_mm256_setzero_pd());
Asaf Badouh74da3872015-07-28 08:26:14 +00002161}
2162
2163static __inline__ __m128 __DEFAULT_FN_ATTRS
2164_mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2165 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2166 (__v4sf) __W,
2167 (__mmask8) __U);
2168}
2169
2170static __inline__ __m128 __DEFAULT_FN_ATTRS
2171_mm_maskz_cvtepi32_ps (__mmask16 __U, __m128i __A) {
2172 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2173 (__v4sf)
2174 _mm_setzero_ps (),
2175 (__mmask8) __U);
2176}
2177
2178static __inline__ __m256 __DEFAULT_FN_ATTRS
2179_mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2180 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2181 (__v8sf) __W,
2182 (__mmask8) __U);
2183}
2184
2185static __inline__ __m256 __DEFAULT_FN_ATTRS
2186_mm256_maskz_cvtepi32_ps (__mmask16 __U, __m256i __A) {
2187 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2188 (__v8sf)
2189 _mm256_setzero_ps (),
2190 (__mmask8) __U);
2191}
2192
2193static __inline__ __m128i __DEFAULT_FN_ATTRS
2194_mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2195 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2196 (__v4si) __W,
2197 (__mmask8) __U);
2198}
2199
2200static __inline__ __m128i __DEFAULT_FN_ATTRS
2201_mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) {
2202 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2203 (__v4si)
2204 _mm_setzero_si128 (),
2205 (__mmask8) __U);
2206}
2207
2208static __inline__ __m128i __DEFAULT_FN_ATTRS
2209_mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2210 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2211 (__v4si) __W,
2212 (__mmask8) __U);
2213}
2214
2215static __inline__ __m128i __DEFAULT_FN_ATTRS
2216_mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) {
2217 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2218 (__v4si)
2219 _mm_setzero_si128 (),
2220 (__mmask8) __U);
2221}
2222
2223static __inline__ __m128 __DEFAULT_FN_ATTRS
2224_mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) {
2225 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2226 (__v4sf) __W,
2227 (__mmask8) __U);
2228}
2229
2230static __inline__ __m128 __DEFAULT_FN_ATTRS
2231_mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) {
2232 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2233 (__v4sf)
2234 _mm_setzero_ps (),
2235 (__mmask8) __U);
2236}
2237
2238static __inline__ __m128 __DEFAULT_FN_ATTRS
2239_mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) {
2240 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2241 (__v4sf) __W,
2242 (__mmask8) __U);
2243}
2244
2245static __inline__ __m128 __DEFAULT_FN_ATTRS
2246_mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) {
2247 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2248 (__v4sf)
2249 _mm_setzero_ps (),
2250 (__mmask8) __U);
2251}
2252
2253static __inline__ __m128i __DEFAULT_FN_ATTRS
2254_mm_cvtpd_epu32 (__m128d __A) {
2255 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2256 (__v4si)
2257 _mm_setzero_si128 (),
2258 (__mmask8) -1);
2259}
2260
2261static __inline__ __m128i __DEFAULT_FN_ATTRS
2262_mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2263 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2264 (__v4si) __W,
2265 (__mmask8) __U);
2266}
2267
2268static __inline__ __m128i __DEFAULT_FN_ATTRS
2269_mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) {
2270 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2271 (__v4si)
2272 _mm_setzero_si128 (),
2273 (__mmask8) __U);
2274}
2275
2276static __inline__ __m128i __DEFAULT_FN_ATTRS
2277_mm256_cvtpd_epu32 (__m256d __A) {
2278 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2279 (__v4si)
2280 _mm_setzero_si128 (),
2281 (__mmask8) -1);
2282}
2283
2284static __inline__ __m128i __DEFAULT_FN_ATTRS
2285_mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2286 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2287 (__v4si) __W,
2288 (__mmask8) __U);
2289}
2290
2291static __inline__ __m128i __DEFAULT_FN_ATTRS
2292_mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) {
2293 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2294 (__v4si)
2295 _mm_setzero_si128 (),
2296 (__mmask8) __U);
2297}
2298
2299static __inline__ __m128i __DEFAULT_FN_ATTRS
2300_mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2301 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2302 (__v4si) __W,
2303 (__mmask8) __U);
2304}
2305
2306static __inline__ __m128i __DEFAULT_FN_ATTRS
2307_mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) {
2308 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2309 (__v4si)
2310 _mm_setzero_si128 (),
2311 (__mmask8) __U);
2312}
2313
2314static __inline__ __m256i __DEFAULT_FN_ATTRS
2315_mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2316 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2317 (__v8si) __W,
2318 (__mmask8) __U);
2319}
2320
2321static __inline__ __m256i __DEFAULT_FN_ATTRS
2322_mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) {
2323 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2324 (__v8si)
2325 _mm256_setzero_si256 (),
2326 (__mmask8) __U);
2327}
2328
2329static __inline__ __m128d __DEFAULT_FN_ATTRS
2330_mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) {
2331 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2332 (__v2df) __W,
2333 (__mmask8) __U);
2334}
2335
2336static __inline__ __m128d __DEFAULT_FN_ATTRS
2337_mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2338 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2339 (__v2df)
2340 _mm_setzero_pd (),
2341 (__mmask8) __U);
2342}
2343
2344static __inline__ __m256d __DEFAULT_FN_ATTRS
2345_mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) {
2346 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2347 (__v4df) __W,
2348 (__mmask8) __U);
2349}
2350
2351static __inline__ __m256d __DEFAULT_FN_ATTRS
2352_mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2353 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2354 (__v4df)
2355 _mm256_setzero_pd (),
2356 (__mmask8) __U);
2357}
2358
2359static __inline__ __m128i __DEFAULT_FN_ATTRS
2360_mm_cvtps_epu32 (__m128 __A) {
2361 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2362 (__v4si)
2363 _mm_setzero_si128 (),
2364 (__mmask8) -1);
2365}
2366
2367static __inline__ __m128i __DEFAULT_FN_ATTRS
2368_mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2369 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2370 (__v4si) __W,
2371 (__mmask8) __U);
2372}
2373
2374static __inline__ __m128i __DEFAULT_FN_ATTRS
2375_mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) {
2376 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2377 (__v4si)
2378 _mm_setzero_si128 (),
2379 (__mmask8) __U);
2380}
2381
2382static __inline__ __m256i __DEFAULT_FN_ATTRS
2383_mm256_cvtps_epu32 (__m256 __A) {
2384 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2385 (__v8si)
2386 _mm256_setzero_si256 (),
2387 (__mmask8) -1);
2388}
2389
2390static __inline__ __m256i __DEFAULT_FN_ATTRS
2391_mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2392 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2393 (__v8si) __W,
2394 (__mmask8) __U);
2395}
2396
2397static __inline__ __m256i __DEFAULT_FN_ATTRS
2398_mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) {
2399 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2400 (__v8si)
2401 _mm256_setzero_si256 (),
2402 (__mmask8) __U);
2403}
2404
2405static __inline__ __m128i __DEFAULT_FN_ATTRS
2406_mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2407 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2408 (__v4si) __W,
2409 (__mmask8) __U);
2410}
2411
2412static __inline__ __m128i __DEFAULT_FN_ATTRS
2413_mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) {
2414 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2415 (__v4si)
2416 _mm_setzero_si128 (),
2417 (__mmask8) __U);
2418}
2419
2420static __inline__ __m128i __DEFAULT_FN_ATTRS
2421_mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2422 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2423 (__v4si) __W,
2424 (__mmask8) __U);
2425}
2426
2427static __inline__ __m128i __DEFAULT_FN_ATTRS
2428_mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) {
2429 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2430 (__v4si)
2431 _mm_setzero_si128 (),
2432 (__mmask8) __U);
2433}
2434
2435static __inline__ __m128i __DEFAULT_FN_ATTRS
2436_mm_cvttpd_epu32 (__m128d __A) {
2437 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2438 (__v4si)
2439 _mm_setzero_si128 (),
2440 (__mmask8) -1);
2441}
2442
2443static __inline__ __m128i __DEFAULT_FN_ATTRS
2444_mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2445 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2446 (__v4si) __W,
2447 (__mmask8) __U);
2448}
2449
2450static __inline__ __m128i __DEFAULT_FN_ATTRS
2451_mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) {
2452 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2453 (__v4si)
2454 _mm_setzero_si128 (),
2455 (__mmask8) __U);
2456}
2457
2458static __inline__ __m128i __DEFAULT_FN_ATTRS
2459_mm256_cvttpd_epu32 (__m256d __A) {
2460 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2461 (__v4si)
2462 _mm_setzero_si128 (),
2463 (__mmask8) -1);
2464}
2465
2466static __inline__ __m128i __DEFAULT_FN_ATTRS
2467_mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2468 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2469 (__v4si) __W,
2470 (__mmask8) __U);
2471}
2472
2473static __inline__ __m128i __DEFAULT_FN_ATTRS
2474_mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) {
2475 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2476 (__v4si)
2477 _mm_setzero_si128 (),
2478 (__mmask8) __U);
2479}
2480
2481static __inline__ __m128i __DEFAULT_FN_ATTRS
2482_mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2483 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2484 (__v4si) __W,
2485 (__mmask8) __U);
2486}
2487
2488static __inline__ __m128i __DEFAULT_FN_ATTRS
2489_mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) {
2490 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2491 (__v4si)
2492 _mm_setzero_si128 (),
2493 (__mmask8) __U);
2494}
2495
2496static __inline__ __m256i __DEFAULT_FN_ATTRS
2497_mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2498 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2499 (__v8si) __W,
2500 (__mmask8) __U);
2501}
2502
2503static __inline__ __m256i __DEFAULT_FN_ATTRS
2504_mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) {
2505 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2506 (__v8si)
2507 _mm256_setzero_si256 (),
2508 (__mmask8) __U);
2509}
2510
2511static __inline__ __m128i __DEFAULT_FN_ATTRS
2512_mm_cvttps_epu32 (__m128 __A) {
2513 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2514 (__v4si)
2515 _mm_setzero_si128 (),
2516 (__mmask8) -1);
2517}
2518
2519static __inline__ __m128i __DEFAULT_FN_ATTRS
2520_mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2521 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2522 (__v4si) __W,
2523 (__mmask8) __U);
2524}
2525
2526static __inline__ __m128i __DEFAULT_FN_ATTRS
2527_mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) {
2528 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2529 (__v4si)
2530 _mm_setzero_si128 (),
2531 (__mmask8) __U);
2532}
2533
2534static __inline__ __m256i __DEFAULT_FN_ATTRS
2535_mm256_cvttps_epu32 (__m256 __A) {
2536 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2537 (__v8si)
2538 _mm256_setzero_si256 (),
2539 (__mmask8) -1);
2540}
2541
2542static __inline__ __m256i __DEFAULT_FN_ATTRS
2543_mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2544 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2545 (__v8si) __W,
2546 (__mmask8) __U);
2547}
2548
2549static __inline__ __m256i __DEFAULT_FN_ATTRS
2550_mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) {
2551 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2552 (__v8si)
2553 _mm256_setzero_si256 (),
2554 (__mmask8) __U);
2555}
2556
2557static __inline__ __m128d __DEFAULT_FN_ATTRS
2558_mm_cvtepu32_pd (__m128i __A) {
Simon Pilgrim698528d2016-11-16 09:27:40 +00002559 return (__m128d) __builtin_convertvector(
2560 __builtin_shufflevector((__v4su)__A, (__v4su)__A, 0, 1), __v2df);
Asaf Badouh74da3872015-07-28 08:26:14 +00002561}
2562
2563static __inline__ __m128d __DEFAULT_FN_ATTRS
2564_mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
Simon Pilgrim698528d2016-11-16 09:27:40 +00002565 return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U,
2566 (__v2df)_mm_cvtepu32_pd(__A),
2567 (__v2df)__W);
Asaf Badouh74da3872015-07-28 08:26:14 +00002568}
2569
2570static __inline__ __m128d __DEFAULT_FN_ATTRS
2571_mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
Simon Pilgrim698528d2016-11-16 09:27:40 +00002572 return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U,
2573 (__v2df)_mm_cvtepu32_pd(__A),
2574 (__v2df)_mm_setzero_pd());
Asaf Badouh74da3872015-07-28 08:26:14 +00002575}
2576
2577static __inline__ __m256d __DEFAULT_FN_ATTRS
2578_mm256_cvtepu32_pd (__m128i __A) {
Simon Pilgrim698528d2016-11-16 09:27:40 +00002579 return (__m256d)__builtin_convertvector((__v4su)__A, __v4df);
Asaf Badouh74da3872015-07-28 08:26:14 +00002580}
2581
2582static __inline__ __m256d __DEFAULT_FN_ATTRS
2583_mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
Simon Pilgrim698528d2016-11-16 09:27:40 +00002584 return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U,
2585 (__v4df)_mm256_cvtepu32_pd(__A),
2586 (__v4df)__W);
Asaf Badouh74da3872015-07-28 08:26:14 +00002587}
2588
2589static __inline__ __m256d __DEFAULT_FN_ATTRS
2590_mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
Simon Pilgrim698528d2016-11-16 09:27:40 +00002591 return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U,
2592 (__v4df)_mm256_cvtepu32_pd(__A),
2593 (__v4df)_mm256_setzero_pd());
Asaf Badouh74da3872015-07-28 08:26:14 +00002594}
2595
2596static __inline__ __m128 __DEFAULT_FN_ATTRS
2597_mm_cvtepu32_ps (__m128i __A) {
2598 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2599 (__v4sf)
2600 _mm_setzero_ps (),
2601 (__mmask8) -1);
2602}
2603
2604static __inline__ __m128 __DEFAULT_FN_ATTRS
2605_mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2606 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2607 (__v4sf) __W,
2608 (__mmask8) __U);
2609}
2610
2611static __inline__ __m128 __DEFAULT_FN_ATTRS
2612_mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) {
2613 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2614 (__v4sf)
2615 _mm_setzero_ps (),
2616 (__mmask8) __U);
2617}
2618
2619static __inline__ __m256 __DEFAULT_FN_ATTRS
2620_mm256_cvtepu32_ps (__m256i __A) {
2621 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2622 (__v8sf)
2623 _mm256_setzero_ps (),
2624 (__mmask8) -1);
2625}
2626
2627static __inline__ __m256 __DEFAULT_FN_ATTRS
2628_mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2629 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2630 (__v8sf) __W,
2631 (__mmask8) __U);
2632}
2633
2634static __inline__ __m256 __DEFAULT_FN_ATTRS
2635_mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) {
2636 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2637 (__v8sf)
2638 _mm256_setzero_ps (),
2639 (__mmask8) __U);
2640}
2641
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002642static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002643_mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2644 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2645 (__v2df)_mm_div_pd(__A, __B),
2646 (__v2df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002647}
2648
2649static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002650_mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) {
2651 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
2652 (__v2df)_mm_div_pd(__A, __B),
2653 (__v2df)_mm_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002654}
2655
2656static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002657_mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2658 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2659 (__v4df)_mm256_div_pd(__A, __B),
2660 (__v4df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002661}
2662
2663static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002664_mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2665 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
2666 (__v4df)_mm256_div_pd(__A, __B),
2667 (__v4df)_mm256_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002668}
2669
2670static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002671_mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2672 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2673 (__v4sf)_mm_div_ps(__A, __B),
2674 (__v4sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002675}
2676
2677static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002678_mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) {
2679 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
2680 (__v4sf)_mm_div_ps(__A, __B),
2681 (__v4sf)_mm_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002682}
2683
2684static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002685_mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2686 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2687 (__v8sf)_mm256_div_ps(__A, __B),
2688 (__v8sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002689}
2690
2691static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00002692_mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2693 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
2694 (__v8sf)_mm256_div_ps(__A, __B),
2695 (__v8sf)_mm256_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002696}
2697
2698static __inline__ __m128d __DEFAULT_FN_ATTRS
2699_mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2700 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2701 (__v2df) __W,
2702 (__mmask8) __U);
2703}
2704
2705static __inline__ __m128d __DEFAULT_FN_ATTRS
2706_mm_maskz_expand_pd (__mmask8 __U, __m128d __A) {
2707 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2708 (__v2df)
2709 _mm_setzero_pd (),
2710 (__mmask8) __U);
2711}
2712
2713static __inline__ __m256d __DEFAULT_FN_ATTRS
2714_mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2715 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2716 (__v4df) __W,
2717 (__mmask8) __U);
2718}
2719
2720static __inline__ __m256d __DEFAULT_FN_ATTRS
2721_mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) {
2722 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2723 (__v4df)
2724 _mm256_setzero_pd (),
2725 (__mmask8) __U);
2726}
2727
2728static __inline__ __m128i __DEFAULT_FN_ATTRS
2729_mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2730 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2731 (__v2di) __W,
2732 (__mmask8) __U);
2733}
2734
2735static __inline__ __m128i __DEFAULT_FN_ATTRS
2736_mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) {
2737 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2738 (__v2di)
2739 _mm_setzero_si128 (),
2740 (__mmask8) __U);
2741}
2742
2743static __inline__ __m256i __DEFAULT_FN_ATTRS
2744_mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2745 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2746 (__v4di) __W,
2747 (__mmask8) __U);
2748}
2749
2750static __inline__ __m256i __DEFAULT_FN_ATTRS
2751_mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) {
2752 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2753 (__v4di)
2754 _mm256_setzero_si256 (),
2755 (__mmask8) __U);
2756}
2757
2758static __inline__ __m128d __DEFAULT_FN_ATTRS
2759_mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) {
2760 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2761 (__v2df) __W,
2762 (__mmask8)
2763 __U);
2764}
2765
2766static __inline__ __m128d __DEFAULT_FN_ATTRS
2767_mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2768 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2769 (__v2df)
2770 _mm_setzero_pd (),
2771 (__mmask8)
2772 __U);
2773}
2774
2775static __inline__ __m256d __DEFAULT_FN_ATTRS
2776_mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) {
2777 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2778 (__v4df) __W,
2779 (__mmask8)
2780 __U);
2781}
2782
2783static __inline__ __m256d __DEFAULT_FN_ATTRS
2784_mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2785 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2786 (__v4df)
2787 _mm256_setzero_pd (),
2788 (__mmask8)
2789 __U);
2790}
2791
2792static __inline__ __m128i __DEFAULT_FN_ATTRS
2793_mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) {
2794 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2795 (__v2di) __W,
2796 (__mmask8)
2797 __U);
2798}
2799
2800static __inline__ __m128i __DEFAULT_FN_ATTRS
2801_mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2802 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2803 (__v2di)
2804 _mm_setzero_si128 (),
2805 (__mmask8)
2806 __U);
2807}
2808
2809static __inline__ __m256i __DEFAULT_FN_ATTRS
2810_mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U,
2811 void const *__P) {
2812 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2813 (__v4di) __W,
2814 (__mmask8)
2815 __U);
2816}
2817
2818static __inline__ __m256i __DEFAULT_FN_ATTRS
2819_mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2820 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2821 (__v4di)
2822 _mm256_setzero_si256 (),
2823 (__mmask8)
2824 __U);
2825}
2826
2827static __inline__ __m128 __DEFAULT_FN_ATTRS
2828_mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) {
2829 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
2830 (__v4sf) __W,
2831 (__mmask8) __U);
2832}
2833
2834static __inline__ __m128 __DEFAULT_FN_ATTRS
2835_mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
2836 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
2837 (__v4sf)
2838 _mm_setzero_ps (),
2839 (__mmask8)
2840 __U);
2841}
2842
2843static __inline__ __m256 __DEFAULT_FN_ATTRS
2844_mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) {
2845 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
2846 (__v8sf) __W,
2847 (__mmask8) __U);
2848}
2849
2850static __inline__ __m256 __DEFAULT_FN_ATTRS
2851_mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
2852 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
2853 (__v8sf)
2854 _mm256_setzero_ps (),
2855 (__mmask8)
2856 __U);
2857}
2858
2859static __inline__ __m128i __DEFAULT_FN_ATTRS
2860_mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) {
2861 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
2862 (__v4si) __W,
2863 (__mmask8)
2864 __U);
2865}
2866
2867static __inline__ __m128i __DEFAULT_FN_ATTRS
2868_mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
2869 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
2870 (__v4si)
2871 _mm_setzero_si128 (),
2872 (__mmask8) __U);
2873}
2874
2875static __inline__ __m256i __DEFAULT_FN_ATTRS
2876_mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U,
2877 void const *__P) {
2878 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
2879 (__v8si) __W,
2880 (__mmask8)
2881 __U);
2882}
2883
2884static __inline__ __m256i __DEFAULT_FN_ATTRS
2885_mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
2886 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
2887 (__v8si)
2888 _mm256_setzero_si256 (),
2889 (__mmask8)
2890 __U);
2891}
2892
2893static __inline__ __m128 __DEFAULT_FN_ATTRS
2894_mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) {
2895 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
2896 (__v4sf) __W,
2897 (__mmask8) __U);
2898}
2899
2900static __inline__ __m128 __DEFAULT_FN_ATTRS
2901_mm_maskz_expand_ps (__mmask8 __U, __m128 __A) {
2902 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
2903 (__v4sf)
2904 _mm_setzero_ps (),
2905 (__mmask8) __U);
2906}
2907
2908static __inline__ __m256 __DEFAULT_FN_ATTRS
2909_mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) {
2910 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
2911 (__v8sf) __W,
2912 (__mmask8) __U);
2913}
2914
2915static __inline__ __m256 __DEFAULT_FN_ATTRS
2916_mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) {
2917 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
2918 (__v8sf)
2919 _mm256_setzero_ps (),
2920 (__mmask8) __U);
2921}
2922
2923static __inline__ __m128i __DEFAULT_FN_ATTRS
2924_mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
2925 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
2926 (__v4si) __W,
2927 (__mmask8) __U);
2928}
2929
2930static __inline__ __m128i __DEFAULT_FN_ATTRS
2931_mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) {
2932 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
2933 (__v4si)
2934 _mm_setzero_si128 (),
2935 (__mmask8) __U);
2936}
2937
2938static __inline__ __m256i __DEFAULT_FN_ATTRS
2939_mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
2940 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
2941 (__v8si) __W,
2942 (__mmask8) __U);
2943}
2944
2945static __inline__ __m256i __DEFAULT_FN_ATTRS
2946_mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) {
2947 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
2948 (__v8si)
2949 _mm256_setzero_si256 (),
2950 (__mmask8) __U);
2951}
2952
2953static __inline__ __m128d __DEFAULT_FN_ATTRS
2954_mm_getexp_pd (__m128d __A) {
2955 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
2956 (__v2df)
2957 _mm_setzero_pd (),
2958 (__mmask8) -1);
2959}
2960
2961static __inline__ __m128d __DEFAULT_FN_ATTRS
2962_mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2963 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
2964 (__v2df) __W,
2965 (__mmask8) __U);
2966}
2967
2968static __inline__ __m128d __DEFAULT_FN_ATTRS
2969_mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) {
2970 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
2971 (__v2df)
2972 _mm_setzero_pd (),
2973 (__mmask8) __U);
2974}
2975
2976static __inline__ __m256d __DEFAULT_FN_ATTRS
2977_mm256_getexp_pd (__m256d __A) {
2978 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
2979 (__v4df)
2980 _mm256_setzero_pd (),
2981 (__mmask8) -1);
2982}
2983
2984static __inline__ __m256d __DEFAULT_FN_ATTRS
2985_mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2986 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
2987 (__v4df) __W,
2988 (__mmask8) __U);
2989}
2990
2991static __inline__ __m256d __DEFAULT_FN_ATTRS
2992_mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) {
2993 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
2994 (__v4df)
2995 _mm256_setzero_pd (),
2996 (__mmask8) __U);
2997}
2998
2999static __inline__ __m128 __DEFAULT_FN_ATTRS
3000_mm_getexp_ps (__m128 __A) {
3001 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3002 (__v4sf)
3003 _mm_setzero_ps (),
3004 (__mmask8) -1);
3005}
3006
3007static __inline__ __m128 __DEFAULT_FN_ATTRS
3008_mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) {
3009 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3010 (__v4sf) __W,
3011 (__mmask8) __U);
3012}
3013
3014static __inline__ __m128 __DEFAULT_FN_ATTRS
3015_mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) {
3016 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3017 (__v4sf)
3018 _mm_setzero_ps (),
3019 (__mmask8) __U);
3020}
3021
3022static __inline__ __m256 __DEFAULT_FN_ATTRS
3023_mm256_getexp_ps (__m256 __A) {
3024 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3025 (__v8sf)
3026 _mm256_setzero_ps (),
3027 (__mmask8) -1);
3028}
3029
3030static __inline__ __m256 __DEFAULT_FN_ATTRS
3031_mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) {
3032 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3033 (__v8sf) __W,
3034 (__mmask8) __U);
3035}
3036
3037static __inline__ __m256 __DEFAULT_FN_ATTRS
3038_mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) {
3039 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3040 (__v8sf)
3041 _mm256_setzero_ps (),
3042 (__mmask8) __U);
3043}
3044
3045static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003046_mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3047 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3048 (__v2df)_mm_max_pd(__A, __B),
3049 (__v2df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003050}
3051
3052static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003053_mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) {
3054 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3055 (__v2df)_mm_max_pd(__A, __B),
3056 (__v2df)_mm_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003057}
3058
3059static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003060_mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
3061 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3062 (__v4df)_mm256_max_pd(__A, __B),
3063 (__v4df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003064}
3065
3066static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003067_mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) {
3068 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3069 (__v4df)_mm256_max_pd(__A, __B),
3070 (__v4df)_mm256_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003071}
3072
3073static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003074_mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3075 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3076 (__v4sf)_mm_max_ps(__A, __B),
3077 (__v4sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003078}
3079
3080static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003081_mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) {
3082 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3083 (__v4sf)_mm_max_ps(__A, __B),
3084 (__v4sf)_mm_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003085}
3086
3087static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003088_mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3089 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3090 (__v8sf)_mm256_max_ps(__A, __B),
3091 (__v8sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003092}
3093
3094static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003095_mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) {
3096 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3097 (__v8sf)_mm256_max_ps(__A, __B),
3098 (__v8sf)_mm256_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003099}
3100
3101static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003102_mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3103 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3104 (__v2df)_mm_min_pd(__A, __B),
3105 (__v2df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003106}
3107
3108static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003109_mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) {
3110 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3111 (__v2df)_mm_min_pd(__A, __B),
3112 (__v2df)_mm_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003113}
3114
3115static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003116_mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
3117 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3118 (__v4df)_mm256_min_pd(__A, __B),
3119 (__v4df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003120}
3121
3122static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003123_mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) {
3124 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3125 (__v4df)_mm256_min_pd(__A, __B),
3126 (__v4df)_mm256_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003127}
3128
3129static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003130_mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3131 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3132 (__v4sf)_mm_min_ps(__A, __B),
3133 (__v4sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003134}
3135
3136static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003137_mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) {
3138 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3139 (__v4sf)_mm_min_ps(__A, __B),
3140 (__v4sf)_mm_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003141}
3142
3143static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003144_mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3145 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3146 (__v8sf)_mm256_min_ps(__A, __B),
3147 (__v8sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003148}
3149
3150static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper160ca842016-10-29 19:02:03 +00003151_mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) {
3152 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3153 (__v8sf)_mm256_min_ps(__A, __B),
3154 (__v8sf)_mm256_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003155}
3156
3157static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003158_mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3159 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3160 (__v2df)_mm_mul_pd(__A, __B),
3161 (__v2df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003162}
3163
3164static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003165_mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) {
3166 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3167 (__v2df)_mm_mul_pd(__A, __B),
3168 (__v2df)_mm_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003169}
3170
3171static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003172_mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
3173 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3174 (__v4df)_mm256_mul_pd(__A, __B),
3175 (__v4df)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003176}
3177
3178static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003179_mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) {
3180 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3181 (__v4df)_mm256_mul_pd(__A, __B),
3182 (__v4df)_mm256_setzero_pd());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003183}
3184
3185static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003186_mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3187 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3188 (__v4sf)_mm_mul_ps(__A, __B),
3189 (__v4sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003190}
3191
3192static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003193_mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) {
3194 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3195 (__v4sf)_mm_mul_ps(__A, __B),
3196 (__v4sf)_mm_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003197}
3198
3199static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003200_mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3201 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3202 (__v8sf)_mm256_mul_ps(__A, __B),
3203 (__v8sf)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003204}
3205
3206static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00003207_mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) {
3208 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3209 (__v8sf)_mm256_mul_ps(__A, __B),
3210 (__v8sf)_mm256_setzero_ps());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003211}
3212
3213static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper78a9c402016-10-22 21:24:38 +00003214_mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
3215 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
3216 (__v4si)_mm_abs_epi32(__A),
3217 (__v4si)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003218}
3219
3220static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper78a9c402016-10-22 21:24:38 +00003221_mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) {
3222 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
3223 (__v4si)_mm_abs_epi32(__A),
3224 (__v4si)_mm_setzero_si128());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003225}
3226
3227static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper78a9c402016-10-22 21:24:38 +00003228_mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
3229 return (__m256i)__builtin_ia32_selectd_256((__mmask16)__U,
3230 (__v8si)_mm256_abs_epi32(__A),
3231 (__v8si)__W);
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003232}
3233
3234static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper78a9c402016-10-22 21:24:38 +00003235_mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) {
3236 return (__m256i)__builtin_ia32_selectd_256((__mmask16)__U,
3237 (__v8si)_mm256_abs_epi32(__A),
3238 (__v8si)_mm256_setzero_si256());
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00003239}
3240
3241static __inline__ __m128i __DEFAULT_FN_ATTRS
3242_mm_abs_epi64 (__m128i __A) {
3243 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3244 (__v2di)
3245 _mm_setzero_si128 (),
3246 (__mmask8) -1);
3247}
3248
3249static __inline__ __m128i __DEFAULT_FN_ATTRS
3250_mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
3251 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3252 (__v2di) __W,
3253 (__mmask8) __U);
3254}
3255
3256static __inline__ __m128i __DEFAULT_FN_ATTRS
3257_mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) {
3258 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3259 (__v2di)
3260 _mm_setzero_si128 (),
3261 (__mmask8) __U);
3262}
3263
3264static __inline__ __m256i __DEFAULT_FN_ATTRS
3265_mm256_abs_epi64 (__m256i __A) {
3266 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3267 (__v4di)
3268 _mm256_setzero_si256 (),
3269 (__mmask8) -1);
3270}
3271
3272static __inline__ __m256i __DEFAULT_FN_ATTRS
3273_mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
3274 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3275 (__v4di) __W,
3276 (__mmask8) __U);
3277}
3278
3279static __inline__ __m256i __DEFAULT_FN_ATTRS
3280_mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) {
3281 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3282 (__v4di)
3283 _mm256_setzero_si256 (),
3284 (__mmask8) __U);
3285}
3286
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003287static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003288_mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
3289 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3290 (__v4si)_mm_max_epi32(__A, __B),
3291 (__v4si)_mm_setzero_si128());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003292}
3293
3294static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003295_mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3296 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3297 (__v4si)_mm_max_epi32(__A, __B),
3298 (__v4si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003299}
3300
3301static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003302_mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
3303 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3304 (__v8si)_mm256_max_epi32(__A, __B),
3305 (__v8si)_mm256_setzero_si256());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003306}
3307
3308static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003309_mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3310 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3311 (__v8si)_mm256_max_epi32(__A, __B),
3312 (__v8si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003313}
3314
3315static __inline__ __m128i __DEFAULT_FN_ATTRS
3316_mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3317 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3318 (__v2di) __B,
3319 (__v2di)
3320 _mm_setzero_si128 (),
3321 __M);
3322}
3323
3324static __inline__ __m128i __DEFAULT_FN_ATTRS
3325_mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3326 __m128i __B) {
3327 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3328 (__v2di) __B,
3329 (__v2di) __W, __M);
3330}
3331
3332static __inline__ __m128i __DEFAULT_FN_ATTRS
3333_mm_max_epi64 (__m128i __A, __m128i __B) {
3334 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3335 (__v2di) __B,
3336 (__v2di)
3337 _mm_setzero_si128 (),
3338 (__mmask8) -1);
3339}
3340
3341static __inline__ __m256i __DEFAULT_FN_ATTRS
3342_mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3343 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3344 (__v4di) __B,
3345 (__v4di)
3346 _mm256_setzero_si256 (),
3347 __M);
3348}
3349
3350static __inline__ __m256i __DEFAULT_FN_ATTRS
3351_mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3352 __m256i __B) {
3353 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3354 (__v4di) __B,
3355 (__v4di) __W, __M);
3356}
3357
3358static __inline__ __m256i __DEFAULT_FN_ATTRS
3359_mm256_max_epi64 (__m256i __A, __m256i __B) {
3360 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3361 (__v4di) __B,
3362 (__v4di)
3363 _mm256_setzero_si256 (),
3364 (__mmask8) -1);
3365}
3366
3367static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003368_mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
3369 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3370 (__v4si)_mm_max_epu32(__A, __B),
3371 (__v4si)_mm_setzero_si128());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003372}
3373
3374static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003375_mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3376 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3377 (__v4si)_mm_max_epu32(__A, __B),
3378 (__v4si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003379}
3380
3381static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003382_mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
3383 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3384 (__v8si)_mm256_max_epu32(__A, __B),
3385 (__v8si)_mm256_setzero_si256());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003386}
3387
3388static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003389_mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3390 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3391 (__v8si)_mm256_max_epu32(__A, __B),
3392 (__v8si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003393}
3394
3395static __inline__ __m128i __DEFAULT_FN_ATTRS
3396_mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3397 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3398 (__v2di) __B,
3399 (__v2di)
3400 _mm_setzero_si128 (),
3401 __M);
3402}
3403
3404static __inline__ __m128i __DEFAULT_FN_ATTRS
3405_mm_max_epu64 (__m128i __A, __m128i __B) {
3406 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3407 (__v2di) __B,
3408 (__v2di)
3409 _mm_setzero_si128 (),
3410 (__mmask8) -1);
3411}
3412
3413static __inline__ __m128i __DEFAULT_FN_ATTRS
3414_mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3415 __m128i __B) {
3416 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3417 (__v2di) __B,
3418 (__v2di) __W, __M);
3419}
3420
3421static __inline__ __m256i __DEFAULT_FN_ATTRS
3422_mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3423 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3424 (__v4di) __B,
3425 (__v4di)
3426 _mm256_setzero_si256 (),
3427 __M);
3428}
3429
3430static __inline__ __m256i __DEFAULT_FN_ATTRS
3431_mm256_max_epu64 (__m256i __A, __m256i __B) {
3432 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3433 (__v4di) __B,
3434 (__v4di)
3435 _mm256_setzero_si256 (),
3436 (__mmask8) -1);
3437}
3438
3439static __inline__ __m256i __DEFAULT_FN_ATTRS
3440_mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3441 __m256i __B) {
3442 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3443 (__v4di) __B,
3444 (__v4di) __W, __M);
3445}
3446
3447static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003448_mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
3449 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3450 (__v4si)_mm_min_epi32(__A, __B),
3451 (__v4si)_mm_setzero_si128());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003452}
3453
3454static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003455_mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3456 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3457 (__v4si)_mm_min_epi32(__A, __B),
3458 (__v4si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003459}
3460
3461static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003462_mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
3463 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3464 (__v8si)_mm256_min_epi32(__A, __B),
3465 (__v8si)_mm256_setzero_si256());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003466}
3467
3468static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003469_mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3470 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3471 (__v8si)_mm256_min_epi32(__A, __B),
3472 (__v8si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003473}
3474
3475static __inline__ __m128i __DEFAULT_FN_ATTRS
3476_mm_min_epi64 (__m128i __A, __m128i __B) {
3477 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3478 (__v2di) __B,
3479 (__v2di)
3480 _mm_setzero_si128 (),
3481 (__mmask8) -1);
3482}
3483
3484static __inline__ __m128i __DEFAULT_FN_ATTRS
3485_mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3486 __m128i __B) {
3487 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3488 (__v2di) __B,
3489 (__v2di) __W, __M);
3490}
3491
3492static __inline__ __m128i __DEFAULT_FN_ATTRS
3493_mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3494 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3495 (__v2di) __B,
3496 (__v2di)
3497 _mm_setzero_si128 (),
3498 __M);
3499}
3500
3501static __inline__ __m256i __DEFAULT_FN_ATTRS
3502_mm256_min_epi64 (__m256i __A, __m256i __B) {
3503 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3504 (__v4di) __B,
3505 (__v4di)
3506 _mm256_setzero_si256 (),
3507 (__mmask8) -1);
3508}
3509
3510static __inline__ __m256i __DEFAULT_FN_ATTRS
3511_mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3512 __m256i __B) {
3513 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3514 (__v4di) __B,
3515 (__v4di) __W, __M);
3516}
3517
3518static __inline__ __m256i __DEFAULT_FN_ATTRS
3519_mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3520 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3521 (__v4di) __B,
3522 (__v4di)
3523 _mm256_setzero_si256 (),
3524 __M);
3525}
3526
3527static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003528_mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
3529 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3530 (__v4si)_mm_min_epu32(__A, __B),
3531 (__v4si)_mm_setzero_si128());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003532}
3533
3534static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003535_mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
3536 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
3537 (__v4si)_mm_min_epu32(__A, __B),
3538 (__v4si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003539}
3540
3541static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003542_mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
3543 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3544 (__v8si)_mm256_min_epu32(__A, __B),
3545 (__v8si)_mm256_setzero_si256());
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003546}
3547
3548static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Toppereee7c052016-10-23 23:57:30 +00003549_mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
3550 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
3551 (__v8si)_mm256_min_epu32(__A, __B),
3552 (__v8si)__W);
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003553}
3554
3555static __inline__ __m128i __DEFAULT_FN_ATTRS
3556_mm_min_epu64 (__m128i __A, __m128i __B) {
3557 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3558 (__v2di) __B,
3559 (__v2di)
3560 _mm_setzero_si128 (),
3561 (__mmask8) -1);
3562}
3563
3564static __inline__ __m128i __DEFAULT_FN_ATTRS
3565_mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3566 __m128i __B) {
3567 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3568 (__v2di) __B,
3569 (__v2di) __W, __M);
3570}
3571
3572static __inline__ __m128i __DEFAULT_FN_ATTRS
3573_mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3574 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3575 (__v2di) __B,
3576 (__v2di)
3577 _mm_setzero_si128 (),
3578 __M);
3579}
3580
3581static __inline__ __m256i __DEFAULT_FN_ATTRS
3582_mm256_min_epu64 (__m256i __A, __m256i __B) {
3583 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3584 (__v4di) __B,
3585 (__v4di)
3586 _mm256_setzero_si256 (),
3587 (__mmask8) -1);
3588}
3589
3590static __inline__ __m256i __DEFAULT_FN_ATTRS
3591_mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3592 __m256i __B) {
3593 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3594 (__v4di) __B,
3595 (__v4di) __W, __M);
3596}
3597
3598static __inline__ __m256i __DEFAULT_FN_ATTRS
3599_mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3600 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3601 (__v4di) __B,
3602 (__v4di)
3603 _mm256_setzero_si256 (),
3604 __M);
3605}
3606
Craig Topperd2661882016-05-17 04:41:48 +00003607#define _mm_roundscale_pd(A, imm) __extension__ ({ \
3608 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3609 (int)(imm), \
3610 (__v2df)_mm_setzero_pd(), \
3611 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003612
3613
Craig Topperd2661882016-05-17 04:41:48 +00003614#define _mm_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3615 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3616 (int)(imm), \
3617 (__v2df)(__m128d)(W), \
3618 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003619
3620
Craig Topperd2661882016-05-17 04:41:48 +00003621#define _mm_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3622 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3623 (int)(imm), \
3624 (__v2df)_mm_setzero_pd(), \
3625 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003626
3627
Craig Topperd2661882016-05-17 04:41:48 +00003628#define _mm256_roundscale_pd(A, imm) __extension__ ({ \
3629 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3630 (int)(imm), \
3631 (__v4df)_mm256_setzero_pd(), \
3632 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003633
3634
Craig Topperd2661882016-05-17 04:41:48 +00003635#define _mm256_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3636 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3637 (int)(imm), \
3638 (__v4df)(__m256d)(W), \
3639 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003640
3641
Craig Topperd2661882016-05-17 04:41:48 +00003642#define _mm256_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3643 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3644 (int)(imm), \
3645 (__v4df)_mm256_setzero_pd(), \
3646 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003647
Craig Topperd2661882016-05-17 04:41:48 +00003648#define _mm_roundscale_ps(A, imm) __extension__ ({ \
3649 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3650 (__v4sf)_mm_setzero_ps(), \
3651 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003652
3653
Craig Topperd2661882016-05-17 04:41:48 +00003654#define _mm_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3655 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3656 (__v4sf)(__m128)(W), \
3657 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003658
3659
Craig Topperd2661882016-05-17 04:41:48 +00003660#define _mm_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3661 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3662 (__v4sf)_mm_setzero_ps(), \
3663 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003664
Craig Topperd2661882016-05-17 04:41:48 +00003665#define _mm256_roundscale_ps(A, imm) __extension__ ({ \
3666 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3667 (__v8sf)_mm256_setzero_ps(), \
3668 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003669
Craig Topperd2661882016-05-17 04:41:48 +00003670#define _mm256_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3671 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3672 (__v8sf)(__m256)(W), \
3673 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003674
3675
Craig Topperd2661882016-05-17 04:41:48 +00003676#define _mm256_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3677 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3678 (__v8sf)_mm256_setzero_ps(), \
3679 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003680
3681static __inline__ __m128d __DEFAULT_FN_ATTRS
3682_mm_scalef_pd (__m128d __A, __m128d __B) {
3683 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3684 (__v2df) __B,
3685 (__v2df)
3686 _mm_setzero_pd (),
3687 (__mmask8) -1);
3688}
3689
3690static __inline__ __m128d __DEFAULT_FN_ATTRS
3691_mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A,
3692 __m128d __B) {
3693 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3694 (__v2df) __B,
3695 (__v2df) __W,
3696 (__mmask8) __U);
3697}
3698
3699static __inline__ __m128d __DEFAULT_FN_ATTRS
3700_mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3701 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3702 (__v2df) __B,
3703 (__v2df)
3704 _mm_setzero_pd (),
3705 (__mmask8) __U);
3706}
3707
3708static __inline__ __m256d __DEFAULT_FN_ATTRS
3709_mm256_scalef_pd (__m256d __A, __m256d __B) {
3710 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3711 (__v4df) __B,
3712 (__v4df)
3713 _mm256_setzero_pd (),
3714 (__mmask8) -1);
3715}
3716
3717static __inline__ __m256d __DEFAULT_FN_ATTRS
3718_mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A,
3719 __m256d __B) {
3720 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3721 (__v4df) __B,
3722 (__v4df) __W,
3723 (__mmask8) __U);
3724}
3725
3726static __inline__ __m256d __DEFAULT_FN_ATTRS
3727_mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3728 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3729 (__v4df) __B,
3730 (__v4df)
3731 _mm256_setzero_pd (),
3732 (__mmask8) __U);
3733}
3734
3735static __inline__ __m128 __DEFAULT_FN_ATTRS
3736_mm_scalef_ps (__m128 __A, __m128 __B) {
3737 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3738 (__v4sf) __B,
3739 (__v4sf)
3740 _mm_setzero_ps (),
3741 (__mmask8) -1);
3742}
3743
3744static __inline__ __m128 __DEFAULT_FN_ATTRS
3745_mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3746 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3747 (__v4sf) __B,
3748 (__v4sf) __W,
3749 (__mmask8) __U);
3750}
3751
3752static __inline__ __m128 __DEFAULT_FN_ATTRS
3753_mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3754 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3755 (__v4sf) __B,
3756 (__v4sf)
3757 _mm_setzero_ps (),
3758 (__mmask8) __U);
3759}
3760
3761static __inline__ __m256 __DEFAULT_FN_ATTRS
3762_mm256_scalef_ps (__m256 __A, __m256 __B) {
3763 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3764 (__v8sf) __B,
3765 (__v8sf)
3766 _mm256_setzero_ps (),
3767 (__mmask8) -1);
3768}
3769
3770static __inline__ __m256 __DEFAULT_FN_ATTRS
3771_mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A,
3772 __m256 __B) {
3773 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3774 (__v8sf) __B,
3775 (__v8sf) __W,
3776 (__mmask8) __U);
3777}
3778
3779static __inline__ __m256 __DEFAULT_FN_ATTRS
3780_mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3781 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3782 (__v8sf) __B,
3783 (__v8sf)
3784 _mm256_setzero_ps (),
3785 (__mmask8) __U);
3786}
3787
Craig Topperd2661882016-05-17 04:41:48 +00003788#define _mm_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
3789 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)-1, \
3790 (__v2di)(__m128i)(index), \
3791 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003792
Craig Topperd2661882016-05-17 04:41:48 +00003793#define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3794 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)(mask), \
3795 (__v2di)(__m128i)(index), \
3796 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003797
Craig Topperd2661882016-05-17 04:41:48 +00003798#define _mm_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3799 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)-1, \
3800 (__v2di)(__m128i)(index), \
3801 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003802
Craig Topperd2661882016-05-17 04:41:48 +00003803#define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3804 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)(mask), \
3805 (__v2di)(__m128i)(index), \
3806 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003807
Craig Topperd2661882016-05-17 04:41:48 +00003808#define _mm256_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
3809 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)-1, \
3810 (__v4di)(__m256i)(index), \
3811 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003812
Craig Topperd2661882016-05-17 04:41:48 +00003813#define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3814 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)(mask), \
3815 (__v4di)(__m256i)(index), \
3816 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003817
Craig Topperd2661882016-05-17 04:41:48 +00003818#define _mm256_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3819 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)-1, \
3820 (__v4di)(__m256i)(index), \
3821 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003822
Craig Topperd2661882016-05-17 04:41:48 +00003823#define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3824 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)(mask), \
3825 (__v4di)(__m256i)(index), \
3826 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003827
Craig Topperd2661882016-05-17 04:41:48 +00003828#define _mm_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
3829 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)-1, \
3830 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
3831 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003832
Craig Topperd2661882016-05-17 04:41:48 +00003833#define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3834 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)(mask), \
3835 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
3836 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003837
Craig Topperd2661882016-05-17 04:41:48 +00003838#define _mm_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3839 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)-1, \
3840 (__v2di)(__m128i)(index), \
3841 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003842
Craig Topperd2661882016-05-17 04:41:48 +00003843#define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3844 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)(mask), \
3845 (__v2di)(__m128i)(index), \
3846 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003847
Craig Topperd2661882016-05-17 04:41:48 +00003848#define _mm256_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
3849 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)-1, \
3850 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
3851 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003852
Craig Topperd2661882016-05-17 04:41:48 +00003853#define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3854 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)(mask), \
3855 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
3856 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003857
Craig Topperd2661882016-05-17 04:41:48 +00003858#define _mm256_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3859 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)-1, \
3860 (__v4di)(__m256i)(index), \
3861 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003862
Craig Topperd2661882016-05-17 04:41:48 +00003863#define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3864 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)(mask), \
3865 (__v4di)(__m256i)(index), \
3866 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003867
Craig Topperd2661882016-05-17 04:41:48 +00003868#define _mm_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
3869 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)-1, \
3870 (__v4si)(__m128i)(index), \
3871 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003872
Craig Topperd2661882016-05-17 04:41:48 +00003873#define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3874 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)(mask), \
3875 (__v4si)(__m128i)(index), \
3876 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003877
Craig Topperd2661882016-05-17 04:41:48 +00003878#define _mm_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3879 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)-1, \
3880 (__v4si)(__m128i)(index), \
3881 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003882
Craig Topperd2661882016-05-17 04:41:48 +00003883#define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3884 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)(mask), \
3885 (__v4si)(__m128i)(index), \
3886 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003887
Craig Topperd2661882016-05-17 04:41:48 +00003888#define _mm256_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
3889 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)-1, \
3890 (__v4si)(__m128i)(index), \
3891 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003892
Craig Topperd2661882016-05-17 04:41:48 +00003893#define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3894 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)(mask), \
3895 (__v4si)(__m128i)(index), \
3896 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003897
Craig Topperd2661882016-05-17 04:41:48 +00003898#define _mm256_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3899 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)-1, \
3900 (__v4si)(__m128i)(index), \
3901 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003902
Craig Topperd2661882016-05-17 04:41:48 +00003903#define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3904 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)(mask), \
3905 (__v4si)(__m128i)(index), \
3906 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003907
Craig Topperd2661882016-05-17 04:41:48 +00003908#define _mm_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
3909 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)-1, \
3910 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
3911 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003912
Craig Topperd2661882016-05-17 04:41:48 +00003913#define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3914 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)(mask), \
3915 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
3916 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003917
Craig Topperd2661882016-05-17 04:41:48 +00003918#define _mm_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3919 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)-1, \
3920 (__v4si)(__m128i)(index), \
3921 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003922
Craig Topperd2661882016-05-17 04:41:48 +00003923#define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3924 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)(mask), \
3925 (__v4si)(__m128i)(index), \
3926 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003927
Craig Topperd2661882016-05-17 04:41:48 +00003928#define _mm256_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
3929 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)-1, \
3930 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
3931 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003932
Craig Topperd2661882016-05-17 04:41:48 +00003933#define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3934 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)(mask), \
3935 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
3936 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003937
Craig Topperd2661882016-05-17 04:41:48 +00003938#define _mm256_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3939 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)-1, \
3940 (__v8si)(__m256i)(index), \
3941 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003942
Craig Topperd2661882016-05-17 04:41:48 +00003943#define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3944 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)(mask), \
3945 (__v8si)(__m256i)(index), \
3946 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003947
Asaf Badouh93aa4c82015-07-28 12:04:40 +00003948static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2eadf1b2016-10-29 19:02:10 +00003949_mm_mask_sqrt_pd(__m128d __W, __mmask8 __U, __m128d __A) {
3950 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3951 (__v2df)_mm_sqrt_pd(__A),
3952 (__v2df)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00003953}
3954
3955static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2eadf1b2016-10-29 19:02:10 +00003956_mm_maskz_sqrt_pd(__mmask8 __U, __m128d __A) {
3957 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
3958 (__v2df)_mm_sqrt_pd(__A),
3959 (__v2df)_mm_setzero_pd());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00003960}
3961
3962static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2eadf1b2016-10-29 19:02:10 +00003963_mm256_mask_sqrt_pd(__m256d __W, __mmask8 __U, __m256d __A) {
3964 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3965 (__v4df)_mm256_sqrt_pd(__A),
3966 (__v4df)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00003967}
3968
3969static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2eadf1b2016-10-29 19:02:10 +00003970_mm256_maskz_sqrt_pd(__mmask8 __U, __m256d __A) {
3971 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
3972 (__v4df)_mm256_sqrt_pd(__A),
3973 (__v4df)_mm256_setzero_pd());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00003974}
3975
3976static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2eadf1b2016-10-29 19:02:10 +00003977_mm_mask_sqrt_ps(__m128 __W, __mmask8 __U, __m128 __A) {
3978 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3979 (__v4sf)_mm_sqrt_ps(__A),
3980 (__v4sf)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00003981}
3982
3983static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2eadf1b2016-10-29 19:02:10 +00003984_mm_maskz_sqrt_ps(__mmask8 __U, __m128 __A) {
3985 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
3986 (__v4sf)_mm_sqrt_ps(__A),
3987 (__v4sf)_mm_setzero_pd());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00003988}
3989
3990static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2eadf1b2016-10-29 19:02:10 +00003991_mm256_mask_sqrt_ps(__m256 __W, __mmask8 __U, __m256 __A) {
3992 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
3993 (__v8sf)_mm256_sqrt_ps(__A),
3994 (__v8sf)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00003995}
3996
3997static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2eadf1b2016-10-29 19:02:10 +00003998_mm256_maskz_sqrt_ps(__mmask8 __U, __m256 __A) {
3999 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
4000 (__v8sf)_mm256_sqrt_ps(__A),
4001 (__v8sf)_mm256_setzero_ps());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004002}
4003
4004static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004005_mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4006 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
4007 (__v2df)_mm_sub_pd(__A, __B),
4008 (__v2df)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004009}
4010
4011static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004012_mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) {
4013 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
4014 (__v2df)_mm_sub_pd(__A, __B),
4015 (__v2df)_mm_setzero_pd());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004016}
4017
4018static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004019_mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
4020 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
4021 (__v4df)_mm256_sub_pd(__A, __B),
4022 (__v4df)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004023}
4024
4025static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004026_mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) {
4027 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
4028 (__v4df)_mm256_sub_pd(__A, __B),
4029 (__v4df)_mm256_setzero_pd());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004030}
4031
4032static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004033_mm_mask_sub_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
4034 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
4035 (__v4sf)_mm_sub_ps(__A, __B),
4036 (__v4sf)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004037}
4038
4039static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004040_mm_maskz_sub_ps(__mmask8 __U, __m128 __A, __m128 __B) {
4041 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
4042 (__v4sf)_mm_sub_ps(__A, __B),
4043 (__v4sf)_mm_setzero_ps());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004044}
4045
4046static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004047_mm256_mask_sub_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
4048 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
4049 (__v8sf)_mm256_sub_ps(__A, __B),
4050 (__v8sf)__W);
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004051}
4052
4053static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper2dfab632016-09-04 18:30:17 +00004054_mm256_maskz_sub_ps(__mmask8 __U, __m256 __A, __m256 __B) {
4055 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
4056 (__v8sf)_mm256_sub_ps(__A, __B),
4057 (__v8sf)_mm256_setzero_ps());
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004058}
4059
4060static __inline__ __m128i __DEFAULT_FN_ATTRS
4061_mm_mask2_permutex2var_epi32 (__m128i __A, __m128i __I, __mmask8 __U,
4062 __m128i __B) {
4063 return (__m128i) __builtin_ia32_vpermi2vard128_mask ((__v4si) __A,
4064 (__v4si) __I
4065 /* idx */ ,
4066 (__v4si) __B,
4067 (__mmask8) __U);
4068}
4069
4070static __inline__ __m256i __DEFAULT_FN_ATTRS
4071_mm256_mask2_permutex2var_epi32 (__m256i __A, __m256i __I,
4072 __mmask8 __U, __m256i __B) {
4073 return (__m256i) __builtin_ia32_vpermi2vard256_mask ((__v8si) __A,
4074 (__v8si) __I
4075 /* idx */ ,
4076 (__v8si) __B,
4077 (__mmask8) __U);
4078}
4079
4080static __inline__ __m128d __DEFAULT_FN_ATTRS
4081_mm_mask2_permutex2var_pd (__m128d __A, __m128i __I, __mmask8 __U,
4082 __m128d __B) {
4083 return (__m128d) __builtin_ia32_vpermi2varpd128_mask ((__v2df) __A,
4084 (__v2di) __I
4085 /* idx */ ,
4086 (__v2df) __B,
4087 (__mmask8)
4088 __U);
4089}
4090
4091static __inline__ __m256d __DEFAULT_FN_ATTRS
4092_mm256_mask2_permutex2var_pd (__m256d __A, __m256i __I, __mmask8 __U,
4093 __m256d __B) {
4094 return (__m256d) __builtin_ia32_vpermi2varpd256_mask ((__v4df) __A,
4095 (__v4di) __I
4096 /* idx */ ,
4097 (__v4df) __B,
4098 (__mmask8)
4099 __U);
4100}
4101
4102static __inline__ __m128 __DEFAULT_FN_ATTRS
4103_mm_mask2_permutex2var_ps (__m128 __A, __m128i __I, __mmask8 __U,
4104 __m128 __B) {
4105 return (__m128) __builtin_ia32_vpermi2varps128_mask ((__v4sf) __A,
4106 (__v4si) __I
4107 /* idx */ ,
4108 (__v4sf) __B,
4109 (__mmask8) __U);
4110}
4111
4112static __inline__ __m256 __DEFAULT_FN_ATTRS
4113_mm256_mask2_permutex2var_ps (__m256 __A, __m256i __I, __mmask8 __U,
4114 __m256 __B) {
4115 return (__m256) __builtin_ia32_vpermi2varps256_mask ((__v8sf) __A,
4116 (__v8si) __I
4117 /* idx */ ,
4118 (__v8sf) __B,
4119 (__mmask8) __U);
4120}
4121
4122static __inline__ __m128i __DEFAULT_FN_ATTRS
4123_mm_mask2_permutex2var_epi64 (__m128i __A, __m128i __I, __mmask8 __U,
4124 __m128i __B) {
4125 return (__m128i) __builtin_ia32_vpermi2varq128_mask ((__v2di) __A,
4126 (__v2di) __I
4127 /* idx */ ,
4128 (__v2di) __B,
4129 (__mmask8) __U);
4130}
4131
4132static __inline__ __m256i __DEFAULT_FN_ATTRS
4133_mm256_mask2_permutex2var_epi64 (__m256i __A, __m256i __I,
4134 __mmask8 __U, __m256i __B) {
4135 return (__m256i) __builtin_ia32_vpermi2varq256_mask ((__v4di) __A,
4136 (__v4di) __I
4137 /* idx */ ,
4138 (__v4di) __B,
4139 (__mmask8) __U);
4140}
4141
4142static __inline__ __m128i __DEFAULT_FN_ATTRS
4143_mm_permutex2var_epi32 (__m128i __A, __m128i __I, __m128i __B) {
4144 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4145 /* idx */ ,
4146 (__v4si) __A,
4147 (__v4si) __B,
4148 (__mmask8) -1);
4149}
4150
4151static __inline__ __m128i __DEFAULT_FN_ATTRS
4152_mm_mask_permutex2var_epi32 (__m128i __A, __mmask8 __U, __m128i __I,
4153 __m128i __B) {
4154 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4155 /* idx */ ,
4156 (__v4si) __A,
4157 (__v4si) __B,
4158 (__mmask8) __U);
4159}
4160
4161static __inline__ __m128i __DEFAULT_FN_ATTRS
4162_mm_maskz_permutex2var_epi32 (__mmask8 __U, __m128i __A, __m128i __I,
4163 __m128i __B) {
4164 return (__m128i) __builtin_ia32_vpermt2vard128_maskz ((__v4si) __I
4165 /* idx */ ,
4166 (__v4si) __A,
4167 (__v4si) __B,
4168 (__mmask8)
4169 __U);
4170}
4171
4172static __inline__ __m256i __DEFAULT_FN_ATTRS
4173_mm256_permutex2var_epi32 (__m256i __A, __m256i __I, __m256i __B) {
4174 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4175 /* idx */ ,
4176 (__v8si) __A,
4177 (__v8si) __B,
4178 (__mmask8) -1);
4179}
4180
4181static __inline__ __m256i __DEFAULT_FN_ATTRS
4182_mm256_mask_permutex2var_epi32 (__m256i __A, __mmask8 __U, __m256i __I,
4183 __m256i __B) {
4184 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4185 /* idx */ ,
4186 (__v8si) __A,
4187 (__v8si) __B,
4188 (__mmask8) __U);
4189}
4190
4191static __inline__ __m256i __DEFAULT_FN_ATTRS
4192_mm256_maskz_permutex2var_epi32 (__mmask8 __U, __m256i __A,
4193 __m256i __I, __m256i __B) {
4194 return (__m256i) __builtin_ia32_vpermt2vard256_maskz ((__v8si) __I
4195 /* idx */ ,
4196 (__v8si) __A,
4197 (__v8si) __B,
4198 (__mmask8)
4199 __U);
4200}
4201
4202static __inline__ __m128d __DEFAULT_FN_ATTRS
4203_mm_permutex2var_pd (__m128d __A, __m128i __I, __m128d __B) {
4204 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4205 /* idx */ ,
4206 (__v2df) __A,
4207 (__v2df) __B,
4208 (__mmask8) -
4209 1);
4210}
4211
4212static __inline__ __m128d __DEFAULT_FN_ATTRS
4213_mm_mask_permutex2var_pd (__m128d __A, __mmask8 __U, __m128i __I,
4214 __m128d __B) {
4215 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4216 /* idx */ ,
4217 (__v2df) __A,
4218 (__v2df) __B,
4219 (__mmask8)
4220 __U);
4221}
4222
4223static __inline__ __m128d __DEFAULT_FN_ATTRS
4224_mm_maskz_permutex2var_pd (__mmask8 __U, __m128d __A, __m128i __I,
4225 __m128d __B) {
4226 return (__m128d) __builtin_ia32_vpermt2varpd128_maskz ((__v2di) __I
4227 /* idx */ ,
4228 (__v2df) __A,
4229 (__v2df) __B,
4230 (__mmask8)
4231 __U);
4232}
4233
4234static __inline__ __m256d __DEFAULT_FN_ATTRS
4235_mm256_permutex2var_pd (__m256d __A, __m256i __I, __m256d __B) {
4236 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4237 /* idx */ ,
4238 (__v4df) __A,
4239 (__v4df) __B,
4240 (__mmask8) -
4241 1);
4242}
4243
4244static __inline__ __m256d __DEFAULT_FN_ATTRS
4245_mm256_mask_permutex2var_pd (__m256d __A, __mmask8 __U, __m256i __I,
4246 __m256d __B) {
4247 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4248 /* idx */ ,
4249 (__v4df) __A,
4250 (__v4df) __B,
4251 (__mmask8)
4252 __U);
4253}
4254
4255static __inline__ __m256d __DEFAULT_FN_ATTRS
4256_mm256_maskz_permutex2var_pd (__mmask8 __U, __m256d __A, __m256i __I,
4257 __m256d __B) {
4258 return (__m256d) __builtin_ia32_vpermt2varpd256_maskz ((__v4di) __I
4259 /* idx */ ,
4260 (__v4df) __A,
4261 (__v4df) __B,
4262 (__mmask8)
4263 __U);
4264}
4265
4266static __inline__ __m128 __DEFAULT_FN_ATTRS
4267_mm_permutex2var_ps (__m128 __A, __m128i __I, __m128 __B) {
4268 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4269 /* idx */ ,
4270 (__v4sf) __A,
4271 (__v4sf) __B,
4272 (__mmask8) -1);
4273}
4274
4275static __inline__ __m128 __DEFAULT_FN_ATTRS
4276_mm_mask_permutex2var_ps (__m128 __A, __mmask8 __U, __m128i __I,
4277 __m128 __B) {
4278 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4279 /* idx */ ,
4280 (__v4sf) __A,
4281 (__v4sf) __B,
4282 (__mmask8) __U);
4283}
4284
4285static __inline__ __m128 __DEFAULT_FN_ATTRS
4286_mm_maskz_permutex2var_ps (__mmask8 __U, __m128 __A, __m128i __I,
4287 __m128 __B) {
4288 return (__m128) __builtin_ia32_vpermt2varps128_maskz ((__v4si) __I
4289 /* idx */ ,
4290 (__v4sf) __A,
4291 (__v4sf) __B,
4292 (__mmask8)
4293 __U);
4294}
4295
4296static __inline__ __m256 __DEFAULT_FN_ATTRS
4297_mm256_permutex2var_ps (__m256 __A, __m256i __I, __m256 __B) {
4298 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4299 /* idx */ ,
4300 (__v8sf) __A,
4301 (__v8sf) __B,
4302 (__mmask8) -1);
4303}
4304
4305static __inline__ __m256 __DEFAULT_FN_ATTRS
4306_mm256_mask_permutex2var_ps (__m256 __A, __mmask8 __U, __m256i __I,
4307 __m256 __B) {
4308 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4309 /* idx */ ,
4310 (__v8sf) __A,
4311 (__v8sf) __B,
4312 (__mmask8) __U);
4313}
4314
4315static __inline__ __m256 __DEFAULT_FN_ATTRS
4316_mm256_maskz_permutex2var_ps (__mmask8 __U, __m256 __A, __m256i __I,
4317 __m256 __B) {
4318 return (__m256) __builtin_ia32_vpermt2varps256_maskz ((__v8si) __I
4319 /* idx */ ,
4320 (__v8sf) __A,
4321 (__v8sf) __B,
4322 (__mmask8)
4323 __U);
4324}
4325
4326static __inline__ __m128i __DEFAULT_FN_ATTRS
4327_mm_permutex2var_epi64 (__m128i __A, __m128i __I, __m128i __B) {
4328 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4329 /* idx */ ,
4330 (__v2di) __A,
4331 (__v2di) __B,
4332 (__mmask8) -1);
4333}
4334
4335static __inline__ __m128i __DEFAULT_FN_ATTRS
4336_mm_mask_permutex2var_epi64 (__m128i __A, __mmask8 __U, __m128i __I,
4337 __m128i __B) {
4338 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4339 /* idx */ ,
4340 (__v2di) __A,
4341 (__v2di) __B,
4342 (__mmask8) __U);
4343}
4344
4345static __inline__ __m128i __DEFAULT_FN_ATTRS
4346_mm_maskz_permutex2var_epi64 (__mmask8 __U, __m128i __A, __m128i __I,
4347 __m128i __B) {
4348 return (__m128i) __builtin_ia32_vpermt2varq128_maskz ((__v2di) __I
4349 /* idx */ ,
4350 (__v2di) __A,
4351 (__v2di) __B,
4352 (__mmask8)
4353 __U);
4354}
4355
4356
4357static __inline__ __m256i __DEFAULT_FN_ATTRS
4358_mm256_permutex2var_epi64 (__m256i __A, __m256i __I, __m256i __B) {
4359 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4360 /* idx */ ,
4361 (__v4di) __A,
4362 (__v4di) __B,
4363 (__mmask8) -1);
4364}
4365
4366static __inline__ __m256i __DEFAULT_FN_ATTRS
4367_mm256_mask_permutex2var_epi64 (__m256i __A, __mmask8 __U, __m256i __I,
4368 __m256i __B) {
4369 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4370 /* idx */ ,
4371 (__v4di) __A,
4372 (__v4di) __B,
4373 (__mmask8) __U);
4374}
4375
4376static __inline__ __m256i __DEFAULT_FN_ATTRS
4377_mm256_maskz_permutex2var_epi64 (__mmask8 __U, __m256i __A,
4378 __m256i __I, __m256i __B) {
4379 return (__m256i) __builtin_ia32_vpermt2varq256_maskz ((__v4di) __I
4380 /* idx */ ,
4381 (__v4di) __A,
4382 (__v4di) __B,
4383 (__mmask8)
4384 __U);
4385}
4386
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004387static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004388_mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004389{
Craig Topper11dda922016-10-22 21:24:48 +00004390 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4391 (__v4si)_mm_cvtepi8_epi32(__A),
4392 (__v4si)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004393}
4394
4395static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004396_mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004397{
Craig Topper11dda922016-10-22 21:24:48 +00004398 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4399 (__v4si)_mm_cvtepi8_epi32(__A),
4400 (__v4si)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004401}
4402
4403static __inline__ __m256i __DEFAULT_FN_ATTRS
4404_mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4405{
Craig Topper11dda922016-10-22 21:24:48 +00004406 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4407 (__v8si)_mm256_cvtepi8_epi32(__A),
4408 (__v8si)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004409}
4410
4411static __inline__ __m256i __DEFAULT_FN_ATTRS
4412_mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4413{
Craig Topper11dda922016-10-22 21:24:48 +00004414 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4415 (__v8si)_mm256_cvtepi8_epi32(__A),
4416 (__v8si)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004417}
4418
4419static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004420_mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004421{
Craig Topper11dda922016-10-22 21:24:48 +00004422 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4423 (__v2di)_mm_cvtepi8_epi64(__A),
4424 (__v2di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004425}
4426
4427static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004428_mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004429{
Craig Topper11dda922016-10-22 21:24:48 +00004430 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4431 (__v2di)_mm_cvtepi8_epi64(__A),
4432 (__v2di)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004433}
4434
4435static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004436_mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004437{
Craig Topper11dda922016-10-22 21:24:48 +00004438 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4439 (__v4di)_mm256_cvtepi8_epi64(__A),
4440 (__v4di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004441}
4442
4443static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004444_mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004445{
Craig Topper11dda922016-10-22 21:24:48 +00004446 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4447 (__v4di)_mm256_cvtepi8_epi64(__A),
4448 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004449}
4450
4451static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004452_mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004453{
Craig Topper11dda922016-10-22 21:24:48 +00004454 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4455 (__v2di)_mm_cvtepi32_epi64(__X),
4456 (__v2di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004457}
4458
4459static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004460_mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004461{
Craig Topper11dda922016-10-22 21:24:48 +00004462 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4463 (__v2di)_mm_cvtepi32_epi64(__X),
4464 (__v2di)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004465}
4466
4467static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004468_mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004469{
Craig Topper11dda922016-10-22 21:24:48 +00004470 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4471 (__v4di)_mm256_cvtepi32_epi64(__X),
4472 (__v4di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004473}
4474
4475static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004476_mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004477{
Craig Topper11dda922016-10-22 21:24:48 +00004478 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4479 (__v4di)_mm256_cvtepi32_epi64(__X),
4480 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004481}
4482
4483static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004484_mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004485{
Craig Topper11dda922016-10-22 21:24:48 +00004486 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4487 (__v4si)_mm_cvtepi16_epi32(__A),
4488 (__v4si)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004489}
4490
4491static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004492_mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004493{
Craig Topper11dda922016-10-22 21:24:48 +00004494 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4495 (__v4si)_mm_cvtepi16_epi32(__A),
4496 (__v4si)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004497}
4498
4499static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004500_mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004501{
Craig Topper11dda922016-10-22 21:24:48 +00004502 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4503 (__v8si)_mm256_cvtepi16_epi32(__A),
4504 (__v8si)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004505}
4506
4507static __inline__ __m256i __DEFAULT_FN_ATTRS
4508_mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4509{
Craig Topper11dda922016-10-22 21:24:48 +00004510 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4511 (__v8si)_mm256_cvtepi16_epi32(__A),
4512 (__v8si)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004513}
4514
4515static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004516_mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004517{
Craig Topper11dda922016-10-22 21:24:48 +00004518 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4519 (__v2di)_mm_cvtepi16_epi64(__A),
4520 (__v2di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004521}
4522
4523static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004524_mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004525{
Craig Topper11dda922016-10-22 21:24:48 +00004526 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4527 (__v2di)_mm_cvtepi16_epi64(__A),
4528 (__v2di)_mm_setzero_si128());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004529}
4530
4531static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004532_mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004533{
Craig Topper11dda922016-10-22 21:24:48 +00004534 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4535 (__v4di)_mm256_cvtepi16_epi64(__A),
4536 (__v4di)__W);
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004537}
4538
4539static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004540_mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004541{
Craig Topper11dda922016-10-22 21:24:48 +00004542 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4543 (__v4di)_mm256_cvtepi16_epi64(__A),
4544 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004545}
4546
4547
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004548static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004549_mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004550{
Craig Topper11dda922016-10-22 21:24:48 +00004551 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4552 (__v4si)_mm_cvtepu8_epi32(__A),
4553 (__v4si)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004554}
4555
4556static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004557_mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004558{
Craig Topper11dda922016-10-22 21:24:48 +00004559 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4560 (__v4si)_mm_cvtepu8_epi32(__A),
4561 (__v4si)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004562}
4563
4564static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004565_mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004566{
Craig Topper11dda922016-10-22 21:24:48 +00004567 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4568 (__v8si)_mm256_cvtepu8_epi32(__A),
4569 (__v8si)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004570}
4571
4572static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004573_mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004574{
Craig Topper11dda922016-10-22 21:24:48 +00004575 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4576 (__v8si)_mm256_cvtepu8_epi32(__A),
4577 (__v8si)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004578}
4579
4580static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004581_mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004582{
Craig Topper11dda922016-10-22 21:24:48 +00004583 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4584 (__v2di)_mm_cvtepu8_epi64(__A),
4585 (__v2di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004586}
4587
4588static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004589_mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004590{
Craig Topper11dda922016-10-22 21:24:48 +00004591 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4592 (__v2di)_mm_cvtepu8_epi64(__A),
4593 (__v2di)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004594}
4595
4596static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004597_mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004598{
Craig Topper11dda922016-10-22 21:24:48 +00004599 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4600 (__v4di)_mm256_cvtepu8_epi64(__A),
4601 (__v4di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004602}
4603
4604static __inline__ __m256i __DEFAULT_FN_ATTRS
4605_mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
4606{
Craig Topper11dda922016-10-22 21:24:48 +00004607 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4608 (__v4di)_mm256_cvtepu8_epi64(__A),
4609 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004610}
4611
4612static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004613_mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004614{
Craig Topper11dda922016-10-22 21:24:48 +00004615 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4616 (__v2di)_mm_cvtepu32_epi64(__X),
4617 (__v2di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004618}
4619
4620static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004621_mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004622{
Craig Topper11dda922016-10-22 21:24:48 +00004623 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4624 (__v2di)_mm_cvtepu32_epi64(__X),
4625 (__v2di)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004626}
4627
4628static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004629_mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004630{
Craig Topper11dda922016-10-22 21:24:48 +00004631 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4632 (__v4di)_mm256_cvtepu32_epi64(__X),
4633 (__v4di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004634}
4635
4636static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004637_mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004638{
Craig Topper11dda922016-10-22 21:24:48 +00004639 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4640 (__v4di)_mm256_cvtepu32_epi64(__X),
4641 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004642}
4643
4644static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004645_mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004646{
Craig Topper11dda922016-10-22 21:24:48 +00004647 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4648 (__v4si)_mm_cvtepu16_epi32(__A),
4649 (__v4si)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004650}
4651
4652static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004653_mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004654{
Craig Topper11dda922016-10-22 21:24:48 +00004655 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4656 (__v4si)_mm_cvtepu16_epi32(__A),
4657 (__v4si)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004658}
4659
4660static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004661_mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004662{
Craig Topper11dda922016-10-22 21:24:48 +00004663 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4664 (__v8si)_mm256_cvtepu16_epi32(__A),
4665 (__v8si)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004666}
4667
4668static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004669_mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004670{
Craig Topper11dda922016-10-22 21:24:48 +00004671 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4672 (__v8si)_mm256_cvtepu16_epi32(__A),
4673 (__v8si)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004674}
4675
4676static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004677_mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004678{
Craig Topper11dda922016-10-22 21:24:48 +00004679 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4680 (__v2di)_mm_cvtepu16_epi64(__A),
4681 (__v2di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004682}
4683
4684static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004685_mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004686{
Craig Topper11dda922016-10-22 21:24:48 +00004687 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
4688 (__v2di)_mm_cvtepu16_epi64(__A),
4689 (__v2di)_mm_setzero_si128());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004690}
4691
4692static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004693_mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004694{
Craig Topper11dda922016-10-22 21:24:48 +00004695 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4696 (__v4di)_mm256_cvtepu16_epi64(__A),
4697 (__v4di)__W);
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004698}
4699
4700static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper11dda922016-10-22 21:24:48 +00004701_mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004702{
Craig Topper11dda922016-10-22 21:24:48 +00004703 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
4704 (__v4di)_mm256_cvtepu16_epi64(__A),
4705 (__v4di)_mm256_setzero_si256());
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004706}
4707
4708
Michael Zuckerman38a27272016-02-22 09:05:41 +00004709#define _mm_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004710 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4711 (__v4si)_mm_setzero_si128(), \
4712 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004713
4714#define _mm_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004715 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4716 (__v4si)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004717
4718#define _mm_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004719 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4720 (__v4si)_mm_setzero_si128(), \
4721 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004722
4723#define _mm256_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004724 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4725 (__v8si)_mm256_setzero_si256(), \
4726 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004727
4728#define _mm256_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004729 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4730 (__v8si)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004731
4732#define _mm256_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004733 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4734 (__v8si)_mm256_setzero_si256(), \
4735 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004736
Michael Zuckerman477e0a32016-02-22 09:42:57 +00004737#define _mm_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004738 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4739 (__v2di)_mm_setzero_di(), \
4740 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004741
4742#define _mm_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004743 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4744 (__v2di)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004745
4746#define _mm_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004747 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4748 (__v2di)_mm_setzero_di(), \
4749 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004750
4751#define _mm256_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004752 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4753 (__v4di)_mm256_setzero_si256(), \
4754 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004755
4756#define _mm256_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004757 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4758 (__v4di)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004759
4760#define _mm256_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004761 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4762 (__v4di)_mm256_setzero_si256(), \
4763 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004764
Michael Zuckerman0231f162016-02-23 13:41:13 +00004765static __inline__ __m128i __DEFAULT_FN_ATTRS
4766_mm_rolv_epi32 (__m128i __A, __m128i __B)
4767{
4768 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4769 (__v4si) __B,
4770 (__v4si)
4771 _mm_setzero_si128 (),
4772 (__mmask8) -1);
4773}
4774
4775static __inline__ __m128i __DEFAULT_FN_ATTRS
4776_mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
4777 __m128i __B)
4778{
4779 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4780 (__v4si) __B,
4781 (__v4si) __W,
4782 (__mmask8) __U);
4783}
4784
4785static __inline__ __m128i __DEFAULT_FN_ATTRS
4786_mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
4787{
4788 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4789 (__v4si) __B,
4790 (__v4si)
4791 _mm_setzero_si128 (),
4792 (__mmask8) __U);
4793}
4794
4795static __inline__ __m256i __DEFAULT_FN_ATTRS
4796_mm256_rolv_epi32 (__m256i __A, __m256i __B)
4797{
4798 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4799 (__v8si) __B,
4800 (__v8si)
4801 _mm256_setzero_si256 (),
4802 (__mmask8) -1);
4803}
4804
4805static __inline__ __m256i __DEFAULT_FN_ATTRS
4806_mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
4807 __m256i __B)
4808{
4809 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4810 (__v8si) __B,
4811 (__v8si) __W,
4812 (__mmask8) __U);
4813}
4814
4815static __inline__ __m256i __DEFAULT_FN_ATTRS
4816_mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
4817{
4818 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4819 (__v8si) __B,
4820 (__v8si)
4821 _mm256_setzero_si256 (),
4822 (__mmask8) __U);
4823}
4824
4825static __inline__ __m128i __DEFAULT_FN_ATTRS
4826_mm_rolv_epi64 (__m128i __A, __m128i __B)
4827{
4828 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
4829 (__v2di) __B,
4830 (__v2di)
4831 _mm_setzero_di (),
4832 (__mmask8) -1);
4833}
4834
4835static __inline__ __m128i __DEFAULT_FN_ATTRS
4836_mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
4837 __m128i __B)
4838{
4839 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
4840 (__v2di) __B,
4841 (__v2di) __W,
4842 (__mmask8) __U);
4843}
4844
4845static __inline__ __m128i __DEFAULT_FN_ATTRS
4846_mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
4847{
4848 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
4849 (__v2di) __B,
4850 (__v2di)
4851 _mm_setzero_di (),
4852 (__mmask8) __U);
4853}
4854
4855static __inline__ __m256i __DEFAULT_FN_ATTRS
4856_mm256_rolv_epi64 (__m256i __A, __m256i __B)
4857{
4858 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
4859 (__v4di) __B,
4860 (__v4di)
4861 _mm256_setzero_si256 (),
4862 (__mmask8) -1);
4863}
4864
4865static __inline__ __m256i __DEFAULT_FN_ATTRS
4866_mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
4867 __m256i __B)
4868{
4869 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
4870 (__v4di) __B,
4871 (__v4di) __W,
4872 (__mmask8) __U);
4873}
4874
4875static __inline__ __m256i __DEFAULT_FN_ATTRS
4876_mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
4877{
4878 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
4879 (__v4di) __B,
4880 (__v4di)
4881 _mm256_setzero_si256 (),
4882 (__mmask8) __U);
4883}
4884
Craig Topperd2661882016-05-17 04:41:48 +00004885#define _mm_ror_epi32(A, B) __extension__ ({ \
4886 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
4887 (__v4si)_mm_setzero_si128(), \
4888 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004889
Craig Topperd2661882016-05-17 04:41:48 +00004890#define _mm_mask_ror_epi32(W, U, A, B) __extension__ ({ \
4891 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
4892 (__v4si)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004893
Craig Topperd2661882016-05-17 04:41:48 +00004894#define _mm_maskz_ror_epi32(U, A, B) __extension__ ({ \
4895 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
4896 (__v4si)_mm_setzero_si128(), \
4897 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004898
Craig Topperd2661882016-05-17 04:41:48 +00004899#define _mm256_ror_epi32(A, B) __extension__ ({ \
4900 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
4901 (__v8si)_mm256_setzero_si256(), \
4902 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004903
Craig Topperd2661882016-05-17 04:41:48 +00004904#define _mm256_mask_ror_epi32(W, U, A, B) __extension__ ({ \
4905 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
4906 (__v8si)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004907
Craig Topperd2661882016-05-17 04:41:48 +00004908#define _mm256_maskz_ror_epi32(U, A, B) __extension__ ({ \
4909 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
4910 (__v8si)_mm256_setzero_si256(), \
4911 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004912
Craig Topperd2661882016-05-17 04:41:48 +00004913#define _mm_ror_epi64(A, B) __extension__ ({ \
4914 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
4915 (__v2di)_mm_setzero_di(), \
4916 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004917
Craig Topperd2661882016-05-17 04:41:48 +00004918#define _mm_mask_ror_epi64(W, U, A, B) __extension__ ({ \
4919 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
4920 (__v2di)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004921
Craig Topperd2661882016-05-17 04:41:48 +00004922#define _mm_maskz_ror_epi64(U, A, B) __extension__ ({ \
4923 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
4924 (__v2di)_mm_setzero_di(), \
4925 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004926
Craig Topperd2661882016-05-17 04:41:48 +00004927#define _mm256_ror_epi64(A, B) __extension__ ({ \
4928 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
4929 (__v4di)_mm256_setzero_si256(), \
4930 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004931
Craig Topperd2661882016-05-17 04:41:48 +00004932#define _mm256_mask_ror_epi64(W, U, A, B) __extension__ ({ \
4933 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
4934 (__v4di)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004935
Craig Topperd2661882016-05-17 04:41:48 +00004936#define _mm256_maskz_ror_epi64(U, A, B) __extension__ ({ \
4937 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
4938 (__v4di)_mm256_setzero_si256(), \
4939 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00004940
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004941static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00004942_mm_mask_sll_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004943{
Craig Topper66b2fd12016-10-31 04:30:51 +00004944 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4945 (__v4si)_mm_sll_epi32(__A, __B),
4946 (__v4si)__W);
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004947}
4948
4949static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00004950_mm_maskz_sll_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004951{
Craig Topper66b2fd12016-10-31 04:30:51 +00004952 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4953 (__v4si)_mm_sll_epi32(__A, __B),
4954 (__v4si)_mm_setzero_si128());
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004955}
4956
4957static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00004958_mm256_mask_sll_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004959{
Craig Topper66b2fd12016-10-31 04:30:51 +00004960 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4961 (__v8si)_mm256_sll_epi32(__A, __B),
4962 (__v8si)__W);
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004963}
4964
4965static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00004966_mm256_maskz_sll_epi32(__mmask8 __U, __m256i __A, __m128i __B)
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004967{
Craig Topper66b2fd12016-10-31 04:30:51 +00004968 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4969 (__v8si)_mm256_sll_epi32(__A, __B),
4970 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004971}
4972
4973static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00004974_mm_mask_slli_epi32(__m128i __W, __mmask8 __U, __m128i __A, int __B)
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004975{
Craig Topper66b2fd12016-10-31 04:30:51 +00004976 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4977 (__v4si)_mm_slli_epi32(__A, __B),
4978 (__v4si)__W);
4979}
4980
4981static __inline__ __m128i __DEFAULT_FN_ATTRS
4982_mm_maskz_slli_epi32(__mmask8 __U, __m128i __A, int __B)
4983{
4984 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
4985 (__v4si)_mm_slli_epi32(__A, __B),
4986 (__v4si)_mm_setzero_si128());
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004987}
4988
4989static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00004990_mm256_mask_slli_epi32(__m256i __W, __mmask8 __U, __m256i __A, int __B)
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004991{
Craig Topper66b2fd12016-10-31 04:30:51 +00004992 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
4993 (__v8si)_mm256_slli_epi32(__A, __B),
4994 (__v8si)__W);
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004995}
4996
4997static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00004998_mm256_maskz_slli_epi32(__mmask8 __U, __m256i __A, int __B)
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00004999{
Craig Topper66b2fd12016-10-31 04:30:51 +00005000 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
5001 (__v8si)_mm256_slli_epi32(__A, __B),
5002 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005003}
5004
Craig Topper66b2fd12016-10-31 04:30:51 +00005005static __inline__ __m128i __DEFAULT_FN_ATTRS
5006_mm_mask_sll_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
5007{
5008 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5009 (__v2di)_mm_sll_epi64(__A, __B),
5010 (__v2di)__W);
5011}
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005012
Craig Topper66b2fd12016-10-31 04:30:51 +00005013static __inline__ __m128i __DEFAULT_FN_ATTRS
5014_mm_maskz_sll_epi64(__mmask8 __U, __m128i __A, __m128i __B)
5015{
5016 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5017 (__v2di)_mm_sll_epi64(__A, __B),
5018 (__v2di)_mm_setzero_di());
5019}
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005020
Craig Topper66b2fd12016-10-31 04:30:51 +00005021static __inline__ __m256i __DEFAULT_FN_ATTRS
5022_mm256_mask_sll_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
5023{
5024 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5025 (__v4di)_mm256_sll_epi64(__A, __B),
5026 (__v4di)__W);
5027}
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005028
Craig Topper66b2fd12016-10-31 04:30:51 +00005029static __inline__ __m256i __DEFAULT_FN_ATTRS
5030_mm256_maskz_sll_epi64(__mmask8 __U, __m256i __A, __m128i __B)
5031{
5032 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5033 (__v4di)_mm256_sll_epi64(__A, __B),
5034 (__v4di)_mm256_setzero_si256());
5035}
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005036
Craig Topper66b2fd12016-10-31 04:30:51 +00005037static __inline__ __m128i __DEFAULT_FN_ATTRS
5038_mm_mask_slli_epi64(__m128i __W, __mmask8 __U, __m128i __A, int __B)
5039{
5040 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5041 (__v2di)_mm_slli_epi64(__A, __B),
5042 (__v2di)__W);
5043}
5044
5045static __inline__ __m128i __DEFAULT_FN_ATTRS
5046_mm_maskz_slli_epi64(__mmask8 __U, __m128i __A, int __B)
5047{
5048 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5049 (__v2di)_mm_slli_epi64(__A, __B),
5050 (__v2di)_mm_setzero_di());
5051}
5052
5053static __inline__ __m256i __DEFAULT_FN_ATTRS
5054_mm256_mask_slli_epi64(__m256i __W, __mmask8 __U, __m256i __A, int __B)
5055{
5056 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5057 (__v4di)_mm256_slli_epi64(__A, __B),
5058 (__v4di)__W);
5059}
5060
5061static __inline__ __m256i __DEFAULT_FN_ATTRS
5062_mm256_maskz_slli_epi64(__mmask8 __U, __m256i __A, int __B)
5063{
5064 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5065 (__v4di)_mm256_slli_epi64(__A, __B),
5066 (__v4di)_mm256_setzero_si256());
5067}
Michael Zuckerman0231f162016-02-23 13:41:13 +00005068
Michael Zuckermane98cc742016-02-23 15:59:47 +00005069static __inline__ __m128i __DEFAULT_FN_ATTRS
5070_mm_rorv_epi32 (__m128i __A, __m128i __B)
5071{
5072 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5073 (__v4si) __B,
5074 (__v4si)
5075 _mm_setzero_si128 (),
5076 (__mmask8) -1);
5077}
5078
5079static __inline__ __m128i __DEFAULT_FN_ATTRS
5080_mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5081 __m128i __B)
5082{
5083 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5084 (__v4si) __B,
5085 (__v4si) __W,
5086 (__mmask8) __U);
5087}
5088
5089static __inline__ __m128i __DEFAULT_FN_ATTRS
5090_mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5091{
5092 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5093 (__v4si) __B,
5094 (__v4si)
5095 _mm_setzero_si128 (),
5096 (__mmask8) __U);
5097}
5098
5099static __inline__ __m256i __DEFAULT_FN_ATTRS
5100_mm256_rorv_epi32 (__m256i __A, __m256i __B)
5101{
5102 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5103 (__v8si) __B,
5104 (__v8si)
5105 _mm256_setzero_si256 (),
5106 (__mmask8) -1);
5107}
5108
5109static __inline__ __m256i __DEFAULT_FN_ATTRS
5110_mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5111 __m256i __B)
5112{
5113 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5114 (__v8si) __B,
5115 (__v8si) __W,
5116 (__mmask8) __U);
5117}
5118
5119static __inline__ __m256i __DEFAULT_FN_ATTRS
5120_mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
5121{
5122 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5123 (__v8si) __B,
5124 (__v8si)
5125 _mm256_setzero_si256 (),
5126 (__mmask8) __U);
5127}
5128
5129static __inline__ __m128i __DEFAULT_FN_ATTRS
5130_mm_rorv_epi64 (__m128i __A, __m128i __B)
5131{
5132 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5133 (__v2di) __B,
5134 (__v2di)
5135 _mm_setzero_di (),
5136 (__mmask8) -1);
5137}
5138
5139static __inline__ __m128i __DEFAULT_FN_ATTRS
5140_mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5141 __m128i __B)
5142{
5143 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5144 (__v2di) __B,
5145 (__v2di) __W,
5146 (__mmask8) __U);
5147}
5148
5149static __inline__ __m128i __DEFAULT_FN_ATTRS
5150_mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5151{
5152 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5153 (__v2di) __B,
5154 (__v2di)
5155 _mm_setzero_di (),
5156 (__mmask8) __U);
5157}
5158
5159static __inline__ __m256i __DEFAULT_FN_ATTRS
5160_mm256_rorv_epi64 (__m256i __A, __m256i __B)
5161{
5162 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5163 (__v4di) __B,
5164 (__v4di)
5165 _mm256_setzero_si256 (),
5166 (__mmask8) -1);
5167}
5168
5169static __inline__ __m256i __DEFAULT_FN_ATTRS
5170_mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5171 __m256i __B)
5172{
5173 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5174 (__v4di) __B,
5175 (__v4di) __W,
5176 (__mmask8) __U);
5177}
5178
5179static __inline__ __m256i __DEFAULT_FN_ATTRS
5180_mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
5181{
5182 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5183 (__v4di) __B,
5184 (__v4di)
5185 _mm256_setzero_si256 (),
5186 (__mmask8) __U);
5187}
5188
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005189static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005190_mm_mask_sllv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005191{
Craig Topper66b2fd12016-10-31 04:30:51 +00005192 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5193 (__v2di)_mm_sllv_epi64(__X, __Y),
5194 (__v2di)__W);
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005195}
5196
5197static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005198_mm_maskz_sllv_epi64(__mmask8 __U, __m128i __X, __m128i __Y)
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005199{
Craig Topper66b2fd12016-10-31 04:30:51 +00005200 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5201 (__v2di)_mm_sllv_epi64(__X, __Y),
5202 (__v2di)_mm_setzero_di());
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005203}
5204
5205static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005206_mm256_mask_sllv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005207{
Craig Topper66b2fd12016-10-31 04:30:51 +00005208 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5209 (__v4di)_mm256_sllv_epi64(__X, __Y),
5210 (__v4di)__W);
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005211}
5212
5213static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005214_mm256_maskz_sllv_epi64(__mmask8 __U, __m256i __X, __m256i __Y)
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005215{
Craig Topper66b2fd12016-10-31 04:30:51 +00005216 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5217 (__v4di)_mm256_sllv_epi64(__X, __Y),
5218 (__v4di)_mm256_setzero_si256());
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005219}
5220
5221static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005222_mm_mask_sllv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005223{
Craig Topper66b2fd12016-10-31 04:30:51 +00005224 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
5225 (__v4si)_mm_sllv_epi32(__X, __Y),
5226 (__v4si)__W);
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005227}
5228
5229static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005230_mm_maskz_sllv_epi32(__mmask8 __U, __m128i __X, __m128i __Y)
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005231{
Craig Topper66b2fd12016-10-31 04:30:51 +00005232 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
5233 (__v4si)_mm_sllv_epi32(__X, __Y),
5234 (__v4si)_mm_setzero_si128());
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005235}
5236
5237static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005238_mm256_mask_sllv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005239{
Craig Topper66b2fd12016-10-31 04:30:51 +00005240 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
5241 (__v8si)_mm256_sllv_epi32(__X, __Y),
5242 (__v8si)__W);
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005243}
5244
5245static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005246_mm256_maskz_sllv_epi32(__mmask8 __U, __m256i __X, __m256i __Y)
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005247{
Craig Topper66b2fd12016-10-31 04:30:51 +00005248 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
5249 (__v8si)_mm256_sllv_epi32(__X, __Y),
5250 (__v8si)_mm256_setzero_si256());
Michael Zuckerman0165e762016-03-01 13:03:45 +00005251}
5252
5253static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005254_mm_mask_srlv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
Michael Zuckerman0165e762016-03-01 13:03:45 +00005255{
Craig Topper66b2fd12016-10-31 04:30:51 +00005256 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5257 (__v2di)_mm_srlv_epi64(__X, __Y),
5258 (__v2di)__W);
Michael Zuckerman0165e762016-03-01 13:03:45 +00005259}
5260
5261static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005262_mm_maskz_srlv_epi64(__mmask8 __U, __m128i __X, __m128i __Y)
Michael Zuckerman0165e762016-03-01 13:03:45 +00005263{
Craig Topper66b2fd12016-10-31 04:30:51 +00005264 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5265 (__v2di)_mm_srlv_epi64(__X, __Y),
5266 (__v2di)_mm_setzero_di());
5267}
5268
5269static __inline__ __m256i __DEFAULT_FN_ATTRS
5270_mm256_mask_srlv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
5271{
5272 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5273 (__v4di)_mm256_srlv_epi64(__X, __Y),
5274 (__v4di)__W);
5275}
5276
5277static __inline__ __m256i __DEFAULT_FN_ATTRS
5278_mm256_maskz_srlv_epi64(__mmask8 __U, __m256i __X, __m256i __Y)
5279{
5280 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5281 (__v4di)_mm256_srlv_epi64(__X, __Y),
5282 (__v4di)_mm256_setzero_si256());
Michael Zuckerman0165e762016-03-01 13:03:45 +00005283}
5284
5285static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005286_mm_mask_srlv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
Michael Zuckerman0165e762016-03-01 13:03:45 +00005287{
Craig Topper66b2fd12016-10-31 04:30:51 +00005288 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
5289 (__v4si)_mm_srlv_epi32(__X, __Y),
5290 (__v4si)__W);
Michael Zuckermand176d742016-03-01 17:49:03 +00005291}
5292
5293static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005294_mm_maskz_srlv_epi32(__mmask8 __U, __m128i __X, __m128i __Y)
Michael Zuckermand176d742016-03-01 17:49:03 +00005295{
Craig Topper66b2fd12016-10-31 04:30:51 +00005296 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
5297 (__v4si)_mm_srlv_epi32(__X, __Y),
5298 (__v4si)_mm_setzero_si128());
Michael Zuckermand176d742016-03-01 17:49:03 +00005299}
5300
5301static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005302_mm256_mask_srlv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
Michael Zuckermand176d742016-03-01 17:49:03 +00005303{
Craig Topper66b2fd12016-10-31 04:30:51 +00005304 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
5305 (__v8si)_mm256_srlv_epi32(__X, __Y),
5306 (__v8si)__W);
Michael Zuckermand176d742016-03-01 17:49:03 +00005307}
5308
5309static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005310_mm256_maskz_srlv_epi32(__mmask8 __U, __m256i __X, __m256i __Y)
Michael Zuckermand176d742016-03-01 17:49:03 +00005311{
Craig Topper66b2fd12016-10-31 04:30:51 +00005312 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
5313 (__v8si)_mm256_srlv_epi32(__X, __Y),
5314 (__v8si)_mm256_setzero_si256());
Michael Zuckermand176d742016-03-01 17:49:03 +00005315}
5316
5317static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005318_mm_mask_srl_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckermand176d742016-03-01 17:49:03 +00005319{
Craig Topper66b2fd12016-10-31 04:30:51 +00005320 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
5321 (__v4si)_mm_srl_epi32(__A, __B),
5322 (__v4si)__W);
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005323}
5324
5325static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005326_mm_maskz_srl_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005327{
Craig Topper66b2fd12016-10-31 04:30:51 +00005328 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
5329 (__v4si)_mm_srl_epi32(__A, __B),
5330 (__v4si)_mm_setzero_si128());
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005331}
5332
5333static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005334_mm256_mask_srl_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005335{
Craig Topper66b2fd12016-10-31 04:30:51 +00005336 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
5337 (__v8si)_mm256_srl_epi32(__A, __B),
5338 (__v8si)__W);
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005339}
5340
5341static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00005342_mm256_maskz_srl_epi32(__mmask8 __U, __m256i __A, __m128i __B)
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005343{
Craig Topper66b2fd12016-10-31 04:30:51 +00005344 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
5345 (__v8si)_mm256_srl_epi32(__A, __B),
5346 (__v8si)_mm256_setzero_si256());
5347}
5348
5349static __inline__ __m128i __DEFAULT_FN_ATTRS
5350_mm_mask_srli_epi32(__m128i __W, __mmask8 __U, __m128i __A, int __B)
5351{
5352 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
5353 (__v4si)_mm_srli_epi32(__A, __B),
5354 (__v4si)__W);
5355}
5356
5357static __inline__ __m128i __DEFAULT_FN_ATTRS
5358_mm_maskz_srli_epi32(__mmask8 __U, __m128i __A, int __B)
5359{
5360 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
5361 (__v4si)_mm_srli_epi32(__A, __B),
5362 (__v4si)_mm_setzero_si128());
5363}
5364
5365static __inline__ __m256i __DEFAULT_FN_ATTRS
5366_mm256_mask_srli_epi32(__m256i __W, __mmask8 __U, __m256i __A, int __B)
5367{
5368 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
5369 (__v8si)_mm256_srli_epi32(__A, __B),
5370 (__v8si)__W);
5371}
5372
5373static __inline__ __m256i __DEFAULT_FN_ATTRS
5374_mm256_maskz_srli_epi32(__mmask8 __U, __m256i __A, int __B)
5375{
5376 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
5377 (__v8si)_mm256_srli_epi32(__A, __B),
5378 (__v8si)_mm256_setzero_si256());
5379}
5380
5381static __inline__ __m128i __DEFAULT_FN_ATTRS
5382_mm_mask_srl_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
5383{
5384 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5385 (__v2di)_mm_srl_epi64(__A, __B),
5386 (__v2di)__W);
5387}
5388
5389static __inline__ __m128i __DEFAULT_FN_ATTRS
5390_mm_maskz_srl_epi64(__mmask8 __U, __m128i __A, __m128i __B)
5391{
5392 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5393 (__v2di)_mm_srl_epi64(__A, __B),
5394 (__v2di)_mm_setzero_di());
5395}
5396
5397static __inline__ __m256i __DEFAULT_FN_ATTRS
5398_mm256_mask_srl_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
5399{
5400 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5401 (__v4di)_mm256_srl_epi64(__A, __B),
5402 (__v4di)__W);
5403}
5404
5405static __inline__ __m256i __DEFAULT_FN_ATTRS
5406_mm256_maskz_srl_epi64(__mmask8 __U, __m256i __A, __m128i __B)
5407{
5408 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5409 (__v4di)_mm256_srl_epi64(__A, __B),
5410 (__v4di)_mm256_setzero_si256());
5411}
5412
5413static __inline__ __m128i __DEFAULT_FN_ATTRS
5414_mm_mask_srli_epi64(__m128i __W, __mmask8 __U, __m128i __A, int __B)
5415{
5416 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5417 (__v2di)_mm_srli_epi64(__A, __B),
5418 (__v2di)__W);
5419}
5420
5421static __inline__ __m128i __DEFAULT_FN_ATTRS
5422_mm_maskz_srli_epi64(__mmask8 __U, __m128i __A, int __B)
5423{
5424 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5425 (__v2di)_mm_srli_epi64(__A, __B),
5426 (__v2di)_mm_setzero_di());
5427}
5428
5429static __inline__ __m256i __DEFAULT_FN_ATTRS
5430_mm256_mask_srli_epi64(__m256i __W, __mmask8 __U, __m256i __A, int __B)
5431{
5432 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5433 (__v4di)_mm256_srli_epi64(__A, __B),
5434 (__v4di)__W);
5435}
5436
5437static __inline__ __m256i __DEFAULT_FN_ATTRS
5438_mm256_maskz_srli_epi64(__mmask8 __U, __m256i __A, int __B)
5439{
5440 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5441 (__v4di)_mm256_srli_epi64(__A, __B),
5442 (__v4di)_mm256_setzero_si256());
5443}
5444
5445static __inline__ __m128i __DEFAULT_FN_ATTRS
5446_mm_mask_srav_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
5447{
5448 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
5449 (__v4si)_mm_srav_epi32(__X, __Y),
5450 (__v4si)__W);
5451}
5452
5453static __inline__ __m128i __DEFAULT_FN_ATTRS
5454_mm_maskz_srav_epi32(__mmask8 __U, __m128i __X, __m128i __Y)
5455{
5456 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
5457 (__v4si)_mm_srav_epi32(__X, __Y),
5458 (__v4si)_mm_setzero_si128());
5459}
5460
5461static __inline__ __m256i __DEFAULT_FN_ATTRS
5462_mm256_mask_srav_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
5463{
5464 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
5465 (__v8si)_mm256_srav_epi32(__X, __Y),
5466 (__v8si)__W);
5467}
5468
5469static __inline__ __m256i __DEFAULT_FN_ATTRS
5470_mm256_maskz_srav_epi32(__mmask8 __U, __m256i __X, __m256i __Y)
5471{
5472 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
5473 (__v8si)_mm256_srav_epi32(__X, __Y),
5474 (__v8si)_mm256_setzero_si256());
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005475}
5476
5477static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper5e0709d2016-11-13 07:26:34 +00005478_mm_srav_epi64(__m128i __X, __m128i __Y)
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005479{
Craig Topper5e0709d2016-11-13 07:26:34 +00005480 return (__m128i)__builtin_ia32_psravq128((__v2di)__X, (__v2di)__Y);
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005481}
5482
5483static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper5e0709d2016-11-13 07:26:34 +00005484_mm_mask_srav_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005485{
Craig Topper5e0709d2016-11-13 07:26:34 +00005486 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5487 (__v2di)_mm_srav_epi64(__X, __Y),
5488 (__v2di)__W);
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005489}
5490
5491static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper5e0709d2016-11-13 07:26:34 +00005492_mm_maskz_srav_epi64(__mmask8 __U, __m128i __X, __m128i __Y)
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005493{
Craig Topper5e0709d2016-11-13 07:26:34 +00005494 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
5495 (__v2di)_mm_srav_epi64(__X, __Y),
5496 (__v2di)_mm_setzero_di());
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005497}
5498
5499static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper5e0709d2016-11-13 07:26:34 +00005500_mm256_srav_epi64(__m256i __X, __m256i __Y)
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005501{
Craig Topper5e0709d2016-11-13 07:26:34 +00005502 return (__m256i)__builtin_ia32_psravq256((__v4di)__X, (__v4di) __Y);
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005503}
5504
5505static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper5e0709d2016-11-13 07:26:34 +00005506_mm256_mask_srav_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005507{
Craig Topper5e0709d2016-11-13 07:26:34 +00005508 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5509 (__v4di)_mm256_srav_epi64(__X, __Y),
5510 (__v4di)__W);
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005511}
5512
5513static __inline__ __m256i __DEFAULT_FN_ATTRS
5514_mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5515{
Craig Topper5e0709d2016-11-13 07:26:34 +00005516 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
5517 (__v4di)_mm256_srav_epi64(__X, __Y),
5518 (__v4di)_mm256_setzero_si256());
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005519}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005520
Michael Zuckermane6542002016-05-23 08:01:48 +00005521static __inline__ __m128i __DEFAULT_FN_ATTRS
5522_mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
5523{
Igor Bregeraadb8762016-06-08 13:59:20 +00005524 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5525 (__v4si) __A,
5526 (__v4si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005527}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005528
Michael Zuckermane6542002016-05-23 08:01:48 +00005529static __inline__ __m128i __DEFAULT_FN_ATTRS
5530_mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A)
5531{
Igor Bregeraadb8762016-06-08 13:59:20 +00005532 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5533 (__v4si) __A,
5534 (__v4si) _mm_setzero_si128 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005535}
5536
5537
5538static __inline__ __m256i __DEFAULT_FN_ATTRS
5539_mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
5540{
Igor Bregeraadb8762016-06-08 13:59:20 +00005541 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5542 (__v8si) __A,
5543 (__v8si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005544}
5545
5546static __inline__ __m256i __DEFAULT_FN_ATTRS
5547_mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A)
5548{
Igor Bregeraadb8762016-06-08 13:59:20 +00005549 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5550 (__v8si) __A,
5551 (__v8si) _mm256_setzero_si256 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005552}
5553
5554static __inline__ __m128i __DEFAULT_FN_ATTRS
5555_mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P)
5556{
5557 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5558 (__v4si) __W,
5559 (__mmask8)
5560 __U);
5561}
5562
5563static __inline__ __m128i __DEFAULT_FN_ATTRS
5564_mm_maskz_load_epi32 (__mmask8 __U, void const *__P)
5565{
5566 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5567 (__v4si)
5568 _mm_setzero_si128 (),
5569 (__mmask8)
5570 __U);
5571}
5572
5573static __inline__ __m256i __DEFAULT_FN_ATTRS
5574_mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P)
5575{
5576 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5577 (__v8si) __W,
5578 (__mmask8)
5579 __U);
5580}
5581
5582static __inline__ __m256i __DEFAULT_FN_ATTRS
5583_mm256_maskz_load_epi32 (__mmask8 __U, void const *__P)
5584{
5585 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5586 (__v8si)
5587 _mm256_setzero_si256 (),
5588 (__mmask8)
5589 __U);
5590}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005591
5592static __inline__ void __DEFAULT_FN_ATTRS
5593_mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
5594{
5595 __builtin_ia32_movdqa32store128_mask ((__v4si *) __P,
5596 (__v4si) __A,
5597 (__mmask8) __U);
5598}
5599
5600static __inline__ void __DEFAULT_FN_ATTRS
5601_mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A)
5602{
5603 __builtin_ia32_movdqa32store256_mask ((__v8si *) __P,
5604 (__v8si) __A,
5605 (__mmask8) __U);
5606}
5607
5608static __inline__ __m128i __DEFAULT_FN_ATTRS
5609_mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
5610{
Igor Bregeraadb8762016-06-08 13:59:20 +00005611 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5612 (__v2di) __A,
5613 (__v2di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005614}
5615
5616static __inline__ __m128i __DEFAULT_FN_ATTRS
5617_mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A)
5618{
Igor Bregeraadb8762016-06-08 13:59:20 +00005619 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5620 (__v2di) __A,
5621 (__v2di) _mm_setzero_di ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005622}
5623
5624static __inline__ __m256i __DEFAULT_FN_ATTRS
5625_mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
5626{
Igor Bregeraadb8762016-06-08 13:59:20 +00005627 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5628 (__v4di) __A,
5629 (__v4di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005630}
5631
5632static __inline__ __m256i __DEFAULT_FN_ATTRS
5633_mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A)
5634{
Igor Bregeraadb8762016-06-08 13:59:20 +00005635 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5636 (__v4di) __A,
5637 (__v4di) _mm256_setzero_si256 ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005638}
5639
5640static __inline__ __m128i __DEFAULT_FN_ATTRS
5641_mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P)
5642{
5643 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5644 (__v2di) __W,
5645 (__mmask8)
5646 __U);
5647}
5648
5649static __inline__ __m128i __DEFAULT_FN_ATTRS
5650_mm_maskz_load_epi64 (__mmask8 __U, void const *__P)
5651{
5652 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5653 (__v2di)
5654 _mm_setzero_di (),
5655 (__mmask8)
5656 __U);
5657}
5658
5659static __inline__ __m256i __DEFAULT_FN_ATTRS
5660_mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P)
5661{
5662 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5663 (__v4di) __W,
5664 (__mmask8)
5665 __U);
5666}
5667
5668static __inline__ __m256i __DEFAULT_FN_ATTRS
5669_mm256_maskz_load_epi64 (__mmask8 __U, void const *__P)
5670{
5671 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5672 (__v4di)
5673 _mm256_setzero_si256 (),
5674 (__mmask8)
5675 __U);
5676}
5677
5678static __inline__ void __DEFAULT_FN_ATTRS
5679_mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
5680{
5681 __builtin_ia32_movdqa64store128_mask ((__v2di *) __P,
5682 (__v2di) __A,
5683 (__mmask8) __U);
5684}
5685
5686static __inline__ void __DEFAULT_FN_ATTRS
5687_mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A)
5688{
5689 __builtin_ia32_movdqa64store256_mask ((__v4di *) __P,
5690 (__v4di) __A,
5691 (__mmask8) __U);
5692}
5693
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005694static __inline__ __m128d __DEFAULT_FN_ATTRS
5695_mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A)
5696{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005697 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5698 (__v2df)_mm_movedup_pd(__A),
5699 (__v2df)__W);
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005700}
5701
5702static __inline__ __m128d __DEFAULT_FN_ATTRS
5703_mm_maskz_movedup_pd (__mmask8 __U, __m128d __A)
5704{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005705 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5706 (__v2df)_mm_movedup_pd(__A),
5707 (__v2df)_mm_setzero_pd());
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005708}
5709
5710static __inline__ __m256d __DEFAULT_FN_ATTRS
5711_mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A)
5712{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005713 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5714 (__v4df)_mm256_movedup_pd(__A),
5715 (__v4df)__W);
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005716}
5717
5718static __inline__ __m256d __DEFAULT_FN_ATTRS
5719_mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A)
5720{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005721 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5722 (__v4df)_mm256_movedup_pd(__A),
5723 (__v4df)_mm256_setzero_pd());
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005724}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005725
Michael Zuckerman912be162016-03-07 08:29:10 +00005726
Craig Topperd2661882016-05-17 04:41:48 +00005727#define _mm_mask_set1_epi32(O, M, A) __extension__ ({ \
5728 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
5729 (__v4si)(__m128i)(O), \
5730 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005731
Craig Topperd2661882016-05-17 04:41:48 +00005732#define _mm_maskz_set1_epi32(M, A) __extension__ ({ \
5733 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
5734 (__v4si)_mm_setzero_si128(), \
5735 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005736
Craig Topperd2661882016-05-17 04:41:48 +00005737#define _mm256_mask_set1_epi32(O, M, A) __extension__ ({ \
5738 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
5739 (__v8si)(__m256i)(O), \
5740 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005741
Craig Topperd2661882016-05-17 04:41:48 +00005742#define _mm256_maskz_set1_epi32(M, A) __extension__ ({ \
5743 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
5744 (__v8si)_mm256_setzero_si256(), \
5745 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005746
Craig Topper45db56c2016-07-21 07:38:39 +00005747#ifdef __x86_64__
Michael Zuckerman912be162016-03-07 08:29:10 +00005748static __inline__ __m128i __DEFAULT_FN_ATTRS
5749_mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A)
5750{
5751 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, (__v2di) __O,
5752 __M);
5753}
5754
5755static __inline__ __m128i __DEFAULT_FN_ATTRS
5756_mm_maskz_set1_epi64 (__mmask8 __M, long long __A)
5757{
5758 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A,
5759 (__v2di)
5760 _mm_setzero_si128 (),
5761 __M);
5762}
5763
5764static __inline__ __m256i __DEFAULT_FN_ATTRS
5765_mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A)
5766{
5767 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, (__v4di) __O,
5768 __M);
5769}
5770
5771static __inline__ __m256i __DEFAULT_FN_ATTRS
5772_mm256_maskz_set1_epi64 (__mmask8 __M, long long __A)
5773{
5774 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A,
5775 (__v4di)
5776 _mm256_setzero_si256 (),
5777 __M);
5778}
Craig Topper45db56c2016-07-21 07:38:39 +00005779#endif
Michael Zuckermandef78752016-03-28 12:23:09 +00005780
Craig Topperd2661882016-05-17 04:41:48 +00005781#define _mm_fixupimm_pd(A, B, C, imm) __extension__ ({ \
5782 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
5783 (__v2df)(__m128d)(B), \
5784 (__v2di)(__m128i)(C), (int)(imm), \
5785 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005786
Craig Topperd2661882016-05-17 04:41:48 +00005787#define _mm_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
5788 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
5789 (__v2df)(__m128d)(B), \
5790 (__v2di)(__m128i)(C), (int)(imm), \
5791 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005792
Craig Topperd2661882016-05-17 04:41:48 +00005793#define _mm_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
5794 (__m128d)__builtin_ia32_fixupimmpd128_maskz((__v2df)(__m128d)(A), \
5795 (__v2df)(__m128d)(B), \
5796 (__v2di)(__m128i)(C), \
5797 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005798
Craig Topperd2661882016-05-17 04:41:48 +00005799#define _mm256_fixupimm_pd(A, B, C, imm) __extension__ ({ \
5800 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
5801 (__v4df)(__m256d)(B), \
5802 (__v4di)(__m256i)(C), (int)(imm), \
5803 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005804
Craig Topperd2661882016-05-17 04:41:48 +00005805#define _mm256_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
5806 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
5807 (__v4df)(__m256d)(B), \
5808 (__v4di)(__m256i)(C), (int)(imm), \
5809 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005810
Craig Topperd2661882016-05-17 04:41:48 +00005811#define _mm256_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
5812 (__m256d)__builtin_ia32_fixupimmpd256_maskz((__v4df)(__m256d)(A), \
5813 (__v4df)(__m256d)(B), \
5814 (__v4di)(__m256i)(C), \
5815 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005816
Craig Topperd2661882016-05-17 04:41:48 +00005817#define _mm_fixupimm_ps(A, B, C, imm) __extension__ ({ \
5818 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
5819 (__v4sf)(__m128)(B), \
5820 (__v4si)(__m128i)(C), (int)(imm), \
5821 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005822
Craig Topperd2661882016-05-17 04:41:48 +00005823#define _mm_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
5824 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
5825 (__v4sf)(__m128)(B), \
5826 (__v4si)(__m128i)(C), (int)(imm), \
5827 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005828
Craig Topperd2661882016-05-17 04:41:48 +00005829#define _mm_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
5830 (__m128)__builtin_ia32_fixupimmps128_maskz((__v4sf)(__m128)(A), \
5831 (__v4sf)(__m128)(B), \
5832 (__v4si)(__m128i)(C), (int)(imm), \
5833 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005834
Craig Topperd2661882016-05-17 04:41:48 +00005835#define _mm256_fixupimm_ps(A, B, C, imm) __extension__ ({ \
5836 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
5837 (__v8sf)(__m256)(B), \
5838 (__v8si)(__m256i)(C), (int)(imm), \
5839 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005840
Craig Topperd2661882016-05-17 04:41:48 +00005841#define _mm256_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
5842 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
5843 (__v8sf)(__m256)(B), \
5844 (__v8si)(__m256i)(C), (int)(imm), \
5845 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005846
Craig Topperd2661882016-05-17 04:41:48 +00005847#define _mm256_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
5848 (__m256)__builtin_ia32_fixupimmps256_maskz((__v8sf)(__m256)(A), \
5849 (__v8sf)(__m256)(B), \
5850 (__v8si)(__m256i)(C), (int)(imm), \
5851 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00005852
5853static __inline__ __m128d __DEFAULT_FN_ATTRS
5854_mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P)
5855{
5856 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
5857 (__v2df) __W,
5858 (__mmask8) __U);
5859}
5860
5861static __inline__ __m128d __DEFAULT_FN_ATTRS
5862_mm_maskz_load_pd (__mmask8 __U, void const *__P)
5863{
5864 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
5865 (__v2df)
5866 _mm_setzero_pd (),
5867 (__mmask8) __U);
5868}
5869
5870static __inline__ __m256d __DEFAULT_FN_ATTRS
5871_mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P)
5872{
5873 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
5874 (__v4df) __W,
5875 (__mmask8) __U);
5876}
5877
5878static __inline__ __m256d __DEFAULT_FN_ATTRS
5879_mm256_maskz_load_pd (__mmask8 __U, void const *__P)
5880{
5881 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
5882 (__v4df)
5883 _mm256_setzero_pd (),
5884 (__mmask8) __U);
5885}
5886
5887static __inline__ __m128 __DEFAULT_FN_ATTRS
5888_mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P)
5889{
5890 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
5891 (__v4sf) __W,
5892 (__mmask8) __U);
5893}
5894
5895static __inline__ __m128 __DEFAULT_FN_ATTRS
5896_mm_maskz_load_ps (__mmask8 __U, void const *__P)
5897{
5898 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
5899 (__v4sf)
5900 _mm_setzero_ps (),
5901 (__mmask8) __U);
5902}
5903
5904static __inline__ __m256 __DEFAULT_FN_ATTRS
5905_mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P)
5906{
5907 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
5908 (__v8sf) __W,
5909 (__mmask8) __U);
5910}
5911
5912static __inline__ __m256 __DEFAULT_FN_ATTRS
5913_mm256_maskz_load_ps (__mmask8 __U, void const *__P)
5914{
5915 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
5916 (__v8sf)
5917 _mm256_setzero_ps (),
5918 (__mmask8) __U);
5919}
5920
5921static __inline__ __m128i __DEFAULT_FN_ATTRS
5922_mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
5923{
5924 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
5925 (__v2di) __W,
5926 (__mmask8) __U);
5927}
5928
5929static __inline__ __m128i __DEFAULT_FN_ATTRS
5930_mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
5931{
5932 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
5933 (__v2di)
5934 _mm_setzero_si128 (),
5935 (__mmask8) __U);
5936}
5937
5938static __inline__ __m256i __DEFAULT_FN_ATTRS
5939_mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P)
5940{
5941 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
5942 (__v4di) __W,
5943 (__mmask8) __U);
5944}
5945
5946static __inline__ __m256i __DEFAULT_FN_ATTRS
5947_mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
5948{
5949 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
5950 (__v4di)
5951 _mm256_setzero_si256 (),
5952 (__mmask8) __U);
5953}
5954
5955static __inline__ __m128i __DEFAULT_FN_ATTRS
5956_mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
5957{
5958 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
5959 (__v4si) __W,
5960 (__mmask8) __U);
5961}
5962
5963static __inline__ __m128i __DEFAULT_FN_ATTRS
5964_mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
5965{
5966 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
5967 (__v4si)
5968 _mm_setzero_si128 (),
5969 (__mmask8) __U);
5970}
5971
5972static __inline__ __m256i __DEFAULT_FN_ATTRS
5973_mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P)
5974{
5975 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
5976 (__v8si) __W,
5977 (__mmask8) __U);
5978}
5979
5980static __inline__ __m256i __DEFAULT_FN_ATTRS
5981_mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
5982{
5983 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
5984 (__v8si)
5985 _mm256_setzero_si256 (),
5986 (__mmask8) __U);
5987}
5988
5989static __inline__ __m128d __DEFAULT_FN_ATTRS
5990_mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P)
5991{
5992 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
5993 (__v2df) __W,
5994 (__mmask8) __U);
5995}
5996
5997static __inline__ __m128d __DEFAULT_FN_ATTRS
5998_mm_maskz_loadu_pd (__mmask8 __U, void const *__P)
5999{
6000 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6001 (__v2df)
6002 _mm_setzero_pd (),
6003 (__mmask8) __U);
6004}
6005
6006static __inline__ __m256d __DEFAULT_FN_ATTRS
6007_mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P)
6008{
6009 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6010 (__v4df) __W,
6011 (__mmask8) __U);
6012}
6013
6014static __inline__ __m256d __DEFAULT_FN_ATTRS
6015_mm256_maskz_loadu_pd (__mmask8 __U, void const *__P)
6016{
6017 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6018 (__v4df)
6019 _mm256_setzero_pd (),
6020 (__mmask8) __U);
6021}
6022
6023static __inline__ __m128 __DEFAULT_FN_ATTRS
6024_mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P)
6025{
6026 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6027 (__v4sf) __W,
6028 (__mmask8) __U);
6029}
6030
6031static __inline__ __m128 __DEFAULT_FN_ATTRS
6032_mm_maskz_loadu_ps (__mmask8 __U, void const *__P)
6033{
6034 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6035 (__v4sf)
6036 _mm_setzero_ps (),
6037 (__mmask8) __U);
6038}
6039
6040static __inline__ __m256 __DEFAULT_FN_ATTRS
6041_mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P)
6042{
6043 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6044 (__v8sf) __W,
6045 (__mmask8) __U);
6046}
6047
6048static __inline__ __m256 __DEFAULT_FN_ATTRS
6049_mm256_maskz_loadu_ps (__mmask8 __U, void const *__P)
6050{
6051 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6052 (__v8sf)
6053 _mm256_setzero_ps (),
6054 (__mmask8) __U);
6055}
Michael Zuckermanfa7ccc52016-04-10 10:51:04 +00006056
6057static __inline__ void __DEFAULT_FN_ATTRS
6058_mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A)
6059{
6060 __builtin_ia32_storeapd128_mask ((__v2df *) __P,
6061 (__v2df) __A,
6062 (__mmask8) __U);
6063}
6064
6065static __inline__ void __DEFAULT_FN_ATTRS
6066_mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A)
6067{
6068 __builtin_ia32_storeapd256_mask ((__v4df *) __P,
6069 (__v4df) __A,
6070 (__mmask8) __U);
6071}
6072
6073static __inline__ void __DEFAULT_FN_ATTRS
6074_mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A)
6075{
6076 __builtin_ia32_storeaps128_mask ((__v4sf *) __P,
6077 (__v4sf) __A,
6078 (__mmask8) __U);
6079}
6080
6081static __inline__ void __DEFAULT_FN_ATTRS
6082_mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
6083{
6084 __builtin_ia32_storeaps256_mask ((__v8sf *) __P,
6085 (__v8sf) __A,
6086 (__mmask8) __U);
6087}
6088
6089static __inline__ void __DEFAULT_FN_ATTRS
6090_mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
6091{
6092 __builtin_ia32_storedqudi128_mask ((__v2di *) __P,
6093 (__v2di) __A,
6094 (__mmask8) __U);
6095}
6096
6097static __inline__ void __DEFAULT_FN_ATTRS
6098_mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
6099{
6100 __builtin_ia32_storedqudi256_mask ((__v4di *) __P,
6101 (__v4di) __A,
6102 (__mmask8) __U);
6103}
6104
6105static __inline__ void __DEFAULT_FN_ATTRS
6106_mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
6107{
6108 __builtin_ia32_storedqusi128_mask ((__v4si *) __P,
6109 (__v4si) __A,
6110 (__mmask8) __U);
6111}
6112
6113static __inline__ void __DEFAULT_FN_ATTRS
6114_mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
6115{
6116 __builtin_ia32_storedqusi256_mask ((__v8si *) __P,
6117 (__v8si) __A,
6118 (__mmask8) __U);
6119}
6120
6121static __inline__ void __DEFAULT_FN_ATTRS
6122_mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A)
6123{
6124 __builtin_ia32_storeupd128_mask ((__v2df *) __P,
6125 (__v2df) __A,
6126 (__mmask8) __U);
6127}
6128
6129static __inline__ void __DEFAULT_FN_ATTRS
6130_mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A)
6131{
6132 __builtin_ia32_storeupd256_mask ((__v4df *) __P,
6133 (__v4df) __A,
6134 (__mmask8) __U);
6135}
6136
6137static __inline__ void __DEFAULT_FN_ATTRS
6138_mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A)
6139{
6140 __builtin_ia32_storeups128_mask ((__v4sf *) __P,
6141 (__v4sf) __A,
6142 (__mmask8) __U);
6143}
6144
6145static __inline__ void __DEFAULT_FN_ATTRS
6146_mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A)
6147{
6148 __builtin_ia32_storeups256_mask ((__v8sf *) __P,
6149 (__v8sf) __A,
6150 (__mmask8) __U);
6151}
6152
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006153
6154static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006155_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006156{
Craig Topper79f53ca2016-06-23 06:36:42 +00006157 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6158 (__v2df)_mm_unpackhi_pd(__A, __B),
6159 (__v2df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006160}
6161
6162static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006163_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006164{
Craig Topper79f53ca2016-06-23 06:36:42 +00006165 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6166 (__v2df)_mm_unpackhi_pd(__A, __B),
6167 (__v2df)_mm_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006168}
6169
6170static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006171_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006172{
Craig Topper79f53ca2016-06-23 06:36:42 +00006173 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6174 (__v4df)_mm256_unpackhi_pd(__A, __B),
6175 (__v4df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006176}
6177
6178static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006179_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006180{
Craig Topper79f53ca2016-06-23 06:36:42 +00006181 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6182 (__v4df)_mm256_unpackhi_pd(__A, __B),
6183 (__v4df)_mm256_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006184}
6185
6186static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006187_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006188{
Craig Topper79f53ca2016-06-23 06:36:42 +00006189 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6190 (__v4sf)_mm_unpackhi_ps(__A, __B),
6191 (__v4sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006192}
6193
6194static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006195_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006196{
Craig Topper79f53ca2016-06-23 06:36:42 +00006197 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6198 (__v4sf)_mm_unpackhi_ps(__A, __B),
6199 (__v4sf)_mm_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006200}
6201
6202static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006203_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006204{
Craig Topper79f53ca2016-06-23 06:36:42 +00006205 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6206 (__v8sf)_mm256_unpackhi_ps(__A, __B),
6207 (__v8sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006208}
6209
6210static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006211_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006212{
Craig Topper79f53ca2016-06-23 06:36:42 +00006213 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6214 (__v8sf)_mm256_unpackhi_ps(__A, __B),
6215 (__v8sf)_mm256_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006216}
6217
6218static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006219_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006220{
Craig Topper79f53ca2016-06-23 06:36:42 +00006221 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6222 (__v2df)_mm_unpacklo_pd(__A, __B),
6223 (__v2df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006224}
6225
6226static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006227_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006228{
Craig Topper79f53ca2016-06-23 06:36:42 +00006229 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6230 (__v2df)_mm_unpacklo_pd(__A, __B),
6231 (__v2df)_mm_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006232}
6233
6234static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006235_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006236{
Craig Topper79f53ca2016-06-23 06:36:42 +00006237 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6238 (__v4df)_mm256_unpacklo_pd(__A, __B),
6239 (__v4df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006240}
6241
6242static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006243_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006244{
Craig Topper79f53ca2016-06-23 06:36:42 +00006245 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6246 (__v4df)_mm256_unpacklo_pd(__A, __B),
6247 (__v4df)_mm256_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006248}
6249
6250static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006251_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006252{
Craig Topper79f53ca2016-06-23 06:36:42 +00006253 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6254 (__v4sf)_mm_unpacklo_ps(__A, __B),
6255 (__v4sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006256}
6257
6258static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006259_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006260{
Craig Topper79f53ca2016-06-23 06:36:42 +00006261 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6262 (__v4sf)_mm_unpacklo_ps(__A, __B),
6263 (__v4sf)_mm_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006264}
6265
6266static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006267_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006268{
Craig Topper79f53ca2016-06-23 06:36:42 +00006269 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6270 (__v8sf)_mm256_unpacklo_ps(__A, __B),
6271 (__v8sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006272}
6273
6274static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006275_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006276{
Craig Topper79f53ca2016-06-23 06:36:42 +00006277 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6278 (__v8sf)_mm256_unpacklo_ps(__A, __B),
6279 (__v8sf)_mm256_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006280}
6281
6282static __inline__ __m128d __DEFAULT_FN_ATTRS
6283_mm_rcp14_pd (__m128d __A)
6284{
6285 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6286 (__v2df)
6287 _mm_setzero_pd (),
6288 (__mmask8) -1);
6289}
6290
6291static __inline__ __m128d __DEFAULT_FN_ATTRS
6292_mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A)
6293{
6294 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6295 (__v2df) __W,
6296 (__mmask8) __U);
6297}
6298
6299static __inline__ __m128d __DEFAULT_FN_ATTRS
6300_mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A)
6301{
6302 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6303 (__v2df)
6304 _mm_setzero_pd (),
6305 (__mmask8) __U);
6306}
6307
6308static __inline__ __m256d __DEFAULT_FN_ATTRS
6309_mm256_rcp14_pd (__m256d __A)
6310{
6311 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6312 (__v4df)
6313 _mm256_setzero_pd (),
6314 (__mmask8) -1);
6315}
6316
6317static __inline__ __m256d __DEFAULT_FN_ATTRS
6318_mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A)
6319{
6320 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6321 (__v4df) __W,
6322 (__mmask8) __U);
6323}
6324
6325static __inline__ __m256d __DEFAULT_FN_ATTRS
6326_mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A)
6327{
6328 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6329 (__v4df)
6330 _mm256_setzero_pd (),
6331 (__mmask8) __U);
6332}
6333
6334static __inline__ __m128 __DEFAULT_FN_ATTRS
6335_mm_rcp14_ps (__m128 __A)
6336{
6337 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6338 (__v4sf)
6339 _mm_setzero_ps (),
6340 (__mmask8) -1);
6341}
6342
6343static __inline__ __m128 __DEFAULT_FN_ATTRS
6344_mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A)
6345{
6346 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6347 (__v4sf) __W,
6348 (__mmask8) __U);
6349}
6350
6351static __inline__ __m128 __DEFAULT_FN_ATTRS
6352_mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A)
6353{
6354 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6355 (__v4sf)
6356 _mm_setzero_ps (),
6357 (__mmask8) __U);
6358}
6359
6360static __inline__ __m256 __DEFAULT_FN_ATTRS
6361_mm256_rcp14_ps (__m256 __A)
6362{
6363 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6364 (__v8sf)
6365 _mm256_setzero_ps (),
6366 (__mmask8) -1);
6367}
6368
6369static __inline__ __m256 __DEFAULT_FN_ATTRS
6370_mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A)
6371{
6372 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6373 (__v8sf) __W,
6374 (__mmask8) __U);
6375}
6376
6377static __inline__ __m256 __DEFAULT_FN_ATTRS
6378_mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A)
6379{
6380 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6381 (__v8sf)
6382 _mm256_setzero_ps (),
6383 (__mmask8) __U);
6384}
6385
Craig Topperd2661882016-05-17 04:41:48 +00006386#define _mm_mask_permute_pd(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006387 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6388 (__v2df)_mm_permute_pd((X), (C)), \
6389 (__v2df)(__m128d)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006390
Craig Topperd2661882016-05-17 04:41:48 +00006391#define _mm_maskz_permute_pd(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006392 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6393 (__v2df)_mm_permute_pd((X), (C)), \
6394 (__v2df)_mm_setzero_pd()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006395
Craig Topperd2661882016-05-17 04:41:48 +00006396#define _mm256_mask_permute_pd(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006397 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6398 (__v4df)_mm256_permute_pd((X), (C)), \
6399 (__v4df)(__m256d)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006400
Craig Topperd2661882016-05-17 04:41:48 +00006401#define _mm256_maskz_permute_pd(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006402 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6403 (__v4df)_mm256_permute_pd((X), (C)), \
6404 (__v4df)_mm256_setzero_pd()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006405
Craig Topperd2661882016-05-17 04:41:48 +00006406#define _mm_mask_permute_ps(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006407 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6408 (__v4sf)_mm_permute_ps((X), (C)), \
6409 (__v4sf)(__m128)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006410
Craig Topperd2661882016-05-17 04:41:48 +00006411#define _mm_maskz_permute_ps(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006412 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6413 (__v4sf)_mm_permute_ps((X), (C)), \
6414 (__v4sf)_mm_setzero_ps()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006415
Craig Topperd2661882016-05-17 04:41:48 +00006416#define _mm256_mask_permute_ps(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006417 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6418 (__v8sf)_mm256_permute_ps((X), (C)), \
6419 (__v8sf)(__m256)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006420
Craig Topperd2661882016-05-17 04:41:48 +00006421#define _mm256_maskz_permute_ps(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006422 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6423 (__v8sf)_mm256_permute_ps((X), (C)), \
6424 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006425
6426static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper5391c982016-12-10 20:27:39 +00006427_mm_mask_permutevar_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128i __C)
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006428{
Craig Topper5391c982016-12-10 20:27:39 +00006429 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6430 (__v2df)_mm_permutevar_pd(__A, __C),
6431 (__v2df)__W);
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006432}
6433
6434static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper5391c982016-12-10 20:27:39 +00006435_mm_maskz_permutevar_pd(__mmask8 __U, __m128d __A, __m128i __C)
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006436{
Craig Topper5391c982016-12-10 20:27:39 +00006437 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6438 (__v2df)_mm_permutevar_pd(__A, __C),
6439 (__v2df)_mm_setzero_pd());
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006440}
6441
6442static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper5391c982016-12-10 20:27:39 +00006443_mm256_mask_permutevar_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256i __C)
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006444{
Craig Topper5391c982016-12-10 20:27:39 +00006445 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6446 (__v4df)_mm256_permutevar_pd(__A, __C),
6447 (__v4df)__W);
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006448}
6449
6450static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper5391c982016-12-10 20:27:39 +00006451_mm256_maskz_permutevar_pd(__mmask8 __U, __m256d __A, __m256i __C)
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006452{
Craig Topper5391c982016-12-10 20:27:39 +00006453 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6454 (__v4df)_mm256_permutevar_pd(__A, __C),
6455 (__v4df)_mm256_setzero_pd());
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006456}
6457
6458static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper5391c982016-12-10 20:27:39 +00006459_mm_mask_permutevar_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128i __C)
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006460{
Craig Topper5391c982016-12-10 20:27:39 +00006461 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6462 (__v4sf)_mm_permutevar_ps(__A, __C),
6463 (__v4sf)__W);
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006464}
6465
6466static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper5391c982016-12-10 20:27:39 +00006467_mm_maskz_permutevar_ps(__mmask8 __U, __m128 __A, __m128i __C)
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006468{
Craig Topper5391c982016-12-10 20:27:39 +00006469 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6470 (__v4sf)_mm_permutevar_ps(__A, __C),
6471 (__v4sf)_mm_setzero_ps());
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006472}
6473
6474static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper5391c982016-12-10 20:27:39 +00006475_mm256_mask_permutevar_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256i __C)
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006476{
Craig Topper5391c982016-12-10 20:27:39 +00006477 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6478 (__v8sf)_mm256_permutevar_ps(__A, __C),
6479 (__v8sf)__W);
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006480}
6481
6482static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper5391c982016-12-10 20:27:39 +00006483_mm256_maskz_permutevar_ps(__mmask8 __U, __m256 __A, __m256i __C)
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006484{
Craig Topper5391c982016-12-10 20:27:39 +00006485 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6486 (__v8sf)_mm256_permutevar_ps(__A, __C),
6487 (__v8sf)_mm256_setzero_ps());
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006488}
6489
Michael Zuckerman07525092016-04-11 10:22:07 +00006490static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6491_mm_test_epi32_mask (__m128i __A, __m128i __B)
6492{
6493 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6494 (__v4si) __B,
6495 (__mmask8) -1);
6496}
6497
6498static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6499_mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6500{
6501 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6502 (__v4si) __B, __U);
6503}
6504
6505static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6506_mm256_test_epi32_mask (__m256i __A, __m256i __B)
6507{
6508 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6509 (__v8si) __B,
6510 (__mmask8) -1);
6511}
6512
6513static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6514_mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6515{
6516 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6517 (__v8si) __B, __U);
6518}
6519
6520static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6521_mm_test_epi64_mask (__m128i __A, __m128i __B)
6522{
6523 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6524 (__v2di) __B,
6525 (__mmask8) -1);
6526}
6527
6528static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6529_mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6530{
6531 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6532 (__v2di) __B, __U);
6533}
6534
6535static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6536_mm256_test_epi64_mask (__m256i __A, __m256i __B)
6537{
6538 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
6539 (__v4di) __B,
6540 (__mmask8) -1);
6541}
6542
6543static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6544_mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6545{
6546 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
6547 (__v4di) __B, __U);
6548}
6549
6550static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6551_mm_testn_epi32_mask (__m128i __A, __m128i __B)
6552{
6553 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
6554 (__v4si) __B,
6555 (__mmask8) -1);
6556}
6557
6558static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6559_mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6560{
6561 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
6562 (__v4si) __B, __U);
6563}
6564
6565static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6566_mm256_testn_epi32_mask (__m256i __A, __m256i __B)
6567{
6568 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
6569 (__v8si) __B,
6570 (__mmask8) -1);
6571}
6572
6573static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6574_mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6575{
6576 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
6577 (__v8si) __B, __U);
6578}
6579
6580static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6581_mm_testn_epi64_mask (__m128i __A, __m128i __B)
6582{
6583 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
6584 (__v2di) __B,
6585 (__mmask8) -1);
6586}
6587
6588static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6589_mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6590{
6591 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
6592 (__v2di) __B, __U);
6593}
6594
6595static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6596_mm256_testn_epi64_mask (__m256i __A, __m256i __B)
6597{
6598 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
6599 (__v4di) __B,
6600 (__mmask8) -1);
6601}
6602
6603static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6604_mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6605{
6606 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
6607 (__v4di) __B, __U);
6608}
6609
6610
6611
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006612static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006613_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006614{
Craig Topper79f53ca2016-06-23 06:36:42 +00006615 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6616 (__v4si)_mm_unpackhi_epi32(__A, __B),
6617 (__v4si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006618}
6619
6620static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006621_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006622{
Craig Topper79f53ca2016-06-23 06:36:42 +00006623 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6624 (__v4si)_mm_unpackhi_epi32(__A, __B),
6625 (__v4si)_mm_setzero_si128());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006626}
6627
6628static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006629_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006630{
Craig Topper79f53ca2016-06-23 06:36:42 +00006631 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6632 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6633 (__v8si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006634}
6635
6636static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006637_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006638{
Craig Topper79f53ca2016-06-23 06:36:42 +00006639 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6640 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6641 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006642}
6643
6644static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006645_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006646{
Craig Topper79f53ca2016-06-23 06:36:42 +00006647 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6648 (__v2di)_mm_unpackhi_epi64(__A, __B),
6649 (__v2di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006650}
6651
6652static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006653_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006654{
Craig Topper79f53ca2016-06-23 06:36:42 +00006655 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6656 (__v2di)_mm_unpackhi_epi64(__A, __B),
6657 (__v2di)_mm_setzero_di());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006658}
6659
6660static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006661_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006662{
Craig Topper79f53ca2016-06-23 06:36:42 +00006663 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6664 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6665 (__v4di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006666}
6667
6668static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006669_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006670{
Craig Topper79f53ca2016-06-23 06:36:42 +00006671 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6672 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6673 (__v4di)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006674}
6675
6676static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006677_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006678{
Craig Topper79f53ca2016-06-23 06:36:42 +00006679 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6680 (__v4si)_mm_unpacklo_epi32(__A, __B),
6681 (__v4si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006682}
6683
6684static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006685_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006686{
Craig Topper79f53ca2016-06-23 06:36:42 +00006687 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6688 (__v4si)_mm_unpacklo_epi32(__A, __B),
6689 (__v4si)_mm_setzero_si128());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006690}
6691
6692static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006693_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006694{
Craig Topper79f53ca2016-06-23 06:36:42 +00006695 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6696 (__v8si)_mm256_unpacklo_epi32(__A, __B),
6697 (__v8si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006698}
6699
6700static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006701_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006702{
Craig Topper79f53ca2016-06-23 06:36:42 +00006703 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6704 (__v8si)_mm256_unpacklo_epi32(__A, __B),
6705 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006706}
6707
6708static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006709_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006710{
Craig Topper79f53ca2016-06-23 06:36:42 +00006711 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6712 (__v2di)_mm_unpacklo_epi64(__A, __B),
6713 (__v2di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006714}
6715
6716static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006717_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006718{
Craig Topper79f53ca2016-06-23 06:36:42 +00006719 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6720 (__v2di)_mm_unpacklo_epi64(__A, __B),
6721 (__v2di)_mm_setzero_di());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006722}
6723
6724static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006725_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006726{
Craig Topper79f53ca2016-06-23 06:36:42 +00006727 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6728 (__v4di)_mm256_unpacklo_epi64(__A, __B),
6729 (__v4di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006730}
6731
6732static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006733_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006734{
Craig Topper79f53ca2016-06-23 06:36:42 +00006735 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6736 (__v4di)_mm256_unpacklo_epi64(__A, __B),
6737 (__v4di)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006738}
6739
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006740static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00006741_mm_mask_sra_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006742{
Craig Topper66b2fd12016-10-31 04:30:51 +00006743 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6744 (__v4si)_mm_sra_epi32(__A, __B),
6745 (__v4si)__W);
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006746}
6747
6748static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00006749_mm_maskz_sra_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006750{
Craig Topper66b2fd12016-10-31 04:30:51 +00006751 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6752 (__v4si)_mm_sra_epi32(__A, __B),
6753 (__v4si)_mm_setzero_si128());
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006754}
6755
6756static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00006757_mm256_mask_sra_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006758{
Craig Topper66b2fd12016-10-31 04:30:51 +00006759 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6760 (__v8si)_mm256_sra_epi32(__A, __B),
6761 (__v8si)__W);
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006762}
6763
6764static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper66b2fd12016-10-31 04:30:51 +00006765_mm256_maskz_sra_epi32(__mmask8 __U, __m256i __A, __m128i __B)
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006766{
Craig Topper66b2fd12016-10-31 04:30:51 +00006767 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6768 (__v8si)_mm256_sra_epi32(__A, __B),
6769 (__v8si)_mm256_setzero_si256());
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006770}
6771
Craig Topper66b2fd12016-10-31 04:30:51 +00006772static __inline__ __m128i __DEFAULT_FN_ATTRS
6773_mm_mask_srai_epi32(__m128i __W, __mmask8 __U, __m128i __A, int __B)
6774{
6775 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6776 (__v4si)_mm_srai_epi32(__A, __B),
6777 (__v4si)__W);
6778}
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006779
Craig Topper66b2fd12016-10-31 04:30:51 +00006780static __inline__ __m128i __DEFAULT_FN_ATTRS
6781_mm_maskz_srai_epi32(__mmask8 __U, __m128i __A, int __B)
6782{
6783 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6784 (__v4si)_mm_srai_epi32(__A, __B),
6785 (__v4si)_mm_setzero_si128());
6786}
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006787
Craig Topper66b2fd12016-10-31 04:30:51 +00006788static __inline__ __m256i __DEFAULT_FN_ATTRS
6789_mm256_mask_srai_epi32(__m256i __W, __mmask8 __U, __m256i __A, int __B)
6790{
6791 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6792 (__v8si)_mm256_srai_epi32(__A, __B),
6793 (__v8si)__W);
6794}
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006795
Craig Topper66b2fd12016-10-31 04:30:51 +00006796static __inline__ __m256i __DEFAULT_FN_ATTRS
6797_mm256_maskz_srai_epi32(__mmask8 __U, __m256i __A, int __B)
6798{
6799 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6800 (__v8si)_mm256_srai_epi32(__A, __B),
6801 (__v8si)_mm256_setzero_si256());
6802}
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006803
6804static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper1a441932016-11-12 07:16:59 +00006805_mm_sra_epi64(__m128i __A, __m128i __B)
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006806{
Craig Topper1a441932016-11-12 07:16:59 +00006807 return (__m128i)__builtin_ia32_psraq128((__v2di)__A, (__v2di)__B);
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006808}
6809
6810static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper1a441932016-11-12 07:16:59 +00006811_mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006812{
Craig Topper1a441932016-11-12 07:16:59 +00006813 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \
6814 (__v2di)_mm_sra_epi64(__A, __B), \
6815 (__v2di)__W);
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006816}
6817
6818static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper1a441932016-11-12 07:16:59 +00006819_mm_maskz_sra_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006820{
Craig Topper1a441932016-11-12 07:16:59 +00006821 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \
6822 (__v2di)_mm_sra_epi64(__A, __B), \
6823 (__v2di)_mm_setzero_di());
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006824}
6825
6826static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper1a441932016-11-12 07:16:59 +00006827_mm256_sra_epi64(__m256i __A, __m128i __B)
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006828{
Craig Topper1a441932016-11-12 07:16:59 +00006829 return (__m256i)__builtin_ia32_psraq256((__v4di) __A, (__v2di) __B);
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006830}
6831
6832static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper1a441932016-11-12 07:16:59 +00006833_mm256_mask_sra_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006834{
Craig Topper1a441932016-11-12 07:16:59 +00006835 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \
6836 (__v4di)_mm256_sra_epi64(__A, __B), \
6837 (__v4di)__W);
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006838}
6839
6840static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper1a441932016-11-12 07:16:59 +00006841_mm256_maskz_sra_epi64(__mmask8 __U, __m256i __A, __m128i __B)
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006842{
Craig Topper1a441932016-11-12 07:16:59 +00006843 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \
6844 (__v4di)_mm256_sra_epi64(__A, __B), \
6845 (__v4di)_mm256_setzero_si256());
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006846}
6847
Craig Topper1a441932016-11-12 07:16:59 +00006848static __inline__ __m128i __DEFAULT_FN_ATTRS
6849_mm_srai_epi64(__m128i __A, int __imm)
6850{
6851 return (__m128i)__builtin_ia32_psraqi128((__v2di)__A, __imm);
6852}
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006853
Craig Topper1a441932016-11-12 07:16:59 +00006854static __inline__ __m128i __DEFAULT_FN_ATTRS
6855_mm_mask_srai_epi64(__m128i __W, __mmask8 __U, __m128i __A, int __imm)
6856{
6857 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \
6858 (__v2di)_mm_srai_epi64(__A, __imm), \
6859 (__v2di)__W);
6860}
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006861
Craig Topper1a441932016-11-12 07:16:59 +00006862static __inline__ __m128i __DEFAULT_FN_ATTRS
6863_mm_maskz_srai_epi64(__mmask8 __U, __m128i __A, int __imm)
6864{
6865 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \
6866 (__v2di)_mm_srai_epi64(__A, __imm), \
6867 (__v2di)_mm_setzero_di());
6868}
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006869
Craig Topper1a441932016-11-12 07:16:59 +00006870static __inline__ __m256i __DEFAULT_FN_ATTRS
6871_mm256_srai_epi64(__m256i __A, int __imm)
6872{
6873 return (__m256i)__builtin_ia32_psraqi256((__v4di)__A, __imm);
6874}
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006875
Craig Topper1a441932016-11-12 07:16:59 +00006876static __inline__ __m256i __DEFAULT_FN_ATTRS
6877_mm256_mask_srai_epi64(__m256i __W, __mmask8 __U, __m256i __A, int __imm)
6878{
6879 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \
6880 (__v4di)_mm256_srai_epi64(__A, __imm), \
6881 (__v4di)__W);
6882}
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006883
Craig Topper1a441932016-11-12 07:16:59 +00006884static __inline__ __m256i __DEFAULT_FN_ATTRS
6885_mm256_maskz_srai_epi64(__mmask8 __U, __m256i __A, int __imm)
6886{
6887 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \
6888 (__v4di)_mm256_srai_epi64(__A, __imm), \
6889 (__v4di)_mm256_setzero_si256());
6890}
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006891
Craig Topperd2661882016-05-17 04:41:48 +00006892#define _mm_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
6893 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
6894 (__v4si)(__m128i)(B), \
6895 (__v4si)(__m128i)(C), (int)(imm), \
6896 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006897
Craig Topperd2661882016-05-17 04:41:48 +00006898#define _mm_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
6899 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
6900 (__v4si)(__m128i)(B), \
6901 (__v4si)(__m128i)(C), (int)(imm), \
6902 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006903
Craig Topperd2661882016-05-17 04:41:48 +00006904#define _mm_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
6905 (__m128i)__builtin_ia32_pternlogd128_maskz((__v4si)(__m128i)(A), \
6906 (__v4si)(__m128i)(B), \
6907 (__v4si)(__m128i)(C), (int)(imm), \
6908 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006909
Craig Topperd2661882016-05-17 04:41:48 +00006910#define _mm256_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
6911 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
6912 (__v8si)(__m256i)(B), \
6913 (__v8si)(__m256i)(C), (int)(imm), \
6914 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006915
Craig Topperd2661882016-05-17 04:41:48 +00006916#define _mm256_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
6917 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
6918 (__v8si)(__m256i)(B), \
6919 (__v8si)(__m256i)(C), (int)(imm), \
6920 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006921
Craig Topperd2661882016-05-17 04:41:48 +00006922#define _mm256_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
6923 (__m256i)__builtin_ia32_pternlogd256_maskz((__v8si)(__m256i)(A), \
6924 (__v8si)(__m256i)(B), \
6925 (__v8si)(__m256i)(C), (int)(imm), \
6926 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006927
Craig Topperd2661882016-05-17 04:41:48 +00006928#define _mm_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
6929 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
6930 (__v2di)(__m128i)(B), \
6931 (__v2di)(__m128i)(C), (int)(imm), \
6932 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006933
Craig Topperd2661882016-05-17 04:41:48 +00006934#define _mm_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
6935 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
6936 (__v2di)(__m128i)(B), \
6937 (__v2di)(__m128i)(C), (int)(imm), \
6938 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006939
Craig Topperd2661882016-05-17 04:41:48 +00006940#define _mm_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
6941 (__m128i)__builtin_ia32_pternlogq128_maskz((__v2di)(__m128i)(A), \
6942 (__v2di)(__m128i)(B), \
6943 (__v2di)(__m128i)(C), (int)(imm), \
6944 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006945
Craig Topperd2661882016-05-17 04:41:48 +00006946#define _mm256_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
6947 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
6948 (__v4di)(__m256i)(B), \
6949 (__v4di)(__m256i)(C), (int)(imm), \
6950 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006951
Craig Topperd2661882016-05-17 04:41:48 +00006952#define _mm256_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
6953 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
6954 (__v4di)(__m256i)(B), \
6955 (__v4di)(__m256i)(C), (int)(imm), \
6956 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006957
Craig Topperd2661882016-05-17 04:41:48 +00006958#define _mm256_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
6959 (__m256i)__builtin_ia32_pternlogq256_maskz((__v4di)(__m256i)(A), \
6960 (__v4di)(__m256i)(B), \
6961 (__v4di)(__m256i)(C), (int)(imm), \
6962 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00006963
6964
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00006965
Craig Topperd2661882016-05-17 04:41:48 +00006966#define _mm256_shuffle_f32x4(A, B, imm) __extension__ ({ \
6967 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
6968 (__v8sf)(__m256)(B), (int)(imm), \
6969 (__v8sf)_mm256_setzero_ps(), \
6970 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00006971
Craig Topperd2661882016-05-17 04:41:48 +00006972#define _mm256_mask_shuffle_f32x4(W, U, A, B, imm) __extension__ ({ \
6973 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
6974 (__v8sf)(__m256)(B), (int)(imm), \
6975 (__v8sf)(__m256)(W), \
6976 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00006977
Craig Topperd2661882016-05-17 04:41:48 +00006978#define _mm256_maskz_shuffle_f32x4(U, A, B, imm) __extension__ ({ \
6979 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
6980 (__v8sf)(__m256)(B), (int)(imm), \
6981 (__v8sf)_mm256_setzero_ps(), \
6982 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00006983
Craig Topperd2661882016-05-17 04:41:48 +00006984#define _mm256_shuffle_f64x2(A, B, imm) __extension__ ({ \
6985 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
6986 (__v4df)(__m256d)(B), \
6987 (int)(imm), \
6988 (__v4df)_mm256_setzero_pd(), \
6989 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00006990
Craig Topperd2661882016-05-17 04:41:48 +00006991#define _mm256_mask_shuffle_f64x2(W, U, A, B, imm) __extension__ ({ \
6992 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
6993 (__v4df)(__m256d)(B), \
6994 (int)(imm), \
6995 (__v4df)(__m256d)(W), \
6996 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00006997
Craig Topperd2661882016-05-17 04:41:48 +00006998#define _mm256_maskz_shuffle_f64x2(U, A, B, imm) __extension__ ({ \
6999 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7000 (__v4df)(__m256d)(B), \
7001 (int)(imm), \
7002 (__v4df)_mm256_setzero_pd(), \
7003 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007004
Craig Topperd2661882016-05-17 04:41:48 +00007005#define _mm256_shuffle_i32x4(A, B, imm) __extension__ ({ \
7006 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7007 (__v8si)(__m256i)(B), \
7008 (int)(imm), \
7009 (__v8si)_mm256_setzero_si256(), \
7010 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007011
Craig Topperd2661882016-05-17 04:41:48 +00007012#define _mm256_mask_shuffle_i32x4(W, U, A, B, imm) __extension__ ({ \
7013 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7014 (__v8si)(__m256i)(B), \
7015 (int)(imm), \
7016 (__v8si)(__m256i)(W), \
7017 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007018
Craig Topperd2661882016-05-17 04:41:48 +00007019#define _mm256_maskz_shuffle_i32x4(U, A, B, imm) __extension__ ({ \
7020 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7021 (__v8si)(__m256i)(B), \
7022 (int)(imm), \
7023 (__v8si)_mm256_setzero_si256(), \
7024 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007025
Craig Topperd2661882016-05-17 04:41:48 +00007026#define _mm256_shuffle_i64x2(A, B, imm) __extension__ ({ \
7027 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7028 (__v4di)(__m256i)(B), \
7029 (int)(imm), \
7030 (__v4di)_mm256_setzero_si256(), \
7031 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007032
Craig Topperd2661882016-05-17 04:41:48 +00007033#define _mm256_mask_shuffle_i64x2(W, U, A, B, imm) __extension__ ({ \
7034 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7035 (__v4di)(__m256i)(B), \
7036 (int)(imm), \
7037 (__v4di)(__m256i)(W), \
7038 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007039
Craig Topperd2661882016-05-17 04:41:48 +00007040#define _mm256_maskz_shuffle_i64x2(U, A, B, imm) __extension__ ({ \
7041 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7042 (__v4di)(__m256i)(B), \
7043 (int)(imm), \
7044 (__v4di)_mm256_setzero_si256(), \
7045 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007046
Simon Pilgrim427154d2016-07-04 21:30:47 +00007047#define _mm_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7048 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
7049 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
7050 (__v2df)(__m128d)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007051
Simon Pilgrim427154d2016-07-04 21:30:47 +00007052#define _mm_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7053 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
7054 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
7055 (__v2df)_mm_setzero_pd()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007056
Simon Pilgrim427154d2016-07-04 21:30:47 +00007057#define _mm256_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7058 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
7059 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
7060 (__v4df)(__m256d)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007061
Simon Pilgrim427154d2016-07-04 21:30:47 +00007062#define _mm256_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7063 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
7064 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
7065 (__v4df)_mm256_setzero_pd()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007066
Simon Pilgrim427154d2016-07-04 21:30:47 +00007067#define _mm_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7068 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
7069 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
7070 (__v4sf)(__m128)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007071
Simon Pilgrim427154d2016-07-04 21:30:47 +00007072#define _mm_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7073 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
7074 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
7075 (__v4sf)_mm_setzero_ps()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007076
Simon Pilgrim427154d2016-07-04 21:30:47 +00007077#define _mm256_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7078 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7079 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
7080 (__v8sf)(__m256)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007081
Simon Pilgrim427154d2016-07-04 21:30:47 +00007082#define _mm256_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7083 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7084 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
7085 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007086
7087static __inline__ __m128d __DEFAULT_FN_ATTRS
7088_mm_rsqrt14_pd (__m128d __A)
7089{
7090 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7091 (__v2df)
7092 _mm_setzero_pd (),
7093 (__mmask8) -1);
7094}
7095
7096static __inline__ __m128d __DEFAULT_FN_ATTRS
7097_mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A)
7098{
7099 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7100 (__v2df) __W,
7101 (__mmask8) __U);
7102}
7103
7104static __inline__ __m128d __DEFAULT_FN_ATTRS
7105_mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A)
7106{
7107 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7108 (__v2df)
7109 _mm_setzero_pd (),
7110 (__mmask8) __U);
7111}
7112
7113static __inline__ __m256d __DEFAULT_FN_ATTRS
7114_mm256_rsqrt14_pd (__m256d __A)
7115{
7116 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7117 (__v4df)
7118 _mm256_setzero_pd (),
7119 (__mmask8) -1);
7120}
7121
7122static __inline__ __m256d __DEFAULT_FN_ATTRS
7123_mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A)
7124{
7125 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7126 (__v4df) __W,
7127 (__mmask8) __U);
7128}
7129
7130static __inline__ __m256d __DEFAULT_FN_ATTRS
7131_mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A)
7132{
7133 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7134 (__v4df)
7135 _mm256_setzero_pd (),
7136 (__mmask8) __U);
7137}
7138
7139static __inline__ __m128 __DEFAULT_FN_ATTRS
7140_mm_rsqrt14_ps (__m128 __A)
7141{
7142 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7143 (__v4sf)
7144 _mm_setzero_ps (),
7145 (__mmask8) -1);
7146}
7147
7148static __inline__ __m128 __DEFAULT_FN_ATTRS
7149_mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A)
7150{
7151 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7152 (__v4sf) __W,
7153 (__mmask8) __U);
7154}
7155
7156static __inline__ __m128 __DEFAULT_FN_ATTRS
7157_mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A)
7158{
7159 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7160 (__v4sf)
7161 _mm_setzero_ps (),
7162 (__mmask8) __U);
7163}
7164
7165static __inline__ __m256 __DEFAULT_FN_ATTRS
7166_mm256_rsqrt14_ps (__m256 __A)
7167{
7168 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7169 (__v8sf)
7170 _mm256_setzero_ps (),
7171 (__mmask8) -1);
7172}
7173
7174static __inline__ __m256 __DEFAULT_FN_ATTRS
7175_mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A)
7176{
7177 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7178 (__v8sf) __W,
7179 (__mmask8) __U);
7180}
7181
7182static __inline__ __m256 __DEFAULT_FN_ATTRS
7183_mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A)
7184{
7185 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7186 (__v8sf)
7187 _mm256_setzero_ps (),
7188 (__mmask8) __U);
7189}
7190
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007191static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper367c86d2017-01-18 02:17:10 +00007192_mm256_broadcast_f32x4(__m128 __A)
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007193{
Craig Topper367c86d2017-01-18 02:17:10 +00007194 return (__m256)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A,
7195 0, 1, 2, 3, 0, 1, 2, 3);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007196}
7197
7198static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper367c86d2017-01-18 02:17:10 +00007199_mm256_mask_broadcast_f32x4(__m256 __O, __mmask8 __M, __m128 __A)
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007200{
Craig Topper367c86d2017-01-18 02:17:10 +00007201 return (__m256)__builtin_ia32_selectps_256((__mmask8)__M,
7202 (__v8sf)_mm256_broadcast_f32x4(__A),
7203 (__v8sf)__O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007204}
7205
7206static __inline__ __m256 __DEFAULT_FN_ATTRS
7207_mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A)
7208{
Craig Topper367c86d2017-01-18 02:17:10 +00007209 return (__m256)__builtin_ia32_selectps_256((__mmask8)__M,
7210 (__v8sf)_mm256_broadcast_f32x4(__A),
7211 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007212}
7213
7214static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper367c86d2017-01-18 02:17:10 +00007215_mm256_broadcast_i32x4(__m128i __A)
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007216{
Craig Topper367c86d2017-01-18 02:17:10 +00007217 return (__m256i)__builtin_shufflevector((__v4si)__A, (__v4si)__A,
7218 0, 1, 2, 3, 0, 1, 2, 3);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007219}
7220
7221static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper367c86d2017-01-18 02:17:10 +00007222_mm256_mask_broadcast_i32x4(__m256i __O, __mmask8 __M, __m128i __A)
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007223{
Craig Topper367c86d2017-01-18 02:17:10 +00007224 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
7225 (__v8si)_mm256_broadcast_i32x4(__A),
7226 (__v8si)__O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007227}
7228
7229static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper367c86d2017-01-18 02:17:10 +00007230_mm256_maskz_broadcast_i32x4(__mmask8 __M, __m128i __A)
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007231{
Craig Topper367c86d2017-01-18 02:17:10 +00007232 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
7233 (__v8si)_mm256_broadcast_i32x4(__A),
7234 (__v8si)_mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007235}
7236
7237static __inline__ __m256d __DEFAULT_FN_ATTRS
7238_mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A)
7239{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007240 return (__m256d)__builtin_ia32_selectpd_256(__M,
7241 (__v4df) _mm256_broadcastsd_pd(__A),
7242 (__v4df) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007243}
7244
7245static __inline__ __m256d __DEFAULT_FN_ATTRS
7246_mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
7247{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007248 return (__m256d)__builtin_ia32_selectpd_256(__M,
7249 (__v4df) _mm256_broadcastsd_pd(__A),
7250 (__v4df) _mm256_setzero_pd());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007251}
7252
7253static __inline__ __m128 __DEFAULT_FN_ATTRS
7254_mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A)
7255{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007256 return (__m128)__builtin_ia32_selectps_128(__M,
7257 (__v4sf) _mm_broadcastss_ps(__A),
7258 (__v4sf) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007259}
7260
7261static __inline__ __m128 __DEFAULT_FN_ATTRS
7262_mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7263{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007264 return (__m128)__builtin_ia32_selectps_128(__M,
7265 (__v4sf) _mm_broadcastss_ps(__A),
7266 (__v4sf) _mm_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007267}
7268
7269static __inline__ __m256 __DEFAULT_FN_ATTRS
7270_mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A)
7271{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007272 return (__m256)__builtin_ia32_selectps_256(__M,
7273 (__v8sf) _mm256_broadcastss_ps(__A),
7274 (__v8sf) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007275}
7276
7277static __inline__ __m256 __DEFAULT_FN_ATTRS
7278_mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7279{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007280 return (__m256)__builtin_ia32_selectps_256(__M,
7281 (__v8sf) _mm256_broadcastss_ps(__A),
7282 (__v8sf) _mm256_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007283}
7284
7285static __inline__ __m128i __DEFAULT_FN_ATTRS
7286_mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7287{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007288 return (__m128i)__builtin_ia32_selectd_128(__M,
7289 (__v4si) _mm_broadcastd_epi32(__A),
7290 (__v4si) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007291}
7292
7293static __inline__ __m128i __DEFAULT_FN_ATTRS
7294_mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7295{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007296 return (__m128i)__builtin_ia32_selectd_128(__M,
7297 (__v4si) _mm_broadcastd_epi32(__A),
7298 (__v4si) _mm_setzero_si128());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007299}
7300
7301static __inline__ __m256i __DEFAULT_FN_ATTRS
7302_mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A)
7303{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007304 return (__m256i)__builtin_ia32_selectd_256(__M,
7305 (__v8si) _mm256_broadcastd_epi32(__A),
7306 (__v8si) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007307}
7308
7309static __inline__ __m256i __DEFAULT_FN_ATTRS
7310_mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7311{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007312 return (__m256i)__builtin_ia32_selectd_256(__M,
7313 (__v8si) _mm256_broadcastd_epi32(__A),
7314 (__v8si) _mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007315}
7316
7317static __inline__ __m128i __DEFAULT_FN_ATTRS
7318_mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A)
7319{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007320 return (__m128i)__builtin_ia32_selectq_128(__M,
7321 (__v2di) _mm_broadcastq_epi64(__A),
7322 (__v2di) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007323}
7324
7325static __inline__ __m128i __DEFAULT_FN_ATTRS
7326_mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7327{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007328 return (__m128i)__builtin_ia32_selectq_128(__M,
7329 (__v2di) _mm_broadcastq_epi64(__A),
7330 (__v2di) _mm_setzero_si128());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007331}
7332
7333static __inline__ __m256i __DEFAULT_FN_ATTRS
7334_mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A)
7335{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007336 return (__m256i)__builtin_ia32_selectq_256(__M,
7337 (__v4di) _mm256_broadcastq_epi64(__A),
7338 (__v4di) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007339}
7340
7341static __inline__ __m256i __DEFAULT_FN_ATTRS
7342_mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7343{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007344 return (__m256i)__builtin_ia32_selectq_256(__M,
7345 (__v4di) _mm256_broadcastq_epi64(__A),
7346 (__v4di) _mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007347}
7348
Michael Zuckermane1680612016-04-13 15:02:04 +00007349static __inline__ __m128i __DEFAULT_FN_ATTRS
7350_mm_cvtsepi32_epi8 (__m128i __A)
7351{
7352 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7353 (__v16qi)_mm_undefined_si128(),
7354 (__mmask8) -1);
7355}
7356
7357static __inline__ __m128i __DEFAULT_FN_ATTRS
7358_mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7359{
7360 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7361 (__v16qi) __O, __M);
7362}
7363
7364static __inline__ __m128i __DEFAULT_FN_ATTRS
7365_mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A)
7366{
7367 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7368 (__v16qi) _mm_setzero_si128 (),
7369 __M);
7370}
7371
7372static __inline__ void __DEFAULT_FN_ATTRS
7373_mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7374{
7375 __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7376}
7377
7378static __inline__ __m128i __DEFAULT_FN_ATTRS
7379_mm256_cvtsepi32_epi8 (__m256i __A)
7380{
7381 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7382 (__v16qi)_mm_undefined_si128(),
7383 (__mmask8) -1);
7384}
7385
7386static __inline__ __m128i __DEFAULT_FN_ATTRS
7387_mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7388{
7389 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7390 (__v16qi) __O, __M);
7391}
7392
7393static __inline__ __m128i __DEFAULT_FN_ATTRS
7394_mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A)
7395{
7396 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7397 (__v16qi) _mm_setzero_si128 (),
7398 __M);
7399}
7400
7401static __inline__ void __DEFAULT_FN_ATTRS
7402_mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7403{
7404 __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
7405}
7406
7407static __inline__ __m128i __DEFAULT_FN_ATTRS
7408_mm_cvtsepi32_epi16 (__m128i __A)
7409{
7410 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7411 (__v8hi)_mm_setzero_si128 (),
7412 (__mmask8) -1);
7413}
7414
7415static __inline__ __m128i __DEFAULT_FN_ATTRS
7416_mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7417{
7418 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7419 (__v8hi)__O,
7420 __M);
7421}
7422
7423static __inline__ __m128i __DEFAULT_FN_ATTRS
7424_mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A)
7425{
7426 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7427 (__v8hi) _mm_setzero_si128 (),
7428 __M);
7429}
7430
7431static __inline__ void __DEFAULT_FN_ATTRS
7432_mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7433{
7434 __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7435}
7436
7437static __inline__ __m128i __DEFAULT_FN_ATTRS
7438_mm256_cvtsepi32_epi16 (__m256i __A)
7439{
7440 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7441 (__v8hi)_mm_undefined_si128(),
7442 (__mmask8) -1);
7443}
7444
7445static __inline__ __m128i __DEFAULT_FN_ATTRS
7446_mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7447{
7448 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7449 (__v8hi) __O, __M);
7450}
7451
7452static __inline__ __m128i __DEFAULT_FN_ATTRS
7453_mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A)
7454{
7455 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7456 (__v8hi) _mm_setzero_si128 (),
7457 __M);
7458}
7459
7460static __inline__ void __DEFAULT_FN_ATTRS
7461_mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7462{
7463 __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7464}
7465
7466static __inline__ __m128i __DEFAULT_FN_ATTRS
7467_mm_cvtsepi64_epi8 (__m128i __A)
7468{
7469 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7470 (__v16qi)_mm_undefined_si128(),
7471 (__mmask8) -1);
7472}
7473
7474static __inline__ __m128i __DEFAULT_FN_ATTRS
7475_mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7476{
7477 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7478 (__v16qi) __O, __M);
7479}
7480
7481static __inline__ __m128i __DEFAULT_FN_ATTRS
7482_mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A)
7483{
7484 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7485 (__v16qi) _mm_setzero_si128 (),
7486 __M);
7487}
7488
7489static __inline__ void __DEFAULT_FN_ATTRS
7490_mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7491{
7492 __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7493}
7494
7495static __inline__ __m128i __DEFAULT_FN_ATTRS
7496_mm256_cvtsepi64_epi8 (__m256i __A)
7497{
7498 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7499 (__v16qi)_mm_undefined_si128(),
7500 (__mmask8) -1);
7501}
7502
7503static __inline__ __m128i __DEFAULT_FN_ATTRS
7504_mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7505{
7506 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7507 (__v16qi) __O, __M);
7508}
7509
7510static __inline__ __m128i __DEFAULT_FN_ATTRS
7511_mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A)
7512{
7513 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7514 (__v16qi) _mm_setzero_si128 (),
7515 __M);
7516}
7517
7518static __inline__ void __DEFAULT_FN_ATTRS
7519_mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7520{
7521 __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7522}
7523
7524static __inline__ __m128i __DEFAULT_FN_ATTRS
7525_mm_cvtsepi64_epi32 (__m128i __A)
7526{
7527 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7528 (__v4si)_mm_undefined_si128(),
7529 (__mmask8) -1);
7530}
7531
7532static __inline__ __m128i __DEFAULT_FN_ATTRS
7533_mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7534{
7535 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7536 (__v4si) __O, __M);
7537}
7538
7539static __inline__ __m128i __DEFAULT_FN_ATTRS
7540_mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A)
7541{
7542 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7543 (__v4si) _mm_setzero_si128 (),
7544 __M);
7545}
7546
7547static __inline__ void __DEFAULT_FN_ATTRS
7548_mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
7549{
7550 __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
7551}
7552
7553static __inline__ __m128i __DEFAULT_FN_ATTRS
7554_mm256_cvtsepi64_epi32 (__m256i __A)
7555{
7556 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7557 (__v4si)_mm_undefined_si128(),
7558 (__mmask8) -1);
7559}
7560
7561static __inline__ __m128i __DEFAULT_FN_ATTRS
7562_mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
7563{
7564 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7565 (__v4si)__O,
7566 __M);
7567}
7568
7569static __inline__ __m128i __DEFAULT_FN_ATTRS
7570_mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A)
7571{
7572 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7573 (__v4si) _mm_setzero_si128 (),
7574 __M);
7575}
7576
7577static __inline__ void __DEFAULT_FN_ATTRS
7578_mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
7579{
7580 __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
7581}
7582
7583static __inline__ __m128i __DEFAULT_FN_ATTRS
7584_mm_cvtsepi64_epi16 (__m128i __A)
7585{
7586 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7587 (__v8hi)_mm_undefined_si128(),
7588 (__mmask8) -1);
7589}
7590
7591static __inline__ __m128i __DEFAULT_FN_ATTRS
7592_mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7593{
7594 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7595 (__v8hi) __O, __M);
7596}
7597
7598static __inline__ __m128i __DEFAULT_FN_ATTRS
7599_mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A)
7600{
7601 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7602 (__v8hi) _mm_setzero_si128 (),
7603 __M);
7604}
7605
7606static __inline__ void __DEFAULT_FN_ATTRS
7607_mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7608{
7609 __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
7610}
7611
7612static __inline__ __m128i __DEFAULT_FN_ATTRS
7613_mm256_cvtsepi64_epi16 (__m256i __A)
7614{
7615 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7616 (__v8hi)_mm_undefined_si128(),
7617 (__mmask8) -1);
7618}
7619
7620static __inline__ __m128i __DEFAULT_FN_ATTRS
7621_mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7622{
7623 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7624 (__v8hi) __O, __M);
7625}
7626
7627static __inline__ __m128i __DEFAULT_FN_ATTRS
7628_mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A)
7629{
7630 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7631 (__v8hi) _mm_setzero_si128 (),
7632 __M);
7633}
7634
7635static __inline__ void __DEFAULT_FN_ATTRS
7636_mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7637{
7638 __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
7639}
7640
Michael Zuckermand8715312016-04-14 06:48:09 +00007641static __inline__ __m128i __DEFAULT_FN_ATTRS
7642_mm_cvtusepi32_epi8 (__m128i __A)
7643{
7644 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7645 (__v16qi)_mm_undefined_si128(),
7646 (__mmask8) -1);
7647}
7648
7649static __inline__ __m128i __DEFAULT_FN_ATTRS
7650_mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7651{
7652 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7653 (__v16qi) __O,
7654 __M);
7655}
7656
7657static __inline__ __m128i __DEFAULT_FN_ATTRS
7658_mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A)
7659{
7660 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7661 (__v16qi) _mm_setzero_si128 (),
7662 __M);
7663}
7664
7665static __inline__ void __DEFAULT_FN_ATTRS
7666_mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7667{
7668 __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7669}
7670
7671static __inline__ __m128i __DEFAULT_FN_ATTRS
7672_mm256_cvtusepi32_epi8 (__m256i __A)
7673{
7674 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7675 (__v16qi)_mm_undefined_si128(),
7676 (__mmask8) -1);
7677}
7678
7679static __inline__ __m128i __DEFAULT_FN_ATTRS
7680_mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7681{
7682 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7683 (__v16qi) __O,
7684 __M);
7685}
7686
7687static __inline__ __m128i __DEFAULT_FN_ATTRS
7688_mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A)
7689{
7690 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7691 (__v16qi) _mm_setzero_si128 (),
7692 __M);
7693}
7694
7695static __inline__ void __DEFAULT_FN_ATTRS
7696_mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7697{
7698 __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M);
7699}
7700
7701static __inline__ __m128i __DEFAULT_FN_ATTRS
7702_mm_cvtusepi32_epi16 (__m128i __A)
7703{
7704 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7705 (__v8hi)_mm_undefined_si128(),
7706 (__mmask8) -1);
7707}
7708
7709static __inline__ __m128i __DEFAULT_FN_ATTRS
7710_mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7711{
7712 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7713 (__v8hi) __O, __M);
7714}
7715
7716static __inline__ __m128i __DEFAULT_FN_ATTRS
7717_mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A)
7718{
7719 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7720 (__v8hi) _mm_setzero_si128 (),
7721 __M);
7722}
7723
7724static __inline__ void __DEFAULT_FN_ATTRS
7725_mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7726{
7727 __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7728}
7729
7730static __inline__ __m128i __DEFAULT_FN_ATTRS
7731_mm256_cvtusepi32_epi16 (__m256i __A)
7732{
7733 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7734 (__v8hi) _mm_undefined_si128(),
7735 (__mmask8) -1);
7736}
7737
7738static __inline__ __m128i __DEFAULT_FN_ATTRS
7739_mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7740{
7741 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7742 (__v8hi) __O, __M);
7743}
7744
7745static __inline__ __m128i __DEFAULT_FN_ATTRS
7746_mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A)
7747{
7748 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7749 (__v8hi) _mm_setzero_si128 (),
7750 __M);
7751}
7752
7753static __inline__ void __DEFAULT_FN_ATTRS
7754_mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7755{
7756 __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7757}
7758
7759static __inline__ __m128i __DEFAULT_FN_ATTRS
7760_mm_cvtusepi64_epi8 (__m128i __A)
7761{
7762 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7763 (__v16qi)_mm_undefined_si128(),
7764 (__mmask8) -1);
7765}
7766
7767static __inline__ __m128i __DEFAULT_FN_ATTRS
7768_mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7769{
7770 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7771 (__v16qi) __O,
7772 __M);
7773}
7774
7775static __inline__ __m128i __DEFAULT_FN_ATTRS
7776_mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A)
7777{
7778 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
7779 (__v16qi) _mm_setzero_si128 (),
7780 __M);
7781}
7782
7783static __inline__ void __DEFAULT_FN_ATTRS
7784_mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7785{
7786 __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7787}
7788
7789static __inline__ __m128i __DEFAULT_FN_ATTRS
7790_mm256_cvtusepi64_epi8 (__m256i __A)
7791{
7792 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7793 (__v16qi)_mm_undefined_si128(),
7794 (__mmask8) -1);
7795}
7796
7797static __inline__ __m128i __DEFAULT_FN_ATTRS
7798_mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7799{
7800 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7801 (__v16qi) __O,
7802 __M);
7803}
7804
7805static __inline__ __m128i __DEFAULT_FN_ATTRS
7806_mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A)
7807{
7808 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
7809 (__v16qi) _mm_setzero_si128 (),
7810 __M);
7811}
7812
7813static __inline__ void __DEFAULT_FN_ATTRS
7814_mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7815{
7816 __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7817}
7818
7819static __inline__ __m128i __DEFAULT_FN_ATTRS
7820_mm_cvtusepi64_epi32 (__m128i __A)
7821{
7822 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7823 (__v4si)_mm_undefined_si128(),
7824 (__mmask8) -1);
7825}
7826
7827static __inline__ __m128i __DEFAULT_FN_ATTRS
7828_mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7829{
7830 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7831 (__v4si) __O, __M);
7832}
7833
7834static __inline__ __m128i __DEFAULT_FN_ATTRS
7835_mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A)
7836{
7837 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
7838 (__v4si) _mm_setzero_si128 (),
7839 __M);
7840}
7841
7842static __inline__ void __DEFAULT_FN_ATTRS
7843_mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
7844{
7845 __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
7846}
7847
7848static __inline__ __m128i __DEFAULT_FN_ATTRS
7849_mm256_cvtusepi64_epi32 (__m256i __A)
7850{
7851 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
7852 (__v4si)_mm_undefined_si128(),
7853 (__mmask8) -1);
7854}
7855
7856static __inline__ __m128i __DEFAULT_FN_ATTRS
7857_mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
7858{
7859 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
7860 (__v4si) __O, __M);
7861}
7862
7863static __inline__ __m128i __DEFAULT_FN_ATTRS
7864_mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A)
7865{
7866 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
7867 (__v4si) _mm_setzero_si128 (),
7868 __M);
7869}
7870
7871static __inline__ void __DEFAULT_FN_ATTRS
7872_mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
7873{
7874 __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
7875}
7876
7877static __inline__ __m128i __DEFAULT_FN_ATTRS
7878_mm_cvtusepi64_epi16 (__m128i __A)
7879{
7880 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
7881 (__v8hi)_mm_undefined_si128(),
7882 (__mmask8) -1);
7883}
7884
7885static __inline__ __m128i __DEFAULT_FN_ATTRS
7886_mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7887{
7888 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
7889 (__v8hi) __O, __M);
7890}
7891
7892static __inline__ __m128i __DEFAULT_FN_ATTRS
7893_mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A)
7894{
7895 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
7896 (__v8hi) _mm_setzero_si128 (),
7897 __M);
7898}
7899
7900static __inline__ void __DEFAULT_FN_ATTRS
7901_mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7902{
7903 __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
7904}
7905
7906static __inline__ __m128i __DEFAULT_FN_ATTRS
7907_mm256_cvtusepi64_epi16 (__m256i __A)
7908{
7909 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
7910 (__v8hi)_mm_undefined_si128(),
7911 (__mmask8) -1);
7912}
7913
7914static __inline__ __m128i __DEFAULT_FN_ATTRS
7915_mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7916{
7917 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
7918 (__v8hi) __O, __M);
7919}
7920
7921static __inline__ __m128i __DEFAULT_FN_ATTRS
7922_mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A)
7923{
7924 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
7925 (__v8hi) _mm_setzero_si128 (),
7926 __M);
7927}
7928
7929static __inline__ void __DEFAULT_FN_ATTRS
7930_mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7931{
7932 return __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
7933}
7934
Michael Zuckerman0a3508a2016-04-14 07:56:51 +00007935static __inline__ __m128i __DEFAULT_FN_ATTRS
7936_mm_cvtepi32_epi8 (__m128i __A)
7937{
7938 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
7939 (__v16qi)_mm_undefined_si128(),
7940 (__mmask8) -1);
7941}
7942
7943static __inline__ __m128i __DEFAULT_FN_ATTRS
7944_mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7945{
7946 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
7947 (__v16qi) __O, __M);
7948}
7949
7950static __inline__ __m128i __DEFAULT_FN_ATTRS
7951_mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A)
7952{
7953 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
7954 (__v16qi)
7955 _mm_setzero_si128 (),
7956 __M);
7957}
7958
7959static __inline__ void __DEFAULT_FN_ATTRS
7960_mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7961{
7962 __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7963}
7964
7965static __inline__ __m128i __DEFAULT_FN_ATTRS
7966_mm256_cvtepi32_epi8 (__m256i __A)
7967{
7968 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
7969 (__v16qi)_mm_undefined_si128(),
7970 (__mmask8) -1);
7971}
7972
7973static __inline__ __m128i __DEFAULT_FN_ATTRS
7974_mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7975{
7976 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
7977 (__v16qi) __O, __M);
7978}
7979
7980static __inline__ __m128i __DEFAULT_FN_ATTRS
7981_mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A)
7982{
7983 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
7984 (__v16qi) _mm_setzero_si128 (),
7985 __M);
7986}
7987
7988static __inline__ void __DEFAULT_FN_ATTRS
7989_mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7990{
7991 __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
7992}
7993
7994static __inline__ __m128i __DEFAULT_FN_ATTRS
7995_mm_cvtepi32_epi16 (__m128i __A)
7996{
7997 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
7998 (__v8hi) _mm_setzero_si128 (),
7999 (__mmask8) -1);
8000}
8001
8002static __inline__ __m128i __DEFAULT_FN_ATTRS
8003_mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8004{
8005 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8006 (__v8hi) __O, __M);
8007}
8008
8009static __inline__ __m128i __DEFAULT_FN_ATTRS
8010_mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A)
8011{
8012 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8013 (__v8hi) _mm_setzero_si128 (),
8014 __M);
8015}
8016
8017static __inline__ void __DEFAULT_FN_ATTRS
8018_mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8019{
8020 __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
8021}
8022
8023static __inline__ __m128i __DEFAULT_FN_ATTRS
8024_mm256_cvtepi32_epi16 (__m256i __A)
8025{
8026 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8027 (__v8hi)_mm_setzero_si128 (),
8028 (__mmask8) -1);
8029}
8030
8031static __inline__ __m128i __DEFAULT_FN_ATTRS
8032_mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8033{
8034 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8035 (__v8hi) __O, __M);
8036}
8037
8038static __inline__ __m128i __DEFAULT_FN_ATTRS
8039_mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A)
8040{
8041 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8042 (__v8hi) _mm_setzero_si128 (),
8043 __M);
8044}
8045
8046static __inline__ void __DEFAULT_FN_ATTRS
8047_mm256_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8048{
8049 __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
8050}
8051
8052static __inline__ __m128i __DEFAULT_FN_ATTRS
8053_mm_cvtepi64_epi8 (__m128i __A)
8054{
8055 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8056 (__v16qi) _mm_undefined_si128(),
8057 (__mmask8) -1);
8058}
8059
8060static __inline__ __m128i __DEFAULT_FN_ATTRS
8061_mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8062{
8063 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8064 (__v16qi) __O, __M);
8065}
8066
8067static __inline__ __m128i __DEFAULT_FN_ATTRS
8068_mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A)
8069{
8070 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8071 (__v16qi) _mm_setzero_si128 (),
8072 __M);
8073}
8074
8075static __inline__ void __DEFAULT_FN_ATTRS
8076_mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8077{
8078 __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
8079}
8080
8081static __inline__ __m128i __DEFAULT_FN_ATTRS
8082_mm256_cvtepi64_epi8 (__m256i __A)
8083{
8084 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8085 (__v16qi) _mm_undefined_si128(),
8086 (__mmask8) -1);
8087}
8088
8089static __inline__ __m128i __DEFAULT_FN_ATTRS
8090_mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8091{
8092 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8093 (__v16qi) __O, __M);
8094}
8095
8096static __inline__ __m128i __DEFAULT_FN_ATTRS
8097_mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A)
8098{
8099 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8100 (__v16qi) _mm_setzero_si128 (),
8101 __M);
8102}
8103
8104static __inline__ void __DEFAULT_FN_ATTRS
8105_mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8106{
8107 __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
8108}
8109
8110static __inline__ __m128i __DEFAULT_FN_ATTRS
8111_mm_cvtepi64_epi32 (__m128i __A)
8112{
8113 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8114 (__v4si)_mm_undefined_si128(),
8115 (__mmask8) -1);
8116}
8117
8118static __inline__ __m128i __DEFAULT_FN_ATTRS
8119_mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
8120{
8121 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8122 (__v4si) __O, __M);
8123}
8124
8125static __inline__ __m128i __DEFAULT_FN_ATTRS
8126_mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A)
8127{
8128 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8129 (__v4si) _mm_setzero_si128 (),
8130 __M);
8131}
8132
8133static __inline__ void __DEFAULT_FN_ATTRS
8134_mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
8135{
8136 __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
8137}
8138
8139static __inline__ __m128i __DEFAULT_FN_ATTRS
8140_mm256_cvtepi64_epi32 (__m256i __A)
8141{
8142 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8143 (__v4si) _mm_undefined_si128(),
8144 (__mmask8) -1);
8145}
8146
8147static __inline__ __m128i __DEFAULT_FN_ATTRS
8148_mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
8149{
8150 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8151 (__v4si) __O, __M);
8152}
8153
8154static __inline__ __m128i __DEFAULT_FN_ATTRS
8155_mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A)
8156{
8157 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8158 (__v4si) _mm_setzero_si128 (),
8159 __M);
8160}
8161
8162static __inline__ void __DEFAULT_FN_ATTRS
8163_mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8164{
8165 __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8166}
8167
8168static __inline__ __m128i __DEFAULT_FN_ATTRS
8169_mm_cvtepi64_epi16 (__m128i __A)
8170{
8171 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8172 (__v8hi) _mm_undefined_si128(),
8173 (__mmask8) -1);
8174}
8175
8176static __inline__ __m128i __DEFAULT_FN_ATTRS
8177_mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8178{
8179 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8180 (__v8hi)__O,
8181 __M);
8182}
8183
8184static __inline__ __m128i __DEFAULT_FN_ATTRS
8185_mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A)
8186{
8187 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8188 (__v8hi) _mm_setzero_si128 (),
8189 __M);
8190}
8191
8192static __inline__ void __DEFAULT_FN_ATTRS
8193_mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8194{
8195 __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8196}
8197
8198static __inline__ __m128i __DEFAULT_FN_ATTRS
8199_mm256_cvtepi64_epi16 (__m256i __A)
8200{
8201 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8202 (__v8hi)_mm_undefined_si128(),
8203 (__mmask8) -1);
8204}
8205
8206static __inline__ __m128i __DEFAULT_FN_ATTRS
8207_mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8208{
8209 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8210 (__v8hi) __O, __M);
8211}
8212
8213static __inline__ __m128i __DEFAULT_FN_ATTRS
8214_mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A)
8215{
8216 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8217 (__v8hi) _mm_setzero_si128 (),
8218 __M);
8219}
8220
8221static __inline__ void __DEFAULT_FN_ATTRS
8222_mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8223{
8224 __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8225}
8226
Craig Topperd2661882016-05-17 04:41:48 +00008227#define _mm256_extractf32x4_ps(A, imm) __extension__ ({ \
Craig Topper93ffabd2016-10-31 04:30:56 +00008228 (__m128)__builtin_shufflevector((__v8sf)(__m256)(A), \
8229 (__v8sf)_mm256_undefined_ps(), \
8230 ((imm) & 1) ? 4 : 0, \
8231 ((imm) & 1) ? 5 : 1, \
8232 ((imm) & 1) ? 6 : 2, \
8233 ((imm) & 1) ? 7 : 3); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008234
Craig Topperd2661882016-05-17 04:41:48 +00008235#define _mm256_mask_extractf32x4_ps(W, U, A, imm) __extension__ ({ \
Craig Topper93ffabd2016-10-31 04:30:56 +00008236 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
8237 (__v4sf)_mm256_extractf32x4_ps((A), (imm)), \
8238 (__v4sf)(W)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008239
Craig Topperd2661882016-05-17 04:41:48 +00008240#define _mm256_maskz_extractf32x4_ps(U, A, imm) __extension__ ({ \
Craig Topper93ffabd2016-10-31 04:30:56 +00008241 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
8242 (__v4sf)_mm256_extractf32x4_ps((A), (imm)), \
8243 (__v4sf)_mm_setzero_ps()); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008244
Craig Topperd2661882016-05-17 04:41:48 +00008245#define _mm256_extracti32x4_epi32(A, imm) __extension__ ({ \
Craig Topper93ffabd2016-10-31 04:30:56 +00008246 (__m128i)__builtin_shufflevector((__v8si)(__m256)(A), \
8247 (__v8si)_mm256_undefined_si256(), \
8248 ((imm) & 1) ? 4 : 0, \
8249 ((imm) & 1) ? 5 : 1, \
8250 ((imm) & 1) ? 6 : 2, \
8251 ((imm) & 1) ? 7 : 3); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008252
Craig Topperd2661882016-05-17 04:41:48 +00008253#define _mm256_mask_extracti32x4_epi32(W, U, A, imm) __extension__ ({ \
Craig Topper35072962016-10-31 05:49:11 +00008254 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
Craig Topper93ffabd2016-10-31 04:30:56 +00008255 (__v4si)_mm256_extracti32x4_epi32((A), (imm)), \
8256 (__v4si)(W)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008257
Craig Topperd2661882016-05-17 04:41:48 +00008258#define _mm256_maskz_extracti32x4_epi32(U, A, imm) __extension__ ({ \
Craig Topper35072962016-10-31 05:49:11 +00008259 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
Craig Topper93ffabd2016-10-31 04:30:56 +00008260 (__v4si)_mm256_extracti32x4_epi32((A), (imm)), \
8261 (__v4si)_mm_setzero_si128()); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008262
Craig Topperd2661882016-05-17 04:41:48 +00008263#define _mm256_insertf32x4(A, B, imm) __extension__ ({ \
Craig Topper08bf53f2016-11-01 05:47:56 +00008264 (__m256)__builtin_shufflevector((__v8sf)(A), \
8265 (__v8sf)_mm256_castps128_ps256((__m128)(B)), \
8266 ((imm) & 0x1) ? 0 : 8, \
8267 ((imm) & 0x1) ? 1 : 9, \
8268 ((imm) & 0x1) ? 2 : 10, \
8269 ((imm) & 0x1) ? 3 : 11, \
8270 ((imm) & 0x1) ? 8 : 4, \
8271 ((imm) & 0x1) ? 9 : 5, \
8272 ((imm) & 0x1) ? 10 : 6, \
8273 ((imm) & 0x1) ? 11 : 7); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008274
Craig Topperd2661882016-05-17 04:41:48 +00008275#define _mm256_mask_insertf32x4(W, U, A, B, imm) __extension__ ({ \
Craig Topper08bf53f2016-11-01 05:47:56 +00008276 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
8277 (__v8sf)_mm256_insertf32x4((A), (B), (imm)), \
8278 (__v8sf)(W)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008279
Craig Topperd2661882016-05-17 04:41:48 +00008280#define _mm256_maskz_insertf32x4(U, A, B, imm) __extension__ ({ \
Craig Topper08bf53f2016-11-01 05:47:56 +00008281 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
8282 (__v8sf)_mm256_insertf32x4((A), (B), (imm)), \
8283 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008284
Craig Topperd2661882016-05-17 04:41:48 +00008285#define _mm256_inserti32x4(A, B, imm) __extension__ ({ \
Craig Topper08bf53f2016-11-01 05:47:56 +00008286 (__m256i)__builtin_shufflevector((__v8si)(A), \
8287 (__v8si)_mm256_castsi128_si256((__m128i)(B)), \
8288 ((imm) & 0x1) ? 0 : 8, \
8289 ((imm) & 0x1) ? 1 : 9, \
8290 ((imm) & 0x1) ? 2 : 10, \
8291 ((imm) & 0x1) ? 3 : 11, \
8292 ((imm) & 0x1) ? 8 : 4, \
8293 ((imm) & 0x1) ? 9 : 5, \
8294 ((imm) & 0x1) ? 10 : 6, \
8295 ((imm) & 0x1) ? 11 : 7); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008296
Craig Topperd2661882016-05-17 04:41:48 +00008297#define _mm256_mask_inserti32x4(W, U, A, B, imm) __extension__ ({ \
Craig Topper08bf53f2016-11-01 05:47:56 +00008298 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8299 (__v8si)_mm256_inserti32x4((A), (B), (imm)), \
8300 (__v8si)(W)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008301
Craig Topperd2661882016-05-17 04:41:48 +00008302#define _mm256_maskz_inserti32x4(U, A, B, imm) __extension__ ({ \
Craig Topper08bf53f2016-11-01 05:47:56 +00008303 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8304 (__v8si)_mm256_inserti32x4((A), (B), (imm)), \
8305 (__v8si)_mm256_setzero_si256()); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008306
Craig Topperd2661882016-05-17 04:41:48 +00008307#define _mm_getmant_pd(A, B, C) __extension__({\
8308 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8309 (int)(((C)<<2) | (B)), \
8310 (__v2df)_mm_setzero_pd(), \
8311 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008312
Craig Topperd2661882016-05-17 04:41:48 +00008313#define _mm_mask_getmant_pd(W, U, A, B, C) __extension__({\
8314 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8315 (int)(((C)<<2) | (B)), \
8316 (__v2df)(__m128d)(W), \
8317 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008318
Craig Topperd2661882016-05-17 04:41:48 +00008319#define _mm_maskz_getmant_pd(U, A, B, C) __extension__({\
8320 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8321 (int)(((C)<<2) | (B)), \
8322 (__v2df)_mm_setzero_pd(), \
8323 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008324
Craig Topperd2661882016-05-17 04:41:48 +00008325#define _mm256_getmant_pd(A, B, C) __extension__ ({ \
8326 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8327 (int)(((C)<<2) | (B)), \
8328 (__v4df)_mm256_setzero_pd(), \
8329 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008330
Craig Topperd2661882016-05-17 04:41:48 +00008331#define _mm256_mask_getmant_pd(W, U, A, B, C) __extension__ ({ \
8332 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8333 (int)(((C)<<2) | (B)), \
8334 (__v4df)(__m256d)(W), \
8335 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008336
Craig Topperd2661882016-05-17 04:41:48 +00008337#define _mm256_maskz_getmant_pd(U, A, B, C) __extension__ ({ \
8338 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8339 (int)(((C)<<2) | (B)), \
8340 (__v4df)_mm256_setzero_pd(), \
8341 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008342
Craig Topperd2661882016-05-17 04:41:48 +00008343#define _mm_getmant_ps(A, B, C) __extension__ ({ \
8344 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8345 (int)(((C)<<2) | (B)), \
8346 (__v4sf)_mm_setzero_ps(), \
8347 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008348
Craig Topperd2661882016-05-17 04:41:48 +00008349#define _mm_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8350 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8351 (int)(((C)<<2) | (B)), \
8352 (__v4sf)(__m128)(W), \
8353 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008354
Craig Topperd2661882016-05-17 04:41:48 +00008355#define _mm_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8356 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8357 (int)(((C)<<2) | (B)), \
8358 (__v4sf)_mm_setzero_ps(), \
8359 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008360
Craig Topperd2661882016-05-17 04:41:48 +00008361#define _mm256_getmant_ps(A, B, C) __extension__ ({ \
8362 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8363 (int)(((C)<<2) | (B)), \
8364 (__v8sf)_mm256_setzero_ps(), \
8365 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008366
Craig Topperd2661882016-05-17 04:41:48 +00008367#define _mm256_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8368 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8369 (int)(((C)<<2) | (B)), \
8370 (__v8sf)(__m256)(W), \
8371 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008372
Craig Topperd2661882016-05-17 04:41:48 +00008373#define _mm256_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8374 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8375 (int)(((C)<<2) | (B)), \
8376 (__v8sf)_mm256_setzero_ps(), \
8377 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008378
Craig Topperd2661882016-05-17 04:41:48 +00008379#define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8380 (__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \
8381 (double const *)(addr), \
8382 (__v2di)(__m128i)(index), \
8383 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008384
Craig Topperd2661882016-05-17 04:41:48 +00008385#define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8386 (__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \
8387 (long long const *)(addr), \
8388 (__v2di)(__m128i)(index), \
8389 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008390
Craig Topperd2661882016-05-17 04:41:48 +00008391#define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8392 (__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \
8393 (double const *)(addr), \
8394 (__v4di)(__m256i)(index), \
8395 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008396
Craig Topperd2661882016-05-17 04:41:48 +00008397#define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8398 (__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \
8399 (long long const *)(addr), \
8400 (__v4di)(__m256i)(index), \
8401 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008402
Craig Topperd2661882016-05-17 04:41:48 +00008403#define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8404 (__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \
8405 (float const *)(addr), \
8406 (__v2di)(__m128i)(index), \
8407 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008408
Craig Topperd2661882016-05-17 04:41:48 +00008409#define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8410 (__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \
8411 (int const *)(addr), \
8412 (__v2di)(__m128i)(index), \
8413 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008414
Craig Topperd2661882016-05-17 04:41:48 +00008415#define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8416 (__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \
8417 (float const *)(addr), \
8418 (__v4di)(__m256i)(index), \
8419 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008420
Craig Topperd2661882016-05-17 04:41:48 +00008421#define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8422 (__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \
8423 (int const *)(addr), \
8424 (__v4di)(__m256i)(index), \
8425 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008426
Craig Topperd2661882016-05-17 04:41:48 +00008427#define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8428 (__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \
8429 (double const *)(addr), \
8430 (__v4si)(__m128i)(index), \
8431 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008432
Craig Topperd2661882016-05-17 04:41:48 +00008433#define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8434 (__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \
8435 (long long const *)(addr), \
8436 (__v4si)(__m128i)(index), \
8437 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008438
Craig Topperd2661882016-05-17 04:41:48 +00008439#define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8440 (__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \
8441 (double const *)(addr), \
8442 (__v4si)(__m128i)(index), \
8443 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008444
Craig Topperd2661882016-05-17 04:41:48 +00008445#define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8446 (__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \
8447 (long long const *)(addr), \
8448 (__v4si)(__m128i)(index), \
8449 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008450
Craig Topperd2661882016-05-17 04:41:48 +00008451#define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8452 (__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \
8453 (float const *)(addr), \
8454 (__v4si)(__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_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8458 (__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \
8459 (int const *)(addr), \
8460 (__v4si)(__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_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8464 (__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \
8465 (float const *)(addr), \
8466 (__v8si)(__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_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8470 (__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \
8471 (int const *)(addr), \
8472 (__v8si)(__m256i)(index), \
8473 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008474
Simon Pilgrim30db8112016-07-04 13:34:44 +00008475#define _mm256_permutex_pd(X, C) __extension__ ({ \
8476 (__m256d)__builtin_shufflevector((__v4df)(__m256d)(X), \
8477 (__v4df)_mm256_undefined_pd(), \
Craig Topper2a383c92016-07-04 22:18:01 +00008478 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \
8479 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008480
Simon Pilgrim30db8112016-07-04 13:34:44 +00008481#define _mm256_mask_permutex_pd(W, U, X, C) __extension__ ({ \
8482 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8483 (__v4df)_mm256_permutex_pd((X), (C)), \
8484 (__v4df)(__m256d)(W)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008485
Simon Pilgrim30db8112016-07-04 13:34:44 +00008486#define _mm256_maskz_permutex_pd(U, X, C) __extension__ ({ \
8487 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8488 (__v4df)_mm256_permutex_pd((X), (C)), \
8489 (__v4df)_mm256_setzero_pd()); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008490
Simon Pilgrim30db8112016-07-04 13:34:44 +00008491#define _mm256_permutex_epi64(X, C) __extension__ ({ \
8492 (__m256i)__builtin_shufflevector((__v4di)(__m256i)(X), \
8493 (__v4di)_mm256_undefined_si256(), \
Craig Topper2a383c92016-07-04 22:18:01 +00008494 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \
8495 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008496
Simon Pilgrim30db8112016-07-04 13:34:44 +00008497#define _mm256_mask_permutex_epi64(W, U, X, C) __extension__ ({ \
8498 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8499 (__v4di)_mm256_permutex_epi64((X), (C)), \
8500 (__v4di)(__m256i)(W)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008501
Simon Pilgrim30db8112016-07-04 13:34:44 +00008502#define _mm256_maskz_permutex_epi64(U, X, C) __extension__ ({ \
8503 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8504 (__v4di)_mm256_permutex_epi64((X), (C)), \
8505 (__v4di)_mm256_setzero_si256()); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008506
8507static __inline__ __m256d __DEFAULT_FN_ATTRS
8508_mm256_permutexvar_pd (__m256i __X, __m256d __Y)
8509{
8510 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8511 (__v4di) __X,
8512 (__v4df) _mm256_undefined_si256 (),
8513 (__mmask8) -1);
8514}
8515
8516static __inline__ __m256d __DEFAULT_FN_ATTRS
8517_mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X,
8518 __m256d __Y)
8519{
8520 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8521 (__v4di) __X,
8522 (__v4df) __W,
8523 (__mmask8) __U);
8524}
8525
8526static __inline__ __m256d __DEFAULT_FN_ATTRS
8527_mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y)
8528{
8529 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8530 (__v4di) __X,
8531 (__v4df) _mm256_setzero_pd (),
8532 (__mmask8) __U);
8533}
8534
8535static __inline__ __m256i __DEFAULT_FN_ATTRS
8536_mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
8537{
8538 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8539 (__v4di) __X,
8540 (__v4di) _mm256_setzero_si256 (),
8541 (__mmask8) __M);
8542}
8543
8544static __inline__ __m256i __DEFAULT_FN_ATTRS
Michael Zuckermana72b49ef2016-07-05 11:30:31 +00008545_mm256_permutexvar_epi64 ( __m256i __X, __m256i __Y)
Michael Zuckerman8938e832016-04-25 05:32:35 +00008546{
8547 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8548 (__v4di) __X,
8549 (__v4di) _mm256_undefined_si256 (),
8550 (__mmask8) -1);
8551}
8552
8553static __inline__ __m256i __DEFAULT_FN_ATTRS
8554_mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X,
8555 __m256i __Y)
8556{
8557 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8558 (__v4di) __X,
8559 (__v4di) __W,
8560 __M);
8561}
8562
8563static __inline__ __m256 __DEFAULT_FN_ATTRS
8564_mm256_mask_permutexvar_ps (__m256 __W, __mmask8 __U, __m256i __X,
8565 __m256 __Y)
8566{
8567 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8568 (__v8si) __X,
8569 (__v8sf) __W,
8570 (__mmask8) __U);
8571}
8572
8573static __inline__ __m256 __DEFAULT_FN_ATTRS
8574_mm256_maskz_permutexvar_ps (__mmask8 __U, __m256i __X, __m256 __Y)
8575{
8576 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8577 (__v8si) __X,
8578 (__v8sf) _mm256_setzero_ps (),
8579 (__mmask8) __U);
8580}
8581
8582static __inline__ __m256 __DEFAULT_FN_ATTRS
8583_mm256_permutexvar_ps (__m256i __X, __m256 __Y)
8584{
8585 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8586 (__v8si) __X,
8587 (__v8sf) _mm256_undefined_si256 (),
8588 (__mmask8) -1);
8589}
8590
8591static __inline__ __m256i __DEFAULT_FN_ATTRS
8592_mm256_maskz_permutexvar_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
8593{
8594 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8595 (__v8si) __X,
8596 (__v8si) _mm256_setzero_si256 (),
8597 __M);
8598}
8599
8600static __inline__ __m256i __DEFAULT_FN_ATTRS
8601_mm256_mask_permutexvar_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
8602 __m256i __Y)
8603{
8604 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8605 (__v8si) __X,
8606 (__v8si) __W,
8607 (__mmask8) __M);
8608}
8609
8610static __inline__ __m256i __DEFAULT_FN_ATTRS
8611_mm256_permutexvar_epi32 (__m256i __X, __m256i __Y)
8612{
8613 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8614 (__v8si) __X,
8615 (__v8si) _mm256_undefined_si256(),
8616 (__mmask8) -1);
8617}
8618
Craig Topperd2661882016-05-17 04:41:48 +00008619#define _mm_alignr_epi32(A, B, imm) __extension__ ({ \
Craig Topper6aefe002016-11-23 01:47:12 +00008620 (__m128i)__builtin_shufflevector((__v4si)(__m128i)(B), \
8621 (__v4si)(__m128i)(A), \
8622 ((int)(imm) & 0x3) + 0, \
8623 ((int)(imm) & 0x3) + 1, \
8624 ((int)(imm) & 0x3) + 2, \
8625 ((int)(imm) & 0x3) + 3); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008626
Craig Topperd2661882016-05-17 04:41:48 +00008627#define _mm_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
Craig Topper6aefe002016-11-23 01:47:12 +00008628 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8629 (__v4si)_mm_alignr_epi32((A), (B), (imm)), \
8630 (__v4si)(__m128i)(W)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008631
Craig Topperd2661882016-05-17 04:41:48 +00008632#define _mm_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
Craig Topper6aefe002016-11-23 01:47:12 +00008633 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8634 (__v4si)_mm_alignr_epi32((A), (B), (imm)), \
8635 (__v4si)_mm_setzero_si128()); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008636
Craig Topperd2661882016-05-17 04:41:48 +00008637#define _mm256_alignr_epi32(A, B, imm) __extension__ ({ \
Craig Topper6aefe002016-11-23 01:47:12 +00008638 (__m256i)__builtin_shufflevector((__v8si)(__m256i)(B), \
8639 (__v8si)(__m256i)(A), \
8640 ((int)(imm) & 0x7) + 0, \
8641 ((int)(imm) & 0x7) + 1, \
8642 ((int)(imm) & 0x7) + 2, \
8643 ((int)(imm) & 0x7) + 3, \
8644 ((int)(imm) & 0x7) + 4, \
8645 ((int)(imm) & 0x7) + 5, \
8646 ((int)(imm) & 0x7) + 6, \
8647 ((int)(imm) & 0x7) + 7); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008648
Craig Topperd2661882016-05-17 04:41:48 +00008649#define _mm256_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
Craig Topper6aefe002016-11-23 01:47:12 +00008650 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8651 (__v8si)_mm256_alignr_epi32((A), (B), (imm)), \
8652 (__v8si)(__m256i)(W)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008653
Craig Topperd2661882016-05-17 04:41:48 +00008654#define _mm256_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
Craig Topper6aefe002016-11-23 01:47:12 +00008655 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8656 (__v8si)_mm256_alignr_epi32((A), (B), (imm)), \
8657 (__v8si)_mm256_setzero_si256()); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008658
Craig Topperd2661882016-05-17 04:41:48 +00008659#define _mm_alignr_epi64(A, B, imm) __extension__ ({ \
Craig Topper6aefe002016-11-23 01:47:12 +00008660 (__m128i)__builtin_shufflevector((__v2di)(__m128i)(B), \
8661 (__v2di)(__m128i)(A), \
8662 ((int)(imm) & 0x1) + 0, \
8663 ((int)(imm) & 0x1) + 1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008664
Craig Topperd2661882016-05-17 04:41:48 +00008665#define _mm_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
Craig Topper6aefe002016-11-23 01:47:12 +00008666 (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
8667 (__v2di)_mm_alignr_epi64((A), (B), (imm)), \
8668 (__v2di)(__m128i)(W)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008669
Craig Topperd2661882016-05-17 04:41:48 +00008670#define _mm_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
Craig Topper6aefe002016-11-23 01:47:12 +00008671 (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
8672 (__v2di)_mm_alignr_epi64((A), (B), (imm)), \
8673 (__v2di)_mm_setzero_di()); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008674
Craig Topperd2661882016-05-17 04:41:48 +00008675#define _mm256_alignr_epi64(A, B, imm) __extension__ ({ \
Craig Topper6aefe002016-11-23 01:47:12 +00008676 (__m256i)__builtin_shufflevector((__v4di)(__m256i)(B), \
8677 (__v4di)(__m256i)(A), \
8678 ((int)(imm) & 0x3) + 0, \
8679 ((int)(imm) & 0x3) + 1, \
8680 ((int)(imm) & 0x3) + 2, \
8681 ((int)(imm) & 0x3) + 3); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008682
Craig Topperd2661882016-05-17 04:41:48 +00008683#define _mm256_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
Craig Topper6aefe002016-11-23 01:47:12 +00008684 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8685 (__v4di)_mm256_alignr_epi64((A), (B), (imm)), \
8686 (__v4di)(__m256i)(W)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008687
Craig Topperd2661882016-05-17 04:41:48 +00008688#define _mm256_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
Craig Topper6aefe002016-11-23 01:47:12 +00008689 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8690 (__v4di)_mm256_alignr_epi64((A), (B), (imm)), \
8691 (__v4di)_mm256_setzero_si256()); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008692
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008693static __inline__ __m128 __DEFAULT_FN_ATTRS
8694_mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A)
8695{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008696 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8697 (__v4sf)_mm_movehdup_ps(__A),
8698 (__v4sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008699}
8700
8701static __inline__ __m128 __DEFAULT_FN_ATTRS
8702_mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A)
8703{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008704 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8705 (__v4sf)_mm_movehdup_ps(__A),
8706 (__v4sf)_mm_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008707}
8708
8709static __inline__ __m256 __DEFAULT_FN_ATTRS
8710_mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A)
8711{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008712 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8713 (__v8sf)_mm256_movehdup_ps(__A),
8714 (__v8sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008715}
8716
8717static __inline__ __m256 __DEFAULT_FN_ATTRS
8718_mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A)
8719{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008720 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8721 (__v8sf)_mm256_movehdup_ps(__A),
8722 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008723}
8724
8725static __inline__ __m128 __DEFAULT_FN_ATTRS
8726_mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A)
8727{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008728 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8729 (__v4sf)_mm_moveldup_ps(__A),
8730 (__v4sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008731}
8732
8733static __inline__ __m128 __DEFAULT_FN_ATTRS
8734_mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A)
8735{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008736 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8737 (__v4sf)_mm_moveldup_ps(__A),
8738 (__v4sf)_mm_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008739}
8740
8741static __inline__ __m256 __DEFAULT_FN_ATTRS
8742_mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A)
8743{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008744 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8745 (__v8sf)_mm256_moveldup_ps(__A),
8746 (__v8sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008747}
8748
8749static __inline__ __m256 __DEFAULT_FN_ATTRS
8750_mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A)
8751{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008752 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8753 (__v8sf)_mm256_moveldup_ps(__A),
8754 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008755}
8756
Craig Topperd2661882016-05-17 04:41:48 +00008757#define _mm256_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008758 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8759 (__v8si)_mm256_shuffle_epi32((A), (I)), \
8760 (__v8si)(__m256i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00008761
Craig Topperd2661882016-05-17 04:41:48 +00008762#define _mm256_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008763 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
8764 (__v8si)_mm256_shuffle_epi32((A), (I)), \
8765 (__v8si)_mm256_setzero_si256()); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00008766
Craig Topperd2661882016-05-17 04:41:48 +00008767#define _mm_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008768 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8769 (__v4si)_mm_shuffle_epi32((A), (I)), \
8770 (__v4si)(__m128i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00008771
Craig Topperd2661882016-05-17 04:41:48 +00008772#define _mm_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00008773 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
8774 (__v4si)_mm_shuffle_epi32((A), (I)), \
8775 (__v4si)_mm_setzero_si128()); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008776
8777static __inline__ __m128d __DEFAULT_FN_ATTRS
8778_mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A)
8779{
Igor Bregeraadb8762016-06-08 13:59:20 +00008780 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
8781 (__v2df) __A,
8782 (__v2df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008783}
8784
8785static __inline__ __m128d __DEFAULT_FN_ATTRS
8786_mm_maskz_mov_pd (__mmask8 __U, __m128d __A)
8787{
Igor Bregeraadb8762016-06-08 13:59:20 +00008788 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
8789 (__v2df) __A,
8790 (__v2df) _mm_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008791}
8792
8793static __inline__ __m256d __DEFAULT_FN_ATTRS
8794_mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A)
8795{
Igor Bregeraadb8762016-06-08 13:59:20 +00008796 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
8797 (__v4df) __A,
8798 (__v4df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008799}
8800
8801static __inline__ __m256d __DEFAULT_FN_ATTRS
8802_mm256_maskz_mov_pd (__mmask8 __U, __m256d __A)
8803{
Igor Bregeraadb8762016-06-08 13:59:20 +00008804 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
8805 (__v4df) __A,
8806 (__v4df) _mm256_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008807}
8808
8809static __inline__ __m128 __DEFAULT_FN_ATTRS
8810_mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A)
8811{
Igor Bregeraadb8762016-06-08 13:59:20 +00008812 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
8813 (__v4sf) __A,
8814 (__v4sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008815}
8816
8817static __inline__ __m128 __DEFAULT_FN_ATTRS
8818_mm_maskz_mov_ps (__mmask8 __U, __m128 __A)
8819{
Igor Bregeraadb8762016-06-08 13:59:20 +00008820 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
8821 (__v4sf) __A,
8822 (__v4sf) _mm_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008823}
8824
8825static __inline__ __m256 __DEFAULT_FN_ATTRS
8826_mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A)
8827{
Igor Bregeraadb8762016-06-08 13:59:20 +00008828 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
8829 (__v8sf) __A,
8830 (__v8sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008831}
8832
8833static __inline__ __m256 __DEFAULT_FN_ATTRS
8834_mm256_maskz_mov_ps (__mmask8 __U, __m256 __A)
8835{
Igor Bregeraadb8762016-06-08 13:59:20 +00008836 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
8837 (__v8sf) __A,
8838 (__v8sf) _mm256_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008839}
8840
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00008841static __inline__ __m128 __DEFAULT_FN_ATTRS
8842_mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A)
8843{
8844 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
8845 (__v4sf) __W,
8846 (__mmask8) __U);
8847}
8848
8849static __inline__ __m128 __DEFAULT_FN_ATTRS
8850_mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
8851{
8852 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
8853 (__v4sf)
8854 _mm_setzero_ps (),
8855 (__mmask8) __U);
8856}
8857
8858static __inline__ __m256 __DEFAULT_FN_ATTRS
8859_mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A)
8860{
8861 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
8862 (__v8sf) __W,
8863 (__mmask8) __U);
8864}
8865
8866static __inline__ __m256 __DEFAULT_FN_ATTRS
8867_mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
8868{
8869 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
8870 (__v8sf)
8871 _mm256_setzero_ps (),
8872 (__mmask8) __U);
8873}
8874
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00008875static __inline __m128i __DEFAULT_FN_ATTRS
8876_mm_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m128 __A)
8877{
8878 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
8879 (__v8hi) __W,
8880 (__mmask8) __U);
8881}
8882
8883static __inline __m128i __DEFAULT_FN_ATTRS
8884_mm_maskz_cvtps_ph (__mmask8 __U, __m128 __A)
8885{
8886 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
8887 (__v8hi) _mm_setzero_si128 (),
8888 (__mmask8) __U);
8889}
8890
8891#define _mm_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00008892 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
8893 (__v8hi)(__m128i)(W), \
8894 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00008895
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00008896#define _mm_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00008897 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
8898 (__v8hi)_mm_setzero_si128(), \
8899 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00008900
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00008901static __inline __m128i __DEFAULT_FN_ATTRS
8902_mm256_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m256 __A)
8903{
8904 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
8905 (__v8hi) __W,
8906 (__mmask8) __U);
8907}
8908
8909static __inline __m128i __DEFAULT_FN_ATTRS
8910_mm256_maskz_cvtps_ph ( __mmask8 __U, __m256 __A)
8911{
8912 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
8913 (__v8hi) _mm_setzero_si128(),
8914 (__mmask8) __U);
8915}
8916#define _mm256_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00008917 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
8918 (__v8hi)(__m128i)(W), \
8919 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00008920
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00008921#define _mm256_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00008922 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
8923 (__v8hi)_mm_setzero_si128(), \
8924 (__mmask8)(U)); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00008925
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00008926
Michael Kupersteine45af542015-06-30 13:36:19 +00008927#undef __DEFAULT_FN_ATTRS
Eric Christopher4d1851682015-06-17 07:09:20 +00008928
Robert Khasanovb9f3a912014-10-08 17:18:13 +00008929#endif /* __AVX512VLINTRIN_H */