blob: 4cb61675e1e24fc12ffa3e77cecd53b2baa600f8 [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
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000619_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
620 __m256i __B)
621{
622 return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
623 (__v8si) __B,
624 (__v8si) __W,
625 (__mmask8) __U);
626}
627
Michael Kupersteine45af542015-06-30 13:36:19 +0000628static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000629_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
630{
631 return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
632 (__v8si) __B,
633 (__v8si)
634 _mm256_setzero_si256 (),
635 (__mmask8) __U);
636}
637
Michael Kupersteine45af542015-06-30 13:36:19 +0000638static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000639_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
640 __m256i __B)
641{
642 return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
643 (__v4di) __B,
644 (__v4di) __W,
645 (__mmask8) __U);
646}
647
Michael Kupersteine45af542015-06-30 13:36:19 +0000648static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000649_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
650{
651 return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
652 (__v4di) __B,
653 (__v4di)
654 _mm256_setzero_si256 (),
655 (__mmask8) __U);
656}
657
Michael Kupersteine45af542015-06-30 13:36:19 +0000658static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000659_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
660 __m256i __B)
661{
662 return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
663 (__v8si) __B,
664 (__v8si) __W,
665 (__mmask8) __U);
666}
667
Michael Kupersteine45af542015-06-30 13:36:19 +0000668static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000669_mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
670{
671 return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
672 (__v8si) __B,
673 (__v8si)
674 _mm256_setzero_si256 (),
675 (__mmask8) __U);
676}
677
Michael Kupersteine45af542015-06-30 13:36:19 +0000678static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000679_mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
680 __m256i __B)
681{
682 return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
683 (__v4di) __B,
684 (__v4di) __W,
685 (__mmask8) __U);
686}
687
Michael Kupersteine45af542015-06-30 13:36:19 +0000688static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000689_mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
690{
691 return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
692 (__v4di) __B,
693 (__v4di)
694 _mm256_setzero_si256 (),
695 (__mmask8) __U);
696}
697
Michael Kupersteine45af542015-06-30 13:36:19 +0000698static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000699_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
700 __m128i __B)
701{
702 return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
703 (__v4si) __B,
704 (__v4si) __W,
705 (__mmask8) __U);
706}
707
Michael Kupersteine45af542015-06-30 13:36:19 +0000708static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000709_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
710{
711 return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
712 (__v4si) __B,
713 (__v4si)
714 _mm_setzero_si128 (),
715 (__mmask8) __U);
716}
717
Michael Kupersteine45af542015-06-30 13:36:19 +0000718static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000719_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
720 __m128i __B)
721{
722 return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
723 (__v2di) __B,
724 (__v2di) __W,
725 (__mmask8) __U);
726}
727
Michael Kupersteine45af542015-06-30 13:36:19 +0000728static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000729_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
730{
731 return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
732 (__v2di) __B,
733 (__v2di)
734 _mm_setzero_si128 (),
735 (__mmask8) __U);
736}
737
Michael Kupersteine45af542015-06-30 13:36:19 +0000738static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000739_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
740 __m128i __B)
741{
742 return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
743 (__v4si) __B,
744 (__v4si) __W,
745 (__mmask8) __U);
746}
747
Michael Kupersteine45af542015-06-30 13:36:19 +0000748static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000749_mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
750{
751 return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
752 (__v4si) __B,
753 (__v4si)
754 _mm_setzero_si128 (),
755 (__mmask8) __U);
756}
757
Michael Kupersteine45af542015-06-30 13:36:19 +0000758static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000759_mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
760 __m128i __B)
761{
762 return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
763 (__v2di) __B,
764 (__v2di) __W,
765 (__mmask8) __U);
766}
767
Michael Kupersteine45af542015-06-30 13:36:19 +0000768static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000769_mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
770{
771 return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
772 (__v2di) __B,
773 (__v2di)
774 _mm_setzero_si128 (),
775 (__mmask8) __U);
776}
777
Michael Kupersteine45af542015-06-30 13:36:19 +0000778static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000779_mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
780 __m256i __Y)
781{
782 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
783 (__v8si) __Y,
784 (__v4di) __W, __M);
785}
786
Michael Kupersteine45af542015-06-30 13:36:19 +0000787static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000788_mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
789{
790 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
791 (__v8si) __Y,
792 (__v4di)
793 _mm256_setzero_si256 (),
794 __M);
795}
796
Michael Kupersteine45af542015-06-30 13:36:19 +0000797static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000798_mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X,
799 __m128i __Y)
800{
801 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
802 (__v4si) __Y,
803 (__v2di) __W, __M);
804}
805
Michael Kupersteine45af542015-06-30 13:36:19 +0000806static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000807_mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y)
808{
809 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
810 (__v4si) __Y,
811 (__v2di)
812 _mm_setzero_si128 (),
813 __M);
814}
815
Michael Kupersteine45af542015-06-30 13:36:19 +0000816static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000817_mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X,
818 __m256i __Y)
819{
820 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
821 (__v8si) __Y,
822 (__v4di) __W, __M);
823}
824
Michael Kupersteine45af542015-06-30 13:36:19 +0000825static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000826_mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y)
827{
828 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
829 (__v8si) __Y,
830 (__v4di)
831 _mm256_setzero_si256 (),
832 __M);
833}
834
Michael Kupersteine45af542015-06-30 13:36:19 +0000835static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000836_mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X,
837 __m128i __Y)
838{
839 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
840 (__v4si) __Y,
841 (__v2di) __W, __M);
842}
843
Michael Kupersteine45af542015-06-30 13:36:19 +0000844static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000845_mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y)
846{
847 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
848 (__v4si) __Y,
849 (__v2di)
850 _mm_setzero_si128 (),
851 __M);
852}
853
Michael Kupersteine45af542015-06-30 13:36:19 +0000854static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000855_mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B)
856{
857 return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
858 (__v8si) __B,
859 (__v8si)
860 _mm256_setzero_si256 (),
861 __M);
862}
863
Michael Kupersteine45af542015-06-30 13:36:19 +0000864static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000865_mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
866 __m256i __B)
867{
868 return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
869 (__v8si) __B,
870 (__v8si) __W, __M);
871}
872
Michael Kupersteine45af542015-06-30 13:36:19 +0000873static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000874_mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
875{
876 return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
877 (__v4si) __B,
878 (__v4si)
879 _mm_setzero_si128 (),
880 __M);
881}
882
Michael Kupersteine45af542015-06-30 13:36:19 +0000883static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000884_mm_mask_mullo_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
885 __m128i __B)
886{
887 return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
888 (__v4si) __B,
889 (__v4si) __W, __M);
890}
891
Michael Kupersteine45af542015-06-30 13:36:19 +0000892static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000893_mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
894 __m256i __B)
895{
896 return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
897 (__v8si) __B,
898 (__v8si) __W,
899 (__mmask8) __U);
900}
901
Michael Kupersteine45af542015-06-30 13:36:19 +0000902static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000903_mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
904{
905 return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
906 (__v8si) __B,
907 (__v8si)
908 _mm256_setzero_si256 (),
909 (__mmask8) __U);
910}
911
Michael Kupersteine45af542015-06-30 13:36:19 +0000912static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000913_mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
914{
915 return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
916 (__v4si) __B,
917 (__v4si) __W,
918 (__mmask8) __U);
919}
920
Michael Kupersteine45af542015-06-30 13:36:19 +0000921static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000922_mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
923{
924 return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
925 (__v4si) __B,
926 (__v4si)
927 _mm_setzero_si128 (),
928 (__mmask8) __U);
929}
930
Michael Kupersteine45af542015-06-30 13:36:19 +0000931static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000932_mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
933 __m256i __B)
934{
935 return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
936 (__v8si) __B,
937 (__v8si) __W,
938 (__mmask8) __U);
939}
940
Michael Kupersteine45af542015-06-30 13:36:19 +0000941static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000942_mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
943{
944 return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
945 (__v8si) __B,
946 (__v8si)
947 _mm256_setzero_si256 (),
948 (__mmask8) __U);
949}
950
Michael Kupersteine45af542015-06-30 13:36:19 +0000951static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000952_mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
953 __m128i __B)
954{
955 return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
956 (__v4si) __B,
957 (__v4si) __W,
958 (__mmask8) __U);
959}
960
Michael Kupersteine45af542015-06-30 13:36:19 +0000961static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000962_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
963{
964 return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
965 (__v4si) __B,
966 (__v4si)
967 _mm_setzero_si128 (),
968 (__mmask8) __U);
969}
970
Michael Kupersteine45af542015-06-30 13:36:19 +0000971static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000972_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
973 __m256i __B)
974{
975 return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
976 (__v8si) __B,
977 (__v8si) __W,
978 (__mmask8) __U);
979}
980
Michael Kupersteine45af542015-06-30 13:36:19 +0000981static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000982_mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
983{
984 return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
985 (__v8si) __B,
986 (__v8si)
987 _mm256_setzero_si256 (),
988 (__mmask8) __U);
989}
990
Michael Kupersteine45af542015-06-30 13:36:19 +0000991static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000992_mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
993{
994 return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
995 (__v4si) __B,
996 (__v4si) __W,
997 (__mmask8) __U);
998}
999
Michael Kupersteine45af542015-06-30 13:36:19 +00001000static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001001_mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
1002{
1003 return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
1004 (__v4si) __B,
1005 (__v4si)
1006 _mm_setzero_si128 (),
1007 (__mmask8) __U);
1008}
1009
Michael Kupersteine45af542015-06-30 13:36:19 +00001010static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001011_mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
1012 __m256i __B)
1013{
1014 return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
1015 (__v8si) __B,
1016 (__v8si) __W,
1017 (__mmask8) __U);
1018}
1019
Michael Kupersteine45af542015-06-30 13:36:19 +00001020static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001021_mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
1022{
1023 return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
1024 (__v8si) __B,
1025 (__v8si)
1026 _mm256_setzero_si256 (),
1027 (__mmask8) __U);
1028}
1029
Michael Kupersteine45af542015-06-30 13:36:19 +00001030static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001031_mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
1032 __m128i __B)
1033{
1034 return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
1035 (__v4si) __B,
1036 (__v4si) __W,
1037 (__mmask8) __U);
1038}
1039
Michael Kupersteine45af542015-06-30 13:36:19 +00001040static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001041_mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
1042{
1043 return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
1044 (__v4si) __B,
1045 (__v4si)
1046 _mm_setzero_si128 (),
1047 (__mmask8) __U);
1048}
1049
Michael Kupersteine45af542015-06-30 13:36:19 +00001050static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001051_mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1052 __m256i __B)
1053{
1054 return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
1055 (__v4di) __B,
1056 (__v4di) __W, __U);
1057}
1058
Michael Kupersteine45af542015-06-30 13:36:19 +00001059static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001060_mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1061{
1062 return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
1063 (__v4di) __B,
1064 (__v4di)
1065 _mm256_setzero_pd (),
1066 __U);
1067}
1068
Michael Kupersteine45af542015-06-30 13:36:19 +00001069static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001070_mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1071 __m128i __B)
1072{
1073 return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
1074 (__v2di) __B,
1075 (__v2di) __W, __U);
1076}
1077
Michael Kupersteine45af542015-06-30 13:36:19 +00001078static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001079_mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1080{
1081 return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
1082 (__v2di) __B,
1083 (__v2di)
1084 _mm_setzero_pd (),
1085 __U);
1086}
1087
Michael Kupersteine45af542015-06-30 13:36:19 +00001088static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001089_mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1090 __m256i __B)
1091{
1092 return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
1093 (__v4di) __B,
1094 (__v4di) __W, __U);
1095}
1096
Michael Kupersteine45af542015-06-30 13:36:19 +00001097static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001098_mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1099{
1100 return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
1101 (__v4di) __B,
1102 (__v4di)
1103 _mm256_setzero_pd (),
1104 __U);
1105}
1106
Michael Kupersteine45af542015-06-30 13:36:19 +00001107static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001108_mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1109 __m128i __B)
1110{
1111 return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
1112 (__v2di) __B,
1113 (__v2di) __W, __U);
1114}
1115
Michael Kupersteine45af542015-06-30 13:36:19 +00001116static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001117_mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1118{
1119 return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
1120 (__v2di) __B,
1121 (__v2di)
1122 _mm_setzero_pd (),
1123 __U);
1124}
1125
Michael Kupersteine45af542015-06-30 13:36:19 +00001126static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001127_mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1128 __m256i __B)
1129{
1130 return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
1131 (__v4di) __B,
1132 (__v4di) __W,
1133 (__mmask8) __U);
1134}
1135
Michael Kupersteine45af542015-06-30 13:36:19 +00001136static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001137_mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1138{
1139 return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
1140 (__v4di) __B,
1141 (__v4di)
1142 _mm256_setzero_si256 (),
1143 (__mmask8) __U);
1144}
1145
Michael Kupersteine45af542015-06-30 13:36:19 +00001146static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001147_mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1148{
1149 return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
1150 (__v2di) __B,
1151 (__v2di) __W,
1152 (__mmask8) __U);
1153}
1154
Michael Kupersteine45af542015-06-30 13:36:19 +00001155static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001156_mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1157{
1158 return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
1159 (__v2di) __B,
1160 (__v2di)
1161 _mm_setzero_si128 (),
1162 (__mmask8) __U);
1163}
1164
Michael Kupersteine45af542015-06-30 13:36:19 +00001165static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001166_mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1167 __m256i __B)
1168{
1169 return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
1170 (__v4di) __B,
1171 (__v4di) __W,
1172 (__mmask8) __U);
1173}
1174
Michael Kupersteine45af542015-06-30 13:36:19 +00001175static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001176_mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1177{
1178 return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
1179 (__v4di) __B,
1180 (__v4di)
1181 _mm256_setzero_si256 (),
1182 (__mmask8) __U);
1183}
1184
Michael Kupersteine45af542015-06-30 13:36:19 +00001185static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001186_mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1187 __m128i __B)
1188{
1189 return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
1190 (__v2di) __B,
1191 (__v2di) __W,
1192 (__mmask8) __U);
1193}
1194
Michael Kupersteine45af542015-06-30 13:36:19 +00001195static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001196_mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1197{
1198 return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
1199 (__v2di) __B,
1200 (__v2di)
1201 _mm_setzero_si128 (),
1202 (__mmask8) __U);
1203}
1204
Craig Topper2f25a5a2015-01-26 08:11:49 +00001205#define _mm_cmp_epi32_mask(a, b, p) __extension__ ({ \
1206 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001207 (__v4si)(__m128i)(b), (int)(p), \
1208 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001209
1210#define _mm_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1211 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001212 (__v4si)(__m128i)(b), (int)(p), \
1213 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001214
1215#define _mm_cmp_epu32_mask(a, b, p) __extension__ ({ \
1216 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001217 (__v4si)(__m128i)(b), (int)(p), \
1218 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001219
1220#define _mm_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1221 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001222 (__v4si)(__m128i)(b), (int)(p), \
1223 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001224
1225#define _mm256_cmp_epi32_mask(a, b, p) __extension__ ({ \
1226 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001227 (__v8si)(__m256i)(b), (int)(p), \
1228 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001229
1230#define _mm256_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1231 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001232 (__v8si)(__m256i)(b), (int)(p), \
1233 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001234
1235#define _mm256_cmp_epu32_mask(a, b, p) __extension__ ({ \
1236 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001237 (__v8si)(__m256i)(b), (int)(p), \
1238 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001239
1240#define _mm256_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1241 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001242 (__v8si)(__m256i)(b), (int)(p), \
1243 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001244
1245#define _mm_cmp_epi64_mask(a, b, p) __extension__ ({ \
1246 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001247 (__v2di)(__m128i)(b), (int)(p), \
1248 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001249
1250#define _mm_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1251 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001252 (__v2di)(__m128i)(b), (int)(p), \
1253 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001254
1255#define _mm_cmp_epu64_mask(a, b, p) __extension__ ({ \
1256 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001257 (__v2di)(__m128i)(b), (int)(p), \
1258 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001259
1260#define _mm_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1261 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001262 (__v2di)(__m128i)(b), (int)(p), \
1263 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001264
1265#define _mm256_cmp_epi64_mask(a, b, p) __extension__ ({ \
1266 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001267 (__v4di)(__m256i)(b), (int)(p), \
1268 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001269
1270#define _mm256_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1271 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001272 (__v4di)(__m256i)(b), (int)(p), \
1273 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001274
1275#define _mm256_cmp_epu64_mask(a, b, p) __extension__ ({ \
1276 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001277 (__v4di)(__m256i)(b), (int)(p), \
1278 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001279
1280#define _mm256_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1281 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001282 (__v4di)(__m256i)(b), (int)(p), \
1283 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001284
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001285#define _mm256_cmp_ps_mask(a, b, p) __extension__ ({ \
1286 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001287 (__v8sf)(__m256)(b), (int)(p), \
1288 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001289
1290#define _mm256_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
1291 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001292 (__v8sf)(__m256)(b), (int)(p), \
1293 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001294
1295#define _mm256_cmp_pd_mask(a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001296 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
1297 (__v4df)(__m256d)(b), (int)(p), \
1298 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001299
1300#define _mm256_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001301 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
1302 (__v4df)(__m256d)(b), (int)(p), \
1303 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001304
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001305#define _mm_cmp_ps_mask(a, b, p) __extension__ ({ \
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001306 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001307 (__v4sf)(__m128)(b), (int)(p), \
1308 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001309
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001310#define _mm_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001311 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001312 (__v4sf)(__m128)(b), (int)(p), \
1313 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001314
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001315#define _mm_cmp_pd_mask(a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001316 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
1317 (__v2df)(__m128d)(b), (int)(p), \
1318 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001319
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001320#define _mm_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001321 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
1322 (__v2df)(__m128d)(b), (int)(p), \
1323 (__mmask8)(m)); })
Eric Christopher4d1851682015-06-17 07:09:20 +00001324
Michael Kupersteine45af542015-06-30 13:36:19 +00001325static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001326_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1327{
1328 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1329 (__v2df) __B,
1330 (__v2df) __C,
1331 (__mmask8) __U);
1332}
1333
Michael Kupersteine45af542015-06-30 13:36:19 +00001334static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001335_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1336{
1337 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 ((__v2df) __A,
1338 (__v2df) __B,
1339 (__v2df) __C,
1340 (__mmask8) __U);
1341}
1342
Michael Kupersteine45af542015-06-30 13:36:19 +00001343static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001344_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1345{
1346 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1347 (__v2df) __B,
1348 (__v2df) __C,
1349 (__mmask8) __U);
1350}
1351
Michael Kupersteine45af542015-06-30 13:36:19 +00001352static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001353_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1354{
1355 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1356 (__v2df) __B,
1357 -(__v2df) __C,
1358 (__mmask8) __U);
1359}
1360
Michael Kupersteine45af542015-06-30 13:36:19 +00001361static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001362_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1363{
1364 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1365 (__v2df) __B,
1366 -(__v2df) __C,
1367 (__mmask8) __U);
1368}
1369
Michael Kupersteine45af542015-06-30 13:36:19 +00001370static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001371_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1372{
1373 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 (-(__v2df) __A,
1374 (__v2df) __B,
1375 (__v2df) __C,
1376 (__mmask8) __U);
1377}
1378
Michael Kupersteine45af542015-06-30 13:36:19 +00001379static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001380_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1381{
1382 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1383 (__v2df) __B,
1384 (__v2df) __C,
1385 (__mmask8) __U);
1386}
1387
Michael Kupersteine45af542015-06-30 13:36:19 +00001388static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001389_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1390{
1391 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1392 (__v2df) __B,
1393 -(__v2df) __C,
1394 (__mmask8) __U);
1395}
1396
Michael Kupersteine45af542015-06-30 13:36:19 +00001397static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001398_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1399{
1400 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1401 (__v4df) __B,
1402 (__v4df) __C,
1403 (__mmask8) __U);
1404}
1405
Michael Kupersteine45af542015-06-30 13:36:19 +00001406static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001407_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1408{
1409 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 ((__v4df) __A,
1410 (__v4df) __B,
1411 (__v4df) __C,
1412 (__mmask8) __U);
1413}
1414
Michael Kupersteine45af542015-06-30 13:36:19 +00001415static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001416_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1417{
1418 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1419 (__v4df) __B,
1420 (__v4df) __C,
1421 (__mmask8) __U);
1422}
1423
Michael Kupersteine45af542015-06-30 13:36:19 +00001424static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001425_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1426{
1427 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1428 (__v4df) __B,
1429 -(__v4df) __C,
1430 (__mmask8) __U);
1431}
1432
Michael Kupersteine45af542015-06-30 13:36:19 +00001433static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001434_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1435{
1436 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1437 (__v4df) __B,
1438 -(__v4df) __C,
1439 (__mmask8) __U);
1440}
1441
Michael Kupersteine45af542015-06-30 13:36:19 +00001442static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001443_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1444{
1445 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 (-(__v4df) __A,
1446 (__v4df) __B,
1447 (__v4df) __C,
1448 (__mmask8) __U);
1449}
1450
Michael Kupersteine45af542015-06-30 13:36:19 +00001451static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001452_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1453{
1454 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1455 (__v4df) __B,
1456 (__v4df) __C,
1457 (__mmask8) __U);
1458}
1459
Michael Kupersteine45af542015-06-30 13:36:19 +00001460static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001461_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1462{
1463 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1464 (__v4df) __B,
1465 -(__v4df) __C,
1466 (__mmask8) __U);
1467}
1468
Michael Kupersteine45af542015-06-30 13:36:19 +00001469static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001470_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1471{
1472 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1473 (__v4sf) __B,
1474 (__v4sf) __C,
1475 (__mmask8) __U);
1476}
1477
Michael Kupersteine45af542015-06-30 13:36:19 +00001478static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001479_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1480{
1481 return (__m128) __builtin_ia32_vfmaddps128_mask3 ((__v4sf) __A,
1482 (__v4sf) __B,
1483 (__v4sf) __C,
1484 (__mmask8) __U);
1485}
1486
Michael Kupersteine45af542015-06-30 13:36:19 +00001487static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001488_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1489{
1490 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1491 (__v4sf) __B,
1492 (__v4sf) __C,
1493 (__mmask8) __U);
1494}
1495
Michael Kupersteine45af542015-06-30 13:36:19 +00001496static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001497_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1498{
1499 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1500 (__v4sf) __B,
1501 -(__v4sf) __C,
1502 (__mmask8) __U);
1503}
1504
Michael Kupersteine45af542015-06-30 13:36:19 +00001505static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001506_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1507{
1508 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1509 (__v4sf) __B,
1510 -(__v4sf) __C,
1511 (__mmask8) __U);
1512}
1513
Michael Kupersteine45af542015-06-30 13:36:19 +00001514static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001515_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1516{
1517 return (__m128) __builtin_ia32_vfmaddps128_mask3 (-(__v4sf) __A,
1518 (__v4sf) __B,
1519 (__v4sf) __C,
1520 (__mmask8) __U);
1521}
1522
Michael Kupersteine45af542015-06-30 13:36:19 +00001523static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001524_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1525{
1526 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1527 (__v4sf) __B,
1528 (__v4sf) __C,
1529 (__mmask8) __U);
1530}
1531
Michael Kupersteine45af542015-06-30 13:36:19 +00001532static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001533_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1534{
1535 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1536 (__v4sf) __B,
1537 -(__v4sf) __C,
1538 (__mmask8) __U);
1539}
1540
Michael Kupersteine45af542015-06-30 13:36:19 +00001541static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001542_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1543{
1544 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1545 (__v8sf) __B,
1546 (__v8sf) __C,
1547 (__mmask8) __U);
1548}
1549
Michael Kupersteine45af542015-06-30 13:36:19 +00001550static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001551_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1552{
1553 return (__m256) __builtin_ia32_vfmaddps256_mask3 ((__v8sf) __A,
1554 (__v8sf) __B,
1555 (__v8sf) __C,
1556 (__mmask8) __U);
1557}
1558
Michael Kupersteine45af542015-06-30 13:36:19 +00001559static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001560_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1561{
1562 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1563 (__v8sf) __B,
1564 (__v8sf) __C,
1565 (__mmask8) __U);
1566}
1567
Michael Kupersteine45af542015-06-30 13:36:19 +00001568static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001569_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1570{
1571 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1572 (__v8sf) __B,
1573 -(__v8sf) __C,
1574 (__mmask8) __U);
1575}
1576
Michael Kupersteine45af542015-06-30 13:36:19 +00001577static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001578_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1579{
1580 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1581 (__v8sf) __B,
1582 -(__v8sf) __C,
1583 (__mmask8) __U);
1584}
1585
Michael Kupersteine45af542015-06-30 13:36:19 +00001586static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001587_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1588{
1589 return (__m256) __builtin_ia32_vfmaddps256_mask3 (-(__v8sf) __A,
1590 (__v8sf) __B,
1591 (__v8sf) __C,
1592 (__mmask8) __U);
1593}
1594
Michael Kupersteine45af542015-06-30 13:36:19 +00001595static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001596_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1597{
1598 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1599 (__v8sf) __B,
1600 (__v8sf) __C,
1601 (__mmask8) __U);
1602}
1603
Michael Kupersteine45af542015-06-30 13:36:19 +00001604static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001605_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1606{
1607 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1608 (__v8sf) __B,
1609 -(__v8sf) __C,
1610 (__mmask8) __U);
1611}
1612
Michael Kupersteine45af542015-06-30 13:36:19 +00001613static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001614_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1615{
1616 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1617 (__v2df) __B,
1618 (__v2df) __C,
1619 (__mmask8) __U);
1620}
1621
Michael Kupersteine45af542015-06-30 13:36:19 +00001622static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001623_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1624{
1625 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask3 ((__v2df) __A,
1626 (__v2df) __B,
1627 (__v2df) __C,
1628 (__mmask8)
1629 __U);
1630}
1631
Michael Kupersteine45af542015-06-30 13:36:19 +00001632static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001633_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1634{
1635 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1636 (__v2df) __B,
1637 (__v2df) __C,
1638 (__mmask8)
1639 __U);
1640}
1641
Michael Kupersteine45af542015-06-30 13:36:19 +00001642static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001643_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1644{
1645 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1646 (__v2df) __B,
1647 -(__v2df) __C,
1648 (__mmask8) __U);
1649}
1650
Michael Kupersteine45af542015-06-30 13:36:19 +00001651static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001652_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1653{
1654 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1655 (__v2df) __B,
1656 -(__v2df) __C,
1657 (__mmask8)
1658 __U);
1659}
1660
Michael Kupersteine45af542015-06-30 13:36:19 +00001661static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001662_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1663{
1664 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1665 (__v4df) __B,
1666 (__v4df) __C,
1667 (__mmask8) __U);
1668}
1669
Michael Kupersteine45af542015-06-30 13:36:19 +00001670static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001671_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1672{
1673 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask3 ((__v4df) __A,
1674 (__v4df) __B,
1675 (__v4df) __C,
1676 (__mmask8)
1677 __U);
1678}
1679
Michael Kupersteine45af542015-06-30 13:36:19 +00001680static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001681_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1682{
1683 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1684 (__v4df) __B,
1685 (__v4df) __C,
1686 (__mmask8)
1687 __U);
1688}
1689
Michael Kupersteine45af542015-06-30 13:36:19 +00001690static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001691_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1692{
1693 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1694 (__v4df) __B,
1695 -(__v4df) __C,
1696 (__mmask8) __U);
1697}
1698
Michael Kupersteine45af542015-06-30 13:36:19 +00001699static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001700_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1701{
1702 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1703 (__v4df) __B,
1704 -(__v4df) __C,
1705 (__mmask8)
1706 __U);
1707}
1708
Michael Kupersteine45af542015-06-30 13:36:19 +00001709static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001710_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1711{
1712 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1713 (__v4sf) __B,
1714 (__v4sf) __C,
1715 (__mmask8) __U);
1716}
1717
Michael Kupersteine45af542015-06-30 13:36:19 +00001718static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001719_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1720{
1721 return (__m128) __builtin_ia32_vfmaddsubps128_mask3 ((__v4sf) __A,
1722 (__v4sf) __B,
1723 (__v4sf) __C,
1724 (__mmask8) __U);
1725}
1726
Michael Kupersteine45af542015-06-30 13:36:19 +00001727static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001728_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1729{
1730 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1731 (__v4sf) __B,
1732 (__v4sf) __C,
1733 (__mmask8) __U);
1734}
1735
Michael Kupersteine45af542015-06-30 13:36:19 +00001736static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001737_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1738{
1739 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1740 (__v4sf) __B,
1741 -(__v4sf) __C,
1742 (__mmask8) __U);
1743}
1744
Michael Kupersteine45af542015-06-30 13:36:19 +00001745static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001746_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1747{
1748 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1749 (__v4sf) __B,
1750 -(__v4sf) __C,
1751 (__mmask8) __U);
1752}
1753
Michael Kupersteine45af542015-06-30 13:36:19 +00001754static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001755_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B,
1756 __m256 __C)
1757{
1758 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1759 (__v8sf) __B,
1760 (__v8sf) __C,
1761 (__mmask8) __U);
1762}
1763
Michael Kupersteine45af542015-06-30 13:36:19 +00001764static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001765_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1766{
1767 return (__m256) __builtin_ia32_vfmaddsubps256_mask3 ((__v8sf) __A,
1768 (__v8sf) __B,
1769 (__v8sf) __C,
1770 (__mmask8) __U);
1771}
1772
Michael Kupersteine45af542015-06-30 13:36:19 +00001773static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001774_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1775{
1776 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1777 (__v8sf) __B,
1778 (__v8sf) __C,
1779 (__mmask8) __U);
1780}
1781
Michael Kupersteine45af542015-06-30 13:36:19 +00001782static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001783_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1784{
1785 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1786 (__v8sf) __B,
1787 -(__v8sf) __C,
1788 (__mmask8) __U);
1789}
1790
Michael Kupersteine45af542015-06-30 13:36:19 +00001791static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001792_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1793{
1794 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1795 (__v8sf) __B,
1796 -(__v8sf) __C,
1797 (__mmask8) __U);
1798}
1799
Michael Kupersteine45af542015-06-30 13:36:19 +00001800static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001801_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1802{
1803 return (__m128d) __builtin_ia32_vfmsubpd128_mask3 ((__v2df) __A,
1804 (__v2df) __B,
1805 (__v2df) __C,
1806 (__mmask8) __U);
1807}
1808
Michael Kupersteine45af542015-06-30 13:36:19 +00001809static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001810_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1811{
1812 return (__m256d) __builtin_ia32_vfmsubpd256_mask3 ((__v4df) __A,
1813 (__v4df) __B,
1814 (__v4df) __C,
1815 (__mmask8) __U);
1816}
1817
Michael Kupersteine45af542015-06-30 13:36:19 +00001818static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001819_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1820{
1821 return (__m128) __builtin_ia32_vfmsubps128_mask3 ((__v4sf) __A,
1822 (__v4sf) __B,
1823 (__v4sf) __C,
1824 (__mmask8) __U);
1825}
1826
Michael Kupersteine45af542015-06-30 13:36:19 +00001827static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001828_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1829{
1830 return (__m256) __builtin_ia32_vfmsubps256_mask3 ((__v8sf) __A,
1831 (__v8sf) __B,
1832 (__v8sf) __C,
1833 (__mmask8) __U);
1834}
1835
Michael Kupersteine45af542015-06-30 13:36:19 +00001836static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001837_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1838{
1839 return (__m128d) __builtin_ia32_vfmsubaddpd128_mask3 ((__v2df) __A,
1840 (__v2df) __B,
1841 (__v2df) __C,
1842 (__mmask8)
1843 __U);
1844}
1845
Michael Kupersteine45af542015-06-30 13:36:19 +00001846static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001847_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1848{
1849 return (__m256d) __builtin_ia32_vfmsubaddpd256_mask3 ((__v4df) __A,
1850 (__v4df) __B,
1851 (__v4df) __C,
1852 (__mmask8)
1853 __U);
1854}
1855
Michael Kupersteine45af542015-06-30 13:36:19 +00001856static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001857_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1858{
1859 return (__m128) __builtin_ia32_vfmsubaddps128_mask3 ((__v4sf) __A,
1860 (__v4sf) __B,
1861 (__v4sf) __C,
1862 (__mmask8) __U);
1863}
1864
Michael Kupersteine45af542015-06-30 13:36:19 +00001865static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001866_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1867{
1868 return (__m256) __builtin_ia32_vfmsubaddps256_mask3 ((__v8sf) __A,
1869 (__v8sf) __B,
1870 (__v8sf) __C,
1871 (__mmask8) __U);
1872}
1873
Michael Kupersteine45af542015-06-30 13:36:19 +00001874static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001875_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1876{
1877 return (__m128d) __builtin_ia32_vfnmaddpd128_mask ((__v2df) __A,
1878 (__v2df) __B,
1879 (__v2df) __C,
1880 (__mmask8) __U);
1881}
1882
Michael Kupersteine45af542015-06-30 13:36:19 +00001883static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001884_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1885{
1886 return (__m256d) __builtin_ia32_vfnmaddpd256_mask ((__v4df) __A,
1887 (__v4df) __B,
1888 (__v4df) __C,
1889 (__mmask8) __U);
1890}
1891
Michael Kupersteine45af542015-06-30 13:36:19 +00001892static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001893_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1894{
1895 return (__m128) __builtin_ia32_vfnmaddps128_mask ((__v4sf) __A,
1896 (__v4sf) __B,
1897 (__v4sf) __C,
1898 (__mmask8) __U);
1899}
1900
Michael Kupersteine45af542015-06-30 13:36:19 +00001901static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001902_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1903{
1904 return (__m256) __builtin_ia32_vfnmaddps256_mask ((__v8sf) __A,
1905 (__v8sf) __B,
1906 (__v8sf) __C,
1907 (__mmask8) __U);
1908}
1909
Michael Kupersteine45af542015-06-30 13:36:19 +00001910static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001911_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1912{
1913 return (__m128d) __builtin_ia32_vfnmsubpd128_mask ((__v2df) __A,
1914 (__v2df) __B,
1915 (__v2df) __C,
1916 (__mmask8) __U);
1917}
1918
Michael Kupersteine45af542015-06-30 13:36:19 +00001919static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001920_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1921{
1922 return (__m128d) __builtin_ia32_vfnmsubpd128_mask3 ((__v2df) __A,
1923 (__v2df) __B,
1924 (__v2df) __C,
1925 (__mmask8) __U);
1926}
1927
Michael Kupersteine45af542015-06-30 13:36:19 +00001928static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001929_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1930{
1931 return (__m256d) __builtin_ia32_vfnmsubpd256_mask ((__v4df) __A,
1932 (__v4df) __B,
1933 (__v4df) __C,
1934 (__mmask8) __U);
1935}
1936
Michael Kupersteine45af542015-06-30 13:36:19 +00001937static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001938_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1939{
1940 return (__m256d) __builtin_ia32_vfnmsubpd256_mask3 ((__v4df) __A,
1941 (__v4df) __B,
1942 (__v4df) __C,
1943 (__mmask8) __U);
1944}
1945
Michael Kupersteine45af542015-06-30 13:36:19 +00001946static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001947_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1948{
1949 return (__m128) __builtin_ia32_vfnmsubps128_mask ((__v4sf) __A,
1950 (__v4sf) __B,
1951 (__v4sf) __C,
1952 (__mmask8) __U);
1953}
1954
Michael Kupersteine45af542015-06-30 13:36:19 +00001955static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001956_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1957{
1958 return (__m128) __builtin_ia32_vfnmsubps128_mask3 ((__v4sf) __A,
1959 (__v4sf) __B,
1960 (__v4sf) __C,
1961 (__mmask8) __U);
1962}
1963
Michael Kupersteine45af542015-06-30 13:36:19 +00001964static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001965_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1966{
1967 return (__m256) __builtin_ia32_vfnmsubps256_mask ((__v8sf) __A,
1968 (__v8sf) __B,
1969 (__v8sf) __C,
1970 (__mmask8) __U);
1971}
1972
Michael Kupersteine45af542015-06-30 13:36:19 +00001973static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001974_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1975{
1976 return (__m256) __builtin_ia32_vfnmsubps256_mask3 ((__v8sf) __A,
1977 (__v8sf) __B,
1978 (__v8sf) __C,
1979 (__mmask8) __U);
1980}
1981
Asaf Badouh74da3872015-07-28 08:26:14 +00001982static __inline__ __m128d __DEFAULT_FN_ATTRS
1983_mm_mask_add_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1984 return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A,
1985 (__v2df) __B,
1986 (__v2df) __W,
1987 (__mmask8) __U);
1988}
1989
1990static __inline__ __m128d __DEFAULT_FN_ATTRS
1991_mm_maskz_add_pd (__mmask8 __U, __m128d __A, __m128d __B) {
1992 return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A,
1993 (__v2df) __B,
1994 (__v2df)
1995 _mm_setzero_pd (),
1996 (__mmask8) __U);
1997}
1998
1999static __inline__ __m256d __DEFAULT_FN_ATTRS
2000_mm256_mask_add_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2001 return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A,
2002 (__v4df) __B,
2003 (__v4df) __W,
2004 (__mmask8) __U);
2005}
2006
2007static __inline__ __m256d __DEFAULT_FN_ATTRS
2008_mm256_maskz_add_pd (__mmask8 __U, __m256d __A, __m256d __B) {
2009 return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A,
2010 (__v4df) __B,
2011 (__v4df)
2012 _mm256_setzero_pd (),
2013 (__mmask8) __U);
2014}
2015
2016static __inline__ __m128 __DEFAULT_FN_ATTRS
2017_mm_mask_add_ps (__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) {
2018 return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A,
2019 (__v4sf) __B,
2020 (__v4sf) __W,
2021 (__mmask8) __U);
2022}
2023
2024static __inline__ __m128 __DEFAULT_FN_ATTRS
2025_mm_maskz_add_ps (__mmask16 __U, __m128 __A, __m128 __B) {
2026 return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A,
2027 (__v4sf) __B,
2028 (__v4sf)
2029 _mm_setzero_ps (),
2030 (__mmask8) __U);
2031}
2032
2033static __inline__ __m256 __DEFAULT_FN_ATTRS
2034_mm256_mask_add_ps (__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) {
2035 return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A,
2036 (__v8sf) __B,
2037 (__v8sf) __W,
2038 (__mmask8) __U);
2039}
2040
2041static __inline__ __m256 __DEFAULT_FN_ATTRS
2042_mm256_maskz_add_ps (__mmask16 __U, __m256 __A, __m256 __B) {
2043 return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A,
2044 (__v8sf) __B,
2045 (__v8sf)
2046 _mm256_setzero_ps (),
2047 (__mmask8) __U);
2048}
2049
2050static __inline__ __m128i __DEFAULT_FN_ATTRS
2051_mm_mask_blend_epi32 (__mmask8 __U, __m128i __A, __m128i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002052 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002053 (__v4si) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002054 (__v4si) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002055}
2056
2057static __inline__ __m256i __DEFAULT_FN_ATTRS
2058_mm256_mask_blend_epi32 (__mmask8 __U, __m256i __A, __m256i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002059 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002060 (__v8si) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002061 (__v8si) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002062}
2063
2064static __inline__ __m128d __DEFAULT_FN_ATTRS
2065_mm_mask_blend_pd (__mmask8 __U, __m128d __A, __m128d __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002066 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002067 (__v2df) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002068 (__v2df) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002069}
2070
2071static __inline__ __m256d __DEFAULT_FN_ATTRS
2072_mm256_mask_blend_pd (__mmask8 __U, __m256d __A, __m256d __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002073 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002074 (__v4df) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002075 (__v4df) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002076}
2077
2078static __inline__ __m128 __DEFAULT_FN_ATTRS
2079_mm_mask_blend_ps (__mmask8 __U, __m128 __A, __m128 __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002080 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002081 (__v4sf) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002082 (__v4sf) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002083}
2084
2085static __inline__ __m256 __DEFAULT_FN_ATTRS
2086_mm256_mask_blend_ps (__mmask8 __U, __m256 __A, __m256 __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002087 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002088 (__v8sf) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002089 (__v8sf) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002090}
2091
2092static __inline__ __m128i __DEFAULT_FN_ATTRS
2093_mm_mask_blend_epi64 (__mmask8 __U, __m128i __A, __m128i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002094 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002095 (__v2di) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002096 (__v2di) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002097}
2098
2099static __inline__ __m256i __DEFAULT_FN_ATTRS
2100_mm256_mask_blend_epi64 (__mmask8 __U, __m256i __A, __m256i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002101 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002102 (__v4di) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002103 (__v4di) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002104}
2105
2106static __inline__ __m128d __DEFAULT_FN_ATTRS
2107_mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2108 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
2109 (__v2df) __W,
2110 (__mmask8) __U);
2111}
2112
2113static __inline__ __m128d __DEFAULT_FN_ATTRS
2114_mm_maskz_compress_pd (__mmask8 __U, __m128d __A) {
2115 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
2116 (__v2df)
2117 _mm_setzero_pd (),
2118 (__mmask8) __U);
2119}
2120
2121static __inline__ __m256d __DEFAULT_FN_ATTRS
2122_mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2123 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
2124 (__v4df) __W,
2125 (__mmask8) __U);
2126}
2127
2128static __inline__ __m256d __DEFAULT_FN_ATTRS
2129_mm256_maskz_compress_pd (__mmask8 __U, __m256d __A) {
2130 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
2131 (__v4df)
2132 _mm256_setzero_pd (),
2133 (__mmask8) __U);
2134}
2135
2136static __inline__ __m128i __DEFAULT_FN_ATTRS
2137_mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2138 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
2139 (__v2di) __W,
2140 (__mmask8) __U);
2141}
2142
2143static __inline__ __m128i __DEFAULT_FN_ATTRS
2144_mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A) {
2145 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
2146 (__v2di)
2147 _mm_setzero_si128 (),
2148 (__mmask8) __U);
2149}
2150
2151static __inline__ __m256i __DEFAULT_FN_ATTRS
2152_mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2153 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
2154 (__v4di) __W,
2155 (__mmask8) __U);
2156}
2157
2158static __inline__ __m256i __DEFAULT_FN_ATTRS
2159_mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A) {
2160 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
2161 (__v4di)
2162 _mm256_setzero_si256 (),
2163 (__mmask8) __U);
2164}
2165
2166static __inline__ __m128 __DEFAULT_FN_ATTRS
2167_mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A) {
2168 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
2169 (__v4sf) __W,
2170 (__mmask8) __U);
2171}
2172
2173static __inline__ __m128 __DEFAULT_FN_ATTRS
2174_mm_maskz_compress_ps (__mmask8 __U, __m128 __A) {
2175 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
2176 (__v4sf)
2177 _mm_setzero_ps (),
2178 (__mmask8) __U);
2179}
2180
2181static __inline__ __m256 __DEFAULT_FN_ATTRS
2182_mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A) {
2183 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
2184 (__v8sf) __W,
2185 (__mmask8) __U);
2186}
2187
2188static __inline__ __m256 __DEFAULT_FN_ATTRS
2189_mm256_maskz_compress_ps (__mmask8 __U, __m256 __A) {
2190 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
2191 (__v8sf)
2192 _mm256_setzero_ps (),
2193 (__mmask8) __U);
2194}
2195
2196static __inline__ __m128i __DEFAULT_FN_ATTRS
2197_mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
2198 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
2199 (__v4si) __W,
2200 (__mmask8) __U);
2201}
2202
2203static __inline__ __m128i __DEFAULT_FN_ATTRS
2204_mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A) {
2205 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
2206 (__v4si)
2207 _mm_setzero_si128 (),
2208 (__mmask8) __U);
2209}
2210
2211static __inline__ __m256i __DEFAULT_FN_ATTRS
2212_mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
2213 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
2214 (__v8si) __W,
2215 (__mmask8) __U);
2216}
2217
2218static __inline__ __m256i __DEFAULT_FN_ATTRS
2219_mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A) {
2220 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
2221 (__v8si)
2222 _mm256_setzero_si256 (),
2223 (__mmask8) __U);
2224}
2225
2226static __inline__ void __DEFAULT_FN_ATTRS
2227_mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A) {
2228 __builtin_ia32_compressstoredf128_mask ((__v2df *) __P,
2229 (__v2df) __A,
2230 (__mmask8) __U);
2231}
2232
2233static __inline__ void __DEFAULT_FN_ATTRS
2234_mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A) {
2235 __builtin_ia32_compressstoredf256_mask ((__v4df *) __P,
2236 (__v4df) __A,
2237 (__mmask8) __U);
2238}
2239
2240static __inline__ void __DEFAULT_FN_ATTRS
2241_mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A) {
2242 __builtin_ia32_compressstoredi128_mask ((__v2di *) __P,
2243 (__v2di) __A,
2244 (__mmask8) __U);
2245}
2246
2247static __inline__ void __DEFAULT_FN_ATTRS
2248_mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A) {
2249 __builtin_ia32_compressstoredi256_mask ((__v4di *) __P,
2250 (__v4di) __A,
2251 (__mmask8) __U);
2252}
2253
2254static __inline__ void __DEFAULT_FN_ATTRS
2255_mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A) {
2256 __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P,
2257 (__v4sf) __A,
2258 (__mmask8) __U);
2259}
2260
2261static __inline__ void __DEFAULT_FN_ATTRS
2262_mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A) {
2263 __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P,
2264 (__v8sf) __A,
2265 (__mmask8) __U);
2266}
2267
2268static __inline__ void __DEFAULT_FN_ATTRS
2269_mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A) {
2270 __builtin_ia32_compressstoresi128_mask ((__v4si *) __P,
2271 (__v4si) __A,
2272 (__mmask8) __U);
2273}
2274
2275static __inline__ void __DEFAULT_FN_ATTRS
2276_mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A) {
2277 __builtin_ia32_compressstoresi256_mask ((__v8si *) __P,
2278 (__v8si) __A,
2279 (__mmask8) __U);
2280}
2281
2282static __inline__ __m128d __DEFAULT_FN_ATTRS
2283_mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2284 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
2285 (__v2df) __W,
2286 (__mmask8) __U);
2287}
2288
2289static __inline__ __m128d __DEFAULT_FN_ATTRS
2290_mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
2291 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
2292 (__v2df)
2293 _mm_setzero_pd (),
2294 (__mmask8) __U);
2295}
2296
2297static __inline__ __m256d __DEFAULT_FN_ATTRS
2298_mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2299 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
2300 (__v4df) __W,
2301 (__mmask8) __U);
2302}
2303
2304static __inline__ __m256d __DEFAULT_FN_ATTRS
2305_mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
2306 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
2307 (__v4df)
2308 _mm256_setzero_pd (),
2309 (__mmask8) __U);
2310}
2311
2312static __inline__ __m128 __DEFAULT_FN_ATTRS
2313_mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2314 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2315 (__v4sf) __W,
2316 (__mmask8) __U);
2317}
2318
2319static __inline__ __m128 __DEFAULT_FN_ATTRS
2320_mm_maskz_cvtepi32_ps (__mmask16 __U, __m128i __A) {
2321 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2322 (__v4sf)
2323 _mm_setzero_ps (),
2324 (__mmask8) __U);
2325}
2326
2327static __inline__ __m256 __DEFAULT_FN_ATTRS
2328_mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2329 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2330 (__v8sf) __W,
2331 (__mmask8) __U);
2332}
2333
2334static __inline__ __m256 __DEFAULT_FN_ATTRS
2335_mm256_maskz_cvtepi32_ps (__mmask16 __U, __m256i __A) {
2336 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2337 (__v8sf)
2338 _mm256_setzero_ps (),
2339 (__mmask8) __U);
2340}
2341
2342static __inline__ __m128i __DEFAULT_FN_ATTRS
2343_mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2344 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2345 (__v4si) __W,
2346 (__mmask8) __U);
2347}
2348
2349static __inline__ __m128i __DEFAULT_FN_ATTRS
2350_mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) {
2351 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2352 (__v4si)
2353 _mm_setzero_si128 (),
2354 (__mmask8) __U);
2355}
2356
2357static __inline__ __m128i __DEFAULT_FN_ATTRS
2358_mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2359 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2360 (__v4si) __W,
2361 (__mmask8) __U);
2362}
2363
2364static __inline__ __m128i __DEFAULT_FN_ATTRS
2365_mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) {
2366 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2367 (__v4si)
2368 _mm_setzero_si128 (),
2369 (__mmask8) __U);
2370}
2371
2372static __inline__ __m128 __DEFAULT_FN_ATTRS
2373_mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) {
2374 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2375 (__v4sf) __W,
2376 (__mmask8) __U);
2377}
2378
2379static __inline__ __m128 __DEFAULT_FN_ATTRS
2380_mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) {
2381 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2382 (__v4sf)
2383 _mm_setzero_ps (),
2384 (__mmask8) __U);
2385}
2386
2387static __inline__ __m128 __DEFAULT_FN_ATTRS
2388_mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) {
2389 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2390 (__v4sf) __W,
2391 (__mmask8) __U);
2392}
2393
2394static __inline__ __m128 __DEFAULT_FN_ATTRS
2395_mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) {
2396 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2397 (__v4sf)
2398 _mm_setzero_ps (),
2399 (__mmask8) __U);
2400}
2401
2402static __inline__ __m128i __DEFAULT_FN_ATTRS
2403_mm_cvtpd_epu32 (__m128d __A) {
2404 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2405 (__v4si)
2406 _mm_setzero_si128 (),
2407 (__mmask8) -1);
2408}
2409
2410static __inline__ __m128i __DEFAULT_FN_ATTRS
2411_mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2412 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2413 (__v4si) __W,
2414 (__mmask8) __U);
2415}
2416
2417static __inline__ __m128i __DEFAULT_FN_ATTRS
2418_mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) {
2419 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2420 (__v4si)
2421 _mm_setzero_si128 (),
2422 (__mmask8) __U);
2423}
2424
2425static __inline__ __m128i __DEFAULT_FN_ATTRS
2426_mm256_cvtpd_epu32 (__m256d __A) {
2427 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2428 (__v4si)
2429 _mm_setzero_si128 (),
2430 (__mmask8) -1);
2431}
2432
2433static __inline__ __m128i __DEFAULT_FN_ATTRS
2434_mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2435 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2436 (__v4si) __W,
2437 (__mmask8) __U);
2438}
2439
2440static __inline__ __m128i __DEFAULT_FN_ATTRS
2441_mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) {
2442 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2443 (__v4si)
2444 _mm_setzero_si128 (),
2445 (__mmask8) __U);
2446}
2447
2448static __inline__ __m128i __DEFAULT_FN_ATTRS
2449_mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2450 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2451 (__v4si) __W,
2452 (__mmask8) __U);
2453}
2454
2455static __inline__ __m128i __DEFAULT_FN_ATTRS
2456_mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) {
2457 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2458 (__v4si)
2459 _mm_setzero_si128 (),
2460 (__mmask8) __U);
2461}
2462
2463static __inline__ __m256i __DEFAULT_FN_ATTRS
2464_mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2465 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2466 (__v8si) __W,
2467 (__mmask8) __U);
2468}
2469
2470static __inline__ __m256i __DEFAULT_FN_ATTRS
2471_mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) {
2472 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2473 (__v8si)
2474 _mm256_setzero_si256 (),
2475 (__mmask8) __U);
2476}
2477
2478static __inline__ __m128d __DEFAULT_FN_ATTRS
2479_mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) {
2480 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2481 (__v2df) __W,
2482 (__mmask8) __U);
2483}
2484
2485static __inline__ __m128d __DEFAULT_FN_ATTRS
2486_mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2487 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2488 (__v2df)
2489 _mm_setzero_pd (),
2490 (__mmask8) __U);
2491}
2492
2493static __inline__ __m256d __DEFAULT_FN_ATTRS
2494_mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) {
2495 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2496 (__v4df) __W,
2497 (__mmask8) __U);
2498}
2499
2500static __inline__ __m256d __DEFAULT_FN_ATTRS
2501_mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2502 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2503 (__v4df)
2504 _mm256_setzero_pd (),
2505 (__mmask8) __U);
2506}
2507
2508static __inline__ __m128i __DEFAULT_FN_ATTRS
2509_mm_cvtps_epu32 (__m128 __A) {
2510 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2511 (__v4si)
2512 _mm_setzero_si128 (),
2513 (__mmask8) -1);
2514}
2515
2516static __inline__ __m128i __DEFAULT_FN_ATTRS
2517_mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2518 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2519 (__v4si) __W,
2520 (__mmask8) __U);
2521}
2522
2523static __inline__ __m128i __DEFAULT_FN_ATTRS
2524_mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) {
2525 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2526 (__v4si)
2527 _mm_setzero_si128 (),
2528 (__mmask8) __U);
2529}
2530
2531static __inline__ __m256i __DEFAULT_FN_ATTRS
2532_mm256_cvtps_epu32 (__m256 __A) {
2533 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2534 (__v8si)
2535 _mm256_setzero_si256 (),
2536 (__mmask8) -1);
2537}
2538
2539static __inline__ __m256i __DEFAULT_FN_ATTRS
2540_mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2541 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2542 (__v8si) __W,
2543 (__mmask8) __U);
2544}
2545
2546static __inline__ __m256i __DEFAULT_FN_ATTRS
2547_mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) {
2548 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2549 (__v8si)
2550 _mm256_setzero_si256 (),
2551 (__mmask8) __U);
2552}
2553
2554static __inline__ __m128i __DEFAULT_FN_ATTRS
2555_mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2556 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2557 (__v4si) __W,
2558 (__mmask8) __U);
2559}
2560
2561static __inline__ __m128i __DEFAULT_FN_ATTRS
2562_mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) {
2563 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2564 (__v4si)
2565 _mm_setzero_si128 (),
2566 (__mmask8) __U);
2567}
2568
2569static __inline__ __m128i __DEFAULT_FN_ATTRS
2570_mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2571 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2572 (__v4si) __W,
2573 (__mmask8) __U);
2574}
2575
2576static __inline__ __m128i __DEFAULT_FN_ATTRS
2577_mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) {
2578 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2579 (__v4si)
2580 _mm_setzero_si128 (),
2581 (__mmask8) __U);
2582}
2583
2584static __inline__ __m128i __DEFAULT_FN_ATTRS
2585_mm_cvttpd_epu32 (__m128d __A) {
2586 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2587 (__v4si)
2588 _mm_setzero_si128 (),
2589 (__mmask8) -1);
2590}
2591
2592static __inline__ __m128i __DEFAULT_FN_ATTRS
2593_mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2594 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2595 (__v4si) __W,
2596 (__mmask8) __U);
2597}
2598
2599static __inline__ __m128i __DEFAULT_FN_ATTRS
2600_mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) {
2601 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2602 (__v4si)
2603 _mm_setzero_si128 (),
2604 (__mmask8) __U);
2605}
2606
2607static __inline__ __m128i __DEFAULT_FN_ATTRS
2608_mm256_cvttpd_epu32 (__m256d __A) {
2609 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2610 (__v4si)
2611 _mm_setzero_si128 (),
2612 (__mmask8) -1);
2613}
2614
2615static __inline__ __m128i __DEFAULT_FN_ATTRS
2616_mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2617 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2618 (__v4si) __W,
2619 (__mmask8) __U);
2620}
2621
2622static __inline__ __m128i __DEFAULT_FN_ATTRS
2623_mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) {
2624 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2625 (__v4si)
2626 _mm_setzero_si128 (),
2627 (__mmask8) __U);
2628}
2629
2630static __inline__ __m128i __DEFAULT_FN_ATTRS
2631_mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2632 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2633 (__v4si) __W,
2634 (__mmask8) __U);
2635}
2636
2637static __inline__ __m128i __DEFAULT_FN_ATTRS
2638_mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) {
2639 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2640 (__v4si)
2641 _mm_setzero_si128 (),
2642 (__mmask8) __U);
2643}
2644
2645static __inline__ __m256i __DEFAULT_FN_ATTRS
2646_mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2647 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2648 (__v8si) __W,
2649 (__mmask8) __U);
2650}
2651
2652static __inline__ __m256i __DEFAULT_FN_ATTRS
2653_mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) {
2654 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2655 (__v8si)
2656 _mm256_setzero_si256 (),
2657 (__mmask8) __U);
2658}
2659
2660static __inline__ __m128i __DEFAULT_FN_ATTRS
2661_mm_cvttps_epu32 (__m128 __A) {
2662 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2663 (__v4si)
2664 _mm_setzero_si128 (),
2665 (__mmask8) -1);
2666}
2667
2668static __inline__ __m128i __DEFAULT_FN_ATTRS
2669_mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2670 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2671 (__v4si) __W,
2672 (__mmask8) __U);
2673}
2674
2675static __inline__ __m128i __DEFAULT_FN_ATTRS
2676_mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) {
2677 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2678 (__v4si)
2679 _mm_setzero_si128 (),
2680 (__mmask8) __U);
2681}
2682
2683static __inline__ __m256i __DEFAULT_FN_ATTRS
2684_mm256_cvttps_epu32 (__m256 __A) {
2685 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2686 (__v8si)
2687 _mm256_setzero_si256 (),
2688 (__mmask8) -1);
2689}
2690
2691static __inline__ __m256i __DEFAULT_FN_ATTRS
2692_mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2693 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2694 (__v8si) __W,
2695 (__mmask8) __U);
2696}
2697
2698static __inline__ __m256i __DEFAULT_FN_ATTRS
2699_mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) {
2700 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2701 (__v8si)
2702 _mm256_setzero_si256 (),
2703 (__mmask8) __U);
2704}
2705
2706static __inline__ __m128d __DEFAULT_FN_ATTRS
2707_mm_cvtepu32_pd (__m128i __A) {
2708 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2709 (__v2df)
2710 _mm_setzero_pd (),
2711 (__mmask8) -1);
2712}
2713
2714static __inline__ __m128d __DEFAULT_FN_ATTRS
2715_mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2716 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2717 (__v2df) __W,
2718 (__mmask8) __U);
2719}
2720
2721static __inline__ __m128d __DEFAULT_FN_ATTRS
2722_mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2723 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2724 (__v2df)
2725 _mm_setzero_pd (),
2726 (__mmask8) __U);
2727}
2728
2729static __inline__ __m256d __DEFAULT_FN_ATTRS
2730_mm256_cvtepu32_pd (__m128i __A) {
2731 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2732 (__v4df)
2733 _mm256_setzero_pd (),
2734 (__mmask8) -1);
2735}
2736
2737static __inline__ __m256d __DEFAULT_FN_ATTRS
2738_mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2739 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2740 (__v4df) __W,
2741 (__mmask8) __U);
2742}
2743
2744static __inline__ __m256d __DEFAULT_FN_ATTRS
2745_mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2746 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2747 (__v4df)
2748 _mm256_setzero_pd (),
2749 (__mmask8) __U);
2750}
2751
2752static __inline__ __m128 __DEFAULT_FN_ATTRS
2753_mm_cvtepu32_ps (__m128i __A) {
2754 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2755 (__v4sf)
2756 _mm_setzero_ps (),
2757 (__mmask8) -1);
2758}
2759
2760static __inline__ __m128 __DEFAULT_FN_ATTRS
2761_mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2762 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2763 (__v4sf) __W,
2764 (__mmask8) __U);
2765}
2766
2767static __inline__ __m128 __DEFAULT_FN_ATTRS
2768_mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) {
2769 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2770 (__v4sf)
2771 _mm_setzero_ps (),
2772 (__mmask8) __U);
2773}
2774
2775static __inline__ __m256 __DEFAULT_FN_ATTRS
2776_mm256_cvtepu32_ps (__m256i __A) {
2777 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2778 (__v8sf)
2779 _mm256_setzero_ps (),
2780 (__mmask8) -1);
2781}
2782
2783static __inline__ __m256 __DEFAULT_FN_ATTRS
2784_mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2785 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2786 (__v8sf) __W,
2787 (__mmask8) __U);
2788}
2789
2790static __inline__ __m256 __DEFAULT_FN_ATTRS
2791_mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) {
2792 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2793 (__v8sf)
2794 _mm256_setzero_ps (),
2795 (__mmask8) __U);
2796}
2797
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002798static __inline__ __m128d __DEFAULT_FN_ATTRS
2799_mm_mask_div_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2800 return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A,
2801 (__v2df) __B,
2802 (__v2df) __W,
2803 (__mmask8) __U);
2804}
2805
2806static __inline__ __m128d __DEFAULT_FN_ATTRS
2807_mm_maskz_div_pd (__mmask8 __U, __m128d __A, __m128d __B) {
2808 return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A,
2809 (__v2df) __B,
2810 (__v2df)
2811 _mm_setzero_pd (),
2812 (__mmask8) __U);
2813}
2814
2815static __inline__ __m256d __DEFAULT_FN_ATTRS
2816_mm256_mask_div_pd (__m256d __W, __mmask8 __U, __m256d __A,
2817 __m256d __B) {
2818 return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A,
2819 (__v4df) __B,
2820 (__v4df) __W,
2821 (__mmask8) __U);
2822}
2823
2824static __inline__ __m256d __DEFAULT_FN_ATTRS
2825_mm256_maskz_div_pd (__mmask8 __U, __m256d __A, __m256d __B) {
2826 return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A,
2827 (__v4df) __B,
2828 (__v4df)
2829 _mm256_setzero_pd (),
2830 (__mmask8) __U);
2831}
2832
2833static __inline__ __m128 __DEFAULT_FN_ATTRS
2834_mm_mask_div_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2835 return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A,
2836 (__v4sf) __B,
2837 (__v4sf) __W,
2838 (__mmask8) __U);
2839}
2840
2841static __inline__ __m128 __DEFAULT_FN_ATTRS
2842_mm_maskz_div_ps (__mmask8 __U, __m128 __A, __m128 __B) {
2843 return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A,
2844 (__v4sf) __B,
2845 (__v4sf)
2846 _mm_setzero_ps (),
2847 (__mmask8) __U);
2848}
2849
2850static __inline__ __m256 __DEFAULT_FN_ATTRS
2851_mm256_mask_div_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2852 return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A,
2853 (__v8sf) __B,
2854 (__v8sf) __W,
2855 (__mmask8) __U);
2856}
2857
2858static __inline__ __m256 __DEFAULT_FN_ATTRS
2859_mm256_maskz_div_ps (__mmask8 __U, __m256 __A, __m256 __B) {
2860 return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A,
2861 (__v8sf) __B,
2862 (__v8sf)
2863 _mm256_setzero_ps (),
2864 (__mmask8) __U);
2865}
2866
2867static __inline__ __m128d __DEFAULT_FN_ATTRS
2868_mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2869 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2870 (__v2df) __W,
2871 (__mmask8) __U);
2872}
2873
2874static __inline__ __m128d __DEFAULT_FN_ATTRS
2875_mm_maskz_expand_pd (__mmask8 __U, __m128d __A) {
2876 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2877 (__v2df)
2878 _mm_setzero_pd (),
2879 (__mmask8) __U);
2880}
2881
2882static __inline__ __m256d __DEFAULT_FN_ATTRS
2883_mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2884 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2885 (__v4df) __W,
2886 (__mmask8) __U);
2887}
2888
2889static __inline__ __m256d __DEFAULT_FN_ATTRS
2890_mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) {
2891 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2892 (__v4df)
2893 _mm256_setzero_pd (),
2894 (__mmask8) __U);
2895}
2896
2897static __inline__ __m128i __DEFAULT_FN_ATTRS
2898_mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2899 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2900 (__v2di) __W,
2901 (__mmask8) __U);
2902}
2903
2904static __inline__ __m128i __DEFAULT_FN_ATTRS
2905_mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) {
2906 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2907 (__v2di)
2908 _mm_setzero_si128 (),
2909 (__mmask8) __U);
2910}
2911
2912static __inline__ __m256i __DEFAULT_FN_ATTRS
2913_mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2914 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2915 (__v4di) __W,
2916 (__mmask8) __U);
2917}
2918
2919static __inline__ __m256i __DEFAULT_FN_ATTRS
2920_mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) {
2921 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2922 (__v4di)
2923 _mm256_setzero_si256 (),
2924 (__mmask8) __U);
2925}
2926
2927static __inline__ __m128d __DEFAULT_FN_ATTRS
2928_mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) {
2929 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2930 (__v2df) __W,
2931 (__mmask8)
2932 __U);
2933}
2934
2935static __inline__ __m128d __DEFAULT_FN_ATTRS
2936_mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2937 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2938 (__v2df)
2939 _mm_setzero_pd (),
2940 (__mmask8)
2941 __U);
2942}
2943
2944static __inline__ __m256d __DEFAULT_FN_ATTRS
2945_mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) {
2946 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2947 (__v4df) __W,
2948 (__mmask8)
2949 __U);
2950}
2951
2952static __inline__ __m256d __DEFAULT_FN_ATTRS
2953_mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2954 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2955 (__v4df)
2956 _mm256_setzero_pd (),
2957 (__mmask8)
2958 __U);
2959}
2960
2961static __inline__ __m128i __DEFAULT_FN_ATTRS
2962_mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) {
2963 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2964 (__v2di) __W,
2965 (__mmask8)
2966 __U);
2967}
2968
2969static __inline__ __m128i __DEFAULT_FN_ATTRS
2970_mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2971 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2972 (__v2di)
2973 _mm_setzero_si128 (),
2974 (__mmask8)
2975 __U);
2976}
2977
2978static __inline__ __m256i __DEFAULT_FN_ATTRS
2979_mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U,
2980 void const *__P) {
2981 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2982 (__v4di) __W,
2983 (__mmask8)
2984 __U);
2985}
2986
2987static __inline__ __m256i __DEFAULT_FN_ATTRS
2988_mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2989 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2990 (__v4di)
2991 _mm256_setzero_si256 (),
2992 (__mmask8)
2993 __U);
2994}
2995
2996static __inline__ __m128 __DEFAULT_FN_ATTRS
2997_mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) {
2998 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
2999 (__v4sf) __W,
3000 (__mmask8) __U);
3001}
3002
3003static __inline__ __m128 __DEFAULT_FN_ATTRS
3004_mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
3005 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
3006 (__v4sf)
3007 _mm_setzero_ps (),
3008 (__mmask8)
3009 __U);
3010}
3011
3012static __inline__ __m256 __DEFAULT_FN_ATTRS
3013_mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) {
3014 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
3015 (__v8sf) __W,
3016 (__mmask8) __U);
3017}
3018
3019static __inline__ __m256 __DEFAULT_FN_ATTRS
3020_mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
3021 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
3022 (__v8sf)
3023 _mm256_setzero_ps (),
3024 (__mmask8)
3025 __U);
3026}
3027
3028static __inline__ __m128i __DEFAULT_FN_ATTRS
3029_mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) {
3030 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
3031 (__v4si) __W,
3032 (__mmask8)
3033 __U);
3034}
3035
3036static __inline__ __m128i __DEFAULT_FN_ATTRS
3037_mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
3038 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
3039 (__v4si)
3040 _mm_setzero_si128 (),
3041 (__mmask8) __U);
3042}
3043
3044static __inline__ __m256i __DEFAULT_FN_ATTRS
3045_mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U,
3046 void const *__P) {
3047 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
3048 (__v8si) __W,
3049 (__mmask8)
3050 __U);
3051}
3052
3053static __inline__ __m256i __DEFAULT_FN_ATTRS
3054_mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
3055 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
3056 (__v8si)
3057 _mm256_setzero_si256 (),
3058 (__mmask8)
3059 __U);
3060}
3061
3062static __inline__ __m128 __DEFAULT_FN_ATTRS
3063_mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) {
3064 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
3065 (__v4sf) __W,
3066 (__mmask8) __U);
3067}
3068
3069static __inline__ __m128 __DEFAULT_FN_ATTRS
3070_mm_maskz_expand_ps (__mmask8 __U, __m128 __A) {
3071 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
3072 (__v4sf)
3073 _mm_setzero_ps (),
3074 (__mmask8) __U);
3075}
3076
3077static __inline__ __m256 __DEFAULT_FN_ATTRS
3078_mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) {
3079 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
3080 (__v8sf) __W,
3081 (__mmask8) __U);
3082}
3083
3084static __inline__ __m256 __DEFAULT_FN_ATTRS
3085_mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) {
3086 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
3087 (__v8sf)
3088 _mm256_setzero_ps (),
3089 (__mmask8) __U);
3090}
3091
3092static __inline__ __m128i __DEFAULT_FN_ATTRS
3093_mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
3094 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
3095 (__v4si) __W,
3096 (__mmask8) __U);
3097}
3098
3099static __inline__ __m128i __DEFAULT_FN_ATTRS
3100_mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) {
3101 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
3102 (__v4si)
3103 _mm_setzero_si128 (),
3104 (__mmask8) __U);
3105}
3106
3107static __inline__ __m256i __DEFAULT_FN_ATTRS
3108_mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
3109 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
3110 (__v8si) __W,
3111 (__mmask8) __U);
3112}
3113
3114static __inline__ __m256i __DEFAULT_FN_ATTRS
3115_mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) {
3116 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
3117 (__v8si)
3118 _mm256_setzero_si256 (),
3119 (__mmask8) __U);
3120}
3121
3122static __inline__ __m128d __DEFAULT_FN_ATTRS
3123_mm_getexp_pd (__m128d __A) {
3124 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
3125 (__v2df)
3126 _mm_setzero_pd (),
3127 (__mmask8) -1);
3128}
3129
3130static __inline__ __m128d __DEFAULT_FN_ATTRS
3131_mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) {
3132 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
3133 (__v2df) __W,
3134 (__mmask8) __U);
3135}
3136
3137static __inline__ __m128d __DEFAULT_FN_ATTRS
3138_mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) {
3139 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
3140 (__v2df)
3141 _mm_setzero_pd (),
3142 (__mmask8) __U);
3143}
3144
3145static __inline__ __m256d __DEFAULT_FN_ATTRS
3146_mm256_getexp_pd (__m256d __A) {
3147 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3148 (__v4df)
3149 _mm256_setzero_pd (),
3150 (__mmask8) -1);
3151}
3152
3153static __inline__ __m256d __DEFAULT_FN_ATTRS
3154_mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) {
3155 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3156 (__v4df) __W,
3157 (__mmask8) __U);
3158}
3159
3160static __inline__ __m256d __DEFAULT_FN_ATTRS
3161_mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) {
3162 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3163 (__v4df)
3164 _mm256_setzero_pd (),
3165 (__mmask8) __U);
3166}
3167
3168static __inline__ __m128 __DEFAULT_FN_ATTRS
3169_mm_getexp_ps (__m128 __A) {
3170 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3171 (__v4sf)
3172 _mm_setzero_ps (),
3173 (__mmask8) -1);
3174}
3175
3176static __inline__ __m128 __DEFAULT_FN_ATTRS
3177_mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) {
3178 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3179 (__v4sf) __W,
3180 (__mmask8) __U);
3181}
3182
3183static __inline__ __m128 __DEFAULT_FN_ATTRS
3184_mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) {
3185 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3186 (__v4sf)
3187 _mm_setzero_ps (),
3188 (__mmask8) __U);
3189}
3190
3191static __inline__ __m256 __DEFAULT_FN_ATTRS
3192_mm256_getexp_ps (__m256 __A) {
3193 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3194 (__v8sf)
3195 _mm256_setzero_ps (),
3196 (__mmask8) -1);
3197}
3198
3199static __inline__ __m256 __DEFAULT_FN_ATTRS
3200_mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) {
3201 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3202 (__v8sf) __W,
3203 (__mmask8) __U);
3204}
3205
3206static __inline__ __m256 __DEFAULT_FN_ATTRS
3207_mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) {
3208 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3209 (__v8sf)
3210 _mm256_setzero_ps (),
3211 (__mmask8) __U);
3212}
3213
3214static __inline__ __m128d __DEFAULT_FN_ATTRS
3215_mm_mask_max_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3216 return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A,
3217 (__v2df) __B,
3218 (__v2df) __W,
3219 (__mmask8) __U);
3220}
3221
3222static __inline__ __m128d __DEFAULT_FN_ATTRS
3223_mm_maskz_max_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3224 return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A,
3225 (__v2df) __B,
3226 (__v2df)
3227 _mm_setzero_pd (),
3228 (__mmask8) __U);
3229}
3230
3231static __inline__ __m256d __DEFAULT_FN_ATTRS
3232_mm256_mask_max_pd (__m256d __W, __mmask8 __U, __m256d __A,
3233 __m256d __B) {
3234 return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A,
3235 (__v4df) __B,
3236 (__v4df) __W,
3237 (__mmask8) __U);
3238}
3239
3240static __inline__ __m256d __DEFAULT_FN_ATTRS
3241_mm256_maskz_max_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3242 return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A,
3243 (__v4df) __B,
3244 (__v4df)
3245 _mm256_setzero_pd (),
3246 (__mmask8) __U);
3247}
3248
3249static __inline__ __m128 __DEFAULT_FN_ATTRS
3250_mm_mask_max_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3251 return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A,
3252 (__v4sf) __B,
3253 (__v4sf) __W,
3254 (__mmask8) __U);
3255}
3256
3257static __inline__ __m128 __DEFAULT_FN_ATTRS
3258_mm_maskz_max_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3259 return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A,
3260 (__v4sf) __B,
3261 (__v4sf)
3262 _mm_setzero_ps (),
3263 (__mmask8) __U);
3264}
3265
3266static __inline__ __m256 __DEFAULT_FN_ATTRS
3267_mm256_mask_max_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3268 return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A,
3269 (__v8sf) __B,
3270 (__v8sf) __W,
3271 (__mmask8) __U);
3272}
3273
3274static __inline__ __m256 __DEFAULT_FN_ATTRS
3275_mm256_maskz_max_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3276 return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A,
3277 (__v8sf) __B,
3278 (__v8sf)
3279 _mm256_setzero_ps (),
3280 (__mmask8) __U);
3281}
3282
3283static __inline__ __m128d __DEFAULT_FN_ATTRS
3284_mm_mask_min_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3285 return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A,
3286 (__v2df) __B,
3287 (__v2df) __W,
3288 (__mmask8) __U);
3289}
3290
3291static __inline__ __m128d __DEFAULT_FN_ATTRS
3292_mm_maskz_min_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3293 return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A,
3294 (__v2df) __B,
3295 (__v2df)
3296 _mm_setzero_pd (),
3297 (__mmask8) __U);
3298}
3299
3300static __inline__ __m256d __DEFAULT_FN_ATTRS
3301_mm256_mask_min_pd (__m256d __W, __mmask8 __U, __m256d __A,
3302 __m256d __B) {
3303 return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A,
3304 (__v4df) __B,
3305 (__v4df) __W,
3306 (__mmask8) __U);
3307}
3308
3309static __inline__ __m256d __DEFAULT_FN_ATTRS
3310_mm256_maskz_min_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3311 return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A,
3312 (__v4df) __B,
3313 (__v4df)
3314 _mm256_setzero_pd (),
3315 (__mmask8) __U);
3316}
3317
3318static __inline__ __m128 __DEFAULT_FN_ATTRS
3319_mm_mask_min_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3320 return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A,
3321 (__v4sf) __B,
3322 (__v4sf) __W,
3323 (__mmask8) __U);
3324}
3325
3326static __inline__ __m128 __DEFAULT_FN_ATTRS
3327_mm_maskz_min_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3328 return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A,
3329 (__v4sf) __B,
3330 (__v4sf)
3331 _mm_setzero_ps (),
3332 (__mmask8) __U);
3333}
3334
3335static __inline__ __m256 __DEFAULT_FN_ATTRS
3336_mm256_mask_min_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3337 return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A,
3338 (__v8sf) __B,
3339 (__v8sf) __W,
3340 (__mmask8) __U);
3341}
3342
3343static __inline__ __m256 __DEFAULT_FN_ATTRS
3344_mm256_maskz_min_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3345 return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A,
3346 (__v8sf) __B,
3347 (__v8sf)
3348 _mm256_setzero_ps (),
3349 (__mmask8) __U);
3350}
3351
3352static __inline__ __m128d __DEFAULT_FN_ATTRS
3353_mm_mask_mul_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3354 return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A,
3355 (__v2df) __B,
3356 (__v2df) __W,
3357 (__mmask8) __U);
3358}
3359
3360static __inline__ __m128d __DEFAULT_FN_ATTRS
3361_mm_maskz_mul_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3362 return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A,
3363 (__v2df) __B,
3364 (__v2df)
3365 _mm_setzero_pd (),
3366 (__mmask8) __U);
3367}
3368
3369static __inline__ __m256d __DEFAULT_FN_ATTRS
3370_mm256_mask_mul_pd (__m256d __W, __mmask8 __U, __m256d __A,
3371 __m256d __B) {
3372 return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A,
3373 (__v4df) __B,
3374 (__v4df) __W,
3375 (__mmask8) __U);
3376}
3377
3378static __inline__ __m256d __DEFAULT_FN_ATTRS
3379_mm256_maskz_mul_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3380 return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A,
3381 (__v4df) __B,
3382 (__v4df)
3383 _mm256_setzero_pd (),
3384 (__mmask8) __U);
3385}
3386
3387static __inline__ __m128 __DEFAULT_FN_ATTRS
3388_mm_mask_mul_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3389 return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A,
3390 (__v4sf) __B,
3391 (__v4sf) __W,
3392 (__mmask8) __U);
3393}
3394
3395static __inline__ __m128 __DEFAULT_FN_ATTRS
3396_mm_maskz_mul_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3397 return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A,
3398 (__v4sf) __B,
3399 (__v4sf)
3400 _mm_setzero_ps (),
3401 (__mmask8) __U);
3402}
3403
3404static __inline__ __m256 __DEFAULT_FN_ATTRS
3405_mm256_mask_mul_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3406 return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A,
3407 (__v8sf) __B,
3408 (__v8sf) __W,
3409 (__mmask8) __U);
3410}
3411
3412static __inline__ __m256 __DEFAULT_FN_ATTRS
3413_mm256_maskz_mul_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3414 return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A,
3415 (__v8sf) __B,
3416 (__v8sf)
3417 _mm256_setzero_ps (),
3418 (__mmask8) __U);
3419}
3420
3421static __inline__ __m128i __DEFAULT_FN_ATTRS
3422_mm_mask_abs_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
3423 return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A,
3424 (__v4si) __W,
3425 (__mmask8) __U);
3426}
3427
3428static __inline__ __m128i __DEFAULT_FN_ATTRS
3429_mm_maskz_abs_epi32 (__mmask8 __U, __m128i __A) {
3430 return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A,
3431 (__v4si)
3432 _mm_setzero_si128 (),
3433 (__mmask8) __U);
3434}
3435
3436static __inline__ __m256i __DEFAULT_FN_ATTRS
3437_mm256_mask_abs_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
3438 return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A,
3439 (__v8si) __W,
3440 (__mmask8) __U);
3441}
3442
3443static __inline__ __m256i __DEFAULT_FN_ATTRS
3444_mm256_maskz_abs_epi32 (__mmask8 __U, __m256i __A) {
3445 return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A,
3446 (__v8si)
3447 _mm256_setzero_si256 (),
3448 (__mmask8) __U);
3449}
3450
3451static __inline__ __m128i __DEFAULT_FN_ATTRS
3452_mm_abs_epi64 (__m128i __A) {
3453 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3454 (__v2di)
3455 _mm_setzero_si128 (),
3456 (__mmask8) -1);
3457}
3458
3459static __inline__ __m128i __DEFAULT_FN_ATTRS
3460_mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
3461 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3462 (__v2di) __W,
3463 (__mmask8) __U);
3464}
3465
3466static __inline__ __m128i __DEFAULT_FN_ATTRS
3467_mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) {
3468 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3469 (__v2di)
3470 _mm_setzero_si128 (),
3471 (__mmask8) __U);
3472}
3473
3474static __inline__ __m256i __DEFAULT_FN_ATTRS
3475_mm256_abs_epi64 (__m256i __A) {
3476 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3477 (__v4di)
3478 _mm256_setzero_si256 (),
3479 (__mmask8) -1);
3480}
3481
3482static __inline__ __m256i __DEFAULT_FN_ATTRS
3483_mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
3484 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3485 (__v4di) __W,
3486 (__mmask8) __U);
3487}
3488
3489static __inline__ __m256i __DEFAULT_FN_ATTRS
3490_mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) {
3491 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3492 (__v4di)
3493 _mm256_setzero_si256 (),
3494 (__mmask8) __U);
3495}
3496
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003497static __inline__ __m128i __DEFAULT_FN_ATTRS
3498_mm_maskz_max_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
3499 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
3500 (__v4si) __B,
3501 (__v4si)
3502 _mm_setzero_si128 (),
3503 __M);
3504}
3505
3506static __inline__ __m128i __DEFAULT_FN_ATTRS
3507_mm_mask_max_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
3508 __m128i __B) {
3509 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
3510 (__v4si) __B,
3511 (__v4si) __W, __M);
3512}
3513
3514static __inline__ __m256i __DEFAULT_FN_ATTRS
3515_mm256_maskz_max_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
3516 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
3517 (__v8si) __B,
3518 (__v8si)
3519 _mm256_setzero_si256 (),
3520 __M);
3521}
3522
3523static __inline__ __m256i __DEFAULT_FN_ATTRS
3524_mm256_mask_max_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
3525 __m256i __B) {
3526 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
3527 (__v8si) __B,
3528 (__v8si) __W, __M);
3529}
3530
3531static __inline__ __m128i __DEFAULT_FN_ATTRS
3532_mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3533 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3534 (__v2di) __B,
3535 (__v2di)
3536 _mm_setzero_si128 (),
3537 __M);
3538}
3539
3540static __inline__ __m128i __DEFAULT_FN_ATTRS
3541_mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3542 __m128i __B) {
3543 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3544 (__v2di) __B,
3545 (__v2di) __W, __M);
3546}
3547
3548static __inline__ __m128i __DEFAULT_FN_ATTRS
3549_mm_max_epi64 (__m128i __A, __m128i __B) {
3550 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3551 (__v2di) __B,
3552 (__v2di)
3553 _mm_setzero_si128 (),
3554 (__mmask8) -1);
3555}
3556
3557static __inline__ __m256i __DEFAULT_FN_ATTRS
3558_mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3559 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3560 (__v4di) __B,
3561 (__v4di)
3562 _mm256_setzero_si256 (),
3563 __M);
3564}
3565
3566static __inline__ __m256i __DEFAULT_FN_ATTRS
3567_mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3568 __m256i __B) {
3569 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3570 (__v4di) __B,
3571 (__v4di) __W, __M);
3572}
3573
3574static __inline__ __m256i __DEFAULT_FN_ATTRS
3575_mm256_max_epi64 (__m256i __A, __m256i __B) {
3576 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3577 (__v4di) __B,
3578 (__v4di)
3579 _mm256_setzero_si256 (),
3580 (__mmask8) -1);
3581}
3582
3583static __inline__ __m128i __DEFAULT_FN_ATTRS
3584_mm_maskz_max_epu32 (__mmask8 __M, __m128i __A, __m128i __B) {
3585 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
3586 (__v4si) __B,
3587 (__v4si)
3588 _mm_setzero_si128 (),
3589 __M);
3590}
3591
3592static __inline__ __m128i __DEFAULT_FN_ATTRS
3593_mm_mask_max_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
3594 __m128i __B) {
3595 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
3596 (__v4si) __B,
3597 (__v4si) __W, __M);
3598}
3599
3600static __inline__ __m256i __DEFAULT_FN_ATTRS
3601_mm256_maskz_max_epu32 (__mmask8 __M, __m256i __A, __m256i __B) {
3602 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
3603 (__v8si) __B,
3604 (__v8si)
3605 _mm256_setzero_si256 (),
3606 __M);
3607}
3608
3609static __inline__ __m256i __DEFAULT_FN_ATTRS
3610_mm256_mask_max_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
3611 __m256i __B) {
3612 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
3613 (__v8si) __B,
3614 (__v8si) __W, __M);
3615}
3616
3617static __inline__ __m128i __DEFAULT_FN_ATTRS
3618_mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3619 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3620 (__v2di) __B,
3621 (__v2di)
3622 _mm_setzero_si128 (),
3623 __M);
3624}
3625
3626static __inline__ __m128i __DEFAULT_FN_ATTRS
3627_mm_max_epu64 (__m128i __A, __m128i __B) {
3628 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3629 (__v2di) __B,
3630 (__v2di)
3631 _mm_setzero_si128 (),
3632 (__mmask8) -1);
3633}
3634
3635static __inline__ __m128i __DEFAULT_FN_ATTRS
3636_mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3637 __m128i __B) {
3638 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3639 (__v2di) __B,
3640 (__v2di) __W, __M);
3641}
3642
3643static __inline__ __m256i __DEFAULT_FN_ATTRS
3644_mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3645 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3646 (__v4di) __B,
3647 (__v4di)
3648 _mm256_setzero_si256 (),
3649 __M);
3650}
3651
3652static __inline__ __m256i __DEFAULT_FN_ATTRS
3653_mm256_max_epu64 (__m256i __A, __m256i __B) {
3654 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3655 (__v4di) __B,
3656 (__v4di)
3657 _mm256_setzero_si256 (),
3658 (__mmask8) -1);
3659}
3660
3661static __inline__ __m256i __DEFAULT_FN_ATTRS
3662_mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3663 __m256i __B) {
3664 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3665 (__v4di) __B,
3666 (__v4di) __W, __M);
3667}
3668
3669static __inline__ __m128i __DEFAULT_FN_ATTRS
3670_mm_maskz_min_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
3671 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
3672 (__v4si) __B,
3673 (__v4si)
3674 _mm_setzero_si128 (),
3675 __M);
3676}
3677
3678static __inline__ __m128i __DEFAULT_FN_ATTRS
3679_mm_mask_min_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
3680 __m128i __B) {
3681 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
3682 (__v4si) __B,
3683 (__v4si) __W, __M);
3684}
3685
3686static __inline__ __m256i __DEFAULT_FN_ATTRS
3687_mm256_maskz_min_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
3688 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
3689 (__v8si) __B,
3690 (__v8si)
3691 _mm256_setzero_si256 (),
3692 __M);
3693}
3694
3695static __inline__ __m256i __DEFAULT_FN_ATTRS
3696_mm256_mask_min_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
3697 __m256i __B) {
3698 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
3699 (__v8si) __B,
3700 (__v8si) __W, __M);
3701}
3702
3703static __inline__ __m128i __DEFAULT_FN_ATTRS
3704_mm_min_epi64 (__m128i __A, __m128i __B) {
3705 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3706 (__v2di) __B,
3707 (__v2di)
3708 _mm_setzero_si128 (),
3709 (__mmask8) -1);
3710}
3711
3712static __inline__ __m128i __DEFAULT_FN_ATTRS
3713_mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3714 __m128i __B) {
3715 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3716 (__v2di) __B,
3717 (__v2di) __W, __M);
3718}
3719
3720static __inline__ __m128i __DEFAULT_FN_ATTRS
3721_mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3722 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3723 (__v2di) __B,
3724 (__v2di)
3725 _mm_setzero_si128 (),
3726 __M);
3727}
3728
3729static __inline__ __m256i __DEFAULT_FN_ATTRS
3730_mm256_min_epi64 (__m256i __A, __m256i __B) {
3731 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3732 (__v4di) __B,
3733 (__v4di)
3734 _mm256_setzero_si256 (),
3735 (__mmask8) -1);
3736}
3737
3738static __inline__ __m256i __DEFAULT_FN_ATTRS
3739_mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3740 __m256i __B) {
3741 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3742 (__v4di) __B,
3743 (__v4di) __W, __M);
3744}
3745
3746static __inline__ __m256i __DEFAULT_FN_ATTRS
3747_mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3748 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3749 (__v4di) __B,
3750 (__v4di)
3751 _mm256_setzero_si256 (),
3752 __M);
3753}
3754
3755static __inline__ __m128i __DEFAULT_FN_ATTRS
3756_mm_maskz_min_epu32 (__mmask8 __M, __m128i __A, __m128i __B) {
3757 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
3758 (__v4si) __B,
3759 (__v4si)
3760 _mm_setzero_si128 (),
3761 __M);
3762}
3763
3764static __inline__ __m128i __DEFAULT_FN_ATTRS
3765_mm_mask_min_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
3766 __m128i __B) {
3767 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
3768 (__v4si) __B,
3769 (__v4si) __W, __M);
3770}
3771
3772static __inline__ __m256i __DEFAULT_FN_ATTRS
3773_mm256_maskz_min_epu32 (__mmask8 __M, __m256i __A, __m256i __B) {
3774 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
3775 (__v8si) __B,
3776 (__v8si)
3777 _mm256_setzero_si256 (),
3778 __M);
3779}
3780
3781static __inline__ __m256i __DEFAULT_FN_ATTRS
3782_mm256_mask_min_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
3783 __m256i __B) {
3784 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
3785 (__v8si) __B,
3786 (__v8si) __W, __M);
3787}
3788
3789static __inline__ __m128i __DEFAULT_FN_ATTRS
3790_mm_min_epu64 (__m128i __A, __m128i __B) {
3791 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3792 (__v2di) __B,
3793 (__v2di)
3794 _mm_setzero_si128 (),
3795 (__mmask8) -1);
3796}
3797
3798static __inline__ __m128i __DEFAULT_FN_ATTRS
3799_mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3800 __m128i __B) {
3801 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3802 (__v2di) __B,
3803 (__v2di) __W, __M);
3804}
3805
3806static __inline__ __m128i __DEFAULT_FN_ATTRS
3807_mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3808 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3809 (__v2di) __B,
3810 (__v2di)
3811 _mm_setzero_si128 (),
3812 __M);
3813}
3814
3815static __inline__ __m256i __DEFAULT_FN_ATTRS
3816_mm256_min_epu64 (__m256i __A, __m256i __B) {
3817 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3818 (__v4di) __B,
3819 (__v4di)
3820 _mm256_setzero_si256 (),
3821 (__mmask8) -1);
3822}
3823
3824static __inline__ __m256i __DEFAULT_FN_ATTRS
3825_mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3826 __m256i __B) {
3827 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3828 (__v4di) __B,
3829 (__v4di) __W, __M);
3830}
3831
3832static __inline__ __m256i __DEFAULT_FN_ATTRS
3833_mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3834 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3835 (__v4di) __B,
3836 (__v4di)
3837 _mm256_setzero_si256 (),
3838 __M);
3839}
3840
Craig Topperd2661882016-05-17 04:41:48 +00003841#define _mm_roundscale_pd(A, imm) __extension__ ({ \
3842 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3843 (int)(imm), \
3844 (__v2df)_mm_setzero_pd(), \
3845 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003846
3847
Craig Topperd2661882016-05-17 04:41:48 +00003848#define _mm_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3849 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3850 (int)(imm), \
3851 (__v2df)(__m128d)(W), \
3852 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003853
3854
Craig Topperd2661882016-05-17 04:41:48 +00003855#define _mm_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3856 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3857 (int)(imm), \
3858 (__v2df)_mm_setzero_pd(), \
3859 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003860
3861
Craig Topperd2661882016-05-17 04:41:48 +00003862#define _mm256_roundscale_pd(A, imm) __extension__ ({ \
3863 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3864 (int)(imm), \
3865 (__v4df)_mm256_setzero_pd(), \
3866 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003867
3868
Craig Topperd2661882016-05-17 04:41:48 +00003869#define _mm256_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3870 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3871 (int)(imm), \
3872 (__v4df)(__m256d)(W), \
3873 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003874
3875
Craig Topperd2661882016-05-17 04:41:48 +00003876#define _mm256_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3877 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3878 (int)(imm), \
3879 (__v4df)_mm256_setzero_pd(), \
3880 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003881
Craig Topperd2661882016-05-17 04:41:48 +00003882#define _mm_roundscale_ps(A, imm) __extension__ ({ \
3883 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3884 (__v4sf)_mm_setzero_ps(), \
3885 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003886
3887
Craig Topperd2661882016-05-17 04:41:48 +00003888#define _mm_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3889 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3890 (__v4sf)(__m128)(W), \
3891 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003892
3893
Craig Topperd2661882016-05-17 04:41:48 +00003894#define _mm_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3895 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3896 (__v4sf)_mm_setzero_ps(), \
3897 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003898
Craig Topperd2661882016-05-17 04:41:48 +00003899#define _mm256_roundscale_ps(A, imm) __extension__ ({ \
3900 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3901 (__v8sf)_mm256_setzero_ps(), \
3902 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003903
Craig Topperd2661882016-05-17 04:41:48 +00003904#define _mm256_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3905 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3906 (__v8sf)(__m256)(W), \
3907 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003908
3909
Craig Topperd2661882016-05-17 04:41:48 +00003910#define _mm256_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3911 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3912 (__v8sf)_mm256_setzero_ps(), \
3913 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003914
3915static __inline__ __m128d __DEFAULT_FN_ATTRS
3916_mm_scalef_pd (__m128d __A, __m128d __B) {
3917 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3918 (__v2df) __B,
3919 (__v2df)
3920 _mm_setzero_pd (),
3921 (__mmask8) -1);
3922}
3923
3924static __inline__ __m128d __DEFAULT_FN_ATTRS
3925_mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A,
3926 __m128d __B) {
3927 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3928 (__v2df) __B,
3929 (__v2df) __W,
3930 (__mmask8) __U);
3931}
3932
3933static __inline__ __m128d __DEFAULT_FN_ATTRS
3934_mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3935 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3936 (__v2df) __B,
3937 (__v2df)
3938 _mm_setzero_pd (),
3939 (__mmask8) __U);
3940}
3941
3942static __inline__ __m256d __DEFAULT_FN_ATTRS
3943_mm256_scalef_pd (__m256d __A, __m256d __B) {
3944 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3945 (__v4df) __B,
3946 (__v4df)
3947 _mm256_setzero_pd (),
3948 (__mmask8) -1);
3949}
3950
3951static __inline__ __m256d __DEFAULT_FN_ATTRS
3952_mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A,
3953 __m256d __B) {
3954 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3955 (__v4df) __B,
3956 (__v4df) __W,
3957 (__mmask8) __U);
3958}
3959
3960static __inline__ __m256d __DEFAULT_FN_ATTRS
3961_mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3962 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3963 (__v4df) __B,
3964 (__v4df)
3965 _mm256_setzero_pd (),
3966 (__mmask8) __U);
3967}
3968
3969static __inline__ __m128 __DEFAULT_FN_ATTRS
3970_mm_scalef_ps (__m128 __A, __m128 __B) {
3971 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3972 (__v4sf) __B,
3973 (__v4sf)
3974 _mm_setzero_ps (),
3975 (__mmask8) -1);
3976}
3977
3978static __inline__ __m128 __DEFAULT_FN_ATTRS
3979_mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3980 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3981 (__v4sf) __B,
3982 (__v4sf) __W,
3983 (__mmask8) __U);
3984}
3985
3986static __inline__ __m128 __DEFAULT_FN_ATTRS
3987_mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3988 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3989 (__v4sf) __B,
3990 (__v4sf)
3991 _mm_setzero_ps (),
3992 (__mmask8) __U);
3993}
3994
3995static __inline__ __m256 __DEFAULT_FN_ATTRS
3996_mm256_scalef_ps (__m256 __A, __m256 __B) {
3997 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3998 (__v8sf) __B,
3999 (__v8sf)
4000 _mm256_setzero_ps (),
4001 (__mmask8) -1);
4002}
4003
4004static __inline__ __m256 __DEFAULT_FN_ATTRS
4005_mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A,
4006 __m256 __B) {
4007 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
4008 (__v8sf) __B,
4009 (__v8sf) __W,
4010 (__mmask8) __U);
4011}
4012
4013static __inline__ __m256 __DEFAULT_FN_ATTRS
4014_mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
4015 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
4016 (__v8sf) __B,
4017 (__v8sf)
4018 _mm256_setzero_ps (),
4019 (__mmask8) __U);
4020}
4021
Craig Topperd2661882016-05-17 04:41:48 +00004022#define _mm_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
4023 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)-1, \
4024 (__v2di)(__m128i)(index), \
4025 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004026
Craig Topperd2661882016-05-17 04:41:48 +00004027#define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
4028 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)(mask), \
4029 (__v2di)(__m128i)(index), \
4030 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004031
Craig Topperd2661882016-05-17 04:41:48 +00004032#define _mm_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
4033 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)-1, \
4034 (__v2di)(__m128i)(index), \
4035 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004036
Craig Topperd2661882016-05-17 04:41:48 +00004037#define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
4038 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)(mask), \
4039 (__v2di)(__m128i)(index), \
4040 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004041
Craig Topperd2661882016-05-17 04:41:48 +00004042#define _mm256_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
4043 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)-1, \
4044 (__v4di)(__m256i)(index), \
4045 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004046
Craig Topperd2661882016-05-17 04:41:48 +00004047#define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
4048 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)(mask), \
4049 (__v4di)(__m256i)(index), \
4050 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004051
Craig Topperd2661882016-05-17 04:41:48 +00004052#define _mm256_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
4053 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)-1, \
4054 (__v4di)(__m256i)(index), \
4055 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004056
Craig Topperd2661882016-05-17 04:41:48 +00004057#define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
4058 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)(mask), \
4059 (__v4di)(__m256i)(index), \
4060 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004061
Craig Topperd2661882016-05-17 04:41:48 +00004062#define _mm_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
4063 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)-1, \
4064 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
4065 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004066
Craig Topperd2661882016-05-17 04:41:48 +00004067#define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4068 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)(mask), \
4069 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
4070 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004071
Craig Topperd2661882016-05-17 04:41:48 +00004072#define _mm_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4073 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)-1, \
4074 (__v2di)(__m128i)(index), \
4075 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004076
Craig Topperd2661882016-05-17 04:41:48 +00004077#define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4078 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)(mask), \
4079 (__v2di)(__m128i)(index), \
4080 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004081
Craig Topperd2661882016-05-17 04:41:48 +00004082#define _mm256_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
4083 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)-1, \
4084 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
4085 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004086
Craig Topperd2661882016-05-17 04:41:48 +00004087#define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4088 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)(mask), \
4089 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
4090 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004091
Craig Topperd2661882016-05-17 04:41:48 +00004092#define _mm256_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4093 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)-1, \
4094 (__v4di)(__m256i)(index), \
4095 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004096
Craig Topperd2661882016-05-17 04:41:48 +00004097#define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4098 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)(mask), \
4099 (__v4di)(__m256i)(index), \
4100 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004101
Craig Topperd2661882016-05-17 04:41:48 +00004102#define _mm_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
4103 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)-1, \
4104 (__v4si)(__m128i)(index), \
4105 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004106
Craig Topperd2661882016-05-17 04:41:48 +00004107#define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
4108 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)(mask), \
4109 (__v4si)(__m128i)(index), \
4110 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004111
Craig Topperd2661882016-05-17 04:41:48 +00004112#define _mm_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
4113 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)-1, \
4114 (__v4si)(__m128i)(index), \
4115 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004116
Craig Topperd2661882016-05-17 04:41:48 +00004117#define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
4118 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)(mask), \
4119 (__v4si)(__m128i)(index), \
4120 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004121
Craig Topperd2661882016-05-17 04:41:48 +00004122#define _mm256_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
4123 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)-1, \
4124 (__v4si)(__m128i)(index), \
4125 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004126
Craig Topperd2661882016-05-17 04:41:48 +00004127#define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
4128 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)(mask), \
4129 (__v4si)(__m128i)(index), \
4130 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004131
Craig Topperd2661882016-05-17 04:41:48 +00004132#define _mm256_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
4133 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)-1, \
4134 (__v4si)(__m128i)(index), \
4135 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004136
Craig Topperd2661882016-05-17 04:41:48 +00004137#define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
4138 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)(mask), \
4139 (__v4si)(__m128i)(index), \
4140 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004141
Craig Topperd2661882016-05-17 04:41:48 +00004142#define _mm_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
4143 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)-1, \
4144 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
4145 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004146
Craig Topperd2661882016-05-17 04:41:48 +00004147#define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4148 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)(mask), \
4149 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
4150 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004151
Craig Topperd2661882016-05-17 04:41:48 +00004152#define _mm_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4153 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)-1, \
4154 (__v4si)(__m128i)(index), \
4155 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004156
Craig Topperd2661882016-05-17 04:41:48 +00004157#define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4158 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)(mask), \
4159 (__v4si)(__m128i)(index), \
4160 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004161
Craig Topperd2661882016-05-17 04:41:48 +00004162#define _mm256_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
4163 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)-1, \
4164 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
4165 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004166
Craig Topperd2661882016-05-17 04:41:48 +00004167#define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4168 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)(mask), \
4169 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
4170 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004171
Craig Topperd2661882016-05-17 04:41:48 +00004172#define _mm256_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4173 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)-1, \
4174 (__v8si)(__m256i)(index), \
4175 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004176
Craig Topperd2661882016-05-17 04:41:48 +00004177#define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4178 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)(mask), \
4179 (__v8si)(__m256i)(index), \
4180 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004181
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004182static __inline__ __m128d __DEFAULT_FN_ATTRS
4183_mm_mask_sqrt_pd (__m128d __W, __mmask8 __U, __m128d __A) {
4184 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
4185 (__v2df) __W,
4186 (__mmask8) __U);
4187}
4188
4189static __inline__ __m128d __DEFAULT_FN_ATTRS
4190_mm_maskz_sqrt_pd (__mmask8 __U, __m128d __A) {
4191 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
4192 (__v2df)
4193 _mm_setzero_pd (),
4194 (__mmask8) __U);
4195}
4196
4197static __inline__ __m256d __DEFAULT_FN_ATTRS
4198_mm256_mask_sqrt_pd (__m256d __W, __mmask8 __U, __m256d __A) {
4199 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
4200 (__v4df) __W,
4201 (__mmask8) __U);
4202}
4203
4204static __inline__ __m256d __DEFAULT_FN_ATTRS
4205_mm256_maskz_sqrt_pd (__mmask8 __U, __m256d __A) {
4206 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
4207 (__v4df)
4208 _mm256_setzero_pd (),
4209 (__mmask8) __U);
4210}
4211
4212static __inline__ __m128 __DEFAULT_FN_ATTRS
4213_mm_mask_sqrt_ps (__m128 __W, __mmask8 __U, __m128 __A) {
4214 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
4215 (__v4sf) __W,
4216 (__mmask8) __U);
4217}
4218
4219static __inline__ __m128 __DEFAULT_FN_ATTRS
4220_mm_maskz_sqrt_ps (__mmask8 __U, __m128 __A) {
4221 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
4222 (__v4sf)
4223 _mm_setzero_ps (),
4224 (__mmask8) __U);
4225}
4226
4227static __inline__ __m256 __DEFAULT_FN_ATTRS
4228_mm256_mask_sqrt_ps (__m256 __W, __mmask8 __U, __m256 __A) {
4229 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4230 (__v8sf) __W,
4231 (__mmask8) __U);
4232}
4233
4234static __inline__ __m256 __DEFAULT_FN_ATTRS
4235_mm256_maskz_sqrt_ps (__mmask8 __U, __m256 __A) {
4236 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4237 (__v8sf)
4238 _mm256_setzero_ps (),
4239 (__mmask8) __U);
4240}
4241
4242static __inline__ __m128d __DEFAULT_FN_ATTRS
4243_mm_mask_sub_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4244 return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A,
4245 (__v2df) __B,
4246 (__v2df) __W,
4247 (__mmask8) __U);
4248}
4249
4250static __inline__ __m128d __DEFAULT_FN_ATTRS
4251_mm_maskz_sub_pd (__mmask8 __U, __m128d __A, __m128d __B) {
4252 return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A,
4253 (__v2df) __B,
4254 (__v2df)
4255 _mm_setzero_pd (),
4256 (__mmask8) __U);
4257}
4258
4259static __inline__ __m256d __DEFAULT_FN_ATTRS
4260_mm256_mask_sub_pd (__m256d __W, __mmask8 __U, __m256d __A,
4261 __m256d __B) {
4262 return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A,
4263 (__v4df) __B,
4264 (__v4df) __W,
4265 (__mmask8) __U);
4266}
4267
4268static __inline__ __m256d __DEFAULT_FN_ATTRS
4269_mm256_maskz_sub_pd (__mmask8 __U, __m256d __A, __m256d __B) {
4270 return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A,
4271 (__v4df) __B,
4272 (__v4df)
4273 _mm256_setzero_pd (),
4274 (__mmask8) __U);
4275}
4276
4277static __inline__ __m128 __DEFAULT_FN_ATTRS
4278_mm_mask_sub_ps (__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) {
4279 return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A,
4280 (__v4sf) __B,
4281 (__v4sf) __W,
4282 (__mmask8) __U);
4283}
4284
4285static __inline__ __m128 __DEFAULT_FN_ATTRS
4286_mm_maskz_sub_ps (__mmask16 __U, __m128 __A, __m128 __B) {
4287 return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A,
4288 (__v4sf) __B,
4289 (__v4sf)
4290 _mm_setzero_ps (),
4291 (__mmask8) __U);
4292}
4293
4294static __inline__ __m256 __DEFAULT_FN_ATTRS
4295_mm256_mask_sub_ps (__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) {
4296 return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A,
4297 (__v8sf) __B,
4298 (__v8sf) __W,
4299 (__mmask8) __U);
4300}
4301
4302static __inline__ __m256 __DEFAULT_FN_ATTRS
4303_mm256_maskz_sub_ps (__mmask16 __U, __m256 __A, __m256 __B) {
4304 return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A,
4305 (__v8sf) __B,
4306 (__v8sf)
4307 _mm256_setzero_ps (),
4308 (__mmask8) __U);
4309}
4310
4311static __inline__ __m128i __DEFAULT_FN_ATTRS
4312_mm_mask2_permutex2var_epi32 (__m128i __A, __m128i __I, __mmask8 __U,
4313 __m128i __B) {
4314 return (__m128i) __builtin_ia32_vpermi2vard128_mask ((__v4si) __A,
4315 (__v4si) __I
4316 /* idx */ ,
4317 (__v4si) __B,
4318 (__mmask8) __U);
4319}
4320
4321static __inline__ __m256i __DEFAULT_FN_ATTRS
4322_mm256_mask2_permutex2var_epi32 (__m256i __A, __m256i __I,
4323 __mmask8 __U, __m256i __B) {
4324 return (__m256i) __builtin_ia32_vpermi2vard256_mask ((__v8si) __A,
4325 (__v8si) __I
4326 /* idx */ ,
4327 (__v8si) __B,
4328 (__mmask8) __U);
4329}
4330
4331static __inline__ __m128d __DEFAULT_FN_ATTRS
4332_mm_mask2_permutex2var_pd (__m128d __A, __m128i __I, __mmask8 __U,
4333 __m128d __B) {
4334 return (__m128d) __builtin_ia32_vpermi2varpd128_mask ((__v2df) __A,
4335 (__v2di) __I
4336 /* idx */ ,
4337 (__v2df) __B,
4338 (__mmask8)
4339 __U);
4340}
4341
4342static __inline__ __m256d __DEFAULT_FN_ATTRS
4343_mm256_mask2_permutex2var_pd (__m256d __A, __m256i __I, __mmask8 __U,
4344 __m256d __B) {
4345 return (__m256d) __builtin_ia32_vpermi2varpd256_mask ((__v4df) __A,
4346 (__v4di) __I
4347 /* idx */ ,
4348 (__v4df) __B,
4349 (__mmask8)
4350 __U);
4351}
4352
4353static __inline__ __m128 __DEFAULT_FN_ATTRS
4354_mm_mask2_permutex2var_ps (__m128 __A, __m128i __I, __mmask8 __U,
4355 __m128 __B) {
4356 return (__m128) __builtin_ia32_vpermi2varps128_mask ((__v4sf) __A,
4357 (__v4si) __I
4358 /* idx */ ,
4359 (__v4sf) __B,
4360 (__mmask8) __U);
4361}
4362
4363static __inline__ __m256 __DEFAULT_FN_ATTRS
4364_mm256_mask2_permutex2var_ps (__m256 __A, __m256i __I, __mmask8 __U,
4365 __m256 __B) {
4366 return (__m256) __builtin_ia32_vpermi2varps256_mask ((__v8sf) __A,
4367 (__v8si) __I
4368 /* idx */ ,
4369 (__v8sf) __B,
4370 (__mmask8) __U);
4371}
4372
4373static __inline__ __m128i __DEFAULT_FN_ATTRS
4374_mm_mask2_permutex2var_epi64 (__m128i __A, __m128i __I, __mmask8 __U,
4375 __m128i __B) {
4376 return (__m128i) __builtin_ia32_vpermi2varq128_mask ((__v2di) __A,
4377 (__v2di) __I
4378 /* idx */ ,
4379 (__v2di) __B,
4380 (__mmask8) __U);
4381}
4382
4383static __inline__ __m256i __DEFAULT_FN_ATTRS
4384_mm256_mask2_permutex2var_epi64 (__m256i __A, __m256i __I,
4385 __mmask8 __U, __m256i __B) {
4386 return (__m256i) __builtin_ia32_vpermi2varq256_mask ((__v4di) __A,
4387 (__v4di) __I
4388 /* idx */ ,
4389 (__v4di) __B,
4390 (__mmask8) __U);
4391}
4392
4393static __inline__ __m128i __DEFAULT_FN_ATTRS
4394_mm_permutex2var_epi32 (__m128i __A, __m128i __I, __m128i __B) {
4395 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4396 /* idx */ ,
4397 (__v4si) __A,
4398 (__v4si) __B,
4399 (__mmask8) -1);
4400}
4401
4402static __inline__ __m128i __DEFAULT_FN_ATTRS
4403_mm_mask_permutex2var_epi32 (__m128i __A, __mmask8 __U, __m128i __I,
4404 __m128i __B) {
4405 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4406 /* idx */ ,
4407 (__v4si) __A,
4408 (__v4si) __B,
4409 (__mmask8) __U);
4410}
4411
4412static __inline__ __m128i __DEFAULT_FN_ATTRS
4413_mm_maskz_permutex2var_epi32 (__mmask8 __U, __m128i __A, __m128i __I,
4414 __m128i __B) {
4415 return (__m128i) __builtin_ia32_vpermt2vard128_maskz ((__v4si) __I
4416 /* idx */ ,
4417 (__v4si) __A,
4418 (__v4si) __B,
4419 (__mmask8)
4420 __U);
4421}
4422
4423static __inline__ __m256i __DEFAULT_FN_ATTRS
4424_mm256_permutex2var_epi32 (__m256i __A, __m256i __I, __m256i __B) {
4425 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4426 /* idx */ ,
4427 (__v8si) __A,
4428 (__v8si) __B,
4429 (__mmask8) -1);
4430}
4431
4432static __inline__ __m256i __DEFAULT_FN_ATTRS
4433_mm256_mask_permutex2var_epi32 (__m256i __A, __mmask8 __U, __m256i __I,
4434 __m256i __B) {
4435 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4436 /* idx */ ,
4437 (__v8si) __A,
4438 (__v8si) __B,
4439 (__mmask8) __U);
4440}
4441
4442static __inline__ __m256i __DEFAULT_FN_ATTRS
4443_mm256_maskz_permutex2var_epi32 (__mmask8 __U, __m256i __A,
4444 __m256i __I, __m256i __B) {
4445 return (__m256i) __builtin_ia32_vpermt2vard256_maskz ((__v8si) __I
4446 /* idx */ ,
4447 (__v8si) __A,
4448 (__v8si) __B,
4449 (__mmask8)
4450 __U);
4451}
4452
4453static __inline__ __m128d __DEFAULT_FN_ATTRS
4454_mm_permutex2var_pd (__m128d __A, __m128i __I, __m128d __B) {
4455 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4456 /* idx */ ,
4457 (__v2df) __A,
4458 (__v2df) __B,
4459 (__mmask8) -
4460 1);
4461}
4462
4463static __inline__ __m128d __DEFAULT_FN_ATTRS
4464_mm_mask_permutex2var_pd (__m128d __A, __mmask8 __U, __m128i __I,
4465 __m128d __B) {
4466 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4467 /* idx */ ,
4468 (__v2df) __A,
4469 (__v2df) __B,
4470 (__mmask8)
4471 __U);
4472}
4473
4474static __inline__ __m128d __DEFAULT_FN_ATTRS
4475_mm_maskz_permutex2var_pd (__mmask8 __U, __m128d __A, __m128i __I,
4476 __m128d __B) {
4477 return (__m128d) __builtin_ia32_vpermt2varpd128_maskz ((__v2di) __I
4478 /* idx */ ,
4479 (__v2df) __A,
4480 (__v2df) __B,
4481 (__mmask8)
4482 __U);
4483}
4484
4485static __inline__ __m256d __DEFAULT_FN_ATTRS
4486_mm256_permutex2var_pd (__m256d __A, __m256i __I, __m256d __B) {
4487 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4488 /* idx */ ,
4489 (__v4df) __A,
4490 (__v4df) __B,
4491 (__mmask8) -
4492 1);
4493}
4494
4495static __inline__ __m256d __DEFAULT_FN_ATTRS
4496_mm256_mask_permutex2var_pd (__m256d __A, __mmask8 __U, __m256i __I,
4497 __m256d __B) {
4498 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4499 /* idx */ ,
4500 (__v4df) __A,
4501 (__v4df) __B,
4502 (__mmask8)
4503 __U);
4504}
4505
4506static __inline__ __m256d __DEFAULT_FN_ATTRS
4507_mm256_maskz_permutex2var_pd (__mmask8 __U, __m256d __A, __m256i __I,
4508 __m256d __B) {
4509 return (__m256d) __builtin_ia32_vpermt2varpd256_maskz ((__v4di) __I
4510 /* idx */ ,
4511 (__v4df) __A,
4512 (__v4df) __B,
4513 (__mmask8)
4514 __U);
4515}
4516
4517static __inline__ __m128 __DEFAULT_FN_ATTRS
4518_mm_permutex2var_ps (__m128 __A, __m128i __I, __m128 __B) {
4519 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4520 /* idx */ ,
4521 (__v4sf) __A,
4522 (__v4sf) __B,
4523 (__mmask8) -1);
4524}
4525
4526static __inline__ __m128 __DEFAULT_FN_ATTRS
4527_mm_mask_permutex2var_ps (__m128 __A, __mmask8 __U, __m128i __I,
4528 __m128 __B) {
4529 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4530 /* idx */ ,
4531 (__v4sf) __A,
4532 (__v4sf) __B,
4533 (__mmask8) __U);
4534}
4535
4536static __inline__ __m128 __DEFAULT_FN_ATTRS
4537_mm_maskz_permutex2var_ps (__mmask8 __U, __m128 __A, __m128i __I,
4538 __m128 __B) {
4539 return (__m128) __builtin_ia32_vpermt2varps128_maskz ((__v4si) __I
4540 /* idx */ ,
4541 (__v4sf) __A,
4542 (__v4sf) __B,
4543 (__mmask8)
4544 __U);
4545}
4546
4547static __inline__ __m256 __DEFAULT_FN_ATTRS
4548_mm256_permutex2var_ps (__m256 __A, __m256i __I, __m256 __B) {
4549 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4550 /* idx */ ,
4551 (__v8sf) __A,
4552 (__v8sf) __B,
4553 (__mmask8) -1);
4554}
4555
4556static __inline__ __m256 __DEFAULT_FN_ATTRS
4557_mm256_mask_permutex2var_ps (__m256 __A, __mmask8 __U, __m256i __I,
4558 __m256 __B) {
4559 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4560 /* idx */ ,
4561 (__v8sf) __A,
4562 (__v8sf) __B,
4563 (__mmask8) __U);
4564}
4565
4566static __inline__ __m256 __DEFAULT_FN_ATTRS
4567_mm256_maskz_permutex2var_ps (__mmask8 __U, __m256 __A, __m256i __I,
4568 __m256 __B) {
4569 return (__m256) __builtin_ia32_vpermt2varps256_maskz ((__v8si) __I
4570 /* idx */ ,
4571 (__v8sf) __A,
4572 (__v8sf) __B,
4573 (__mmask8)
4574 __U);
4575}
4576
4577static __inline__ __m128i __DEFAULT_FN_ATTRS
4578_mm_permutex2var_epi64 (__m128i __A, __m128i __I, __m128i __B) {
4579 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4580 /* idx */ ,
4581 (__v2di) __A,
4582 (__v2di) __B,
4583 (__mmask8) -1);
4584}
4585
4586static __inline__ __m128i __DEFAULT_FN_ATTRS
4587_mm_mask_permutex2var_epi64 (__m128i __A, __mmask8 __U, __m128i __I,
4588 __m128i __B) {
4589 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4590 /* idx */ ,
4591 (__v2di) __A,
4592 (__v2di) __B,
4593 (__mmask8) __U);
4594}
4595
4596static __inline__ __m128i __DEFAULT_FN_ATTRS
4597_mm_maskz_permutex2var_epi64 (__mmask8 __U, __m128i __A, __m128i __I,
4598 __m128i __B) {
4599 return (__m128i) __builtin_ia32_vpermt2varq128_maskz ((__v2di) __I
4600 /* idx */ ,
4601 (__v2di) __A,
4602 (__v2di) __B,
4603 (__mmask8)
4604 __U);
4605}
4606
4607
4608static __inline__ __m256i __DEFAULT_FN_ATTRS
4609_mm256_permutex2var_epi64 (__m256i __A, __m256i __I, __m256i __B) {
4610 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4611 /* idx */ ,
4612 (__v4di) __A,
4613 (__v4di) __B,
4614 (__mmask8) -1);
4615}
4616
4617static __inline__ __m256i __DEFAULT_FN_ATTRS
4618_mm256_mask_permutex2var_epi64 (__m256i __A, __mmask8 __U, __m256i __I,
4619 __m256i __B) {
4620 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4621 /* idx */ ,
4622 (__v4di) __A,
4623 (__v4di) __B,
4624 (__mmask8) __U);
4625}
4626
4627static __inline__ __m256i __DEFAULT_FN_ATTRS
4628_mm256_maskz_permutex2var_epi64 (__mmask8 __U, __m256i __A,
4629 __m256i __I, __m256i __B) {
4630 return (__m256i) __builtin_ia32_vpermt2varq256_maskz ((__v4di) __I
4631 /* idx */ ,
4632 (__v4di) __A,
4633 (__v4di) __B,
4634 (__mmask8)
4635 __U);
4636}
4637
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004638static __inline__ __m128i __DEFAULT_FN_ATTRS
4639_mm_mask_cvtepi8_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4640{
4641 return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A,
4642 (__v4si) __W,
4643 (__mmask8) __U);
4644}
4645
4646static __inline__ __m128i __DEFAULT_FN_ATTRS
4647_mm_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4648{
4649 return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A,
4650 (__v4si)
4651 _mm_setzero_si128 (),
4652 (__mmask8) __U);
4653}
4654
4655static __inline__ __m256i __DEFAULT_FN_ATTRS
4656_mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4657{
4658 return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A,
4659 (__v8si) __W,
4660 (__mmask8) __U);
4661}
4662
4663static __inline__ __m256i __DEFAULT_FN_ATTRS
4664_mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4665{
4666 return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A,
4667 (__v8si)
4668 _mm256_setzero_si256 (),
4669 (__mmask8) __U);
4670}
4671
4672static __inline__ __m128i __DEFAULT_FN_ATTRS
4673_mm_mask_cvtepi8_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4674{
4675 return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A,
4676 (__v2di) __W,
4677 (__mmask8) __U);
4678}
4679
4680static __inline__ __m128i __DEFAULT_FN_ATTRS
4681_mm_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
4682{
4683 return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A,
4684 (__v2di)
4685 _mm_setzero_si128 (),
4686 (__mmask8) __U);
4687}
4688
4689static __inline__ __m256i __DEFAULT_FN_ATTRS
4690_mm256_mask_cvtepi8_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4691{
4692 return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A,
4693 (__v4di) __W,
4694 (__mmask8) __U);
4695}
4696
4697static __inline__ __m256i __DEFAULT_FN_ATTRS
4698_mm256_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
4699{
4700 return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A,
4701 (__v4di)
4702 _mm256_setzero_si256 (),
4703 (__mmask8) __U);
4704}
4705
4706static __inline__ __m128i __DEFAULT_FN_ATTRS
4707_mm_mask_cvtepi32_epi64 (__m128i __W, __mmask8 __U, __m128i __X)
4708{
4709 return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X,
4710 (__v2di) __W,
4711 (__mmask8) __U);
4712}
4713
4714static __inline__ __m128i __DEFAULT_FN_ATTRS
4715_mm_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X)
4716{
4717 return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X,
4718 (__v2di)
4719 _mm_setzero_si128 (),
4720 (__mmask8) __U);
4721}
4722
4723static __inline__ __m256i __DEFAULT_FN_ATTRS
4724_mm256_mask_cvtepi32_epi64 (__m256i __W, __mmask8 __U, __m128i __X)
4725{
4726 return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X,
4727 (__v4di) __W,
4728 (__mmask8) __U);
4729}
4730
4731static __inline__ __m256i __DEFAULT_FN_ATTRS
4732_mm256_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X)
4733{
4734 return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X,
4735 (__v4di)
4736 _mm256_setzero_si256 (),
4737 (__mmask8) __U);
4738}
4739
4740static __inline__ __m128i __DEFAULT_FN_ATTRS
4741_mm_mask_cvtepi16_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4742{
4743 return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A,
4744 (__v4si) __W,
4745 (__mmask8) __U);
4746}
4747
4748static __inline__ __m128i __DEFAULT_FN_ATTRS
4749_mm_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4750{
4751 return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A,
4752 (__v4si)
4753 _mm_setzero_si128 (),
4754 (__mmask8) __U);
4755}
4756
4757static __inline__ __m256i __DEFAULT_FN_ATTRS
4758_mm256_mask_cvtepi16_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4759{
4760 return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A,
4761 (__v8si) __W,
4762 (__mmask8) __U);
4763}
4764
4765static __inline__ __m256i __DEFAULT_FN_ATTRS
4766_mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4767{
4768 return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A,
4769 (__v8si)
4770 _mm256_setzero_si256 (),
4771 (__mmask8) __U);
4772}
4773
4774static __inline__ __m128i __DEFAULT_FN_ATTRS
4775_mm_mask_cvtepi16_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4776{
4777 return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A,
4778 (__v2di) __W,
4779 (__mmask8) __U);
4780}
4781
4782static __inline__ __m128i __DEFAULT_FN_ATTRS
4783_mm_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
4784{
4785 return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A,
4786 (__v2di)
4787 _mm_setzero_si128 (),
4788 (__mmask8) __U);
4789}
4790
4791static __inline__ __m256i __DEFAULT_FN_ATTRS
4792_mm256_mask_cvtepi16_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4793{
4794 return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A,
4795 (__v4di) __W,
4796 (__mmask8) __U);
4797}
4798
4799static __inline__ __m256i __DEFAULT_FN_ATTRS
4800_mm256_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
4801{
4802 return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A,
4803 (__v4di)
4804 _mm256_setzero_si256 (),
4805 (__mmask8) __U);
4806}
4807
4808
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004809static __inline__ __m128i __DEFAULT_FN_ATTRS
4810_mm_mask_cvtepu8_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4811{
4812 return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A,
4813 (__v4si) __W,
4814 (__mmask8) __U);
4815}
4816
4817static __inline__ __m128i __DEFAULT_FN_ATTRS
4818_mm_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A)
4819{
4820 return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A,
4821 (__v4si)
4822 _mm_setzero_si128 (),
4823 (__mmask8) __U);
4824}
4825
4826static __inline__ __m256i __DEFAULT_FN_ATTRS
4827_mm256_mask_cvtepu8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4828{
4829 return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A,
4830 (__v8si) __W,
4831 (__mmask8) __U);
4832}
4833
4834static __inline__ __m256i __DEFAULT_FN_ATTRS
4835_mm256_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A)
4836{
4837 return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A,
4838 (__v8si)
4839 _mm256_setzero_si256 (),
4840 (__mmask8) __U);
4841}
4842
4843static __inline__ __m128i __DEFAULT_FN_ATTRS
4844_mm_mask_cvtepu8_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4845{
4846 return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A,
4847 (__v2di) __W,
4848 (__mmask8) __U);
4849}
4850
4851static __inline__ __m128i __DEFAULT_FN_ATTRS
4852_mm_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
4853{
4854 return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A,
4855 (__v2di)
4856 _mm_setzero_si128 (),
4857 (__mmask8) __U);
4858}
4859
4860static __inline__ __m256i __DEFAULT_FN_ATTRS
4861_mm256_mask_cvtepu8_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4862{
4863 return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A,
4864 (__v4di) __W,
4865 (__mmask8) __U);
4866}
4867
4868static __inline__ __m256i __DEFAULT_FN_ATTRS
4869_mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
4870{
4871 return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A,
4872 (__v4di)
4873 _mm256_setzero_si256 (),
4874 (__mmask8) __U);
4875}
4876
4877static __inline__ __m128i __DEFAULT_FN_ATTRS
4878_mm_mask_cvtepu32_epi64 (__m128i __W, __mmask8 __U, __m128i __X)
4879{
4880 return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X,
4881 (__v2di) __W,
4882 (__mmask8) __U);
4883}
4884
4885static __inline__ __m128i __DEFAULT_FN_ATTRS
4886_mm_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X)
4887{
4888 return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X,
4889 (__v2di)
4890 _mm_setzero_si128 (),
4891 (__mmask8) __U);
4892}
4893
4894static __inline__ __m256i __DEFAULT_FN_ATTRS
4895_mm256_mask_cvtepu32_epi64 (__m256i __W, __mmask8 __U, __m128i __X)
4896{
4897 return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X,
4898 (__v4di) __W,
4899 (__mmask8) __U);
4900}
4901
4902static __inline__ __m256i __DEFAULT_FN_ATTRS
4903_mm256_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X)
4904{
4905 return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X,
4906 (__v4di)
4907 _mm256_setzero_si256 (),
4908 (__mmask8) __U);
4909}
4910
4911static __inline__ __m128i __DEFAULT_FN_ATTRS
4912_mm_mask_cvtepu16_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4913{
4914 return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A,
4915 (__v4si) __W,
4916 (__mmask8) __U);
4917}
4918
4919static __inline__ __m128i __DEFAULT_FN_ATTRS
4920_mm_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A)
4921{
4922 return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A,
4923 (__v4si)
4924 _mm_setzero_si128 (),
4925 (__mmask8) __U);
4926}
4927
4928static __inline__ __m256i __DEFAULT_FN_ATTRS
4929_mm256_mask_cvtepu16_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4930{
4931 return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A,
4932 (__v8si) __W,
4933 (__mmask8) __U);
4934}
4935
4936static __inline__ __m256i __DEFAULT_FN_ATTRS
4937_mm256_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A)
4938{
4939 return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A,
4940 (__v8si)
4941 _mm256_setzero_si256 (),
4942 (__mmask8) __U);
4943}
4944
4945static __inline__ __m128i __DEFAULT_FN_ATTRS
4946_mm_mask_cvtepu16_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4947{
4948 return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A,
4949 (__v2di) __W,
4950 (__mmask8) __U);
4951}
4952
4953static __inline__ __m128i __DEFAULT_FN_ATTRS
4954_mm_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
4955{
4956 return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A,
4957 (__v2di)
4958 _mm_setzero_si128 (),
4959 (__mmask8) __U);
4960}
4961
4962static __inline__ __m256i __DEFAULT_FN_ATTRS
4963_mm256_mask_cvtepu16_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4964{
4965 return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A,
4966 (__v4di) __W,
4967 (__mmask8) __U);
4968}
4969
4970static __inline__ __m256i __DEFAULT_FN_ATTRS
4971_mm256_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
4972{
4973 return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A,
4974 (__v4di)
4975 _mm256_setzero_si256 (),
4976 (__mmask8) __U);
4977}
4978
4979
Michael Zuckerman38a27272016-02-22 09:05:41 +00004980#define _mm_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004981 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4982 (__v4si)_mm_setzero_si128(), \
4983 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004984
4985#define _mm_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004986 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4987 (__v4si)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004988
4989#define _mm_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004990 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4991 (__v4si)_mm_setzero_si128(), \
4992 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004993
4994#define _mm256_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004995 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4996 (__v8si)_mm256_setzero_si256(), \
4997 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004998
4999#define _mm256_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005000 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
5001 (__v8si)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005002
5003#define _mm256_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005004 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
5005 (__v8si)_mm256_setzero_si256(), \
5006 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005007
Michael Zuckerman477e0a32016-02-22 09:42:57 +00005008#define _mm_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005009 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
5010 (__v2di)_mm_setzero_di(), \
5011 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005012
5013#define _mm_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005014 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
5015 (__v2di)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005016
5017#define _mm_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005018 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
5019 (__v2di)_mm_setzero_di(), \
5020 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005021
5022#define _mm256_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005023 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
5024 (__v4di)_mm256_setzero_si256(), \
5025 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005026
5027#define _mm256_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005028 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
5029 (__v4di)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005030
5031#define _mm256_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005032 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
5033 (__v4di)_mm256_setzero_si256(), \
5034 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005035
Michael Zuckerman0231f162016-02-23 13:41:13 +00005036static __inline__ __m128i __DEFAULT_FN_ATTRS
5037_mm_rolv_epi32 (__m128i __A, __m128i __B)
5038{
5039 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
5040 (__v4si) __B,
5041 (__v4si)
5042 _mm_setzero_si128 (),
5043 (__mmask8) -1);
5044}
5045
5046static __inline__ __m128i __DEFAULT_FN_ATTRS
5047_mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5048 __m128i __B)
5049{
5050 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
5051 (__v4si) __B,
5052 (__v4si) __W,
5053 (__mmask8) __U);
5054}
5055
5056static __inline__ __m128i __DEFAULT_FN_ATTRS
5057_mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5058{
5059 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
5060 (__v4si) __B,
5061 (__v4si)
5062 _mm_setzero_si128 (),
5063 (__mmask8) __U);
5064}
5065
5066static __inline__ __m256i __DEFAULT_FN_ATTRS
5067_mm256_rolv_epi32 (__m256i __A, __m256i __B)
5068{
5069 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
5070 (__v8si) __B,
5071 (__v8si)
5072 _mm256_setzero_si256 (),
5073 (__mmask8) -1);
5074}
5075
5076static __inline__ __m256i __DEFAULT_FN_ATTRS
5077_mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5078 __m256i __B)
5079{
5080 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
5081 (__v8si) __B,
5082 (__v8si) __W,
5083 (__mmask8) __U);
5084}
5085
5086static __inline__ __m256i __DEFAULT_FN_ATTRS
5087_mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
5088{
5089 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
5090 (__v8si) __B,
5091 (__v8si)
5092 _mm256_setzero_si256 (),
5093 (__mmask8) __U);
5094}
5095
5096static __inline__ __m128i __DEFAULT_FN_ATTRS
5097_mm_rolv_epi64 (__m128i __A, __m128i __B)
5098{
5099 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
5100 (__v2di) __B,
5101 (__v2di)
5102 _mm_setzero_di (),
5103 (__mmask8) -1);
5104}
5105
5106static __inline__ __m128i __DEFAULT_FN_ATTRS
5107_mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5108 __m128i __B)
5109{
5110 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
5111 (__v2di) __B,
5112 (__v2di) __W,
5113 (__mmask8) __U);
5114}
5115
5116static __inline__ __m128i __DEFAULT_FN_ATTRS
5117_mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5118{
5119 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
5120 (__v2di) __B,
5121 (__v2di)
5122 _mm_setzero_di (),
5123 (__mmask8) __U);
5124}
5125
5126static __inline__ __m256i __DEFAULT_FN_ATTRS
5127_mm256_rolv_epi64 (__m256i __A, __m256i __B)
5128{
5129 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
5130 (__v4di) __B,
5131 (__v4di)
5132 _mm256_setzero_si256 (),
5133 (__mmask8) -1);
5134}
5135
5136static __inline__ __m256i __DEFAULT_FN_ATTRS
5137_mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5138 __m256i __B)
5139{
5140 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
5141 (__v4di) __B,
5142 (__v4di) __W,
5143 (__mmask8) __U);
5144}
5145
5146static __inline__ __m256i __DEFAULT_FN_ATTRS
5147_mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
5148{
5149 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
5150 (__v4di) __B,
5151 (__v4di)
5152 _mm256_setzero_si256 (),
5153 (__mmask8) __U);
5154}
5155
Craig Topperd2661882016-05-17 04:41:48 +00005156#define _mm_ror_epi32(A, B) __extension__ ({ \
5157 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
5158 (__v4si)_mm_setzero_si128(), \
5159 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005160
Craig Topperd2661882016-05-17 04:41:48 +00005161#define _mm_mask_ror_epi32(W, U, A, B) __extension__ ({ \
5162 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
5163 (__v4si)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005164
Craig Topperd2661882016-05-17 04:41:48 +00005165#define _mm_maskz_ror_epi32(U, A, B) __extension__ ({ \
5166 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
5167 (__v4si)_mm_setzero_si128(), \
5168 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005169
Craig Topperd2661882016-05-17 04:41:48 +00005170#define _mm256_ror_epi32(A, B) __extension__ ({ \
5171 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
5172 (__v8si)_mm256_setzero_si256(), \
5173 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005174
Craig Topperd2661882016-05-17 04:41:48 +00005175#define _mm256_mask_ror_epi32(W, U, A, B) __extension__ ({ \
5176 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
5177 (__v8si)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005178
Craig Topperd2661882016-05-17 04:41:48 +00005179#define _mm256_maskz_ror_epi32(U, A, B) __extension__ ({ \
5180 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
5181 (__v8si)_mm256_setzero_si256(), \
5182 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005183
Craig Topperd2661882016-05-17 04:41:48 +00005184#define _mm_ror_epi64(A, B) __extension__ ({ \
5185 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
5186 (__v2di)_mm_setzero_di(), \
5187 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005188
Craig Topperd2661882016-05-17 04:41:48 +00005189#define _mm_mask_ror_epi64(W, U, A, B) __extension__ ({ \
5190 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
5191 (__v2di)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005192
Craig Topperd2661882016-05-17 04:41:48 +00005193#define _mm_maskz_ror_epi64(U, A, B) __extension__ ({ \
5194 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
5195 (__v2di)_mm_setzero_di(), \
5196 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005197
Craig Topperd2661882016-05-17 04:41:48 +00005198#define _mm256_ror_epi64(A, B) __extension__ ({ \
5199 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5200 (__v4di)_mm256_setzero_si256(), \
5201 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005202
Craig Topperd2661882016-05-17 04:41:48 +00005203#define _mm256_mask_ror_epi64(W, U, A, B) __extension__ ({ \
5204 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5205 (__v4di)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005206
Craig Topperd2661882016-05-17 04:41:48 +00005207#define _mm256_maskz_ror_epi64(U, A, B) __extension__ ({ \
5208 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5209 (__v4di)_mm256_setzero_si256(), \
5210 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005211
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005212static __inline__ __m128i __DEFAULT_FN_ATTRS
5213_mm_mask_sll_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5214 __m128i __B)
5215{
5216 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
5217 (__v4si) __B,
5218 (__v4si) __W,
5219 (__mmask8) __U);
5220}
5221
5222static __inline__ __m128i __DEFAULT_FN_ATTRS
5223_mm_maskz_sll_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5224{
5225 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
5226 (__v4si) __B,
5227 (__v4si)
5228 _mm_setzero_si128 (),
5229 (__mmask8) __U);
5230}
5231
5232static __inline__ __m256i __DEFAULT_FN_ATTRS
5233_mm256_mask_sll_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5234 __m128i __B)
5235{
5236 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
5237 (__v4si) __B,
5238 (__v8si) __W,
5239 (__mmask8) __U);
5240}
5241
5242static __inline__ __m256i __DEFAULT_FN_ATTRS
5243_mm256_maskz_sll_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
5244{
5245 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
5246 (__v4si) __B,
5247 (__v8si)
5248 _mm256_setzero_si256 (),
5249 (__mmask8) __U);
5250}
5251
Craig Topperd2661882016-05-17 04:41:48 +00005252#define _mm_mask_slli_epi32(W, U, A, B) __extension__ ({ \
5253 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \
5254 (__v4si)(__m128i)(W), \
5255 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005256
Craig Topperd2661882016-05-17 04:41:48 +00005257#define _mm_maskz_slli_epi32(U, A, B) __extension__ ({ \
5258 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \
5259 (__v4si)_mm_setzero_si128(), \
5260 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005261
Craig Topperd2661882016-05-17 04:41:48 +00005262#define _mm256_mask_slli_epi32(W, U, A, B) __extension__ ({ \
5263 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \
5264 (__v8si)(__m256i)(W), \
5265 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005266
Craig Topperd2661882016-05-17 04:41:48 +00005267#define _mm256_maskz_slli_epi32(U, A, B) __extension__ ({ \
5268 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \
5269 (__v8si)_mm256_setzero_si256(), \
5270 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005271
5272static __inline__ __m128i __DEFAULT_FN_ATTRS
5273_mm_mask_sll_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5274 __m128i __B)
5275{
5276 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
5277 (__v2di) __B,
5278 (__v2di) __W,
5279 (__mmask8) __U);
5280}
5281
5282static __inline__ __m128i __DEFAULT_FN_ATTRS
5283_mm_maskz_sll_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5284{
5285 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
5286 (__v2di) __B,
5287 (__v2di)
5288 _mm_setzero_di (),
5289 (__mmask8) __U);
5290}
5291
5292static __inline__ __m256i __DEFAULT_FN_ATTRS
5293_mm256_mask_sll_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5294 __m128i __B)
5295{
5296 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
5297 (__v2di) __B,
5298 (__v4di) __W,
5299 (__mmask8) __U);
5300}
5301
5302static __inline__ __m256i __DEFAULT_FN_ATTRS
5303_mm256_maskz_sll_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
5304{
5305 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
5306 (__v2di) __B,
5307 (__v4di)
5308 _mm256_setzero_si256 (),
5309 (__mmask8) __U);
5310}
5311
Craig Topperd2661882016-05-17 04:41:48 +00005312#define _mm_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5313 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \
5314 (__v2di)(__m128i)(W), \
5315 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005316
Craig Topperd2661882016-05-17 04:41:48 +00005317#define _mm_maskz_slli_epi64(U, A, B) __extension__ ({ \
5318 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \
5319 (__v2di)_mm_setzero_di(), \
5320 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005321
Craig Topperd2661882016-05-17 04:41:48 +00005322#define _mm256_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5323 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \
5324 (__v4di)(__m256i)(W), \
5325 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005326
Craig Topperd2661882016-05-17 04:41:48 +00005327#define _mm256_maskz_slli_epi64(U, A, B) __extension__ ({ \
5328 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \
5329 (__v4di)_mm256_setzero_si256(), \
5330 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005331
Michael Zuckerman0231f162016-02-23 13:41:13 +00005332
Michael Zuckermane98cc742016-02-23 15:59:47 +00005333static __inline__ __m128i __DEFAULT_FN_ATTRS
5334_mm_rorv_epi32 (__m128i __A, __m128i __B)
5335{
5336 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5337 (__v4si) __B,
5338 (__v4si)
5339 _mm_setzero_si128 (),
5340 (__mmask8) -1);
5341}
5342
5343static __inline__ __m128i __DEFAULT_FN_ATTRS
5344_mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5345 __m128i __B)
5346{
5347 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5348 (__v4si) __B,
5349 (__v4si) __W,
5350 (__mmask8) __U);
5351}
5352
5353static __inline__ __m128i __DEFAULT_FN_ATTRS
5354_mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5355{
5356 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5357 (__v4si) __B,
5358 (__v4si)
5359 _mm_setzero_si128 (),
5360 (__mmask8) __U);
5361}
5362
5363static __inline__ __m256i __DEFAULT_FN_ATTRS
5364_mm256_rorv_epi32 (__m256i __A, __m256i __B)
5365{
5366 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5367 (__v8si) __B,
5368 (__v8si)
5369 _mm256_setzero_si256 (),
5370 (__mmask8) -1);
5371}
5372
5373static __inline__ __m256i __DEFAULT_FN_ATTRS
5374_mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5375 __m256i __B)
5376{
5377 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5378 (__v8si) __B,
5379 (__v8si) __W,
5380 (__mmask8) __U);
5381}
5382
5383static __inline__ __m256i __DEFAULT_FN_ATTRS
5384_mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
5385{
5386 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5387 (__v8si) __B,
5388 (__v8si)
5389 _mm256_setzero_si256 (),
5390 (__mmask8) __U);
5391}
5392
5393static __inline__ __m128i __DEFAULT_FN_ATTRS
5394_mm_rorv_epi64 (__m128i __A, __m128i __B)
5395{
5396 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5397 (__v2di) __B,
5398 (__v2di)
5399 _mm_setzero_di (),
5400 (__mmask8) -1);
5401}
5402
5403static __inline__ __m128i __DEFAULT_FN_ATTRS
5404_mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5405 __m128i __B)
5406{
5407 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5408 (__v2di) __B,
5409 (__v2di) __W,
5410 (__mmask8) __U);
5411}
5412
5413static __inline__ __m128i __DEFAULT_FN_ATTRS
5414_mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5415{
5416 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5417 (__v2di) __B,
5418 (__v2di)
5419 _mm_setzero_di (),
5420 (__mmask8) __U);
5421}
5422
5423static __inline__ __m256i __DEFAULT_FN_ATTRS
5424_mm256_rorv_epi64 (__m256i __A, __m256i __B)
5425{
5426 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5427 (__v4di) __B,
5428 (__v4di)
5429 _mm256_setzero_si256 (),
5430 (__mmask8) -1);
5431}
5432
5433static __inline__ __m256i __DEFAULT_FN_ATTRS
5434_mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5435 __m256i __B)
5436{
5437 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5438 (__v4di) __B,
5439 (__v4di) __W,
5440 (__mmask8) __U);
5441}
5442
5443static __inline__ __m256i __DEFAULT_FN_ATTRS
5444_mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
5445{
5446 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5447 (__v4di) __B,
5448 (__v4di)
5449 _mm256_setzero_si256 (),
5450 (__mmask8) __U);
5451}
5452
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005453static __inline__ __m128i __DEFAULT_FN_ATTRS
5454_mm_mask_sllv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5455 __m128i __Y)
5456{
5457 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
5458 (__v2di) __Y,
5459 (__v2di) __W,
5460 (__mmask8) __U);
5461}
5462
5463static __inline__ __m128i __DEFAULT_FN_ATTRS
5464_mm_maskz_sllv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5465{
5466 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
5467 (__v2di) __Y,
5468 (__v2di)
5469 _mm_setzero_di (),
5470 (__mmask8) __U);
5471}
5472
5473static __inline__ __m256i __DEFAULT_FN_ATTRS
5474_mm256_mask_sllv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5475 __m256i __Y)
5476{
5477 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
5478 (__v4di) __Y,
5479 (__v4di) __W,
5480 (__mmask8) __U);
5481}
5482
5483static __inline__ __m256i __DEFAULT_FN_ATTRS
5484_mm256_maskz_sllv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5485{
5486 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
5487 (__v4di) __Y,
5488 (__v4di)
5489 _mm256_setzero_si256 (),
5490 (__mmask8) __U);
5491}
5492
5493static __inline__ __m128i __DEFAULT_FN_ATTRS
5494_mm_mask_sllv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5495 __m128i __Y)
5496{
5497 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
5498 (__v4si) __Y,
5499 (__v4si) __W,
5500 (__mmask8) __U);
5501}
5502
5503static __inline__ __m128i __DEFAULT_FN_ATTRS
5504_mm_maskz_sllv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5505{
5506 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
5507 (__v4si) __Y,
5508 (__v4si)
5509 _mm_setzero_si128 (),
5510 (__mmask8) __U);
5511}
5512
5513static __inline__ __m256i __DEFAULT_FN_ATTRS
5514_mm256_mask_sllv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5515 __m256i __Y)
5516{
5517 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
5518 (__v8si) __Y,
5519 (__v8si) __W,
5520 (__mmask8) __U);
5521}
5522
5523static __inline__ __m256i __DEFAULT_FN_ATTRS
5524_mm256_maskz_sllv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5525{
5526 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
5527 (__v8si) __Y,
5528 (__v8si)
5529 _mm256_setzero_si256 (),
5530 (__mmask8) __U);
5531}
5532
Michael Zuckerman0165e762016-03-01 13:03:45 +00005533
5534
5535static __inline__ __m128i __DEFAULT_FN_ATTRS
5536_mm_mask_srlv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5537 __m128i __Y)
5538{
5539 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
5540 (__v2di) __Y,
5541 (__v2di) __W,
5542 (__mmask8) __U);
5543}
5544
5545static __inline__ __m128i __DEFAULT_FN_ATTRS
5546_mm_maskz_srlv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5547{
5548 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
5549 (__v2di) __Y,
5550 (__v2di)
5551 _mm_setzero_di (),
5552 (__mmask8) __U);
5553}
5554
5555static __inline__ __m256i __DEFAULT_FN_ATTRS
5556_mm256_mask_srlv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5557 __m256i __Y)
5558{
5559 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
5560 (__v4di) __Y,
5561 (__v4di) __W,
5562 (__mmask8) __U);
5563}
5564
5565static __inline__ __m256i __DEFAULT_FN_ATTRS
5566_mm256_maskz_srlv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5567{
5568 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
5569 (__v4di) __Y,
5570 (__v4di)
5571 _mm256_setzero_si256 (),
5572 (__mmask8) __U);
5573}
5574
5575static __inline__ __m128i __DEFAULT_FN_ATTRS
5576_mm_mask_srlv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5577 __m128i __Y)
5578{
5579 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
5580 (__v4si) __Y,
5581 (__v4si) __W,
5582 (__mmask8) __U);
5583}
5584
5585static __inline__ __m128i __DEFAULT_FN_ATTRS
5586_mm_maskz_srlv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5587{
5588 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
5589 (__v4si) __Y,
5590 (__v4si)
5591 _mm_setzero_si128 (),
5592 (__mmask8) __U);
5593}
5594
5595static __inline__ __m256i __DEFAULT_FN_ATTRS
5596_mm256_mask_srlv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5597 __m256i __Y)
5598{
5599 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
5600 (__v8si) __Y,
5601 (__v8si) __W,
5602 (__mmask8) __U);
5603}
5604
5605static __inline__ __m256i __DEFAULT_FN_ATTRS
5606_mm256_maskz_srlv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5607{
5608 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
5609 (__v8si) __Y,
5610 (__v8si)
5611 _mm256_setzero_si256 (),
5612 (__mmask8) __U);
5613}
5614
Michael Zuckermand176d742016-03-01 17:49:03 +00005615
5616
5617static __inline__ __m128i __DEFAULT_FN_ATTRS
5618_mm_mask_srl_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5619 __m128i __B)
5620{
5621 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
5622 (__v4si) __B,
5623 (__v4si) __W,
5624 (__mmask8) __U);
5625}
5626
5627static __inline__ __m128i __DEFAULT_FN_ATTRS
5628_mm_maskz_srl_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5629{
5630 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
5631 (__v4si) __B,
5632 (__v4si)
5633 _mm_setzero_si128 (),
5634 (__mmask8) __U);
5635}
5636
5637static __inline__ __m256i __DEFAULT_FN_ATTRS
5638_mm256_mask_srl_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5639 __m128i __B)
5640{
5641 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
5642 (__v4si) __B,
5643 (__v8si) __W,
5644 (__mmask8) __U);
5645}
5646
5647static __inline__ __m256i __DEFAULT_FN_ATTRS
5648_mm256_maskz_srl_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
5649{
5650 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
5651 (__v4si) __B,
5652 (__v8si)
5653 _mm256_setzero_si256 (),
5654 (__mmask8) __U);
5655}
5656
Craig Topperd2661882016-05-17 04:41:48 +00005657#define _mm_mask_srli_epi32(W, U, A, imm) __extension__ ({ \
5658 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \
5659 (__v4si)(__m128i)(W), \
5660 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005661
Craig Topperd2661882016-05-17 04:41:48 +00005662#define _mm_maskz_srli_epi32(U, A, imm) __extension__ ({ \
5663 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \
5664 (__v4si)_mm_setzero_si128(), \
5665 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005666
Craig Topperd2661882016-05-17 04:41:48 +00005667#define _mm256_mask_srli_epi32(W, U, A, imm) __extension__ ({ \
5668 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \
5669 (__v8si)(__m256i)(W), \
5670 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005671
Craig Topperd2661882016-05-17 04:41:48 +00005672#define _mm256_maskz_srli_epi32(U, A, imm) __extension__ ({ \
5673 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \
5674 (__v8si)_mm256_setzero_si256(), \
5675 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005676
5677static __inline__ __m128i __DEFAULT_FN_ATTRS
5678_mm_mask_srl_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5679 __m128i __B)
5680{
5681 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
5682 (__v2di) __B,
5683 (__v2di) __W,
5684 (__mmask8) __U);
5685}
5686
5687static __inline__ __m128i __DEFAULT_FN_ATTRS
5688_mm_maskz_srl_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5689{
5690 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
5691 (__v2di) __B,
5692 (__v2di)
5693 _mm_setzero_di (),
5694 (__mmask8) __U);
5695}
5696
5697static __inline__ __m256i __DEFAULT_FN_ATTRS
5698_mm256_mask_srl_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5699 __m128i __B)
5700{
5701 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
5702 (__v2di) __B,
5703 (__v4di) __W,
5704 (__mmask8) __U);
5705}
5706
5707static __inline__ __m256i __DEFAULT_FN_ATTRS
5708_mm256_maskz_srl_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
5709{
5710 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
5711 (__v2di) __B,
5712 (__v4di)
5713 _mm256_setzero_si256 (),
5714 (__mmask8) __U);
5715}
5716
Craig Topperd2661882016-05-17 04:41:48 +00005717#define _mm_mask_srli_epi64(W, U, A, imm) __extension__ ({ \
5718 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
5719 (__v2di)(__m128i)(W), \
5720 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005721
Craig Topperd2661882016-05-17 04:41:48 +00005722#define _mm_maskz_srli_epi64(U, A, imm) __extension__ ({ \
5723 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
5724 (__v2di)_mm_setzero_si128(), \
5725 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005726
Craig Topperd2661882016-05-17 04:41:48 +00005727#define _mm256_mask_srli_epi64(W, U, A, imm) __extension__ ({ \
5728 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
5729 (__v4di)(__m256i)(W), \
5730 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005731
Craig Topperd2661882016-05-17 04:41:48 +00005732#define _mm256_maskz_srli_epi64(U, A, imm) __extension__ ({ \
5733 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
5734 (__v4di)_mm256_setzero_si256(), \
5735 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005736
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005737static __inline__ __m128i __DEFAULT_FN_ATTRS
5738_mm_mask_srav_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5739 __m128i __Y)
5740{
5741 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
5742 (__v4si) __Y,
5743 (__v4si) __W,
5744 (__mmask8) __U);
5745}
5746
5747static __inline__ __m128i __DEFAULT_FN_ATTRS
5748_mm_maskz_srav_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5749{
5750 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
5751 (__v4si) __Y,
5752 (__v4si)
5753 _mm_setzero_si128 (),
5754 (__mmask8) __U);
5755}
5756
5757static __inline__ __m256i __DEFAULT_FN_ATTRS
5758_mm256_mask_srav_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5759 __m256i __Y)
5760{
5761 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
5762 (__v8si) __Y,
5763 (__v8si) __W,
5764 (__mmask8) __U);
5765}
5766
5767static __inline__ __m256i __DEFAULT_FN_ATTRS
5768_mm256_maskz_srav_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5769{
5770 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
5771 (__v8si) __Y,
5772 (__v8si)
5773 _mm256_setzero_si256 (),
5774 (__mmask8) __U);
5775}
5776
5777static __inline__ __m128i __DEFAULT_FN_ATTRS
5778_mm_srav_epi64 (__m128i __X, __m128i __Y)
5779{
5780 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5781 (__v2di) __Y,
5782 (__v2di)
5783 _mm_setzero_di (),
5784 (__mmask8) -1);
5785}
5786
5787static __inline__ __m128i __DEFAULT_FN_ATTRS
5788_mm_mask_srav_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5789 __m128i __Y)
5790{
5791 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5792 (__v2di) __Y,
5793 (__v2di) __W,
5794 (__mmask8) __U);
5795}
5796
5797static __inline__ __m128i __DEFAULT_FN_ATTRS
5798_mm_maskz_srav_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5799{
5800 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5801 (__v2di) __Y,
5802 (__v2di)
5803 _mm_setzero_di (),
5804 (__mmask8) __U);
5805}
5806
5807static __inline__ __m256i __DEFAULT_FN_ATTRS
5808_mm256_srav_epi64 (__m256i __X, __m256i __Y)
5809{
5810 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5811 (__v4di) __Y,
5812 (__v4di)
5813 _mm256_setzero_si256 (),
5814 (__mmask8) -1);
5815}
5816
5817static __inline__ __m256i __DEFAULT_FN_ATTRS
5818_mm256_mask_srav_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5819 __m256i __Y)
5820{
5821 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5822 (__v4di) __Y,
5823 (__v4di) __W,
5824 (__mmask8) __U);
5825}
5826
5827static __inline__ __m256i __DEFAULT_FN_ATTRS
5828_mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5829{
5830 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5831 (__v4di) __Y,
5832 (__v4di)
5833 _mm256_setzero_si256 (),
5834 (__mmask8) __U);
5835}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005836
Michael Zuckermane6542002016-05-23 08:01:48 +00005837static __inline__ __m128i __DEFAULT_FN_ATTRS
5838_mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
5839{
Igor Bregeraadb8762016-06-08 13:59:20 +00005840 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5841 (__v4si) __A,
5842 (__v4si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005843}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005844
Michael Zuckermane6542002016-05-23 08:01:48 +00005845static __inline__ __m128i __DEFAULT_FN_ATTRS
5846_mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A)
5847{
Igor Bregeraadb8762016-06-08 13:59:20 +00005848 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5849 (__v4si) __A,
5850 (__v4si) _mm_setzero_si128 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005851}
5852
5853
5854static __inline__ __m256i __DEFAULT_FN_ATTRS
5855_mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
5856{
Igor Bregeraadb8762016-06-08 13:59:20 +00005857 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5858 (__v8si) __A,
5859 (__v8si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005860}
5861
5862static __inline__ __m256i __DEFAULT_FN_ATTRS
5863_mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A)
5864{
Igor Bregeraadb8762016-06-08 13:59:20 +00005865 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5866 (__v8si) __A,
5867 (__v8si) _mm256_setzero_si256 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005868}
5869
5870static __inline__ __m128i __DEFAULT_FN_ATTRS
5871_mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P)
5872{
5873 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5874 (__v4si) __W,
5875 (__mmask8)
5876 __U);
5877}
5878
5879static __inline__ __m128i __DEFAULT_FN_ATTRS
5880_mm_maskz_load_epi32 (__mmask8 __U, void const *__P)
5881{
5882 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5883 (__v4si)
5884 _mm_setzero_si128 (),
5885 (__mmask8)
5886 __U);
5887}
5888
5889static __inline__ __m256i __DEFAULT_FN_ATTRS
5890_mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P)
5891{
5892 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5893 (__v8si) __W,
5894 (__mmask8)
5895 __U);
5896}
5897
5898static __inline__ __m256i __DEFAULT_FN_ATTRS
5899_mm256_maskz_load_epi32 (__mmask8 __U, void const *__P)
5900{
5901 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5902 (__v8si)
5903 _mm256_setzero_si256 (),
5904 (__mmask8)
5905 __U);
5906}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005907
5908static __inline__ void __DEFAULT_FN_ATTRS
5909_mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
5910{
5911 __builtin_ia32_movdqa32store128_mask ((__v4si *) __P,
5912 (__v4si) __A,
5913 (__mmask8) __U);
5914}
5915
5916static __inline__ void __DEFAULT_FN_ATTRS
5917_mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A)
5918{
5919 __builtin_ia32_movdqa32store256_mask ((__v8si *) __P,
5920 (__v8si) __A,
5921 (__mmask8) __U);
5922}
5923
5924static __inline__ __m128i __DEFAULT_FN_ATTRS
5925_mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
5926{
Igor Bregeraadb8762016-06-08 13:59:20 +00005927 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5928 (__v2di) __A,
5929 (__v2di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005930}
5931
5932static __inline__ __m128i __DEFAULT_FN_ATTRS
5933_mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A)
5934{
Igor Bregeraadb8762016-06-08 13:59:20 +00005935 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5936 (__v2di) __A,
5937 (__v2di) _mm_setzero_di ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005938}
5939
5940static __inline__ __m256i __DEFAULT_FN_ATTRS
5941_mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
5942{
Igor Bregeraadb8762016-06-08 13:59:20 +00005943 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5944 (__v4di) __A,
5945 (__v4di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005946}
5947
5948static __inline__ __m256i __DEFAULT_FN_ATTRS
5949_mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A)
5950{
Igor Bregeraadb8762016-06-08 13:59:20 +00005951 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5952 (__v4di) __A,
5953 (__v4di) _mm256_setzero_si256 ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005954}
5955
5956static __inline__ __m128i __DEFAULT_FN_ATTRS
5957_mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P)
5958{
5959 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5960 (__v2di) __W,
5961 (__mmask8)
5962 __U);
5963}
5964
5965static __inline__ __m128i __DEFAULT_FN_ATTRS
5966_mm_maskz_load_epi64 (__mmask8 __U, void const *__P)
5967{
5968 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5969 (__v2di)
5970 _mm_setzero_di (),
5971 (__mmask8)
5972 __U);
5973}
5974
5975static __inline__ __m256i __DEFAULT_FN_ATTRS
5976_mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P)
5977{
5978 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5979 (__v4di) __W,
5980 (__mmask8)
5981 __U);
5982}
5983
5984static __inline__ __m256i __DEFAULT_FN_ATTRS
5985_mm256_maskz_load_epi64 (__mmask8 __U, void const *__P)
5986{
5987 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5988 (__v4di)
5989 _mm256_setzero_si256 (),
5990 (__mmask8)
5991 __U);
5992}
5993
5994static __inline__ void __DEFAULT_FN_ATTRS
5995_mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
5996{
5997 __builtin_ia32_movdqa64store128_mask ((__v2di *) __P,
5998 (__v2di) __A,
5999 (__mmask8) __U);
6000}
6001
6002static __inline__ void __DEFAULT_FN_ATTRS
6003_mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A)
6004{
6005 __builtin_ia32_movdqa64store256_mask ((__v4di *) __P,
6006 (__v4di) __A,
6007 (__mmask8) __U);
6008}
6009
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00006010static __inline__ __m128d __DEFAULT_FN_ATTRS
6011_mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A)
6012{
Simon Pilgrim275d7212016-07-02 17:16:25 +00006013 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6014 (__v2df)_mm_movedup_pd(__A),
6015 (__v2df)__W);
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00006016}
6017
6018static __inline__ __m128d __DEFAULT_FN_ATTRS
6019_mm_maskz_movedup_pd (__mmask8 __U, __m128d __A)
6020{
Simon Pilgrim275d7212016-07-02 17:16:25 +00006021 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6022 (__v2df)_mm_movedup_pd(__A),
6023 (__v2df)_mm_setzero_pd());
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00006024}
6025
6026static __inline__ __m256d __DEFAULT_FN_ATTRS
6027_mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A)
6028{
Simon Pilgrim275d7212016-07-02 17:16:25 +00006029 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6030 (__v4df)_mm256_movedup_pd(__A),
6031 (__v4df)__W);
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00006032}
6033
6034static __inline__ __m256d __DEFAULT_FN_ATTRS
6035_mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A)
6036{
Simon Pilgrim275d7212016-07-02 17:16:25 +00006037 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6038 (__v4df)_mm256_movedup_pd(__A),
6039 (__v4df)_mm256_setzero_pd());
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00006040}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00006041
Michael Zuckerman912be162016-03-07 08:29:10 +00006042
Craig Topperd2661882016-05-17 04:41:48 +00006043#define _mm_mask_set1_epi32(O, M, A) __extension__ ({ \
6044 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
6045 (__v4si)(__m128i)(O), \
6046 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00006047
Craig Topperd2661882016-05-17 04:41:48 +00006048#define _mm_maskz_set1_epi32(M, A) __extension__ ({ \
6049 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
6050 (__v4si)_mm_setzero_si128(), \
6051 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00006052
Craig Topperd2661882016-05-17 04:41:48 +00006053#define _mm256_mask_set1_epi32(O, M, A) __extension__ ({ \
6054 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
6055 (__v8si)(__m256i)(O), \
6056 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00006057
Craig Topperd2661882016-05-17 04:41:48 +00006058#define _mm256_maskz_set1_epi32(M, A) __extension__ ({ \
6059 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
6060 (__v8si)_mm256_setzero_si256(), \
6061 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00006062
6063static __inline__ __m128i __DEFAULT_FN_ATTRS
6064_mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A)
6065{
6066 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, (__v2di) __O,
6067 __M);
6068}
6069
6070static __inline__ __m128i __DEFAULT_FN_ATTRS
6071_mm_maskz_set1_epi64 (__mmask8 __M, long long __A)
6072{
6073 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A,
6074 (__v2di)
6075 _mm_setzero_si128 (),
6076 __M);
6077}
6078
6079static __inline__ __m256i __DEFAULT_FN_ATTRS
6080_mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A)
6081{
6082 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, (__v4di) __O,
6083 __M);
6084}
6085
6086static __inline__ __m256i __DEFAULT_FN_ATTRS
6087_mm256_maskz_set1_epi64 (__mmask8 __M, long long __A)
6088{
6089 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A,
6090 (__v4di)
6091 _mm256_setzero_si256 (),
6092 __M);
6093}
Michael Zuckermandef78752016-03-28 12:23:09 +00006094
Craig Topperd2661882016-05-17 04:41:48 +00006095#define _mm_fixupimm_pd(A, B, C, imm) __extension__ ({ \
6096 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
6097 (__v2df)(__m128d)(B), \
6098 (__v2di)(__m128i)(C), (int)(imm), \
6099 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006100
Craig Topperd2661882016-05-17 04:41:48 +00006101#define _mm_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
6102 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
6103 (__v2df)(__m128d)(B), \
6104 (__v2di)(__m128i)(C), (int)(imm), \
6105 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006106
Craig Topperd2661882016-05-17 04:41:48 +00006107#define _mm_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
6108 (__m128d)__builtin_ia32_fixupimmpd128_maskz((__v2df)(__m128d)(A), \
6109 (__v2df)(__m128d)(B), \
6110 (__v2di)(__m128i)(C), \
6111 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006112
Craig Topperd2661882016-05-17 04:41:48 +00006113#define _mm256_fixupimm_pd(A, B, C, imm) __extension__ ({ \
6114 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
6115 (__v4df)(__m256d)(B), \
6116 (__v4di)(__m256i)(C), (int)(imm), \
6117 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006118
Craig Topperd2661882016-05-17 04:41:48 +00006119#define _mm256_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
6120 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
6121 (__v4df)(__m256d)(B), \
6122 (__v4di)(__m256i)(C), (int)(imm), \
6123 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006124
Craig Topperd2661882016-05-17 04:41:48 +00006125#define _mm256_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
6126 (__m256d)__builtin_ia32_fixupimmpd256_maskz((__v4df)(__m256d)(A), \
6127 (__v4df)(__m256d)(B), \
6128 (__v4di)(__m256i)(C), \
6129 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006130
Craig Topperd2661882016-05-17 04:41:48 +00006131#define _mm_fixupimm_ps(A, B, C, imm) __extension__ ({ \
6132 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
6133 (__v4sf)(__m128)(B), \
6134 (__v4si)(__m128i)(C), (int)(imm), \
6135 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006136
Craig Topperd2661882016-05-17 04:41:48 +00006137#define _mm_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
6138 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
6139 (__v4sf)(__m128)(B), \
6140 (__v4si)(__m128i)(C), (int)(imm), \
6141 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006142
Craig Topperd2661882016-05-17 04:41:48 +00006143#define _mm_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
6144 (__m128)__builtin_ia32_fixupimmps128_maskz((__v4sf)(__m128)(A), \
6145 (__v4sf)(__m128)(B), \
6146 (__v4si)(__m128i)(C), (int)(imm), \
6147 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006148
Craig Topperd2661882016-05-17 04:41:48 +00006149#define _mm256_fixupimm_ps(A, B, C, imm) __extension__ ({ \
6150 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
6151 (__v8sf)(__m256)(B), \
6152 (__v8si)(__m256i)(C), (int)(imm), \
6153 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006154
Craig Topperd2661882016-05-17 04:41:48 +00006155#define _mm256_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
6156 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
6157 (__v8sf)(__m256)(B), \
6158 (__v8si)(__m256i)(C), (int)(imm), \
6159 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006160
Craig Topperd2661882016-05-17 04:41:48 +00006161#define _mm256_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
6162 (__m256)__builtin_ia32_fixupimmps256_maskz((__v8sf)(__m256)(A), \
6163 (__v8sf)(__m256)(B), \
6164 (__v8si)(__m256i)(C), (int)(imm), \
6165 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006166
6167static __inline__ __m128d __DEFAULT_FN_ATTRS
6168_mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P)
6169{
6170 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
6171 (__v2df) __W,
6172 (__mmask8) __U);
6173}
6174
6175static __inline__ __m128d __DEFAULT_FN_ATTRS
6176_mm_maskz_load_pd (__mmask8 __U, void const *__P)
6177{
6178 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
6179 (__v2df)
6180 _mm_setzero_pd (),
6181 (__mmask8) __U);
6182}
6183
6184static __inline__ __m256d __DEFAULT_FN_ATTRS
6185_mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P)
6186{
6187 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
6188 (__v4df) __W,
6189 (__mmask8) __U);
6190}
6191
6192static __inline__ __m256d __DEFAULT_FN_ATTRS
6193_mm256_maskz_load_pd (__mmask8 __U, void const *__P)
6194{
6195 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
6196 (__v4df)
6197 _mm256_setzero_pd (),
6198 (__mmask8) __U);
6199}
6200
6201static __inline__ __m128 __DEFAULT_FN_ATTRS
6202_mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P)
6203{
6204 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
6205 (__v4sf) __W,
6206 (__mmask8) __U);
6207}
6208
6209static __inline__ __m128 __DEFAULT_FN_ATTRS
6210_mm_maskz_load_ps (__mmask8 __U, void const *__P)
6211{
6212 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
6213 (__v4sf)
6214 _mm_setzero_ps (),
6215 (__mmask8) __U);
6216}
6217
6218static __inline__ __m256 __DEFAULT_FN_ATTRS
6219_mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P)
6220{
6221 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
6222 (__v8sf) __W,
6223 (__mmask8) __U);
6224}
6225
6226static __inline__ __m256 __DEFAULT_FN_ATTRS
6227_mm256_maskz_load_ps (__mmask8 __U, void const *__P)
6228{
6229 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
6230 (__v8sf)
6231 _mm256_setzero_ps (),
6232 (__mmask8) __U);
6233}
6234
6235static __inline__ __m128i __DEFAULT_FN_ATTRS
6236_mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
6237{
6238 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
6239 (__v2di) __W,
6240 (__mmask8) __U);
6241}
6242
6243static __inline__ __m128i __DEFAULT_FN_ATTRS
6244_mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6245{
6246 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
6247 (__v2di)
6248 _mm_setzero_si128 (),
6249 (__mmask8) __U);
6250}
6251
6252static __inline__ __m256i __DEFAULT_FN_ATTRS
6253_mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P)
6254{
6255 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
6256 (__v4di) __W,
6257 (__mmask8) __U);
6258}
6259
6260static __inline__ __m256i __DEFAULT_FN_ATTRS
6261_mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6262{
6263 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
6264 (__v4di)
6265 _mm256_setzero_si256 (),
6266 (__mmask8) __U);
6267}
6268
6269static __inline__ __m128i __DEFAULT_FN_ATTRS
6270_mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
6271{
6272 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
6273 (__v4si) __W,
6274 (__mmask8) __U);
6275}
6276
6277static __inline__ __m128i __DEFAULT_FN_ATTRS
6278_mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
6279{
6280 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
6281 (__v4si)
6282 _mm_setzero_si128 (),
6283 (__mmask8) __U);
6284}
6285
6286static __inline__ __m256i __DEFAULT_FN_ATTRS
6287_mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P)
6288{
6289 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
6290 (__v8si) __W,
6291 (__mmask8) __U);
6292}
6293
6294static __inline__ __m256i __DEFAULT_FN_ATTRS
6295_mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
6296{
6297 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
6298 (__v8si)
6299 _mm256_setzero_si256 (),
6300 (__mmask8) __U);
6301}
6302
6303static __inline__ __m128d __DEFAULT_FN_ATTRS
6304_mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P)
6305{
6306 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6307 (__v2df) __W,
6308 (__mmask8) __U);
6309}
6310
6311static __inline__ __m128d __DEFAULT_FN_ATTRS
6312_mm_maskz_loadu_pd (__mmask8 __U, void const *__P)
6313{
6314 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6315 (__v2df)
6316 _mm_setzero_pd (),
6317 (__mmask8) __U);
6318}
6319
6320static __inline__ __m256d __DEFAULT_FN_ATTRS
6321_mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P)
6322{
6323 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6324 (__v4df) __W,
6325 (__mmask8) __U);
6326}
6327
6328static __inline__ __m256d __DEFAULT_FN_ATTRS
6329_mm256_maskz_loadu_pd (__mmask8 __U, void const *__P)
6330{
6331 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6332 (__v4df)
6333 _mm256_setzero_pd (),
6334 (__mmask8) __U);
6335}
6336
6337static __inline__ __m128 __DEFAULT_FN_ATTRS
6338_mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P)
6339{
6340 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6341 (__v4sf) __W,
6342 (__mmask8) __U);
6343}
6344
6345static __inline__ __m128 __DEFAULT_FN_ATTRS
6346_mm_maskz_loadu_ps (__mmask8 __U, void const *__P)
6347{
6348 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6349 (__v4sf)
6350 _mm_setzero_ps (),
6351 (__mmask8) __U);
6352}
6353
6354static __inline__ __m256 __DEFAULT_FN_ATTRS
6355_mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P)
6356{
6357 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6358 (__v8sf) __W,
6359 (__mmask8) __U);
6360}
6361
6362static __inline__ __m256 __DEFAULT_FN_ATTRS
6363_mm256_maskz_loadu_ps (__mmask8 __U, void const *__P)
6364{
6365 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6366 (__v8sf)
6367 _mm256_setzero_ps (),
6368 (__mmask8) __U);
6369}
Michael Zuckermanfa7ccc52016-04-10 10:51:04 +00006370
6371static __inline__ void __DEFAULT_FN_ATTRS
6372_mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A)
6373{
6374 __builtin_ia32_storeapd128_mask ((__v2df *) __P,
6375 (__v2df) __A,
6376 (__mmask8) __U);
6377}
6378
6379static __inline__ void __DEFAULT_FN_ATTRS
6380_mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A)
6381{
6382 __builtin_ia32_storeapd256_mask ((__v4df *) __P,
6383 (__v4df) __A,
6384 (__mmask8) __U);
6385}
6386
6387static __inline__ void __DEFAULT_FN_ATTRS
6388_mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A)
6389{
6390 __builtin_ia32_storeaps128_mask ((__v4sf *) __P,
6391 (__v4sf) __A,
6392 (__mmask8) __U);
6393}
6394
6395static __inline__ void __DEFAULT_FN_ATTRS
6396_mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
6397{
6398 __builtin_ia32_storeaps256_mask ((__v8sf *) __P,
6399 (__v8sf) __A,
6400 (__mmask8) __U);
6401}
6402
6403static __inline__ void __DEFAULT_FN_ATTRS
6404_mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
6405{
6406 __builtin_ia32_storedqudi128_mask ((__v2di *) __P,
6407 (__v2di) __A,
6408 (__mmask8) __U);
6409}
6410
6411static __inline__ void __DEFAULT_FN_ATTRS
6412_mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
6413{
6414 __builtin_ia32_storedqudi256_mask ((__v4di *) __P,
6415 (__v4di) __A,
6416 (__mmask8) __U);
6417}
6418
6419static __inline__ void __DEFAULT_FN_ATTRS
6420_mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
6421{
6422 __builtin_ia32_storedqusi128_mask ((__v4si *) __P,
6423 (__v4si) __A,
6424 (__mmask8) __U);
6425}
6426
6427static __inline__ void __DEFAULT_FN_ATTRS
6428_mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
6429{
6430 __builtin_ia32_storedqusi256_mask ((__v8si *) __P,
6431 (__v8si) __A,
6432 (__mmask8) __U);
6433}
6434
6435static __inline__ void __DEFAULT_FN_ATTRS
6436_mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A)
6437{
6438 __builtin_ia32_storeupd128_mask ((__v2df *) __P,
6439 (__v2df) __A,
6440 (__mmask8) __U);
6441}
6442
6443static __inline__ void __DEFAULT_FN_ATTRS
6444_mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A)
6445{
6446 __builtin_ia32_storeupd256_mask ((__v4df *) __P,
6447 (__v4df) __A,
6448 (__mmask8) __U);
6449}
6450
6451static __inline__ void __DEFAULT_FN_ATTRS
6452_mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A)
6453{
6454 __builtin_ia32_storeups128_mask ((__v4sf *) __P,
6455 (__v4sf) __A,
6456 (__mmask8) __U);
6457}
6458
6459static __inline__ void __DEFAULT_FN_ATTRS
6460_mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A)
6461{
6462 __builtin_ia32_storeups256_mask ((__v8sf *) __P,
6463 (__v8sf) __A,
6464 (__mmask8) __U);
6465}
6466
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006467
6468static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006469_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006470{
Craig Topper79f53ca2016-06-23 06:36:42 +00006471 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6472 (__v2df)_mm_unpackhi_pd(__A, __B),
6473 (__v2df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006474}
6475
6476static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006477_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006478{
Craig Topper79f53ca2016-06-23 06:36:42 +00006479 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6480 (__v2df)_mm_unpackhi_pd(__A, __B),
6481 (__v2df)_mm_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006482}
6483
6484static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006485_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006486{
Craig Topper79f53ca2016-06-23 06:36:42 +00006487 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6488 (__v4df)_mm256_unpackhi_pd(__A, __B),
6489 (__v4df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006490}
6491
6492static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006493_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006494{
Craig Topper79f53ca2016-06-23 06:36:42 +00006495 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6496 (__v4df)_mm256_unpackhi_pd(__A, __B),
6497 (__v4df)_mm256_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006498}
6499
6500static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006501_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006502{
Craig Topper79f53ca2016-06-23 06:36:42 +00006503 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6504 (__v4sf)_mm_unpackhi_ps(__A, __B),
6505 (__v4sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006506}
6507
6508static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006509_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006510{
Craig Topper79f53ca2016-06-23 06:36:42 +00006511 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6512 (__v4sf)_mm_unpackhi_ps(__A, __B),
6513 (__v4sf)_mm_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006514}
6515
6516static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006517_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006518{
Craig Topper79f53ca2016-06-23 06:36:42 +00006519 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6520 (__v8sf)_mm256_unpackhi_ps(__A, __B),
6521 (__v8sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006522}
6523
6524static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006525_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006526{
Craig Topper79f53ca2016-06-23 06:36:42 +00006527 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6528 (__v8sf)_mm256_unpackhi_ps(__A, __B),
6529 (__v8sf)_mm256_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006530}
6531
6532static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006533_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006534{
Craig Topper79f53ca2016-06-23 06:36:42 +00006535 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6536 (__v2df)_mm_unpacklo_pd(__A, __B),
6537 (__v2df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006538}
6539
6540static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006541_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006542{
Craig Topper79f53ca2016-06-23 06:36:42 +00006543 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6544 (__v2df)_mm_unpacklo_pd(__A, __B),
6545 (__v2df)_mm_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006546}
6547
6548static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006549_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006550{
Craig Topper79f53ca2016-06-23 06:36:42 +00006551 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6552 (__v4df)_mm256_unpacklo_pd(__A, __B),
6553 (__v4df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006554}
6555
6556static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006557_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006558{
Craig Topper79f53ca2016-06-23 06:36:42 +00006559 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6560 (__v4df)_mm256_unpacklo_pd(__A, __B),
6561 (__v4df)_mm256_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006562}
6563
6564static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006565_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006566{
Craig Topper79f53ca2016-06-23 06:36:42 +00006567 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6568 (__v4sf)_mm_unpacklo_ps(__A, __B),
6569 (__v4sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006570}
6571
6572static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006573_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006574{
Craig Topper79f53ca2016-06-23 06:36:42 +00006575 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6576 (__v4sf)_mm_unpacklo_ps(__A, __B),
6577 (__v4sf)_mm_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006578}
6579
6580static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006581_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006582{
Craig Topper79f53ca2016-06-23 06:36:42 +00006583 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6584 (__v8sf)_mm256_unpacklo_ps(__A, __B),
6585 (__v8sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006586}
6587
6588static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006589_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006590{
Craig Topper79f53ca2016-06-23 06:36:42 +00006591 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6592 (__v8sf)_mm256_unpacklo_ps(__A, __B),
6593 (__v8sf)_mm256_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006594}
6595
6596static __inline__ __m128d __DEFAULT_FN_ATTRS
6597_mm_rcp14_pd (__m128d __A)
6598{
6599 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6600 (__v2df)
6601 _mm_setzero_pd (),
6602 (__mmask8) -1);
6603}
6604
6605static __inline__ __m128d __DEFAULT_FN_ATTRS
6606_mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A)
6607{
6608 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6609 (__v2df) __W,
6610 (__mmask8) __U);
6611}
6612
6613static __inline__ __m128d __DEFAULT_FN_ATTRS
6614_mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A)
6615{
6616 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6617 (__v2df)
6618 _mm_setzero_pd (),
6619 (__mmask8) __U);
6620}
6621
6622static __inline__ __m256d __DEFAULT_FN_ATTRS
6623_mm256_rcp14_pd (__m256d __A)
6624{
6625 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6626 (__v4df)
6627 _mm256_setzero_pd (),
6628 (__mmask8) -1);
6629}
6630
6631static __inline__ __m256d __DEFAULT_FN_ATTRS
6632_mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A)
6633{
6634 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6635 (__v4df) __W,
6636 (__mmask8) __U);
6637}
6638
6639static __inline__ __m256d __DEFAULT_FN_ATTRS
6640_mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A)
6641{
6642 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6643 (__v4df)
6644 _mm256_setzero_pd (),
6645 (__mmask8) __U);
6646}
6647
6648static __inline__ __m128 __DEFAULT_FN_ATTRS
6649_mm_rcp14_ps (__m128 __A)
6650{
6651 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6652 (__v4sf)
6653 _mm_setzero_ps (),
6654 (__mmask8) -1);
6655}
6656
6657static __inline__ __m128 __DEFAULT_FN_ATTRS
6658_mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A)
6659{
6660 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6661 (__v4sf) __W,
6662 (__mmask8) __U);
6663}
6664
6665static __inline__ __m128 __DEFAULT_FN_ATTRS
6666_mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A)
6667{
6668 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6669 (__v4sf)
6670 _mm_setzero_ps (),
6671 (__mmask8) __U);
6672}
6673
6674static __inline__ __m256 __DEFAULT_FN_ATTRS
6675_mm256_rcp14_ps (__m256 __A)
6676{
6677 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6678 (__v8sf)
6679 _mm256_setzero_ps (),
6680 (__mmask8) -1);
6681}
6682
6683static __inline__ __m256 __DEFAULT_FN_ATTRS
6684_mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A)
6685{
6686 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6687 (__v8sf) __W,
6688 (__mmask8) __U);
6689}
6690
6691static __inline__ __m256 __DEFAULT_FN_ATTRS
6692_mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A)
6693{
6694 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6695 (__v8sf)
6696 _mm256_setzero_ps (),
6697 (__mmask8) __U);
6698}
6699
Craig Topperd2661882016-05-17 04:41:48 +00006700#define _mm_mask_permute_pd(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006701 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6702 (__v2df)_mm_permute_pd((X), (C)), \
6703 (__v2df)(__m128d)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006704
Craig Topperd2661882016-05-17 04:41:48 +00006705#define _mm_maskz_permute_pd(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006706 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6707 (__v2df)_mm_permute_pd((X), (C)), \
6708 (__v2df)_mm_setzero_pd()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006709
Craig Topperd2661882016-05-17 04:41:48 +00006710#define _mm256_mask_permute_pd(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006711 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6712 (__v4df)_mm256_permute_pd((X), (C)), \
6713 (__v4df)(__m256d)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006714
Craig Topperd2661882016-05-17 04:41:48 +00006715#define _mm256_maskz_permute_pd(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006716 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6717 (__v4df)_mm256_permute_pd((X), (C)), \
6718 (__v4df)_mm256_setzero_pd()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006719
Craig Topperd2661882016-05-17 04:41:48 +00006720#define _mm_mask_permute_ps(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006721 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6722 (__v4sf)_mm_permute_ps((X), (C)), \
6723 (__v4sf)(__m128)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006724
Craig Topperd2661882016-05-17 04:41:48 +00006725#define _mm_maskz_permute_ps(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006726 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6727 (__v4sf)_mm_permute_ps((X), (C)), \
6728 (__v4sf)_mm_setzero_ps()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006729
Craig Topperd2661882016-05-17 04:41:48 +00006730#define _mm256_mask_permute_ps(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006731 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6732 (__v8sf)_mm256_permute_ps((X), (C)), \
6733 (__v8sf)(__m256)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006734
Craig Topperd2661882016-05-17 04:41:48 +00006735#define _mm256_maskz_permute_ps(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006736 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6737 (__v8sf)_mm256_permute_ps((X), (C)), \
6738 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006739
6740static __inline__ __m128d __DEFAULT_FN_ATTRS
6741_mm_mask_permutevar_pd (__m128d __W, __mmask8 __U, __m128d __A,
6742 __m128i __C)
6743{
6744 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
6745 (__v2di) __C,
6746 (__v2df) __W,
6747 (__mmask8) __U);
6748}
6749
6750static __inline__ __m128d __DEFAULT_FN_ATTRS
6751_mm_maskz_permutevar_pd (__mmask8 __U, __m128d __A, __m128i __C)
6752{
6753 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
6754 (__v2di) __C,
6755 (__v2df)
6756 _mm_setzero_pd (),
6757 (__mmask8) __U);
6758}
6759
6760static __inline__ __m256d __DEFAULT_FN_ATTRS
6761_mm256_mask_permutevar_pd (__m256d __W, __mmask8 __U, __m256d __A,
6762 __m256i __C)
6763{
6764 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
6765 (__v4di) __C,
6766 (__v4df) __W,
6767 (__mmask8)
6768 __U);
6769}
6770
6771static __inline__ __m256d __DEFAULT_FN_ATTRS
6772_mm256_maskz_permutevar_pd (__mmask8 __U, __m256d __A, __m256i __C)
6773{
6774 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
6775 (__v4di) __C,
6776 (__v4df)
6777 _mm256_setzero_pd (),
6778 (__mmask8)
6779 __U);
6780}
6781
6782static __inline__ __m128 __DEFAULT_FN_ATTRS
6783_mm_mask_permutevar_ps (__m128 __W, __mmask8 __U, __m128 __A,
6784 __m128i __C)
6785{
6786 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
6787 (__v4si) __C,
6788 (__v4sf) __W,
6789 (__mmask8) __U);
6790}
6791
6792static __inline__ __m128 __DEFAULT_FN_ATTRS
6793_mm_maskz_permutevar_ps (__mmask8 __U, __m128 __A, __m128i __C)
6794{
6795 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
6796 (__v4si) __C,
6797 (__v4sf)
6798 _mm_setzero_ps (),
6799 (__mmask8) __U);
6800}
6801
6802static __inline__ __m256 __DEFAULT_FN_ATTRS
6803_mm256_mask_permutevar_ps (__m256 __W, __mmask8 __U, __m256 __A,
6804 __m256i __C)
6805{
6806 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
6807 (__v8si) __C,
6808 (__v8sf) __W,
6809 (__mmask8) __U);
6810}
6811
6812static __inline__ __m256 __DEFAULT_FN_ATTRS
6813_mm256_maskz_permutevar_ps (__mmask8 __U, __m256 __A, __m256i __C)
6814{
6815 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
6816 (__v8si) __C,
6817 (__v8sf)
6818 _mm256_setzero_ps (),
6819 (__mmask8) __U);
6820}
6821
Michael Zuckerman07525092016-04-11 10:22:07 +00006822static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6823_mm_test_epi32_mask (__m128i __A, __m128i __B)
6824{
6825 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6826 (__v4si) __B,
6827 (__mmask8) -1);
6828}
6829
6830static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6831_mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6832{
6833 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6834 (__v4si) __B, __U);
6835}
6836
6837static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6838_mm256_test_epi32_mask (__m256i __A, __m256i __B)
6839{
6840 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6841 (__v8si) __B,
6842 (__mmask8) -1);
6843}
6844
6845static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6846_mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6847{
6848 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6849 (__v8si) __B, __U);
6850}
6851
6852static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6853_mm_test_epi64_mask (__m128i __A, __m128i __B)
6854{
6855 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6856 (__v2di) __B,
6857 (__mmask8) -1);
6858}
6859
6860static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6861_mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6862{
6863 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6864 (__v2di) __B, __U);
6865}
6866
6867static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6868_mm256_test_epi64_mask (__m256i __A, __m256i __B)
6869{
6870 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
6871 (__v4di) __B,
6872 (__mmask8) -1);
6873}
6874
6875static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6876_mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6877{
6878 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
6879 (__v4di) __B, __U);
6880}
6881
6882static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6883_mm_testn_epi32_mask (__m128i __A, __m128i __B)
6884{
6885 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
6886 (__v4si) __B,
6887 (__mmask8) -1);
6888}
6889
6890static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6891_mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6892{
6893 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
6894 (__v4si) __B, __U);
6895}
6896
6897static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6898_mm256_testn_epi32_mask (__m256i __A, __m256i __B)
6899{
6900 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
6901 (__v8si) __B,
6902 (__mmask8) -1);
6903}
6904
6905static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6906_mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6907{
6908 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
6909 (__v8si) __B, __U);
6910}
6911
6912static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6913_mm_testn_epi64_mask (__m128i __A, __m128i __B)
6914{
6915 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
6916 (__v2di) __B,
6917 (__mmask8) -1);
6918}
6919
6920static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6921_mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6922{
6923 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
6924 (__v2di) __B, __U);
6925}
6926
6927static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6928_mm256_testn_epi64_mask (__m256i __A, __m256i __B)
6929{
6930 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
6931 (__v4di) __B,
6932 (__mmask8) -1);
6933}
6934
6935static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6936_mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6937{
6938 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
6939 (__v4di) __B, __U);
6940}
6941
6942
6943
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006944static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006945_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006946{
Craig Topper79f53ca2016-06-23 06:36:42 +00006947 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6948 (__v4si)_mm_unpackhi_epi32(__A, __B),
6949 (__v4si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006950}
6951
6952static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006953_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006954{
Craig Topper79f53ca2016-06-23 06:36:42 +00006955 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6956 (__v4si)_mm_unpackhi_epi32(__A, __B),
6957 (__v4si)_mm_setzero_si128());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006958}
6959
6960static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006961_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006962{
Craig Topper79f53ca2016-06-23 06:36:42 +00006963 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6964 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6965 (__v8si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006966}
6967
6968static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006969_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006970{
Craig Topper79f53ca2016-06-23 06:36:42 +00006971 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6972 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6973 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006974}
6975
6976static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006977_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006978{
Craig Topper79f53ca2016-06-23 06:36:42 +00006979 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6980 (__v2di)_mm_unpackhi_epi64(__A, __B),
6981 (__v2di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006982}
6983
6984static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006985_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006986{
Craig Topper79f53ca2016-06-23 06:36:42 +00006987 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6988 (__v2di)_mm_unpackhi_epi64(__A, __B),
6989 (__v2di)_mm_setzero_di());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006990}
6991
6992static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006993_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006994{
Craig Topper79f53ca2016-06-23 06:36:42 +00006995 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6996 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6997 (__v4di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006998}
6999
7000static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00007001_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007002{
Craig Topper79f53ca2016-06-23 06:36:42 +00007003 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
7004 (__v4di)_mm256_unpackhi_epi64(__A, __B),
7005 (__v4di)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007006}
7007
7008static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00007009_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007010{
Craig Topper79f53ca2016-06-23 06:36:42 +00007011 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
7012 (__v4si)_mm_unpacklo_epi32(__A, __B),
7013 (__v4si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007014}
7015
7016static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00007017_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007018{
Craig Topper79f53ca2016-06-23 06:36:42 +00007019 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
7020 (__v4si)_mm_unpacklo_epi32(__A, __B),
7021 (__v4si)_mm_setzero_si128());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007022}
7023
7024static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00007025_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007026{
Craig Topper79f53ca2016-06-23 06:36:42 +00007027 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
7028 (__v8si)_mm256_unpacklo_epi32(__A, __B),
7029 (__v8si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007030}
7031
7032static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00007033_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007034{
Craig Topper79f53ca2016-06-23 06:36:42 +00007035 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
7036 (__v8si)_mm256_unpacklo_epi32(__A, __B),
7037 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007038}
7039
7040static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00007041_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007042{
Craig Topper79f53ca2016-06-23 06:36:42 +00007043 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
7044 (__v2di)_mm_unpacklo_epi64(__A, __B),
7045 (__v2di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007046}
7047
7048static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00007049_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007050{
Craig Topper79f53ca2016-06-23 06:36:42 +00007051 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
7052 (__v2di)_mm_unpacklo_epi64(__A, __B),
7053 (__v2di)_mm_setzero_di());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007054}
7055
7056static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00007057_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007058{
Craig Topper79f53ca2016-06-23 06:36:42 +00007059 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
7060 (__v4di)_mm256_unpacklo_epi64(__A, __B),
7061 (__v4di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007062}
7063
7064static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00007065_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007066{
Craig Topper79f53ca2016-06-23 06:36:42 +00007067 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
7068 (__v4di)_mm256_unpacklo_epi64(__A, __B),
7069 (__v4di)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007070}
7071
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007072static __inline__ __m128i __DEFAULT_FN_ATTRS
7073_mm_mask_sra_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
7074 __m128i __B)
7075{
7076 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
7077 (__v4si) __B,
7078 (__v4si) __W,
7079 (__mmask8) __U);
7080}
7081
7082static __inline__ __m128i __DEFAULT_FN_ATTRS
7083_mm_maskz_sra_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
7084{
7085 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
7086 (__v4si) __B,
7087 (__v4si)
7088 _mm_setzero_si128 (),
7089 (__mmask8) __U);
7090}
7091
7092static __inline__ __m256i __DEFAULT_FN_ATTRS
7093_mm256_mask_sra_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
7094 __m128i __B)
7095{
7096 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
7097 (__v4si) __B,
7098 (__v8si) __W,
7099 (__mmask8) __U);
7100}
7101
7102static __inline__ __m256i __DEFAULT_FN_ATTRS
7103_mm256_maskz_sra_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
7104{
7105 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
7106 (__v4si) __B,
7107 (__v8si)
7108 _mm256_setzero_si256 (),
7109 (__mmask8) __U);
7110}
7111
Craig Topperd2661882016-05-17 04:41:48 +00007112#define _mm_mask_srai_epi32(W, U, A, imm) __extension__ ({ \
7113 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \
7114 (__v4si)(__m128i)(W), \
7115 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007116
Craig Topperd2661882016-05-17 04:41:48 +00007117#define _mm_maskz_srai_epi32(U, A, imm) __extension__ ({ \
7118 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \
7119 (__v4si)_mm_setzero_si128(), \
7120 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007121
Craig Topperd2661882016-05-17 04:41:48 +00007122#define _mm256_mask_srai_epi32(W, U, A, imm) __extension__ ({ \
7123 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \
7124 (__v8si)(__m256i)(W), \
7125 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007126
Craig Topperd2661882016-05-17 04:41:48 +00007127#define _mm256_maskz_srai_epi32(U, A, imm) __extension__ ({ \
7128 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \
7129 (__v8si)_mm256_setzero_si256(), \
7130 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007131
7132static __inline__ __m128i __DEFAULT_FN_ATTRS
7133_mm_sra_epi64 (__m128i __A, __m128i __B)
7134{
7135 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
7136 (__v2di) __B,
7137 (__v2di)
7138 _mm_setzero_di (),
7139 (__mmask8) -1);
7140}
7141
7142static __inline__ __m128i __DEFAULT_FN_ATTRS
7143_mm_mask_sra_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
7144 __m128i __B)
7145{
7146 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
7147 (__v2di) __B,
7148 (__v2di) __W,
7149 (__mmask8) __U);
7150}
7151
7152static __inline__ __m128i __DEFAULT_FN_ATTRS
7153_mm_maskz_sra_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
7154{
7155 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
7156 (__v2di) __B,
7157 (__v2di)
7158 _mm_setzero_di (),
7159 (__mmask8) __U);
7160}
7161
7162static __inline__ __m256i __DEFAULT_FN_ATTRS
7163_mm256_sra_epi64 (__m256i __A, __m128i __B)
7164{
7165 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
7166 (__v2di) __B,
7167 (__v4di)
7168 _mm256_setzero_si256 (),
7169 (__mmask8) -1);
7170}
7171
7172static __inline__ __m256i __DEFAULT_FN_ATTRS
7173_mm256_mask_sra_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
7174 __m128i __B)
7175{
7176 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
7177 (__v2di) __B,
7178 (__v4di) __W,
7179 (__mmask8) __U);
7180}
7181
7182static __inline__ __m256i __DEFAULT_FN_ATTRS
7183_mm256_maskz_sra_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
7184{
7185 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
7186 (__v2di) __B,
7187 (__v4di)
7188 _mm256_setzero_si256 (),
7189 (__mmask8) __U);
7190}
7191
Craig Topperd2661882016-05-17 04:41:48 +00007192#define _mm_srai_epi64(A, imm) __extension__ ({ \
7193 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7194 (__v2di)_mm_setzero_di(), \
7195 (__mmask8)-1); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007196
Craig Topperd2661882016-05-17 04:41:48 +00007197#define _mm_mask_srai_epi64(W, U, A, imm) __extension__ ({ \
7198 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7199 (__v2di)(__m128i)(W), \
7200 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007201
Craig Topperd2661882016-05-17 04:41:48 +00007202#define _mm_maskz_srai_epi64(U, A, imm) __extension__ ({ \
7203 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7204 (__v2di)_mm_setzero_si128(), \
7205 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007206
Craig Topperd2661882016-05-17 04:41:48 +00007207#define _mm256_srai_epi64(A, imm) __extension__ ({ \
7208 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7209 (__v4di)_mm256_setzero_si256(), \
7210 (__mmask8)-1); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007211
Craig Topperd2661882016-05-17 04:41:48 +00007212#define _mm256_mask_srai_epi64(W, U, A, imm) __extension__ ({ \
7213 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7214 (__v4di)(__m256i)(W), \
7215 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007216
Craig Topperd2661882016-05-17 04:41:48 +00007217#define _mm256_maskz_srai_epi64(U, A, imm) __extension__ ({ \
7218 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7219 (__v4di)_mm256_setzero_si256(), \
7220 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007221
Craig Topperd2661882016-05-17 04:41:48 +00007222#define _mm_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
7223 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
7224 (__v4si)(__m128i)(B), \
7225 (__v4si)(__m128i)(C), (int)(imm), \
7226 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007227
Craig Topperd2661882016-05-17 04:41:48 +00007228#define _mm_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
7229 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
7230 (__v4si)(__m128i)(B), \
7231 (__v4si)(__m128i)(C), (int)(imm), \
7232 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007233
Craig Topperd2661882016-05-17 04:41:48 +00007234#define _mm_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
7235 (__m128i)__builtin_ia32_pternlogd128_maskz((__v4si)(__m128i)(A), \
7236 (__v4si)(__m128i)(B), \
7237 (__v4si)(__m128i)(C), (int)(imm), \
7238 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007239
Craig Topperd2661882016-05-17 04:41:48 +00007240#define _mm256_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
7241 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
7242 (__v8si)(__m256i)(B), \
7243 (__v8si)(__m256i)(C), (int)(imm), \
7244 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007245
Craig Topperd2661882016-05-17 04:41:48 +00007246#define _mm256_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
7247 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
7248 (__v8si)(__m256i)(B), \
7249 (__v8si)(__m256i)(C), (int)(imm), \
7250 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007251
Craig Topperd2661882016-05-17 04:41:48 +00007252#define _mm256_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
7253 (__m256i)__builtin_ia32_pternlogd256_maskz((__v8si)(__m256i)(A), \
7254 (__v8si)(__m256i)(B), \
7255 (__v8si)(__m256i)(C), (int)(imm), \
7256 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007257
Craig Topperd2661882016-05-17 04:41:48 +00007258#define _mm_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
7259 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
7260 (__v2di)(__m128i)(B), \
7261 (__v2di)(__m128i)(C), (int)(imm), \
7262 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007263
Craig Topperd2661882016-05-17 04:41:48 +00007264#define _mm_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
7265 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
7266 (__v2di)(__m128i)(B), \
7267 (__v2di)(__m128i)(C), (int)(imm), \
7268 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007269
Craig Topperd2661882016-05-17 04:41:48 +00007270#define _mm_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
7271 (__m128i)__builtin_ia32_pternlogq128_maskz((__v2di)(__m128i)(A), \
7272 (__v2di)(__m128i)(B), \
7273 (__v2di)(__m128i)(C), (int)(imm), \
7274 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007275
Craig Topperd2661882016-05-17 04:41:48 +00007276#define _mm256_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
7277 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
7278 (__v4di)(__m256i)(B), \
7279 (__v4di)(__m256i)(C), (int)(imm), \
7280 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007281
Craig Topperd2661882016-05-17 04:41:48 +00007282#define _mm256_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
7283 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
7284 (__v4di)(__m256i)(B), \
7285 (__v4di)(__m256i)(C), (int)(imm), \
7286 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007287
Craig Topperd2661882016-05-17 04:41:48 +00007288#define _mm256_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
7289 (__m256i)__builtin_ia32_pternlogq256_maskz((__v4di)(__m256i)(A), \
7290 (__v4di)(__m256i)(B), \
7291 (__v4di)(__m256i)(C), (int)(imm), \
7292 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007293
7294
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007295
Craig Topperd2661882016-05-17 04:41:48 +00007296#define _mm256_shuffle_f32x4(A, B, imm) __extension__ ({ \
7297 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7298 (__v8sf)(__m256)(B), (int)(imm), \
7299 (__v8sf)_mm256_setzero_ps(), \
7300 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007301
Craig Topperd2661882016-05-17 04:41:48 +00007302#define _mm256_mask_shuffle_f32x4(W, U, A, B, imm) __extension__ ({ \
7303 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7304 (__v8sf)(__m256)(B), (int)(imm), \
7305 (__v8sf)(__m256)(W), \
7306 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007307
Craig Topperd2661882016-05-17 04:41:48 +00007308#define _mm256_maskz_shuffle_f32x4(U, A, B, imm) __extension__ ({ \
7309 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7310 (__v8sf)(__m256)(B), (int)(imm), \
7311 (__v8sf)_mm256_setzero_ps(), \
7312 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007313
Craig Topperd2661882016-05-17 04:41:48 +00007314#define _mm256_shuffle_f64x2(A, B, imm) __extension__ ({ \
7315 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7316 (__v4df)(__m256d)(B), \
7317 (int)(imm), \
7318 (__v4df)_mm256_setzero_pd(), \
7319 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007320
Craig Topperd2661882016-05-17 04:41:48 +00007321#define _mm256_mask_shuffle_f64x2(W, U, A, B, imm) __extension__ ({ \
7322 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7323 (__v4df)(__m256d)(B), \
7324 (int)(imm), \
7325 (__v4df)(__m256d)(W), \
7326 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007327
Craig Topperd2661882016-05-17 04:41:48 +00007328#define _mm256_maskz_shuffle_f64x2(U, A, B, imm) __extension__ ({ \
7329 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7330 (__v4df)(__m256d)(B), \
7331 (int)(imm), \
7332 (__v4df)_mm256_setzero_pd(), \
7333 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007334
Craig Topperd2661882016-05-17 04:41:48 +00007335#define _mm256_shuffle_i32x4(A, B, imm) __extension__ ({ \
7336 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7337 (__v8si)(__m256i)(B), \
7338 (int)(imm), \
7339 (__v8si)_mm256_setzero_si256(), \
7340 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007341
Craig Topperd2661882016-05-17 04:41:48 +00007342#define _mm256_mask_shuffle_i32x4(W, U, A, B, imm) __extension__ ({ \
7343 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7344 (__v8si)(__m256i)(B), \
7345 (int)(imm), \
7346 (__v8si)(__m256i)(W), \
7347 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007348
Craig Topperd2661882016-05-17 04:41:48 +00007349#define _mm256_maskz_shuffle_i32x4(U, A, B, imm) __extension__ ({ \
7350 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7351 (__v8si)(__m256i)(B), \
7352 (int)(imm), \
7353 (__v8si)_mm256_setzero_si256(), \
7354 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007355
Craig Topperd2661882016-05-17 04:41:48 +00007356#define _mm256_shuffle_i64x2(A, B, imm) __extension__ ({ \
7357 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7358 (__v4di)(__m256i)(B), \
7359 (int)(imm), \
7360 (__v4di)_mm256_setzero_si256(), \
7361 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007362
Craig Topperd2661882016-05-17 04:41:48 +00007363#define _mm256_mask_shuffle_i64x2(W, U, A, B, imm) __extension__ ({ \
7364 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7365 (__v4di)(__m256i)(B), \
7366 (int)(imm), \
7367 (__v4di)(__m256i)(W), \
7368 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007369
Craig Topperd2661882016-05-17 04:41:48 +00007370#define _mm256_maskz_shuffle_i64x2(U, A, B, imm) __extension__ ({ \
7371 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7372 (__v4di)(__m256i)(B), \
7373 (int)(imm), \
7374 (__v4di)_mm256_setzero_si256(), \
7375 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007376
Simon Pilgrim427154d2016-07-04 21:30:47 +00007377#define _mm_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7378 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
7379 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
7380 (__v2df)(__m128d)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007381
Simon Pilgrim427154d2016-07-04 21:30:47 +00007382#define _mm_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7383 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
7384 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
7385 (__v2df)_mm_setzero_pd()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007386
Simon Pilgrim427154d2016-07-04 21:30:47 +00007387#define _mm256_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7388 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
7389 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
7390 (__v4df)(__m256d)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007391
Simon Pilgrim427154d2016-07-04 21:30:47 +00007392#define _mm256_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7393 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
7394 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
7395 (__v4df)_mm256_setzero_pd()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007396
Simon Pilgrim427154d2016-07-04 21:30:47 +00007397#define _mm_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7398 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
7399 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
7400 (__v4sf)(__m128)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007401
Simon Pilgrim427154d2016-07-04 21:30:47 +00007402#define _mm_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7403 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
7404 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
7405 (__v4sf)_mm_setzero_ps()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007406
Simon Pilgrim427154d2016-07-04 21:30:47 +00007407#define _mm256_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7408 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7409 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
7410 (__v8sf)(__m256)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007411
Simon Pilgrim427154d2016-07-04 21:30:47 +00007412#define _mm256_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7413 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7414 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
7415 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007416
7417static __inline__ __m128d __DEFAULT_FN_ATTRS
7418_mm_rsqrt14_pd (__m128d __A)
7419{
7420 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7421 (__v2df)
7422 _mm_setzero_pd (),
7423 (__mmask8) -1);
7424}
7425
7426static __inline__ __m128d __DEFAULT_FN_ATTRS
7427_mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A)
7428{
7429 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7430 (__v2df) __W,
7431 (__mmask8) __U);
7432}
7433
7434static __inline__ __m128d __DEFAULT_FN_ATTRS
7435_mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A)
7436{
7437 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7438 (__v2df)
7439 _mm_setzero_pd (),
7440 (__mmask8) __U);
7441}
7442
7443static __inline__ __m256d __DEFAULT_FN_ATTRS
7444_mm256_rsqrt14_pd (__m256d __A)
7445{
7446 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7447 (__v4df)
7448 _mm256_setzero_pd (),
7449 (__mmask8) -1);
7450}
7451
7452static __inline__ __m256d __DEFAULT_FN_ATTRS
7453_mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A)
7454{
7455 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7456 (__v4df) __W,
7457 (__mmask8) __U);
7458}
7459
7460static __inline__ __m256d __DEFAULT_FN_ATTRS
7461_mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A)
7462{
7463 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7464 (__v4df)
7465 _mm256_setzero_pd (),
7466 (__mmask8) __U);
7467}
7468
7469static __inline__ __m128 __DEFAULT_FN_ATTRS
7470_mm_rsqrt14_ps (__m128 __A)
7471{
7472 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7473 (__v4sf)
7474 _mm_setzero_ps (),
7475 (__mmask8) -1);
7476}
7477
7478static __inline__ __m128 __DEFAULT_FN_ATTRS
7479_mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A)
7480{
7481 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7482 (__v4sf) __W,
7483 (__mmask8) __U);
7484}
7485
7486static __inline__ __m128 __DEFAULT_FN_ATTRS
7487_mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A)
7488{
7489 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7490 (__v4sf)
7491 _mm_setzero_ps (),
7492 (__mmask8) __U);
7493}
7494
7495static __inline__ __m256 __DEFAULT_FN_ATTRS
7496_mm256_rsqrt14_ps (__m256 __A)
7497{
7498 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7499 (__v8sf)
7500 _mm256_setzero_ps (),
7501 (__mmask8) -1);
7502}
7503
7504static __inline__ __m256 __DEFAULT_FN_ATTRS
7505_mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A)
7506{
7507 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7508 (__v8sf) __W,
7509 (__mmask8) __U);
7510}
7511
7512static __inline__ __m256 __DEFAULT_FN_ATTRS
7513_mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A)
7514{
7515 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7516 (__v8sf)
7517 _mm256_setzero_ps (),
7518 (__mmask8) __U);
7519}
7520
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007521static __inline__ __m256 __DEFAULT_FN_ATTRS
7522_mm256_broadcast_f32x4 (__m128 __A)
7523{
7524 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7525 (__v8sf)_mm256_undefined_pd (),
Craig Topper406d5cd2016-06-04 05:43:37 +00007526 (__mmask8) -1);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007527}
7528
7529static __inline__ __m256 __DEFAULT_FN_ATTRS
7530_mm256_mask_broadcast_f32x4 (__m256 __O, __mmask8 __M, __m128 __A)
7531{
7532 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7533 (__v8sf) __O,
7534 __M);
7535}
7536
7537static __inline__ __m256 __DEFAULT_FN_ATTRS
7538_mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A)
7539{
7540 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7541 (__v8sf) _mm256_setzero_ps (),
7542 __M);
7543}
7544
7545static __inline__ __m256i __DEFAULT_FN_ATTRS
7546_mm256_broadcast_i32x4 (__m128i __A)
7547{
7548 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
7549 (__v8si)_mm256_undefined_si256 (),
Craig Topper406d5cd2016-06-04 05:43:37 +00007550 (__mmask8) -1);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007551}
7552
7553static __inline__ __m256i __DEFAULT_FN_ATTRS
7554_mm256_mask_broadcast_i32x4 (__m256i __O, __mmask8 __M, __m128i __A)
7555{
7556 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
7557 (__v8si)
7558 __O, __M);
7559}
7560
7561static __inline__ __m256i __DEFAULT_FN_ATTRS
7562_mm256_maskz_broadcast_i32x4 (__mmask8 __M, __m128i __A)
7563{
7564 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si)
7565 __A,
7566 (__v8si) _mm256_setzero_si256 (),
7567 __M);
7568}
7569
7570static __inline__ __m256d __DEFAULT_FN_ATTRS
7571_mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A)
7572{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007573 return (__m256d)__builtin_ia32_selectpd_256(__M,
7574 (__v4df) _mm256_broadcastsd_pd(__A),
7575 (__v4df) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007576}
7577
7578static __inline__ __m256d __DEFAULT_FN_ATTRS
7579_mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
7580{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007581 return (__m256d)__builtin_ia32_selectpd_256(__M,
7582 (__v4df) _mm256_broadcastsd_pd(__A),
7583 (__v4df) _mm256_setzero_pd());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007584}
7585
7586static __inline__ __m128 __DEFAULT_FN_ATTRS
7587_mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A)
7588{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007589 return (__m128)__builtin_ia32_selectps_128(__M,
7590 (__v4sf) _mm_broadcastss_ps(__A),
7591 (__v4sf) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007592}
7593
7594static __inline__ __m128 __DEFAULT_FN_ATTRS
7595_mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7596{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007597 return (__m128)__builtin_ia32_selectps_128(__M,
7598 (__v4sf) _mm_broadcastss_ps(__A),
7599 (__v4sf) _mm_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007600}
7601
7602static __inline__ __m256 __DEFAULT_FN_ATTRS
7603_mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A)
7604{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007605 return (__m256)__builtin_ia32_selectps_256(__M,
7606 (__v8sf) _mm256_broadcastss_ps(__A),
7607 (__v8sf) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007608}
7609
7610static __inline__ __m256 __DEFAULT_FN_ATTRS
7611_mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7612{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007613 return (__m256)__builtin_ia32_selectps_256(__M,
7614 (__v8sf) _mm256_broadcastss_ps(__A),
7615 (__v8sf) _mm256_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007616}
7617
7618static __inline__ __m128i __DEFAULT_FN_ATTRS
7619_mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7620{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007621 return (__m128i)__builtin_ia32_selectd_128(__M,
7622 (__v4si) _mm_broadcastd_epi32(__A),
7623 (__v4si) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007624}
7625
7626static __inline__ __m128i __DEFAULT_FN_ATTRS
7627_mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7628{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007629 return (__m128i)__builtin_ia32_selectd_128(__M,
7630 (__v4si) _mm_broadcastd_epi32(__A),
7631 (__v4si) _mm_setzero_si128());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007632}
7633
7634static __inline__ __m256i __DEFAULT_FN_ATTRS
7635_mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A)
7636{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007637 return (__m256i)__builtin_ia32_selectd_256(__M,
7638 (__v8si) _mm256_broadcastd_epi32(__A),
7639 (__v8si) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007640}
7641
7642static __inline__ __m256i __DEFAULT_FN_ATTRS
7643_mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7644{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007645 return (__m256i)__builtin_ia32_selectd_256(__M,
7646 (__v8si) _mm256_broadcastd_epi32(__A),
7647 (__v8si) _mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007648}
7649
7650static __inline__ __m128i __DEFAULT_FN_ATTRS
7651_mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A)
7652{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007653 return (__m128i)__builtin_ia32_selectq_128(__M,
7654 (__v2di) _mm_broadcastq_epi64(__A),
7655 (__v2di) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007656}
7657
7658static __inline__ __m128i __DEFAULT_FN_ATTRS
7659_mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7660{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007661 return (__m128i)__builtin_ia32_selectq_128(__M,
7662 (__v2di) _mm_broadcastq_epi64(__A),
7663 (__v2di) _mm_setzero_si128());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007664}
7665
7666static __inline__ __m256i __DEFAULT_FN_ATTRS
7667_mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A)
7668{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007669 return (__m256i)__builtin_ia32_selectq_256(__M,
7670 (__v4di) _mm256_broadcastq_epi64(__A),
7671 (__v4di) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007672}
7673
7674static __inline__ __m256i __DEFAULT_FN_ATTRS
7675_mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7676{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007677 return (__m256i)__builtin_ia32_selectq_256(__M,
7678 (__v4di) _mm256_broadcastq_epi64(__A),
7679 (__v4di) _mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007680}
7681
Michael Zuckermane1680612016-04-13 15:02:04 +00007682static __inline__ __m128i __DEFAULT_FN_ATTRS
7683_mm_cvtsepi32_epi8 (__m128i __A)
7684{
7685 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7686 (__v16qi)_mm_undefined_si128(),
7687 (__mmask8) -1);
7688}
7689
7690static __inline__ __m128i __DEFAULT_FN_ATTRS
7691_mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7692{
7693 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7694 (__v16qi) __O, __M);
7695}
7696
7697static __inline__ __m128i __DEFAULT_FN_ATTRS
7698_mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A)
7699{
7700 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7701 (__v16qi) _mm_setzero_si128 (),
7702 __M);
7703}
7704
7705static __inline__ void __DEFAULT_FN_ATTRS
7706_mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7707{
7708 __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7709}
7710
7711static __inline__ __m128i __DEFAULT_FN_ATTRS
7712_mm256_cvtsepi32_epi8 (__m256i __A)
7713{
7714 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7715 (__v16qi)_mm_undefined_si128(),
7716 (__mmask8) -1);
7717}
7718
7719static __inline__ __m128i __DEFAULT_FN_ATTRS
7720_mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7721{
7722 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7723 (__v16qi) __O, __M);
7724}
7725
7726static __inline__ __m128i __DEFAULT_FN_ATTRS
7727_mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A)
7728{
7729 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7730 (__v16qi) _mm_setzero_si128 (),
7731 __M);
7732}
7733
7734static __inline__ void __DEFAULT_FN_ATTRS
7735_mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7736{
7737 __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
7738}
7739
7740static __inline__ __m128i __DEFAULT_FN_ATTRS
7741_mm_cvtsepi32_epi16 (__m128i __A)
7742{
7743 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7744 (__v8hi)_mm_setzero_si128 (),
7745 (__mmask8) -1);
7746}
7747
7748static __inline__ __m128i __DEFAULT_FN_ATTRS
7749_mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7750{
7751 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7752 (__v8hi)__O,
7753 __M);
7754}
7755
7756static __inline__ __m128i __DEFAULT_FN_ATTRS
7757_mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A)
7758{
7759 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7760 (__v8hi) _mm_setzero_si128 (),
7761 __M);
7762}
7763
7764static __inline__ void __DEFAULT_FN_ATTRS
7765_mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7766{
7767 __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7768}
7769
7770static __inline__ __m128i __DEFAULT_FN_ATTRS
7771_mm256_cvtsepi32_epi16 (__m256i __A)
7772{
7773 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7774 (__v8hi)_mm_undefined_si128(),
7775 (__mmask8) -1);
7776}
7777
7778static __inline__ __m128i __DEFAULT_FN_ATTRS
7779_mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7780{
7781 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7782 (__v8hi) __O, __M);
7783}
7784
7785static __inline__ __m128i __DEFAULT_FN_ATTRS
7786_mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A)
7787{
7788 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7789 (__v8hi) _mm_setzero_si128 (),
7790 __M);
7791}
7792
7793static __inline__ void __DEFAULT_FN_ATTRS
7794_mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7795{
7796 __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7797}
7798
7799static __inline__ __m128i __DEFAULT_FN_ATTRS
7800_mm_cvtsepi64_epi8 (__m128i __A)
7801{
7802 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7803 (__v16qi)_mm_undefined_si128(),
7804 (__mmask8) -1);
7805}
7806
7807static __inline__ __m128i __DEFAULT_FN_ATTRS
7808_mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7809{
7810 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7811 (__v16qi) __O, __M);
7812}
7813
7814static __inline__ __m128i __DEFAULT_FN_ATTRS
7815_mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A)
7816{
7817 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7818 (__v16qi) _mm_setzero_si128 (),
7819 __M);
7820}
7821
7822static __inline__ void __DEFAULT_FN_ATTRS
7823_mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7824{
7825 __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7826}
7827
7828static __inline__ __m128i __DEFAULT_FN_ATTRS
7829_mm256_cvtsepi64_epi8 (__m256i __A)
7830{
7831 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7832 (__v16qi)_mm_undefined_si128(),
7833 (__mmask8) -1);
7834}
7835
7836static __inline__ __m128i __DEFAULT_FN_ATTRS
7837_mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7838{
7839 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7840 (__v16qi) __O, __M);
7841}
7842
7843static __inline__ __m128i __DEFAULT_FN_ATTRS
7844_mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A)
7845{
7846 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7847 (__v16qi) _mm_setzero_si128 (),
7848 __M);
7849}
7850
7851static __inline__ void __DEFAULT_FN_ATTRS
7852_mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7853{
7854 __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7855}
7856
7857static __inline__ __m128i __DEFAULT_FN_ATTRS
7858_mm_cvtsepi64_epi32 (__m128i __A)
7859{
7860 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7861 (__v4si)_mm_undefined_si128(),
7862 (__mmask8) -1);
7863}
7864
7865static __inline__ __m128i __DEFAULT_FN_ATTRS
7866_mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7867{
7868 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7869 (__v4si) __O, __M);
7870}
7871
7872static __inline__ __m128i __DEFAULT_FN_ATTRS
7873_mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A)
7874{
7875 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7876 (__v4si) _mm_setzero_si128 (),
7877 __M);
7878}
7879
7880static __inline__ void __DEFAULT_FN_ATTRS
7881_mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
7882{
7883 __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
7884}
7885
7886static __inline__ __m128i __DEFAULT_FN_ATTRS
7887_mm256_cvtsepi64_epi32 (__m256i __A)
7888{
7889 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7890 (__v4si)_mm_undefined_si128(),
7891 (__mmask8) -1);
7892}
7893
7894static __inline__ __m128i __DEFAULT_FN_ATTRS
7895_mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
7896{
7897 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7898 (__v4si)__O,
7899 __M);
7900}
7901
7902static __inline__ __m128i __DEFAULT_FN_ATTRS
7903_mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A)
7904{
7905 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7906 (__v4si) _mm_setzero_si128 (),
7907 __M);
7908}
7909
7910static __inline__ void __DEFAULT_FN_ATTRS
7911_mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
7912{
7913 __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
7914}
7915
7916static __inline__ __m128i __DEFAULT_FN_ATTRS
7917_mm_cvtsepi64_epi16 (__m128i __A)
7918{
7919 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7920 (__v8hi)_mm_undefined_si128(),
7921 (__mmask8) -1);
7922}
7923
7924static __inline__ __m128i __DEFAULT_FN_ATTRS
7925_mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7926{
7927 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7928 (__v8hi) __O, __M);
7929}
7930
7931static __inline__ __m128i __DEFAULT_FN_ATTRS
7932_mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A)
7933{
7934 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7935 (__v8hi) _mm_setzero_si128 (),
7936 __M);
7937}
7938
7939static __inline__ void __DEFAULT_FN_ATTRS
7940_mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7941{
7942 __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
7943}
7944
7945static __inline__ __m128i __DEFAULT_FN_ATTRS
7946_mm256_cvtsepi64_epi16 (__m256i __A)
7947{
7948 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7949 (__v8hi)_mm_undefined_si128(),
7950 (__mmask8) -1);
7951}
7952
7953static __inline__ __m128i __DEFAULT_FN_ATTRS
7954_mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7955{
7956 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7957 (__v8hi) __O, __M);
7958}
7959
7960static __inline__ __m128i __DEFAULT_FN_ATTRS
7961_mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A)
7962{
7963 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7964 (__v8hi) _mm_setzero_si128 (),
7965 __M);
7966}
7967
7968static __inline__ void __DEFAULT_FN_ATTRS
7969_mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7970{
7971 __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
7972}
7973
Michael Zuckermand8715312016-04-14 06:48:09 +00007974static __inline__ __m128i __DEFAULT_FN_ATTRS
7975_mm_cvtusepi32_epi8 (__m128i __A)
7976{
7977 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7978 (__v16qi)_mm_undefined_si128(),
7979 (__mmask8) -1);
7980}
7981
7982static __inline__ __m128i __DEFAULT_FN_ATTRS
7983_mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7984{
7985 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7986 (__v16qi) __O,
7987 __M);
7988}
7989
7990static __inline__ __m128i __DEFAULT_FN_ATTRS
7991_mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A)
7992{
7993 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7994 (__v16qi) _mm_setzero_si128 (),
7995 __M);
7996}
7997
7998static __inline__ void __DEFAULT_FN_ATTRS
7999_mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8000{
8001 __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
8002}
8003
8004static __inline__ __m128i __DEFAULT_FN_ATTRS
8005_mm256_cvtusepi32_epi8 (__m256i __A)
8006{
8007 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
8008 (__v16qi)_mm_undefined_si128(),
8009 (__mmask8) -1);
8010}
8011
8012static __inline__ __m128i __DEFAULT_FN_ATTRS
8013_mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8014{
8015 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
8016 (__v16qi) __O,
8017 __M);
8018}
8019
8020static __inline__ __m128i __DEFAULT_FN_ATTRS
8021_mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A)
8022{
8023 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
8024 (__v16qi) _mm_setzero_si128 (),
8025 __M);
8026}
8027
8028static __inline__ void __DEFAULT_FN_ATTRS
8029_mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8030{
8031 __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M);
8032}
8033
8034static __inline__ __m128i __DEFAULT_FN_ATTRS
8035_mm_cvtusepi32_epi16 (__m128i __A)
8036{
8037 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
8038 (__v8hi)_mm_undefined_si128(),
8039 (__mmask8) -1);
8040}
8041
8042static __inline__ __m128i __DEFAULT_FN_ATTRS
8043_mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8044{
8045 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
8046 (__v8hi) __O, __M);
8047}
8048
8049static __inline__ __m128i __DEFAULT_FN_ATTRS
8050_mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A)
8051{
8052 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
8053 (__v8hi) _mm_setzero_si128 (),
8054 __M);
8055}
8056
8057static __inline__ void __DEFAULT_FN_ATTRS
8058_mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8059{
8060 __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
8061}
8062
8063static __inline__ __m128i __DEFAULT_FN_ATTRS
8064_mm256_cvtusepi32_epi16 (__m256i __A)
8065{
8066 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
8067 (__v8hi) _mm_undefined_si128(),
8068 (__mmask8) -1);
8069}
8070
8071static __inline__ __m128i __DEFAULT_FN_ATTRS
8072_mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8073{
8074 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
8075 (__v8hi) __O, __M);
8076}
8077
8078static __inline__ __m128i __DEFAULT_FN_ATTRS
8079_mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A)
8080{
8081 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
8082 (__v8hi) _mm_setzero_si128 (),
8083 __M);
8084}
8085
8086static __inline__ void __DEFAULT_FN_ATTRS
8087_mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8088{
8089 __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
8090}
8091
8092static __inline__ __m128i __DEFAULT_FN_ATTRS
8093_mm_cvtusepi64_epi8 (__m128i __A)
8094{
8095 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
8096 (__v16qi)_mm_undefined_si128(),
8097 (__mmask8) -1);
8098}
8099
8100static __inline__ __m128i __DEFAULT_FN_ATTRS
8101_mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8102{
8103 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
8104 (__v16qi) __O,
8105 __M);
8106}
8107
8108static __inline__ __m128i __DEFAULT_FN_ATTRS
8109_mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A)
8110{
8111 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
8112 (__v16qi) _mm_setzero_si128 (),
8113 __M);
8114}
8115
8116static __inline__ void __DEFAULT_FN_ATTRS
8117_mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8118{
8119 __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
8120}
8121
8122static __inline__ __m128i __DEFAULT_FN_ATTRS
8123_mm256_cvtusepi64_epi8 (__m256i __A)
8124{
8125 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
8126 (__v16qi)_mm_undefined_si128(),
8127 (__mmask8) -1);
8128}
8129
8130static __inline__ __m128i __DEFAULT_FN_ATTRS
8131_mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8132{
8133 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
8134 (__v16qi) __O,
8135 __M);
8136}
8137
8138static __inline__ __m128i __DEFAULT_FN_ATTRS
8139_mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A)
8140{
8141 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
8142 (__v16qi) _mm_setzero_si128 (),
8143 __M);
8144}
8145
8146static __inline__ void __DEFAULT_FN_ATTRS
8147_mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8148{
8149 __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
8150}
8151
8152static __inline__ __m128i __DEFAULT_FN_ATTRS
8153_mm_cvtusepi64_epi32 (__m128i __A)
8154{
8155 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
8156 (__v4si)_mm_undefined_si128(),
8157 (__mmask8) -1);
8158}
8159
8160static __inline__ __m128i __DEFAULT_FN_ATTRS
8161_mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
8162{
8163 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
8164 (__v4si) __O, __M);
8165}
8166
8167static __inline__ __m128i __DEFAULT_FN_ATTRS
8168_mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A)
8169{
8170 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
8171 (__v4si) _mm_setzero_si128 (),
8172 __M);
8173}
8174
8175static __inline__ void __DEFAULT_FN_ATTRS
8176_mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
8177{
8178 __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
8179}
8180
8181static __inline__ __m128i __DEFAULT_FN_ATTRS
8182_mm256_cvtusepi64_epi32 (__m256i __A)
8183{
8184 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8185 (__v4si)_mm_undefined_si128(),
8186 (__mmask8) -1);
8187}
8188
8189static __inline__ __m128i __DEFAULT_FN_ATTRS
8190_mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
8191{
8192 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8193 (__v4si) __O, __M);
8194}
8195
8196static __inline__ __m128i __DEFAULT_FN_ATTRS
8197_mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A)
8198{
8199 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8200 (__v4si) _mm_setzero_si128 (),
8201 __M);
8202}
8203
8204static __inline__ void __DEFAULT_FN_ATTRS
8205_mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8206{
8207 __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8208}
8209
8210static __inline__ __m128i __DEFAULT_FN_ATTRS
8211_mm_cvtusepi64_epi16 (__m128i __A)
8212{
8213 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8214 (__v8hi)_mm_undefined_si128(),
8215 (__mmask8) -1);
8216}
8217
8218static __inline__ __m128i __DEFAULT_FN_ATTRS
8219_mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8220{
8221 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8222 (__v8hi) __O, __M);
8223}
8224
8225static __inline__ __m128i __DEFAULT_FN_ATTRS
8226_mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A)
8227{
8228 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8229 (__v8hi) _mm_setzero_si128 (),
8230 __M);
8231}
8232
8233static __inline__ void __DEFAULT_FN_ATTRS
8234_mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8235{
8236 __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8237}
8238
8239static __inline__ __m128i __DEFAULT_FN_ATTRS
8240_mm256_cvtusepi64_epi16 (__m256i __A)
8241{
8242 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8243 (__v8hi)_mm_undefined_si128(),
8244 (__mmask8) -1);
8245}
8246
8247static __inline__ __m128i __DEFAULT_FN_ATTRS
8248_mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8249{
8250 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8251 (__v8hi) __O, __M);
8252}
8253
8254static __inline__ __m128i __DEFAULT_FN_ATTRS
8255_mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A)
8256{
8257 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8258 (__v8hi) _mm_setzero_si128 (),
8259 __M);
8260}
8261
8262static __inline__ void __DEFAULT_FN_ATTRS
8263_mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8264{
8265 return __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8266}
8267
Michael Zuckerman0a3508a2016-04-14 07:56:51 +00008268static __inline__ __m128i __DEFAULT_FN_ATTRS
8269_mm_cvtepi32_epi8 (__m128i __A)
8270{
8271 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8272 (__v16qi)_mm_undefined_si128(),
8273 (__mmask8) -1);
8274}
8275
8276static __inline__ __m128i __DEFAULT_FN_ATTRS
8277_mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8278{
8279 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8280 (__v16qi) __O, __M);
8281}
8282
8283static __inline__ __m128i __DEFAULT_FN_ATTRS
8284_mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A)
8285{
8286 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8287 (__v16qi)
8288 _mm_setzero_si128 (),
8289 __M);
8290}
8291
8292static __inline__ void __DEFAULT_FN_ATTRS
8293_mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8294{
8295 __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
8296}
8297
8298static __inline__ __m128i __DEFAULT_FN_ATTRS
8299_mm256_cvtepi32_epi8 (__m256i __A)
8300{
8301 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8302 (__v16qi)_mm_undefined_si128(),
8303 (__mmask8) -1);
8304}
8305
8306static __inline__ __m128i __DEFAULT_FN_ATTRS
8307_mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8308{
8309 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8310 (__v16qi) __O, __M);
8311}
8312
8313static __inline__ __m128i __DEFAULT_FN_ATTRS
8314_mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A)
8315{
8316 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8317 (__v16qi) _mm_setzero_si128 (),
8318 __M);
8319}
8320
8321static __inline__ void __DEFAULT_FN_ATTRS
8322_mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8323{
8324 __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
8325}
8326
8327static __inline__ __m128i __DEFAULT_FN_ATTRS
8328_mm_cvtepi32_epi16 (__m128i __A)
8329{
8330 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8331 (__v8hi) _mm_setzero_si128 (),
8332 (__mmask8) -1);
8333}
8334
8335static __inline__ __m128i __DEFAULT_FN_ATTRS
8336_mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8337{
8338 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8339 (__v8hi) __O, __M);
8340}
8341
8342static __inline__ __m128i __DEFAULT_FN_ATTRS
8343_mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A)
8344{
8345 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8346 (__v8hi) _mm_setzero_si128 (),
8347 __M);
8348}
8349
8350static __inline__ void __DEFAULT_FN_ATTRS
8351_mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8352{
8353 __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
8354}
8355
8356static __inline__ __m128i __DEFAULT_FN_ATTRS
8357_mm256_cvtepi32_epi16 (__m256i __A)
8358{
8359 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8360 (__v8hi)_mm_setzero_si128 (),
8361 (__mmask8) -1);
8362}
8363
8364static __inline__ __m128i __DEFAULT_FN_ATTRS
8365_mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8366{
8367 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8368 (__v8hi) __O, __M);
8369}
8370
8371static __inline__ __m128i __DEFAULT_FN_ATTRS
8372_mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A)
8373{
8374 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8375 (__v8hi) _mm_setzero_si128 (),
8376 __M);
8377}
8378
8379static __inline__ void __DEFAULT_FN_ATTRS
8380_mm256_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8381{
8382 __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
8383}
8384
8385static __inline__ __m128i __DEFAULT_FN_ATTRS
8386_mm_cvtepi64_epi8 (__m128i __A)
8387{
8388 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8389 (__v16qi) _mm_undefined_si128(),
8390 (__mmask8) -1);
8391}
8392
8393static __inline__ __m128i __DEFAULT_FN_ATTRS
8394_mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8395{
8396 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8397 (__v16qi) __O, __M);
8398}
8399
8400static __inline__ __m128i __DEFAULT_FN_ATTRS
8401_mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A)
8402{
8403 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8404 (__v16qi) _mm_setzero_si128 (),
8405 __M);
8406}
8407
8408static __inline__ void __DEFAULT_FN_ATTRS
8409_mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8410{
8411 __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
8412}
8413
8414static __inline__ __m128i __DEFAULT_FN_ATTRS
8415_mm256_cvtepi64_epi8 (__m256i __A)
8416{
8417 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8418 (__v16qi) _mm_undefined_si128(),
8419 (__mmask8) -1);
8420}
8421
8422static __inline__ __m128i __DEFAULT_FN_ATTRS
8423_mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8424{
8425 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8426 (__v16qi) __O, __M);
8427}
8428
8429static __inline__ __m128i __DEFAULT_FN_ATTRS
8430_mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A)
8431{
8432 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8433 (__v16qi) _mm_setzero_si128 (),
8434 __M);
8435}
8436
8437static __inline__ void __DEFAULT_FN_ATTRS
8438_mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8439{
8440 __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
8441}
8442
8443static __inline__ __m128i __DEFAULT_FN_ATTRS
8444_mm_cvtepi64_epi32 (__m128i __A)
8445{
8446 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8447 (__v4si)_mm_undefined_si128(),
8448 (__mmask8) -1);
8449}
8450
8451static __inline__ __m128i __DEFAULT_FN_ATTRS
8452_mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
8453{
8454 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8455 (__v4si) __O, __M);
8456}
8457
8458static __inline__ __m128i __DEFAULT_FN_ATTRS
8459_mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A)
8460{
8461 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8462 (__v4si) _mm_setzero_si128 (),
8463 __M);
8464}
8465
8466static __inline__ void __DEFAULT_FN_ATTRS
8467_mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
8468{
8469 __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
8470}
8471
8472static __inline__ __m128i __DEFAULT_FN_ATTRS
8473_mm256_cvtepi64_epi32 (__m256i __A)
8474{
8475 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8476 (__v4si) _mm_undefined_si128(),
8477 (__mmask8) -1);
8478}
8479
8480static __inline__ __m128i __DEFAULT_FN_ATTRS
8481_mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
8482{
8483 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8484 (__v4si) __O, __M);
8485}
8486
8487static __inline__ __m128i __DEFAULT_FN_ATTRS
8488_mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A)
8489{
8490 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8491 (__v4si) _mm_setzero_si128 (),
8492 __M);
8493}
8494
8495static __inline__ void __DEFAULT_FN_ATTRS
8496_mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8497{
8498 __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8499}
8500
8501static __inline__ __m128i __DEFAULT_FN_ATTRS
8502_mm_cvtepi64_epi16 (__m128i __A)
8503{
8504 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8505 (__v8hi) _mm_undefined_si128(),
8506 (__mmask8) -1);
8507}
8508
8509static __inline__ __m128i __DEFAULT_FN_ATTRS
8510_mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8511{
8512 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8513 (__v8hi)__O,
8514 __M);
8515}
8516
8517static __inline__ __m128i __DEFAULT_FN_ATTRS
8518_mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A)
8519{
8520 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8521 (__v8hi) _mm_setzero_si128 (),
8522 __M);
8523}
8524
8525static __inline__ void __DEFAULT_FN_ATTRS
8526_mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8527{
8528 __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8529}
8530
8531static __inline__ __m128i __DEFAULT_FN_ATTRS
8532_mm256_cvtepi64_epi16 (__m256i __A)
8533{
8534 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8535 (__v8hi)_mm_undefined_si128(),
8536 (__mmask8) -1);
8537}
8538
8539static __inline__ __m128i __DEFAULT_FN_ATTRS
8540_mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8541{
8542 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8543 (__v8hi) __O, __M);
8544}
8545
8546static __inline__ __m128i __DEFAULT_FN_ATTRS
8547_mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A)
8548{
8549 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8550 (__v8hi) _mm_setzero_si128 (),
8551 __M);
8552}
8553
8554static __inline__ void __DEFAULT_FN_ATTRS
8555_mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8556{
8557 __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8558}
8559
Craig Topperd2661882016-05-17 04:41:48 +00008560#define _mm256_extractf32x4_ps(A, imm) __extension__ ({ \
8561 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8562 (int)(imm), \
8563 (__v4sf)_mm_setzero_ps(), \
8564 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008565
Craig Topperd2661882016-05-17 04:41:48 +00008566#define _mm256_mask_extractf32x4_ps(W, U, A, imm) __extension__ ({ \
8567 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8568 (int)(imm), \
8569 (__v4sf)(__m128)(W), \
8570 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008571
Craig Topperd2661882016-05-17 04:41:48 +00008572#define _mm256_maskz_extractf32x4_ps(U, A, imm) __extension__ ({ \
8573 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8574 (int)(imm), \
8575 (__v4sf)_mm_setzero_ps(), \
8576 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008577
Craig Topperd2661882016-05-17 04:41:48 +00008578#define _mm256_extracti32x4_epi32(A, imm) __extension__ ({ \
8579 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8580 (int)(imm), \
8581 (__v4si)_mm_setzero_si128(), \
8582 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008583
Craig Topperd2661882016-05-17 04:41:48 +00008584#define _mm256_mask_extracti32x4_epi32(W, U, A, imm) __extension__ ({ \
8585 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8586 (int)(imm), \
8587 (__v4si)(__m128i)(W), \
8588 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008589
Craig Topperd2661882016-05-17 04:41:48 +00008590#define _mm256_maskz_extracti32x4_epi32(U, A, imm) __extension__ ({ \
8591 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8592 (int)(imm), \
8593 (__v4si)_mm_setzero_si128(), \
8594 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008595
Craig Topperd2661882016-05-17 04:41:48 +00008596#define _mm256_insertf32x4(A, B, imm) __extension__ ({ \
8597 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8598 (__v4sf)(__m128)(B), (int)(imm), \
8599 (__v8sf)_mm256_setzero_ps(), \
8600 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008601
Craig Topperd2661882016-05-17 04:41:48 +00008602#define _mm256_mask_insertf32x4(W, U, A, B, imm) __extension__ ({ \
8603 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8604 (__v4sf)(__m128)(B), (int)(imm), \
8605 (__v8sf)(__m256)(W), \
8606 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008607
Craig Topperd2661882016-05-17 04:41:48 +00008608#define _mm256_maskz_insertf32x4(U, A, B, imm) __extension__ ({ \
8609 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8610 (__v4sf)(__m128)(B), (int)(imm), \
8611 (__v8sf)_mm256_setzero_ps(), \
8612 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008613
Craig Topperd2661882016-05-17 04:41:48 +00008614#define _mm256_inserti32x4(A, B, imm) __extension__ ({ \
8615 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8616 (__v4si)(__m128i)(B), \
8617 (int)(imm), \
8618 (__v8si)_mm256_setzero_si256(), \
8619 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008620
Craig Topperd2661882016-05-17 04:41:48 +00008621#define _mm256_mask_inserti32x4(W, U, A, B, imm) __extension__ ({ \
8622 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8623 (__v4si)(__m128i)(B), \
8624 (int)(imm), \
8625 (__v8si)(__m256i)(W), \
8626 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008627
Craig Topperd2661882016-05-17 04:41:48 +00008628#define _mm256_maskz_inserti32x4(U, A, B, imm) __extension__ ({ \
8629 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8630 (__v4si)(__m128i)(B), \
8631 (int)(imm), \
8632 (__v8si)_mm256_setzero_si256(), \
8633 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008634
Craig Topperd2661882016-05-17 04:41:48 +00008635#define _mm_getmant_pd(A, B, C) __extension__({\
8636 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8637 (int)(((C)<<2) | (B)), \
8638 (__v2df)_mm_setzero_pd(), \
8639 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008640
Craig Topperd2661882016-05-17 04:41:48 +00008641#define _mm_mask_getmant_pd(W, U, A, B, C) __extension__({\
8642 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8643 (int)(((C)<<2) | (B)), \
8644 (__v2df)(__m128d)(W), \
8645 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008646
Craig Topperd2661882016-05-17 04:41:48 +00008647#define _mm_maskz_getmant_pd(U, A, B, C) __extension__({\
8648 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8649 (int)(((C)<<2) | (B)), \
8650 (__v2df)_mm_setzero_pd(), \
8651 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008652
Craig Topperd2661882016-05-17 04:41:48 +00008653#define _mm256_getmant_pd(A, B, C) __extension__ ({ \
8654 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8655 (int)(((C)<<2) | (B)), \
8656 (__v4df)_mm256_setzero_pd(), \
8657 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008658
Craig Topperd2661882016-05-17 04:41:48 +00008659#define _mm256_mask_getmant_pd(W, U, A, B, C) __extension__ ({ \
8660 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8661 (int)(((C)<<2) | (B)), \
8662 (__v4df)(__m256d)(W), \
8663 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008664
Craig Topperd2661882016-05-17 04:41:48 +00008665#define _mm256_maskz_getmant_pd(U, A, B, C) __extension__ ({ \
8666 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8667 (int)(((C)<<2) | (B)), \
8668 (__v4df)_mm256_setzero_pd(), \
8669 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008670
Craig Topperd2661882016-05-17 04:41:48 +00008671#define _mm_getmant_ps(A, B, C) __extension__ ({ \
8672 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8673 (int)(((C)<<2) | (B)), \
8674 (__v4sf)_mm_setzero_ps(), \
8675 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008676
Craig Topperd2661882016-05-17 04:41:48 +00008677#define _mm_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8678 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8679 (int)(((C)<<2) | (B)), \
8680 (__v4sf)(__m128)(W), \
8681 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008682
Craig Topperd2661882016-05-17 04:41:48 +00008683#define _mm_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8684 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8685 (int)(((C)<<2) | (B)), \
8686 (__v4sf)_mm_setzero_ps(), \
8687 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008688
Craig Topperd2661882016-05-17 04:41:48 +00008689#define _mm256_getmant_ps(A, B, C) __extension__ ({ \
8690 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8691 (int)(((C)<<2) | (B)), \
8692 (__v8sf)_mm256_setzero_ps(), \
8693 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008694
Craig Topperd2661882016-05-17 04:41:48 +00008695#define _mm256_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8696 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8697 (int)(((C)<<2) | (B)), \
8698 (__v8sf)(__m256)(W), \
8699 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008700
Craig Topperd2661882016-05-17 04:41:48 +00008701#define _mm256_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8702 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8703 (int)(((C)<<2) | (B)), \
8704 (__v8sf)_mm256_setzero_ps(), \
8705 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008706
Craig Topperd2661882016-05-17 04:41:48 +00008707#define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8708 (__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \
8709 (double const *)(addr), \
8710 (__v2di)(__m128i)(index), \
8711 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008712
Craig Topperd2661882016-05-17 04:41:48 +00008713#define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8714 (__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \
8715 (long long const *)(addr), \
8716 (__v2di)(__m128i)(index), \
8717 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008718
Craig Topperd2661882016-05-17 04:41:48 +00008719#define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8720 (__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \
8721 (double const *)(addr), \
8722 (__v4di)(__m256i)(index), \
8723 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008724
Craig Topperd2661882016-05-17 04:41:48 +00008725#define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8726 (__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \
8727 (long long const *)(addr), \
8728 (__v4di)(__m256i)(index), \
8729 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008730
Craig Topperd2661882016-05-17 04:41:48 +00008731#define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8732 (__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \
8733 (float const *)(addr), \
8734 (__v2di)(__m128i)(index), \
8735 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008736
Craig Topperd2661882016-05-17 04:41:48 +00008737#define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8738 (__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \
8739 (int const *)(addr), \
8740 (__v2di)(__m128i)(index), \
8741 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008742
Craig Topperd2661882016-05-17 04:41:48 +00008743#define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8744 (__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \
8745 (float const *)(addr), \
8746 (__v4di)(__m256i)(index), \
8747 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008748
Craig Topperd2661882016-05-17 04:41:48 +00008749#define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8750 (__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \
8751 (int const *)(addr), \
8752 (__v4di)(__m256i)(index), \
8753 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008754
Craig Topperd2661882016-05-17 04:41:48 +00008755#define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8756 (__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \
8757 (double const *)(addr), \
8758 (__v4si)(__m128i)(index), \
8759 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008760
Craig Topperd2661882016-05-17 04:41:48 +00008761#define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8762 (__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \
8763 (long long const *)(addr), \
8764 (__v4si)(__m128i)(index), \
8765 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008766
Craig Topperd2661882016-05-17 04:41:48 +00008767#define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8768 (__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \
8769 (double const *)(addr), \
8770 (__v4si)(__m128i)(index), \
8771 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008772
Craig Topperd2661882016-05-17 04:41:48 +00008773#define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8774 (__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \
8775 (long long const *)(addr), \
8776 (__v4si)(__m128i)(index), \
8777 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008778
Craig Topperd2661882016-05-17 04:41:48 +00008779#define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8780 (__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \
8781 (float const *)(addr), \
8782 (__v4si)(__m128i)(index), \
8783 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008784
Craig Topperd2661882016-05-17 04:41:48 +00008785#define _mm_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8786 (__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \
8787 (int const *)(addr), \
8788 (__v4si)(__m128i)(index), \
8789 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008790
Craig Topperd2661882016-05-17 04:41:48 +00008791#define _mm256_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8792 (__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \
8793 (float const *)(addr), \
8794 (__v8si)(__m256i)(index), \
8795 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008796
Craig Topperd2661882016-05-17 04:41:48 +00008797#define _mm256_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8798 (__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \
8799 (int const *)(addr), \
8800 (__v8si)(__m256i)(index), \
8801 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008802
Simon Pilgrim30db8112016-07-04 13:34:44 +00008803#define _mm256_permutex_pd(X, C) __extension__ ({ \
8804 (__m256d)__builtin_shufflevector((__v4df)(__m256d)(X), \
8805 (__v4df)_mm256_undefined_pd(), \
Craig Topper2a383c92016-07-04 22:18:01 +00008806 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \
8807 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008808
Simon Pilgrim30db8112016-07-04 13:34:44 +00008809#define _mm256_mask_permutex_pd(W, U, X, C) __extension__ ({ \
8810 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8811 (__v4df)_mm256_permutex_pd((X), (C)), \
8812 (__v4df)(__m256d)(W)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008813
Simon Pilgrim30db8112016-07-04 13:34:44 +00008814#define _mm256_maskz_permutex_pd(U, X, C) __extension__ ({ \
8815 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8816 (__v4df)_mm256_permutex_pd((X), (C)), \
8817 (__v4df)_mm256_setzero_pd()); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008818
Simon Pilgrim30db8112016-07-04 13:34:44 +00008819#define _mm256_permutex_epi64(X, C) __extension__ ({ \
8820 (__m256i)__builtin_shufflevector((__v4di)(__m256i)(X), \
8821 (__v4di)_mm256_undefined_si256(), \
Craig Topper2a383c92016-07-04 22:18:01 +00008822 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \
8823 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008824
Simon Pilgrim30db8112016-07-04 13:34:44 +00008825#define _mm256_mask_permutex_epi64(W, U, X, C) __extension__ ({ \
8826 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8827 (__v4di)_mm256_permutex_epi64((X), (C)), \
8828 (__v4di)(__m256i)(W)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008829
Simon Pilgrim30db8112016-07-04 13:34:44 +00008830#define _mm256_maskz_permutex_epi64(U, X, C) __extension__ ({ \
8831 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8832 (__v4di)_mm256_permutex_epi64((X), (C)), \
8833 (__v4di)_mm256_setzero_si256()); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008834
8835static __inline__ __m256d __DEFAULT_FN_ATTRS
8836_mm256_permutexvar_pd (__m256i __X, __m256d __Y)
8837{
8838 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8839 (__v4di) __X,
8840 (__v4df) _mm256_undefined_si256 (),
8841 (__mmask8) -1);
8842}
8843
8844static __inline__ __m256d __DEFAULT_FN_ATTRS
8845_mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X,
8846 __m256d __Y)
8847{
8848 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8849 (__v4di) __X,
8850 (__v4df) __W,
8851 (__mmask8) __U);
8852}
8853
8854static __inline__ __m256d __DEFAULT_FN_ATTRS
8855_mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y)
8856{
8857 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8858 (__v4di) __X,
8859 (__v4df) _mm256_setzero_pd (),
8860 (__mmask8) __U);
8861}
8862
8863static __inline__ __m256i __DEFAULT_FN_ATTRS
8864_mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
8865{
8866 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8867 (__v4di) __X,
8868 (__v4di) _mm256_setzero_si256 (),
8869 (__mmask8) __M);
8870}
8871
8872static __inline__ __m256i __DEFAULT_FN_ATTRS
Michael Zuckermana72b49ef2016-07-05 11:30:31 +00008873_mm256_permutexvar_epi64 ( __m256i __X, __m256i __Y)
Michael Zuckerman8938e832016-04-25 05:32:35 +00008874{
8875 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8876 (__v4di) __X,
8877 (__v4di) _mm256_undefined_si256 (),
8878 (__mmask8) -1);
8879}
8880
8881static __inline__ __m256i __DEFAULT_FN_ATTRS
8882_mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X,
8883 __m256i __Y)
8884{
8885 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8886 (__v4di) __X,
8887 (__v4di) __W,
8888 __M);
8889}
8890
8891static __inline__ __m256 __DEFAULT_FN_ATTRS
8892_mm256_mask_permutexvar_ps (__m256 __W, __mmask8 __U, __m256i __X,
8893 __m256 __Y)
8894{
8895 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8896 (__v8si) __X,
8897 (__v8sf) __W,
8898 (__mmask8) __U);
8899}
8900
8901static __inline__ __m256 __DEFAULT_FN_ATTRS
8902_mm256_maskz_permutexvar_ps (__mmask8 __U, __m256i __X, __m256 __Y)
8903{
8904 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8905 (__v8si) __X,
8906 (__v8sf) _mm256_setzero_ps (),
8907 (__mmask8) __U);
8908}
8909
8910static __inline__ __m256 __DEFAULT_FN_ATTRS
8911_mm256_permutexvar_ps (__m256i __X, __m256 __Y)
8912{
8913 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8914 (__v8si) __X,
8915 (__v8sf) _mm256_undefined_si256 (),
8916 (__mmask8) -1);
8917}
8918
8919static __inline__ __m256i __DEFAULT_FN_ATTRS
8920_mm256_maskz_permutexvar_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
8921{
8922 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8923 (__v8si) __X,
8924 (__v8si) _mm256_setzero_si256 (),
8925 __M);
8926}
8927
8928static __inline__ __m256i __DEFAULT_FN_ATTRS
8929_mm256_mask_permutexvar_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
8930 __m256i __Y)
8931{
8932 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8933 (__v8si) __X,
8934 (__v8si) __W,
8935 (__mmask8) __M);
8936}
8937
8938static __inline__ __m256i __DEFAULT_FN_ATTRS
8939_mm256_permutexvar_epi32 (__m256i __X, __m256i __Y)
8940{
8941 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8942 (__v8si) __X,
8943 (__v8si) _mm256_undefined_si256(),
8944 (__mmask8) -1);
8945}
8946
Craig Topperd2661882016-05-17 04:41:48 +00008947#define _mm_alignr_epi32(A, B, imm) __extension__ ({ \
8948 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8949 (__v4si)(__m128i)(B), (int)(imm), \
8950 (__v4si)_mm_undefined_si128(), \
8951 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008952
Craig Topperd2661882016-05-17 04:41:48 +00008953#define _mm_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
8954 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8955 (__v4si)(__m128i)(B), (int)(imm), \
8956 (__v4si)(__m128i)(W), \
8957 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008958
Craig Topperd2661882016-05-17 04:41:48 +00008959#define _mm_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
8960 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8961 (__v4si)(__m128i)(B), (int)(imm), \
8962 (__v4si)_mm_setzero_si128(), \
8963 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008964
Craig Topperd2661882016-05-17 04:41:48 +00008965#define _mm256_alignr_epi32(A, B, imm) __extension__ ({ \
8966 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8967 (__v8si)(__m256i)(B), (int)(imm), \
8968 (__v8si)_mm256_undefined_si256(), \
8969 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008970
Craig Topperd2661882016-05-17 04:41:48 +00008971#define _mm256_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
8972 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8973 (__v8si)(__m256i)(B), (int)(imm), \
8974 (__v8si)(__m256i)(W), \
8975 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008976
Craig Topperd2661882016-05-17 04:41:48 +00008977#define _mm256_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
8978 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8979 (__v8si)(__m256i)(B), (int)(imm), \
8980 (__v8si)_mm256_setzero_si256(), \
8981 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008982
Craig Topperd2661882016-05-17 04:41:48 +00008983#define _mm_alignr_epi64(A, B, imm) __extension__ ({ \
8984 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8985 (__v2di)(__m128i)(B), (int)(imm), \
8986 (__v2di)_mm_setzero_di(), \
8987 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008988
Craig Topperd2661882016-05-17 04:41:48 +00008989#define _mm_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
8990 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8991 (__v2di)(__m128i)(B), (int)(imm), \
8992 (__v2di)(__m128i)(W), \
8993 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008994
Craig Topperd2661882016-05-17 04:41:48 +00008995#define _mm_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
8996 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8997 (__v2di)(__m128i)(B), (int)(imm), \
8998 (__v2di)_mm_setzero_di(), \
8999 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009000
Craig Topperd2661882016-05-17 04:41:48 +00009001#define _mm256_alignr_epi64(A, B, imm) __extension__ ({ \
9002 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
9003 (__v4di)(__m256i)(B), (int)(imm), \
9004 (__v4di)_mm256_undefined_pd(), \
9005 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009006
Craig Topperd2661882016-05-17 04:41:48 +00009007#define _mm256_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
9008 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
9009 (__v4di)(__m256i)(B), (int)(imm), \
9010 (__v4di)(__m256i)(W), \
9011 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009012
Craig Topperd2661882016-05-17 04:41:48 +00009013#define _mm256_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
9014 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
9015 (__v4di)(__m256i)(B), (int)(imm), \
9016 (__v4di)_mm256_setzero_si256(), \
9017 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009018
Michael Zuckermanac1e5192016-05-01 14:43:43 +00009019static __inline__ __m128 __DEFAULT_FN_ATTRS
9020_mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A)
9021{
Simon Pilgrim275d7212016-07-02 17:16:25 +00009022 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
9023 (__v4sf)_mm_movehdup_ps(__A),
9024 (__v4sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00009025}
9026
9027static __inline__ __m128 __DEFAULT_FN_ATTRS
9028_mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A)
9029{
Simon Pilgrim275d7212016-07-02 17:16:25 +00009030 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
9031 (__v4sf)_mm_movehdup_ps(__A),
9032 (__v4sf)_mm_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00009033}
9034
9035static __inline__ __m256 __DEFAULT_FN_ATTRS
9036_mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A)
9037{
Simon Pilgrim275d7212016-07-02 17:16:25 +00009038 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
9039 (__v8sf)_mm256_movehdup_ps(__A),
9040 (__v8sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00009041}
9042
9043static __inline__ __m256 __DEFAULT_FN_ATTRS
9044_mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A)
9045{
Simon Pilgrim275d7212016-07-02 17:16:25 +00009046 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
9047 (__v8sf)_mm256_movehdup_ps(__A),
9048 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00009049}
9050
9051static __inline__ __m128 __DEFAULT_FN_ATTRS
9052_mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A)
9053{
Simon Pilgrim275d7212016-07-02 17:16:25 +00009054 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
9055 (__v4sf)_mm_moveldup_ps(__A),
9056 (__v4sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00009057}
9058
9059static __inline__ __m128 __DEFAULT_FN_ATTRS
9060_mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A)
9061{
Simon Pilgrim275d7212016-07-02 17:16:25 +00009062 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
9063 (__v4sf)_mm_moveldup_ps(__A),
9064 (__v4sf)_mm_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00009065}
9066
9067static __inline__ __m256 __DEFAULT_FN_ATTRS
9068_mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A)
9069{
Simon Pilgrim275d7212016-07-02 17:16:25 +00009070 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
9071 (__v8sf)_mm256_moveldup_ps(__A),
9072 (__v8sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00009073}
9074
9075static __inline__ __m256 __DEFAULT_FN_ATTRS
9076_mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A)
9077{
Simon Pilgrim275d7212016-07-02 17:16:25 +00009078 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
9079 (__v8sf)_mm256_moveldup_ps(__A),
9080 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00009081}
9082
Craig Topperd2661882016-05-17 04:41:48 +00009083#define _mm256_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00009084 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
9085 (__v8si)_mm256_shuffle_epi32((A), (I)), \
9086 (__v8si)(__m256i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00009087
Craig Topperd2661882016-05-17 04:41:48 +00009088#define _mm256_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00009089 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
9090 (__v8si)_mm256_shuffle_epi32((A), (I)), \
9091 (__v8si)_mm256_setzero_si256()); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00009092
Craig Topperd2661882016-05-17 04:41:48 +00009093#define _mm_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00009094 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
9095 (__v4si)_mm_shuffle_epi32((A), (I)), \
9096 (__v4si)(__m128i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00009097
Craig Topperd2661882016-05-17 04:41:48 +00009098#define _mm_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00009099 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
9100 (__v4si)_mm_shuffle_epi32((A), (I)), \
9101 (__v4si)_mm_setzero_si128()); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009102
9103static __inline__ __m128d __DEFAULT_FN_ATTRS
9104_mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A)
9105{
Igor Bregeraadb8762016-06-08 13:59:20 +00009106 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
9107 (__v2df) __A,
9108 (__v2df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009109}
9110
9111static __inline__ __m128d __DEFAULT_FN_ATTRS
9112_mm_maskz_mov_pd (__mmask8 __U, __m128d __A)
9113{
Igor Bregeraadb8762016-06-08 13:59:20 +00009114 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
9115 (__v2df) __A,
9116 (__v2df) _mm_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009117}
9118
9119static __inline__ __m256d __DEFAULT_FN_ATTRS
9120_mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A)
9121{
Igor Bregeraadb8762016-06-08 13:59:20 +00009122 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
9123 (__v4df) __A,
9124 (__v4df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009125}
9126
9127static __inline__ __m256d __DEFAULT_FN_ATTRS
9128_mm256_maskz_mov_pd (__mmask8 __U, __m256d __A)
9129{
Igor Bregeraadb8762016-06-08 13:59:20 +00009130 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
9131 (__v4df) __A,
9132 (__v4df) _mm256_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009133}
9134
9135static __inline__ __m128 __DEFAULT_FN_ATTRS
9136_mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A)
9137{
Igor Bregeraadb8762016-06-08 13:59:20 +00009138 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
9139 (__v4sf) __A,
9140 (__v4sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009141}
9142
9143static __inline__ __m128 __DEFAULT_FN_ATTRS
9144_mm_maskz_mov_ps (__mmask8 __U, __m128 __A)
9145{
Igor Bregeraadb8762016-06-08 13:59:20 +00009146 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
9147 (__v4sf) __A,
9148 (__v4sf) _mm_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009149}
9150
9151static __inline__ __m256 __DEFAULT_FN_ATTRS
9152_mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A)
9153{
Igor Bregeraadb8762016-06-08 13:59:20 +00009154 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
9155 (__v8sf) __A,
9156 (__v8sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009157}
9158
9159static __inline__ __m256 __DEFAULT_FN_ATTRS
9160_mm256_maskz_mov_ps (__mmask8 __U, __m256 __A)
9161{
Igor Bregeraadb8762016-06-08 13:59:20 +00009162 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
9163 (__v8sf) __A,
9164 (__v8sf) _mm256_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009165}
9166
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009167static __inline__ __m128 __DEFAULT_FN_ATTRS
9168_mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A)
9169{
9170 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
9171 (__v4sf) __W,
9172 (__mmask8) __U);
9173}
9174
9175static __inline__ __m128 __DEFAULT_FN_ATTRS
9176_mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
9177{
9178 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
9179 (__v4sf)
9180 _mm_setzero_ps (),
9181 (__mmask8) __U);
9182}
9183
9184static __inline__ __m256 __DEFAULT_FN_ATTRS
9185_mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A)
9186{
9187 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
9188 (__v8sf) __W,
9189 (__mmask8) __U);
9190}
9191
9192static __inline__ __m256 __DEFAULT_FN_ATTRS
9193_mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
9194{
9195 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
9196 (__v8sf)
9197 _mm256_setzero_ps (),
9198 (__mmask8) __U);
9199}
9200
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009201static __inline __m128i __DEFAULT_FN_ATTRS
9202_mm_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m128 __A)
9203{
9204 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
9205 (__v8hi) __W,
9206 (__mmask8) __U);
9207}
9208
9209static __inline __m128i __DEFAULT_FN_ATTRS
9210_mm_maskz_cvtps_ph (__mmask8 __U, __m128 __A)
9211{
9212 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
9213 (__v8hi) _mm_setzero_si128 (),
9214 (__mmask8) __U);
9215}
9216
9217#define _mm_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009218 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
9219 (__v8hi)(__m128i)(W), \
9220 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009221
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009222#define _mm_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009223 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
9224 (__v8hi)_mm_setzero_si128(), \
9225 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009226
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009227static __inline __m128i __DEFAULT_FN_ATTRS
9228_mm256_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m256 __A)
9229{
9230 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
9231 (__v8hi) __W,
9232 (__mmask8) __U);
9233}
9234
9235static __inline __m128i __DEFAULT_FN_ATTRS
9236_mm256_maskz_cvtps_ph ( __mmask8 __U, __m256 __A)
9237{
9238 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
9239 (__v8hi) _mm_setzero_si128(),
9240 (__mmask8) __U);
9241}
9242#define _mm256_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009243 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
9244 (__v8hi)(__m128i)(W), \
9245 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009246
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009247#define _mm256_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009248 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
9249 (__v8hi)_mm_setzero_si128(), \
9250 (__mmask8)(U)); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009251
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009252
Michael Kupersteine45af542015-06-30 13:36:19 +00009253#undef __DEFAULT_FN_ATTRS
Eric Christopher4d1851682015-06-17 07:09:20 +00009254
Robert Khasanovb9f3a912014-10-08 17:18:13 +00009255#endif /* __AVX512VLINTRIN_H */