blob: 3c90f6485e1470148e53102bed22d508ffa05c24 [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
Craig Topper4d61a3c2016-07-11 06:14:18 +0000893_mm256_mask_and_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000894{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000895 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
896 (__v8si)_mm256_and_si256(__A, __B),
897 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000898}
899
Michael Kupersteine45af542015-06-30 13:36:19 +0000900static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000901_mm256_maskz_and_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000902{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000903 return (__m256i)_mm256_mask_and_epi32(_mm256_setzero_si256(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000904}
905
Michael Kupersteine45af542015-06-30 13:36:19 +0000906static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000907_mm_mask_and_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000908{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000909 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
910 (__v4si)_mm_and_si128(__A, __B),
911 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000912}
913
Michael Kupersteine45af542015-06-30 13:36:19 +0000914static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000915_mm_maskz_and_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000916{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000917 return (__m128i)_mm_mask_and_epi32(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000918}
919
Michael Kupersteine45af542015-06-30 13:36:19 +0000920static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000921_mm256_mask_andnot_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000922{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000923 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
924 (__v8si)_mm256_andnot_si256(__A, __B),
925 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000926}
927
Michael Kupersteine45af542015-06-30 13:36:19 +0000928static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000929_mm256_maskz_andnot_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000930{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000931 return (__m256i)_mm256_mask_andnot_epi32(_mm256_setzero_si256(),
932 __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000933}
934
Michael Kupersteine45af542015-06-30 13:36:19 +0000935static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000936_mm_mask_andnot_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000937{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000938 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
939 (__v4si)_mm_andnot_si128(__A, __B),
940 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000941}
942
Michael Kupersteine45af542015-06-30 13:36:19 +0000943static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000944_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
945{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000946 return (__m128i)_mm_mask_andnot_epi32(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000947}
948
Michael Kupersteine45af542015-06-30 13:36:19 +0000949static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000950_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000951{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000952 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
953 (__v8si)_mm256_or_si256(__A, __B),
954 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000955}
956
Michael Kupersteine45af542015-06-30 13:36:19 +0000957static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000958_mm256_maskz_or_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000959{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000960 return (__m256i)_mm256_mask_or_epi32(_mm256_setzero_si256(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000961}
962
Michael Kupersteine45af542015-06-30 13:36:19 +0000963static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000964_mm_mask_or_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000965{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000966 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
967 (__v4si)_mm_or_si128(__A, __B),
968 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000969}
970
Michael Kupersteine45af542015-06-30 13:36:19 +0000971static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000972_mm_maskz_or_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000973{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000974 return (__m128i)_mm_mask_or_epi32(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000975}
976
Michael Kupersteine45af542015-06-30 13:36:19 +0000977static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000978_mm256_mask_xor_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000979{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000980 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
981 (__v8si)_mm256_xor_si256(__A, __B),
982 (__v8si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000983}
984
Michael Kupersteine45af542015-06-30 13:36:19 +0000985static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000986_mm256_maskz_xor_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000987{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000988 return (__m256i)_mm256_mask_xor_epi32(_mm256_setzero_si256(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000989}
990
Michael Kupersteine45af542015-06-30 13:36:19 +0000991static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +0000992_mm_mask_xor_epi32(__m128i __W, __mmask8 __U, __m128i __A,
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000993 __m128i __B)
994{
Craig Topper4d61a3c2016-07-11 06:14:18 +0000995 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
996 (__v4si)_mm_xor_si128(__A, __B),
997 (__v4si)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000998}
999
Michael Kupersteine45af542015-06-30 13:36:19 +00001000static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +00001001_mm_maskz_xor_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001002{
Craig Topper4d61a3c2016-07-11 06:14:18 +00001003 return (__m128i)_mm_mask_xor_epi32(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001004}
1005
Michael Kupersteine45af542015-06-30 13:36:19 +00001006static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +00001007_mm256_mask_and_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001008{
Craig Topper4d61a3c2016-07-11 06:14:18 +00001009 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
1010 (__v4di)_mm256_and_si256(__A, __B),
1011 (__v4di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001012}
1013
Michael Kupersteine45af542015-06-30 13:36:19 +00001014static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +00001015_mm256_maskz_and_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001016{
Craig Topper4d61a3c2016-07-11 06:14:18 +00001017 return (__m256i)_mm256_mask_and_epi64(_mm256_setzero_si256(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001018}
1019
Michael Kupersteine45af542015-06-30 13:36:19 +00001020static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +00001021_mm_mask_and_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1022{
1023 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
1024 (__v2di)_mm_and_si128(__A, __B),
1025 (__v2di)__W);
1026}
1027
1028static __inline__ __m128i __DEFAULT_FN_ATTRS
1029_mm_maskz_and_epi64(__mmask8 __U, __m128i __A, __m128i __B)
1030{
1031 return (__m128i)_mm_mask_and_epi64(_mm_setzero_si128(), __U, __A, __B);
1032}
1033
1034static __inline__ __m256i __DEFAULT_FN_ATTRS
1035_mm256_mask_andnot_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
1036{
1037 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
1038 (__v4di)_mm256_andnot_si256(__A, __B),
1039 (__v4di)__W);
1040}
1041
1042static __inline__ __m256i __DEFAULT_FN_ATTRS
1043_mm256_maskz_andnot_epi64(__mmask8 __U, __m256i __A, __m256i __B)
1044{
1045 return (__m256i)_mm256_mask_andnot_epi64(_mm256_setzero_si256(),
1046 __U, __A, __B);
1047}
1048
1049static __inline__ __m128i __DEFAULT_FN_ATTRS
1050_mm_mask_andnot_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1051{
1052 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
1053 (__v2di)_mm_andnot_si128(__A, __B),
1054 (__v2di)__W);
1055}
1056
1057static __inline__ __m128i __DEFAULT_FN_ATTRS
1058_mm_maskz_andnot_epi64(__mmask8 __U, __m128i __A, __m128i __B)
1059{
1060 return (__m128i)_mm_mask_andnot_epi64(_mm_setzero_si128(), __U, __A, __B);
1061}
1062
1063static __inline__ __m256i __DEFAULT_FN_ATTRS
1064_mm256_mask_or_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
1065{
1066 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
1067 (__v4di)_mm256_or_si256(__A, __B),
1068 (__v4di)__W);
1069}
1070
1071static __inline__ __m256i __DEFAULT_FN_ATTRS
1072_mm256_maskz_or_epi64(__mmask8 __U, __m256i __A, __m256i __B)
1073{
1074 return (__m256i)_mm256_mask_or_epi64(_mm256_setzero_si256(), __U, __A, __B);
1075}
1076
1077static __inline__ __m128i __DEFAULT_FN_ATTRS
1078_mm_mask_or_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1079{
1080 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
1081 (__v2di)_mm_or_si128(__A, __B),
1082 (__v2di)__W);
1083}
1084
1085static __inline__ __m128i __DEFAULT_FN_ATTRS
1086_mm_maskz_or_epi64(__mmask8 __U, __m128i __A, __m128i __B)
1087{
1088 return (__m128i)_mm_mask_or_epi64(_mm_setzero_si128(), __U, __A, __B);
1089}
1090
1091static __inline__ __m256i __DEFAULT_FN_ATTRS
1092_mm256_mask_xor_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
1093{
1094 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
1095 (__v4di)_mm256_xor_si256(__A, __B),
1096 (__v4di)__W);
1097}
1098
1099static __inline__ __m256i __DEFAULT_FN_ATTRS
1100_mm256_maskz_xor_epi64(__mmask8 __U, __m256i __A, __m256i __B)
1101{
1102 return (__m256i)_mm256_mask_xor_epi64(_mm256_setzero_si256(), __U, __A, __B);
1103}
1104
1105static __inline__ __m128i __DEFAULT_FN_ATTRS
1106_mm_mask_xor_epi64(__m128i __W, __mmask8 __U, __m128i __A,
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001107 __m128i __B)
1108{
Craig Topper4d61a3c2016-07-11 06:14:18 +00001109 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
1110 (__v2di)_mm_xor_si128(__A, __B),
1111 (__v2di)__W);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001112}
1113
Michael Kupersteine45af542015-06-30 13:36:19 +00001114static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper4d61a3c2016-07-11 06:14:18 +00001115_mm_maskz_xor_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001116{
Craig Topper4d61a3c2016-07-11 06:14:18 +00001117 return (__m128i)_mm_mask_xor_epi64(_mm_setzero_si128(), __U, __A, __B);
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001118}
1119
Craig Topper2f25a5a2015-01-26 08:11:49 +00001120#define _mm_cmp_epi32_mask(a, b, p) __extension__ ({ \
1121 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001122 (__v4si)(__m128i)(b), (int)(p), \
1123 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001124
1125#define _mm_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1126 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001127 (__v4si)(__m128i)(b), (int)(p), \
1128 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001129
1130#define _mm_cmp_epu32_mask(a, b, p) __extension__ ({ \
1131 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001132 (__v4si)(__m128i)(b), (int)(p), \
1133 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001134
1135#define _mm_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1136 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001137 (__v4si)(__m128i)(b), (int)(p), \
1138 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001139
1140#define _mm256_cmp_epi32_mask(a, b, p) __extension__ ({ \
1141 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001142 (__v8si)(__m256i)(b), (int)(p), \
1143 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001144
1145#define _mm256_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1146 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001147 (__v8si)(__m256i)(b), (int)(p), \
1148 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001149
1150#define _mm256_cmp_epu32_mask(a, b, p) __extension__ ({ \
1151 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001152 (__v8si)(__m256i)(b), (int)(p), \
1153 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001154
1155#define _mm256_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1156 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001157 (__v8si)(__m256i)(b), (int)(p), \
1158 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001159
1160#define _mm_cmp_epi64_mask(a, b, p) __extension__ ({ \
1161 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001162 (__v2di)(__m128i)(b), (int)(p), \
1163 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001164
1165#define _mm_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1166 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001167 (__v2di)(__m128i)(b), (int)(p), \
1168 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001169
1170#define _mm_cmp_epu64_mask(a, b, p) __extension__ ({ \
1171 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001172 (__v2di)(__m128i)(b), (int)(p), \
1173 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001174
1175#define _mm_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1176 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001177 (__v2di)(__m128i)(b), (int)(p), \
1178 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001179
1180#define _mm256_cmp_epi64_mask(a, b, p) __extension__ ({ \
1181 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001182 (__v4di)(__m256i)(b), (int)(p), \
1183 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001184
1185#define _mm256_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1186 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001187 (__v4di)(__m256i)(b), (int)(p), \
1188 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001189
1190#define _mm256_cmp_epu64_mask(a, b, p) __extension__ ({ \
1191 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001192 (__v4di)(__m256i)(b), (int)(p), \
1193 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001194
1195#define _mm256_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1196 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001197 (__v4di)(__m256i)(b), (int)(p), \
1198 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001199
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001200#define _mm256_cmp_ps_mask(a, b, p) __extension__ ({ \
1201 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001202 (__v8sf)(__m256)(b), (int)(p), \
1203 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001204
1205#define _mm256_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
1206 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001207 (__v8sf)(__m256)(b), (int)(p), \
1208 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001209
1210#define _mm256_cmp_pd_mask(a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001211 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
1212 (__v4df)(__m256d)(b), (int)(p), \
1213 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001214
1215#define _mm256_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001216 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
1217 (__v4df)(__m256d)(b), (int)(p), \
1218 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001219
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001220#define _mm_cmp_ps_mask(a, b, p) __extension__ ({ \
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001221 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001222 (__v4sf)(__m128)(b), (int)(p), \
1223 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001224
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001225#define _mm_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001226 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001227 (__v4sf)(__m128)(b), (int)(p), \
1228 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001229
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001230#define _mm_cmp_pd_mask(a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001231 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
1232 (__v2df)(__m128d)(b), (int)(p), \
1233 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001234
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001235#define _mm_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001236 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
1237 (__v2df)(__m128d)(b), (int)(p), \
1238 (__mmask8)(m)); })
Eric Christopher4d1851682015-06-17 07:09:20 +00001239
Michael Kupersteine45af542015-06-30 13:36:19 +00001240static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001241_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1242{
1243 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1244 (__v2df) __B,
1245 (__v2df) __C,
1246 (__mmask8) __U);
1247}
1248
Michael Kupersteine45af542015-06-30 13:36:19 +00001249static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001250_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1251{
1252 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 ((__v2df) __A,
1253 (__v2df) __B,
1254 (__v2df) __C,
1255 (__mmask8) __U);
1256}
1257
Michael Kupersteine45af542015-06-30 13:36:19 +00001258static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001259_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1260{
1261 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1262 (__v2df) __B,
1263 (__v2df) __C,
1264 (__mmask8) __U);
1265}
1266
Michael Kupersteine45af542015-06-30 13:36:19 +00001267static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001268_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1269{
1270 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1271 (__v2df) __B,
1272 -(__v2df) __C,
1273 (__mmask8) __U);
1274}
1275
Michael Kupersteine45af542015-06-30 13:36:19 +00001276static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001277_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1278{
1279 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1280 (__v2df) __B,
1281 -(__v2df) __C,
1282 (__mmask8) __U);
1283}
1284
Michael Kupersteine45af542015-06-30 13:36:19 +00001285static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001286_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1287{
1288 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 (-(__v2df) __A,
1289 (__v2df) __B,
1290 (__v2df) __C,
1291 (__mmask8) __U);
1292}
1293
Michael Kupersteine45af542015-06-30 13:36:19 +00001294static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001295_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1296{
1297 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1298 (__v2df) __B,
1299 (__v2df) __C,
1300 (__mmask8) __U);
1301}
1302
Michael Kupersteine45af542015-06-30 13:36:19 +00001303static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001304_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1305{
1306 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1307 (__v2df) __B,
1308 -(__v2df) __C,
1309 (__mmask8) __U);
1310}
1311
Michael Kupersteine45af542015-06-30 13:36:19 +00001312static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001313_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1314{
1315 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1316 (__v4df) __B,
1317 (__v4df) __C,
1318 (__mmask8) __U);
1319}
1320
Michael Kupersteine45af542015-06-30 13:36:19 +00001321static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001322_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1323{
1324 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 ((__v4df) __A,
1325 (__v4df) __B,
1326 (__v4df) __C,
1327 (__mmask8) __U);
1328}
1329
Michael Kupersteine45af542015-06-30 13:36:19 +00001330static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001331_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1332{
1333 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1334 (__v4df) __B,
1335 (__v4df) __C,
1336 (__mmask8) __U);
1337}
1338
Michael Kupersteine45af542015-06-30 13:36:19 +00001339static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001340_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1341{
1342 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1343 (__v4df) __B,
1344 -(__v4df) __C,
1345 (__mmask8) __U);
1346}
1347
Michael Kupersteine45af542015-06-30 13:36:19 +00001348static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001349_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1350{
1351 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1352 (__v4df) __B,
1353 -(__v4df) __C,
1354 (__mmask8) __U);
1355}
1356
Michael Kupersteine45af542015-06-30 13:36:19 +00001357static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001358_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1359{
1360 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 (-(__v4df) __A,
1361 (__v4df) __B,
1362 (__v4df) __C,
1363 (__mmask8) __U);
1364}
1365
Michael Kupersteine45af542015-06-30 13:36:19 +00001366static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001367_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1368{
1369 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1370 (__v4df) __B,
1371 (__v4df) __C,
1372 (__mmask8) __U);
1373}
1374
Michael Kupersteine45af542015-06-30 13:36:19 +00001375static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001376_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1377{
1378 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1379 (__v4df) __B,
1380 -(__v4df) __C,
1381 (__mmask8) __U);
1382}
1383
Michael Kupersteine45af542015-06-30 13:36:19 +00001384static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001385_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1386{
1387 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1388 (__v4sf) __B,
1389 (__v4sf) __C,
1390 (__mmask8) __U);
1391}
1392
Michael Kupersteine45af542015-06-30 13:36:19 +00001393static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001394_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1395{
1396 return (__m128) __builtin_ia32_vfmaddps128_mask3 ((__v4sf) __A,
1397 (__v4sf) __B,
1398 (__v4sf) __C,
1399 (__mmask8) __U);
1400}
1401
Michael Kupersteine45af542015-06-30 13:36:19 +00001402static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001403_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1404{
1405 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1406 (__v4sf) __B,
1407 (__v4sf) __C,
1408 (__mmask8) __U);
1409}
1410
Michael Kupersteine45af542015-06-30 13:36:19 +00001411static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001412_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1413{
1414 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1415 (__v4sf) __B,
1416 -(__v4sf) __C,
1417 (__mmask8) __U);
1418}
1419
Michael Kupersteine45af542015-06-30 13:36:19 +00001420static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001421_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1422{
1423 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1424 (__v4sf) __B,
1425 -(__v4sf) __C,
1426 (__mmask8) __U);
1427}
1428
Michael Kupersteine45af542015-06-30 13:36:19 +00001429static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001430_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1431{
1432 return (__m128) __builtin_ia32_vfmaddps128_mask3 (-(__v4sf) __A,
1433 (__v4sf) __B,
1434 (__v4sf) __C,
1435 (__mmask8) __U);
1436}
1437
Michael Kupersteine45af542015-06-30 13:36:19 +00001438static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001439_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1440{
1441 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1442 (__v4sf) __B,
1443 (__v4sf) __C,
1444 (__mmask8) __U);
1445}
1446
Michael Kupersteine45af542015-06-30 13:36:19 +00001447static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001448_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1449{
1450 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1451 (__v4sf) __B,
1452 -(__v4sf) __C,
1453 (__mmask8) __U);
1454}
1455
Michael Kupersteine45af542015-06-30 13:36:19 +00001456static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001457_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1458{
1459 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1460 (__v8sf) __B,
1461 (__v8sf) __C,
1462 (__mmask8) __U);
1463}
1464
Michael Kupersteine45af542015-06-30 13:36:19 +00001465static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001466_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1467{
1468 return (__m256) __builtin_ia32_vfmaddps256_mask3 ((__v8sf) __A,
1469 (__v8sf) __B,
1470 (__v8sf) __C,
1471 (__mmask8) __U);
1472}
1473
Michael Kupersteine45af542015-06-30 13:36:19 +00001474static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001475_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1476{
1477 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1478 (__v8sf) __B,
1479 (__v8sf) __C,
1480 (__mmask8) __U);
1481}
1482
Michael Kupersteine45af542015-06-30 13:36:19 +00001483static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001484_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1485{
1486 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1487 (__v8sf) __B,
1488 -(__v8sf) __C,
1489 (__mmask8) __U);
1490}
1491
Michael Kupersteine45af542015-06-30 13:36:19 +00001492static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001493_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1494{
1495 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1496 (__v8sf) __B,
1497 -(__v8sf) __C,
1498 (__mmask8) __U);
1499}
1500
Michael Kupersteine45af542015-06-30 13:36:19 +00001501static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001502_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1503{
1504 return (__m256) __builtin_ia32_vfmaddps256_mask3 (-(__v8sf) __A,
1505 (__v8sf) __B,
1506 (__v8sf) __C,
1507 (__mmask8) __U);
1508}
1509
Michael Kupersteine45af542015-06-30 13:36:19 +00001510static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001511_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1512{
1513 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1514 (__v8sf) __B,
1515 (__v8sf) __C,
1516 (__mmask8) __U);
1517}
1518
Michael Kupersteine45af542015-06-30 13:36:19 +00001519static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001520_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1521{
1522 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1523 (__v8sf) __B,
1524 -(__v8sf) __C,
1525 (__mmask8) __U);
1526}
1527
Michael Kupersteine45af542015-06-30 13:36:19 +00001528static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001529_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1530{
1531 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1532 (__v2df) __B,
1533 (__v2df) __C,
1534 (__mmask8) __U);
1535}
1536
Michael Kupersteine45af542015-06-30 13:36:19 +00001537static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001538_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1539{
1540 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask3 ((__v2df) __A,
1541 (__v2df) __B,
1542 (__v2df) __C,
1543 (__mmask8)
1544 __U);
1545}
1546
Michael Kupersteine45af542015-06-30 13:36:19 +00001547static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001548_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1549{
1550 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1551 (__v2df) __B,
1552 (__v2df) __C,
1553 (__mmask8)
1554 __U);
1555}
1556
Michael Kupersteine45af542015-06-30 13:36:19 +00001557static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001558_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1559{
1560 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1561 (__v2df) __B,
1562 -(__v2df) __C,
1563 (__mmask8) __U);
1564}
1565
Michael Kupersteine45af542015-06-30 13:36:19 +00001566static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001567_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1568{
1569 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1570 (__v2df) __B,
1571 -(__v2df) __C,
1572 (__mmask8)
1573 __U);
1574}
1575
Michael Kupersteine45af542015-06-30 13:36:19 +00001576static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001577_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1578{
1579 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1580 (__v4df) __B,
1581 (__v4df) __C,
1582 (__mmask8) __U);
1583}
1584
Michael Kupersteine45af542015-06-30 13:36:19 +00001585static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001586_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1587{
1588 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask3 ((__v4df) __A,
1589 (__v4df) __B,
1590 (__v4df) __C,
1591 (__mmask8)
1592 __U);
1593}
1594
Michael Kupersteine45af542015-06-30 13:36:19 +00001595static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001596_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1597{
1598 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1599 (__v4df) __B,
1600 (__v4df) __C,
1601 (__mmask8)
1602 __U);
1603}
1604
Michael Kupersteine45af542015-06-30 13:36:19 +00001605static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001606_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1607{
1608 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1609 (__v4df) __B,
1610 -(__v4df) __C,
1611 (__mmask8) __U);
1612}
1613
Michael Kupersteine45af542015-06-30 13:36:19 +00001614static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001615_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1616{
1617 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1618 (__v4df) __B,
1619 -(__v4df) __C,
1620 (__mmask8)
1621 __U);
1622}
1623
Michael Kupersteine45af542015-06-30 13:36:19 +00001624static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001625_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1626{
1627 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1628 (__v4sf) __B,
1629 (__v4sf) __C,
1630 (__mmask8) __U);
1631}
1632
Michael Kupersteine45af542015-06-30 13:36:19 +00001633static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001634_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1635{
1636 return (__m128) __builtin_ia32_vfmaddsubps128_mask3 ((__v4sf) __A,
1637 (__v4sf) __B,
1638 (__v4sf) __C,
1639 (__mmask8) __U);
1640}
1641
Michael Kupersteine45af542015-06-30 13:36:19 +00001642static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001643_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1644{
1645 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1646 (__v4sf) __B,
1647 (__v4sf) __C,
1648 (__mmask8) __U);
1649}
1650
Michael Kupersteine45af542015-06-30 13:36:19 +00001651static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001652_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1653{
1654 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1655 (__v4sf) __B,
1656 -(__v4sf) __C,
1657 (__mmask8) __U);
1658}
1659
Michael Kupersteine45af542015-06-30 13:36:19 +00001660static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001661_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1662{
1663 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1664 (__v4sf) __B,
1665 -(__v4sf) __C,
1666 (__mmask8) __U);
1667}
1668
Michael Kupersteine45af542015-06-30 13:36:19 +00001669static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001670_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B,
1671 __m256 __C)
1672{
1673 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1674 (__v8sf) __B,
1675 (__v8sf) __C,
1676 (__mmask8) __U);
1677}
1678
Michael Kupersteine45af542015-06-30 13:36:19 +00001679static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001680_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1681{
1682 return (__m256) __builtin_ia32_vfmaddsubps256_mask3 ((__v8sf) __A,
1683 (__v8sf) __B,
1684 (__v8sf) __C,
1685 (__mmask8) __U);
1686}
1687
Michael Kupersteine45af542015-06-30 13:36:19 +00001688static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001689_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1690{
1691 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1692 (__v8sf) __B,
1693 (__v8sf) __C,
1694 (__mmask8) __U);
1695}
1696
Michael Kupersteine45af542015-06-30 13:36:19 +00001697static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001698_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1699{
1700 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1701 (__v8sf) __B,
1702 -(__v8sf) __C,
1703 (__mmask8) __U);
1704}
1705
Michael Kupersteine45af542015-06-30 13:36:19 +00001706static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001707_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1708{
1709 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1710 (__v8sf) __B,
1711 -(__v8sf) __C,
1712 (__mmask8) __U);
1713}
1714
Michael Kupersteine45af542015-06-30 13:36:19 +00001715static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001716_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1717{
1718 return (__m128d) __builtin_ia32_vfmsubpd128_mask3 ((__v2df) __A,
1719 (__v2df) __B,
1720 (__v2df) __C,
1721 (__mmask8) __U);
1722}
1723
Michael Kupersteine45af542015-06-30 13:36:19 +00001724static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001725_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1726{
1727 return (__m256d) __builtin_ia32_vfmsubpd256_mask3 ((__v4df) __A,
1728 (__v4df) __B,
1729 (__v4df) __C,
1730 (__mmask8) __U);
1731}
1732
Michael Kupersteine45af542015-06-30 13:36:19 +00001733static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001734_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1735{
1736 return (__m128) __builtin_ia32_vfmsubps128_mask3 ((__v4sf) __A,
1737 (__v4sf) __B,
1738 (__v4sf) __C,
1739 (__mmask8) __U);
1740}
1741
Michael Kupersteine45af542015-06-30 13:36:19 +00001742static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001743_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1744{
1745 return (__m256) __builtin_ia32_vfmsubps256_mask3 ((__v8sf) __A,
1746 (__v8sf) __B,
1747 (__v8sf) __C,
1748 (__mmask8) __U);
1749}
1750
Michael Kupersteine45af542015-06-30 13:36:19 +00001751static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001752_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1753{
1754 return (__m128d) __builtin_ia32_vfmsubaddpd128_mask3 ((__v2df) __A,
1755 (__v2df) __B,
1756 (__v2df) __C,
1757 (__mmask8)
1758 __U);
1759}
1760
Michael Kupersteine45af542015-06-30 13:36:19 +00001761static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001762_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1763{
1764 return (__m256d) __builtin_ia32_vfmsubaddpd256_mask3 ((__v4df) __A,
1765 (__v4df) __B,
1766 (__v4df) __C,
1767 (__mmask8)
1768 __U);
1769}
1770
Michael Kupersteine45af542015-06-30 13:36:19 +00001771static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001772_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1773{
1774 return (__m128) __builtin_ia32_vfmsubaddps128_mask3 ((__v4sf) __A,
1775 (__v4sf) __B,
1776 (__v4sf) __C,
1777 (__mmask8) __U);
1778}
1779
Michael Kupersteine45af542015-06-30 13:36:19 +00001780static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001781_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1782{
1783 return (__m256) __builtin_ia32_vfmsubaddps256_mask3 ((__v8sf) __A,
1784 (__v8sf) __B,
1785 (__v8sf) __C,
1786 (__mmask8) __U);
1787}
1788
Michael Kupersteine45af542015-06-30 13:36:19 +00001789static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001790_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1791{
1792 return (__m128d) __builtin_ia32_vfnmaddpd128_mask ((__v2df) __A,
1793 (__v2df) __B,
1794 (__v2df) __C,
1795 (__mmask8) __U);
1796}
1797
Michael Kupersteine45af542015-06-30 13:36:19 +00001798static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001799_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1800{
1801 return (__m256d) __builtin_ia32_vfnmaddpd256_mask ((__v4df) __A,
1802 (__v4df) __B,
1803 (__v4df) __C,
1804 (__mmask8) __U);
1805}
1806
Michael Kupersteine45af542015-06-30 13:36:19 +00001807static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001808_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1809{
1810 return (__m128) __builtin_ia32_vfnmaddps128_mask ((__v4sf) __A,
1811 (__v4sf) __B,
1812 (__v4sf) __C,
1813 (__mmask8) __U);
1814}
1815
Michael Kupersteine45af542015-06-30 13:36:19 +00001816static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001817_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1818{
1819 return (__m256) __builtin_ia32_vfnmaddps256_mask ((__v8sf) __A,
1820 (__v8sf) __B,
1821 (__v8sf) __C,
1822 (__mmask8) __U);
1823}
1824
Michael Kupersteine45af542015-06-30 13:36:19 +00001825static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001826_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1827{
1828 return (__m128d) __builtin_ia32_vfnmsubpd128_mask ((__v2df) __A,
1829 (__v2df) __B,
1830 (__v2df) __C,
1831 (__mmask8) __U);
1832}
1833
Michael Kupersteine45af542015-06-30 13:36:19 +00001834static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001835_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1836{
1837 return (__m128d) __builtin_ia32_vfnmsubpd128_mask3 ((__v2df) __A,
1838 (__v2df) __B,
1839 (__v2df) __C,
1840 (__mmask8) __U);
1841}
1842
Michael Kupersteine45af542015-06-30 13:36:19 +00001843static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001844_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1845{
1846 return (__m256d) __builtin_ia32_vfnmsubpd256_mask ((__v4df) __A,
1847 (__v4df) __B,
1848 (__v4df) __C,
1849 (__mmask8) __U);
1850}
1851
Michael Kupersteine45af542015-06-30 13:36:19 +00001852static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001853_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1854{
1855 return (__m256d) __builtin_ia32_vfnmsubpd256_mask3 ((__v4df) __A,
1856 (__v4df) __B,
1857 (__v4df) __C,
1858 (__mmask8) __U);
1859}
1860
Michael Kupersteine45af542015-06-30 13:36:19 +00001861static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001862_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1863{
1864 return (__m128) __builtin_ia32_vfnmsubps128_mask ((__v4sf) __A,
1865 (__v4sf) __B,
1866 (__v4sf) __C,
1867 (__mmask8) __U);
1868}
1869
Michael Kupersteine45af542015-06-30 13:36:19 +00001870static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001871_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1872{
1873 return (__m128) __builtin_ia32_vfnmsubps128_mask3 ((__v4sf) __A,
1874 (__v4sf) __B,
1875 (__v4sf) __C,
1876 (__mmask8) __U);
1877}
1878
Michael Kupersteine45af542015-06-30 13:36:19 +00001879static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001880_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1881{
1882 return (__m256) __builtin_ia32_vfnmsubps256_mask ((__v8sf) __A,
1883 (__v8sf) __B,
1884 (__v8sf) __C,
1885 (__mmask8) __U);
1886}
1887
Michael Kupersteine45af542015-06-30 13:36:19 +00001888static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001889_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1890{
1891 return (__m256) __builtin_ia32_vfnmsubps256_mask3 ((__v8sf) __A,
1892 (__v8sf) __B,
1893 (__v8sf) __C,
1894 (__mmask8) __U);
1895}
1896
Asaf Badouh74da3872015-07-28 08:26:14 +00001897static __inline__ __m128d __DEFAULT_FN_ATTRS
1898_mm_mask_add_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1899 return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A,
1900 (__v2df) __B,
1901 (__v2df) __W,
1902 (__mmask8) __U);
1903}
1904
1905static __inline__ __m128d __DEFAULT_FN_ATTRS
1906_mm_maskz_add_pd (__mmask8 __U, __m128d __A, __m128d __B) {
1907 return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A,
1908 (__v2df) __B,
1909 (__v2df)
1910 _mm_setzero_pd (),
1911 (__mmask8) __U);
1912}
1913
1914static __inline__ __m256d __DEFAULT_FN_ATTRS
1915_mm256_mask_add_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
1916 return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A,
1917 (__v4df) __B,
1918 (__v4df) __W,
1919 (__mmask8) __U);
1920}
1921
1922static __inline__ __m256d __DEFAULT_FN_ATTRS
1923_mm256_maskz_add_pd (__mmask8 __U, __m256d __A, __m256d __B) {
1924 return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A,
1925 (__v4df) __B,
1926 (__v4df)
1927 _mm256_setzero_pd (),
1928 (__mmask8) __U);
1929}
1930
1931static __inline__ __m128 __DEFAULT_FN_ATTRS
1932_mm_mask_add_ps (__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) {
1933 return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A,
1934 (__v4sf) __B,
1935 (__v4sf) __W,
1936 (__mmask8) __U);
1937}
1938
1939static __inline__ __m128 __DEFAULT_FN_ATTRS
1940_mm_maskz_add_ps (__mmask16 __U, __m128 __A, __m128 __B) {
1941 return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A,
1942 (__v4sf) __B,
1943 (__v4sf)
1944 _mm_setzero_ps (),
1945 (__mmask8) __U);
1946}
1947
1948static __inline__ __m256 __DEFAULT_FN_ATTRS
1949_mm256_mask_add_ps (__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) {
1950 return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A,
1951 (__v8sf) __B,
1952 (__v8sf) __W,
1953 (__mmask8) __U);
1954}
1955
1956static __inline__ __m256 __DEFAULT_FN_ATTRS
1957_mm256_maskz_add_ps (__mmask16 __U, __m256 __A, __m256 __B) {
1958 return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A,
1959 (__v8sf) __B,
1960 (__v8sf)
1961 _mm256_setzero_ps (),
1962 (__mmask8) __U);
1963}
1964
1965static __inline__ __m128i __DEFAULT_FN_ATTRS
1966_mm_mask_blend_epi32 (__mmask8 __U, __m128i __A, __m128i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001967 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001968 (__v4si) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001969 (__v4si) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001970}
1971
1972static __inline__ __m256i __DEFAULT_FN_ATTRS
1973_mm256_mask_blend_epi32 (__mmask8 __U, __m256i __A, __m256i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001974 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001975 (__v8si) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001976 (__v8si) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001977}
1978
1979static __inline__ __m128d __DEFAULT_FN_ATTRS
1980_mm_mask_blend_pd (__mmask8 __U, __m128d __A, __m128d __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001981 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001982 (__v2df) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001983 (__v2df) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001984}
1985
1986static __inline__ __m256d __DEFAULT_FN_ATTRS
1987_mm256_mask_blend_pd (__mmask8 __U, __m256d __A, __m256d __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001988 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001989 (__v4df) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001990 (__v4df) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001991}
1992
1993static __inline__ __m128 __DEFAULT_FN_ATTRS
1994_mm_mask_blend_ps (__mmask8 __U, __m128 __A, __m128 __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00001995 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00001996 (__v4sf) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00001997 (__v4sf) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00001998}
1999
2000static __inline__ __m256 __DEFAULT_FN_ATTRS
2001_mm256_mask_blend_ps (__mmask8 __U, __m256 __A, __m256 __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002002 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002003 (__v8sf) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002004 (__v8sf) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002005}
2006
2007static __inline__ __m128i __DEFAULT_FN_ATTRS
2008_mm_mask_blend_epi64 (__mmask8 __U, __m128i __A, __m128i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002009 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002010 (__v2di) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002011 (__v2di) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002012}
2013
2014static __inline__ __m256i __DEFAULT_FN_ATTRS
2015_mm256_mask_blend_epi64 (__mmask8 __U, __m256i __A, __m256i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002016 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002017 (__v4di) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002018 (__v4di) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002019}
2020
2021static __inline__ __m128d __DEFAULT_FN_ATTRS
2022_mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2023 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
2024 (__v2df) __W,
2025 (__mmask8) __U);
2026}
2027
2028static __inline__ __m128d __DEFAULT_FN_ATTRS
2029_mm_maskz_compress_pd (__mmask8 __U, __m128d __A) {
2030 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
2031 (__v2df)
2032 _mm_setzero_pd (),
2033 (__mmask8) __U);
2034}
2035
2036static __inline__ __m256d __DEFAULT_FN_ATTRS
2037_mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2038 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
2039 (__v4df) __W,
2040 (__mmask8) __U);
2041}
2042
2043static __inline__ __m256d __DEFAULT_FN_ATTRS
2044_mm256_maskz_compress_pd (__mmask8 __U, __m256d __A) {
2045 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
2046 (__v4df)
2047 _mm256_setzero_pd (),
2048 (__mmask8) __U);
2049}
2050
2051static __inline__ __m128i __DEFAULT_FN_ATTRS
2052_mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2053 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
2054 (__v2di) __W,
2055 (__mmask8) __U);
2056}
2057
2058static __inline__ __m128i __DEFAULT_FN_ATTRS
2059_mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A) {
2060 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
2061 (__v2di)
2062 _mm_setzero_si128 (),
2063 (__mmask8) __U);
2064}
2065
2066static __inline__ __m256i __DEFAULT_FN_ATTRS
2067_mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2068 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
2069 (__v4di) __W,
2070 (__mmask8) __U);
2071}
2072
2073static __inline__ __m256i __DEFAULT_FN_ATTRS
2074_mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A) {
2075 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
2076 (__v4di)
2077 _mm256_setzero_si256 (),
2078 (__mmask8) __U);
2079}
2080
2081static __inline__ __m128 __DEFAULT_FN_ATTRS
2082_mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A) {
2083 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
2084 (__v4sf) __W,
2085 (__mmask8) __U);
2086}
2087
2088static __inline__ __m128 __DEFAULT_FN_ATTRS
2089_mm_maskz_compress_ps (__mmask8 __U, __m128 __A) {
2090 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
2091 (__v4sf)
2092 _mm_setzero_ps (),
2093 (__mmask8) __U);
2094}
2095
2096static __inline__ __m256 __DEFAULT_FN_ATTRS
2097_mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A) {
2098 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
2099 (__v8sf) __W,
2100 (__mmask8) __U);
2101}
2102
2103static __inline__ __m256 __DEFAULT_FN_ATTRS
2104_mm256_maskz_compress_ps (__mmask8 __U, __m256 __A) {
2105 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
2106 (__v8sf)
2107 _mm256_setzero_ps (),
2108 (__mmask8) __U);
2109}
2110
2111static __inline__ __m128i __DEFAULT_FN_ATTRS
2112_mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
2113 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
2114 (__v4si) __W,
2115 (__mmask8) __U);
2116}
2117
2118static __inline__ __m128i __DEFAULT_FN_ATTRS
2119_mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A) {
2120 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
2121 (__v4si)
2122 _mm_setzero_si128 (),
2123 (__mmask8) __U);
2124}
2125
2126static __inline__ __m256i __DEFAULT_FN_ATTRS
2127_mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
2128 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
2129 (__v8si) __W,
2130 (__mmask8) __U);
2131}
2132
2133static __inline__ __m256i __DEFAULT_FN_ATTRS
2134_mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A) {
2135 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
2136 (__v8si)
2137 _mm256_setzero_si256 (),
2138 (__mmask8) __U);
2139}
2140
2141static __inline__ void __DEFAULT_FN_ATTRS
2142_mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A) {
2143 __builtin_ia32_compressstoredf128_mask ((__v2df *) __P,
2144 (__v2df) __A,
2145 (__mmask8) __U);
2146}
2147
2148static __inline__ void __DEFAULT_FN_ATTRS
2149_mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A) {
2150 __builtin_ia32_compressstoredf256_mask ((__v4df *) __P,
2151 (__v4df) __A,
2152 (__mmask8) __U);
2153}
2154
2155static __inline__ void __DEFAULT_FN_ATTRS
2156_mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A) {
2157 __builtin_ia32_compressstoredi128_mask ((__v2di *) __P,
2158 (__v2di) __A,
2159 (__mmask8) __U);
2160}
2161
2162static __inline__ void __DEFAULT_FN_ATTRS
2163_mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A) {
2164 __builtin_ia32_compressstoredi256_mask ((__v4di *) __P,
2165 (__v4di) __A,
2166 (__mmask8) __U);
2167}
2168
2169static __inline__ void __DEFAULT_FN_ATTRS
2170_mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A) {
2171 __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P,
2172 (__v4sf) __A,
2173 (__mmask8) __U);
2174}
2175
2176static __inline__ void __DEFAULT_FN_ATTRS
2177_mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A) {
2178 __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P,
2179 (__v8sf) __A,
2180 (__mmask8) __U);
2181}
2182
2183static __inline__ void __DEFAULT_FN_ATTRS
2184_mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A) {
2185 __builtin_ia32_compressstoresi128_mask ((__v4si *) __P,
2186 (__v4si) __A,
2187 (__mmask8) __U);
2188}
2189
2190static __inline__ void __DEFAULT_FN_ATTRS
2191_mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A) {
2192 __builtin_ia32_compressstoresi256_mask ((__v8si *) __P,
2193 (__v8si) __A,
2194 (__mmask8) __U);
2195}
2196
2197static __inline__ __m128d __DEFAULT_FN_ATTRS
2198_mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2199 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
2200 (__v2df) __W,
2201 (__mmask8) __U);
2202}
2203
2204static __inline__ __m128d __DEFAULT_FN_ATTRS
2205_mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
2206 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
2207 (__v2df)
2208 _mm_setzero_pd (),
2209 (__mmask8) __U);
2210}
2211
2212static __inline__ __m256d __DEFAULT_FN_ATTRS
2213_mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2214 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
2215 (__v4df) __W,
2216 (__mmask8) __U);
2217}
2218
2219static __inline__ __m256d __DEFAULT_FN_ATTRS
2220_mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
2221 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
2222 (__v4df)
2223 _mm256_setzero_pd (),
2224 (__mmask8) __U);
2225}
2226
2227static __inline__ __m128 __DEFAULT_FN_ATTRS
2228_mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2229 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2230 (__v4sf) __W,
2231 (__mmask8) __U);
2232}
2233
2234static __inline__ __m128 __DEFAULT_FN_ATTRS
2235_mm_maskz_cvtepi32_ps (__mmask16 __U, __m128i __A) {
2236 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2237 (__v4sf)
2238 _mm_setzero_ps (),
2239 (__mmask8) __U);
2240}
2241
2242static __inline__ __m256 __DEFAULT_FN_ATTRS
2243_mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2244 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2245 (__v8sf) __W,
2246 (__mmask8) __U);
2247}
2248
2249static __inline__ __m256 __DEFAULT_FN_ATTRS
2250_mm256_maskz_cvtepi32_ps (__mmask16 __U, __m256i __A) {
2251 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2252 (__v8sf)
2253 _mm256_setzero_ps (),
2254 (__mmask8) __U);
2255}
2256
2257static __inline__ __m128i __DEFAULT_FN_ATTRS
2258_mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2259 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2260 (__v4si) __W,
2261 (__mmask8) __U);
2262}
2263
2264static __inline__ __m128i __DEFAULT_FN_ATTRS
2265_mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) {
2266 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2267 (__v4si)
2268 _mm_setzero_si128 (),
2269 (__mmask8) __U);
2270}
2271
2272static __inline__ __m128i __DEFAULT_FN_ATTRS
2273_mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2274 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2275 (__v4si) __W,
2276 (__mmask8) __U);
2277}
2278
2279static __inline__ __m128i __DEFAULT_FN_ATTRS
2280_mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) {
2281 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2282 (__v4si)
2283 _mm_setzero_si128 (),
2284 (__mmask8) __U);
2285}
2286
2287static __inline__ __m128 __DEFAULT_FN_ATTRS
2288_mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) {
2289 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2290 (__v4sf) __W,
2291 (__mmask8) __U);
2292}
2293
2294static __inline__ __m128 __DEFAULT_FN_ATTRS
2295_mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) {
2296 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2297 (__v4sf)
2298 _mm_setzero_ps (),
2299 (__mmask8) __U);
2300}
2301
2302static __inline__ __m128 __DEFAULT_FN_ATTRS
2303_mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) {
2304 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2305 (__v4sf) __W,
2306 (__mmask8) __U);
2307}
2308
2309static __inline__ __m128 __DEFAULT_FN_ATTRS
2310_mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) {
2311 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2312 (__v4sf)
2313 _mm_setzero_ps (),
2314 (__mmask8) __U);
2315}
2316
2317static __inline__ __m128i __DEFAULT_FN_ATTRS
2318_mm_cvtpd_epu32 (__m128d __A) {
2319 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2320 (__v4si)
2321 _mm_setzero_si128 (),
2322 (__mmask8) -1);
2323}
2324
2325static __inline__ __m128i __DEFAULT_FN_ATTRS
2326_mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2327 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2328 (__v4si) __W,
2329 (__mmask8) __U);
2330}
2331
2332static __inline__ __m128i __DEFAULT_FN_ATTRS
2333_mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) {
2334 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2335 (__v4si)
2336 _mm_setzero_si128 (),
2337 (__mmask8) __U);
2338}
2339
2340static __inline__ __m128i __DEFAULT_FN_ATTRS
2341_mm256_cvtpd_epu32 (__m256d __A) {
2342 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2343 (__v4si)
2344 _mm_setzero_si128 (),
2345 (__mmask8) -1);
2346}
2347
2348static __inline__ __m128i __DEFAULT_FN_ATTRS
2349_mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2350 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2351 (__v4si) __W,
2352 (__mmask8) __U);
2353}
2354
2355static __inline__ __m128i __DEFAULT_FN_ATTRS
2356_mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) {
2357 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2358 (__v4si)
2359 _mm_setzero_si128 (),
2360 (__mmask8) __U);
2361}
2362
2363static __inline__ __m128i __DEFAULT_FN_ATTRS
2364_mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2365 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2366 (__v4si) __W,
2367 (__mmask8) __U);
2368}
2369
2370static __inline__ __m128i __DEFAULT_FN_ATTRS
2371_mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) {
2372 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2373 (__v4si)
2374 _mm_setzero_si128 (),
2375 (__mmask8) __U);
2376}
2377
2378static __inline__ __m256i __DEFAULT_FN_ATTRS
2379_mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2380 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2381 (__v8si) __W,
2382 (__mmask8) __U);
2383}
2384
2385static __inline__ __m256i __DEFAULT_FN_ATTRS
2386_mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) {
2387 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2388 (__v8si)
2389 _mm256_setzero_si256 (),
2390 (__mmask8) __U);
2391}
2392
2393static __inline__ __m128d __DEFAULT_FN_ATTRS
2394_mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) {
2395 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2396 (__v2df) __W,
2397 (__mmask8) __U);
2398}
2399
2400static __inline__ __m128d __DEFAULT_FN_ATTRS
2401_mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2402 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2403 (__v2df)
2404 _mm_setzero_pd (),
2405 (__mmask8) __U);
2406}
2407
2408static __inline__ __m256d __DEFAULT_FN_ATTRS
2409_mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) {
2410 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2411 (__v4df) __W,
2412 (__mmask8) __U);
2413}
2414
2415static __inline__ __m256d __DEFAULT_FN_ATTRS
2416_mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2417 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2418 (__v4df)
2419 _mm256_setzero_pd (),
2420 (__mmask8) __U);
2421}
2422
2423static __inline__ __m128i __DEFAULT_FN_ATTRS
2424_mm_cvtps_epu32 (__m128 __A) {
2425 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2426 (__v4si)
2427 _mm_setzero_si128 (),
2428 (__mmask8) -1);
2429}
2430
2431static __inline__ __m128i __DEFAULT_FN_ATTRS
2432_mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2433 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2434 (__v4si) __W,
2435 (__mmask8) __U);
2436}
2437
2438static __inline__ __m128i __DEFAULT_FN_ATTRS
2439_mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) {
2440 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2441 (__v4si)
2442 _mm_setzero_si128 (),
2443 (__mmask8) __U);
2444}
2445
2446static __inline__ __m256i __DEFAULT_FN_ATTRS
2447_mm256_cvtps_epu32 (__m256 __A) {
2448 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2449 (__v8si)
2450 _mm256_setzero_si256 (),
2451 (__mmask8) -1);
2452}
2453
2454static __inline__ __m256i __DEFAULT_FN_ATTRS
2455_mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2456 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2457 (__v8si) __W,
2458 (__mmask8) __U);
2459}
2460
2461static __inline__ __m256i __DEFAULT_FN_ATTRS
2462_mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) {
2463 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2464 (__v8si)
2465 _mm256_setzero_si256 (),
2466 (__mmask8) __U);
2467}
2468
2469static __inline__ __m128i __DEFAULT_FN_ATTRS
2470_mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2471 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2472 (__v4si) __W,
2473 (__mmask8) __U);
2474}
2475
2476static __inline__ __m128i __DEFAULT_FN_ATTRS
2477_mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) {
2478 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2479 (__v4si)
2480 _mm_setzero_si128 (),
2481 (__mmask8) __U);
2482}
2483
2484static __inline__ __m128i __DEFAULT_FN_ATTRS
2485_mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2486 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2487 (__v4si) __W,
2488 (__mmask8) __U);
2489}
2490
2491static __inline__ __m128i __DEFAULT_FN_ATTRS
2492_mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) {
2493 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2494 (__v4si)
2495 _mm_setzero_si128 (),
2496 (__mmask8) __U);
2497}
2498
2499static __inline__ __m128i __DEFAULT_FN_ATTRS
2500_mm_cvttpd_epu32 (__m128d __A) {
2501 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2502 (__v4si)
2503 _mm_setzero_si128 (),
2504 (__mmask8) -1);
2505}
2506
2507static __inline__ __m128i __DEFAULT_FN_ATTRS
2508_mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2509 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2510 (__v4si) __W,
2511 (__mmask8) __U);
2512}
2513
2514static __inline__ __m128i __DEFAULT_FN_ATTRS
2515_mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) {
2516 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2517 (__v4si)
2518 _mm_setzero_si128 (),
2519 (__mmask8) __U);
2520}
2521
2522static __inline__ __m128i __DEFAULT_FN_ATTRS
2523_mm256_cvttpd_epu32 (__m256d __A) {
2524 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2525 (__v4si)
2526 _mm_setzero_si128 (),
2527 (__mmask8) -1);
2528}
2529
2530static __inline__ __m128i __DEFAULT_FN_ATTRS
2531_mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2532 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2533 (__v4si) __W,
2534 (__mmask8) __U);
2535}
2536
2537static __inline__ __m128i __DEFAULT_FN_ATTRS
2538_mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) {
2539 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2540 (__v4si)
2541 _mm_setzero_si128 (),
2542 (__mmask8) __U);
2543}
2544
2545static __inline__ __m128i __DEFAULT_FN_ATTRS
2546_mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2547 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2548 (__v4si) __W,
2549 (__mmask8) __U);
2550}
2551
2552static __inline__ __m128i __DEFAULT_FN_ATTRS
2553_mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) {
2554 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2555 (__v4si)
2556 _mm_setzero_si128 (),
2557 (__mmask8) __U);
2558}
2559
2560static __inline__ __m256i __DEFAULT_FN_ATTRS
2561_mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2562 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2563 (__v8si) __W,
2564 (__mmask8) __U);
2565}
2566
2567static __inline__ __m256i __DEFAULT_FN_ATTRS
2568_mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) {
2569 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2570 (__v8si)
2571 _mm256_setzero_si256 (),
2572 (__mmask8) __U);
2573}
2574
2575static __inline__ __m128i __DEFAULT_FN_ATTRS
2576_mm_cvttps_epu32 (__m128 __A) {
2577 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2578 (__v4si)
2579 _mm_setzero_si128 (),
2580 (__mmask8) -1);
2581}
2582
2583static __inline__ __m128i __DEFAULT_FN_ATTRS
2584_mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2585 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2586 (__v4si) __W,
2587 (__mmask8) __U);
2588}
2589
2590static __inline__ __m128i __DEFAULT_FN_ATTRS
2591_mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) {
2592 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2593 (__v4si)
2594 _mm_setzero_si128 (),
2595 (__mmask8) __U);
2596}
2597
2598static __inline__ __m256i __DEFAULT_FN_ATTRS
2599_mm256_cvttps_epu32 (__m256 __A) {
2600 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2601 (__v8si)
2602 _mm256_setzero_si256 (),
2603 (__mmask8) -1);
2604}
2605
2606static __inline__ __m256i __DEFAULT_FN_ATTRS
2607_mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2608 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2609 (__v8si) __W,
2610 (__mmask8) __U);
2611}
2612
2613static __inline__ __m256i __DEFAULT_FN_ATTRS
2614_mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) {
2615 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2616 (__v8si)
2617 _mm256_setzero_si256 (),
2618 (__mmask8) __U);
2619}
2620
2621static __inline__ __m128d __DEFAULT_FN_ATTRS
2622_mm_cvtepu32_pd (__m128i __A) {
2623 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2624 (__v2df)
2625 _mm_setzero_pd (),
2626 (__mmask8) -1);
2627}
2628
2629static __inline__ __m128d __DEFAULT_FN_ATTRS
2630_mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2631 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2632 (__v2df) __W,
2633 (__mmask8) __U);
2634}
2635
2636static __inline__ __m128d __DEFAULT_FN_ATTRS
2637_mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2638 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2639 (__v2df)
2640 _mm_setzero_pd (),
2641 (__mmask8) __U);
2642}
2643
2644static __inline__ __m256d __DEFAULT_FN_ATTRS
2645_mm256_cvtepu32_pd (__m128i __A) {
2646 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2647 (__v4df)
2648 _mm256_setzero_pd (),
2649 (__mmask8) -1);
2650}
2651
2652static __inline__ __m256d __DEFAULT_FN_ATTRS
2653_mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2654 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2655 (__v4df) __W,
2656 (__mmask8) __U);
2657}
2658
2659static __inline__ __m256d __DEFAULT_FN_ATTRS
2660_mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2661 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2662 (__v4df)
2663 _mm256_setzero_pd (),
2664 (__mmask8) __U);
2665}
2666
2667static __inline__ __m128 __DEFAULT_FN_ATTRS
2668_mm_cvtepu32_ps (__m128i __A) {
2669 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2670 (__v4sf)
2671 _mm_setzero_ps (),
2672 (__mmask8) -1);
2673}
2674
2675static __inline__ __m128 __DEFAULT_FN_ATTRS
2676_mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2677 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2678 (__v4sf) __W,
2679 (__mmask8) __U);
2680}
2681
2682static __inline__ __m128 __DEFAULT_FN_ATTRS
2683_mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) {
2684 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2685 (__v4sf)
2686 _mm_setzero_ps (),
2687 (__mmask8) __U);
2688}
2689
2690static __inline__ __m256 __DEFAULT_FN_ATTRS
2691_mm256_cvtepu32_ps (__m256i __A) {
2692 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2693 (__v8sf)
2694 _mm256_setzero_ps (),
2695 (__mmask8) -1);
2696}
2697
2698static __inline__ __m256 __DEFAULT_FN_ATTRS
2699_mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2700 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2701 (__v8sf) __W,
2702 (__mmask8) __U);
2703}
2704
2705static __inline__ __m256 __DEFAULT_FN_ATTRS
2706_mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) {
2707 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2708 (__v8sf)
2709 _mm256_setzero_ps (),
2710 (__mmask8) __U);
2711}
2712
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002713static __inline__ __m128d __DEFAULT_FN_ATTRS
2714_mm_mask_div_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2715 return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A,
2716 (__v2df) __B,
2717 (__v2df) __W,
2718 (__mmask8) __U);
2719}
2720
2721static __inline__ __m128d __DEFAULT_FN_ATTRS
2722_mm_maskz_div_pd (__mmask8 __U, __m128d __A, __m128d __B) {
2723 return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A,
2724 (__v2df) __B,
2725 (__v2df)
2726 _mm_setzero_pd (),
2727 (__mmask8) __U);
2728}
2729
2730static __inline__ __m256d __DEFAULT_FN_ATTRS
2731_mm256_mask_div_pd (__m256d __W, __mmask8 __U, __m256d __A,
2732 __m256d __B) {
2733 return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A,
2734 (__v4df) __B,
2735 (__v4df) __W,
2736 (__mmask8) __U);
2737}
2738
2739static __inline__ __m256d __DEFAULT_FN_ATTRS
2740_mm256_maskz_div_pd (__mmask8 __U, __m256d __A, __m256d __B) {
2741 return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A,
2742 (__v4df) __B,
2743 (__v4df)
2744 _mm256_setzero_pd (),
2745 (__mmask8) __U);
2746}
2747
2748static __inline__ __m128 __DEFAULT_FN_ATTRS
2749_mm_mask_div_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2750 return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A,
2751 (__v4sf) __B,
2752 (__v4sf) __W,
2753 (__mmask8) __U);
2754}
2755
2756static __inline__ __m128 __DEFAULT_FN_ATTRS
2757_mm_maskz_div_ps (__mmask8 __U, __m128 __A, __m128 __B) {
2758 return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A,
2759 (__v4sf) __B,
2760 (__v4sf)
2761 _mm_setzero_ps (),
2762 (__mmask8) __U);
2763}
2764
2765static __inline__ __m256 __DEFAULT_FN_ATTRS
2766_mm256_mask_div_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2767 return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A,
2768 (__v8sf) __B,
2769 (__v8sf) __W,
2770 (__mmask8) __U);
2771}
2772
2773static __inline__ __m256 __DEFAULT_FN_ATTRS
2774_mm256_maskz_div_ps (__mmask8 __U, __m256 __A, __m256 __B) {
2775 return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A,
2776 (__v8sf) __B,
2777 (__v8sf)
2778 _mm256_setzero_ps (),
2779 (__mmask8) __U);
2780}
2781
2782static __inline__ __m128d __DEFAULT_FN_ATTRS
2783_mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2784 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2785 (__v2df) __W,
2786 (__mmask8) __U);
2787}
2788
2789static __inline__ __m128d __DEFAULT_FN_ATTRS
2790_mm_maskz_expand_pd (__mmask8 __U, __m128d __A) {
2791 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2792 (__v2df)
2793 _mm_setzero_pd (),
2794 (__mmask8) __U);
2795}
2796
2797static __inline__ __m256d __DEFAULT_FN_ATTRS
2798_mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2799 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2800 (__v4df) __W,
2801 (__mmask8) __U);
2802}
2803
2804static __inline__ __m256d __DEFAULT_FN_ATTRS
2805_mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) {
2806 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2807 (__v4df)
2808 _mm256_setzero_pd (),
2809 (__mmask8) __U);
2810}
2811
2812static __inline__ __m128i __DEFAULT_FN_ATTRS
2813_mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2814 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2815 (__v2di) __W,
2816 (__mmask8) __U);
2817}
2818
2819static __inline__ __m128i __DEFAULT_FN_ATTRS
2820_mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) {
2821 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2822 (__v2di)
2823 _mm_setzero_si128 (),
2824 (__mmask8) __U);
2825}
2826
2827static __inline__ __m256i __DEFAULT_FN_ATTRS
2828_mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2829 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2830 (__v4di) __W,
2831 (__mmask8) __U);
2832}
2833
2834static __inline__ __m256i __DEFAULT_FN_ATTRS
2835_mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) {
2836 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2837 (__v4di)
2838 _mm256_setzero_si256 (),
2839 (__mmask8) __U);
2840}
2841
2842static __inline__ __m128d __DEFAULT_FN_ATTRS
2843_mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) {
2844 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2845 (__v2df) __W,
2846 (__mmask8)
2847 __U);
2848}
2849
2850static __inline__ __m128d __DEFAULT_FN_ATTRS
2851_mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2852 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2853 (__v2df)
2854 _mm_setzero_pd (),
2855 (__mmask8)
2856 __U);
2857}
2858
2859static __inline__ __m256d __DEFAULT_FN_ATTRS
2860_mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) {
2861 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2862 (__v4df) __W,
2863 (__mmask8)
2864 __U);
2865}
2866
2867static __inline__ __m256d __DEFAULT_FN_ATTRS
2868_mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2869 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2870 (__v4df)
2871 _mm256_setzero_pd (),
2872 (__mmask8)
2873 __U);
2874}
2875
2876static __inline__ __m128i __DEFAULT_FN_ATTRS
2877_mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) {
2878 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2879 (__v2di) __W,
2880 (__mmask8)
2881 __U);
2882}
2883
2884static __inline__ __m128i __DEFAULT_FN_ATTRS
2885_mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2886 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2887 (__v2di)
2888 _mm_setzero_si128 (),
2889 (__mmask8)
2890 __U);
2891}
2892
2893static __inline__ __m256i __DEFAULT_FN_ATTRS
2894_mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U,
2895 void const *__P) {
2896 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2897 (__v4di) __W,
2898 (__mmask8)
2899 __U);
2900}
2901
2902static __inline__ __m256i __DEFAULT_FN_ATTRS
2903_mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2904 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2905 (__v4di)
2906 _mm256_setzero_si256 (),
2907 (__mmask8)
2908 __U);
2909}
2910
2911static __inline__ __m128 __DEFAULT_FN_ATTRS
2912_mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) {
2913 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
2914 (__v4sf) __W,
2915 (__mmask8) __U);
2916}
2917
2918static __inline__ __m128 __DEFAULT_FN_ATTRS
2919_mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
2920 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
2921 (__v4sf)
2922 _mm_setzero_ps (),
2923 (__mmask8)
2924 __U);
2925}
2926
2927static __inline__ __m256 __DEFAULT_FN_ATTRS
2928_mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) {
2929 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
2930 (__v8sf) __W,
2931 (__mmask8) __U);
2932}
2933
2934static __inline__ __m256 __DEFAULT_FN_ATTRS
2935_mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
2936 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
2937 (__v8sf)
2938 _mm256_setzero_ps (),
2939 (__mmask8)
2940 __U);
2941}
2942
2943static __inline__ __m128i __DEFAULT_FN_ATTRS
2944_mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) {
2945 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
2946 (__v4si) __W,
2947 (__mmask8)
2948 __U);
2949}
2950
2951static __inline__ __m128i __DEFAULT_FN_ATTRS
2952_mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
2953 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
2954 (__v4si)
2955 _mm_setzero_si128 (),
2956 (__mmask8) __U);
2957}
2958
2959static __inline__ __m256i __DEFAULT_FN_ATTRS
2960_mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U,
2961 void const *__P) {
2962 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
2963 (__v8si) __W,
2964 (__mmask8)
2965 __U);
2966}
2967
2968static __inline__ __m256i __DEFAULT_FN_ATTRS
2969_mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
2970 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
2971 (__v8si)
2972 _mm256_setzero_si256 (),
2973 (__mmask8)
2974 __U);
2975}
2976
2977static __inline__ __m128 __DEFAULT_FN_ATTRS
2978_mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) {
2979 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
2980 (__v4sf) __W,
2981 (__mmask8) __U);
2982}
2983
2984static __inline__ __m128 __DEFAULT_FN_ATTRS
2985_mm_maskz_expand_ps (__mmask8 __U, __m128 __A) {
2986 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
2987 (__v4sf)
2988 _mm_setzero_ps (),
2989 (__mmask8) __U);
2990}
2991
2992static __inline__ __m256 __DEFAULT_FN_ATTRS
2993_mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) {
2994 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
2995 (__v8sf) __W,
2996 (__mmask8) __U);
2997}
2998
2999static __inline__ __m256 __DEFAULT_FN_ATTRS
3000_mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) {
3001 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
3002 (__v8sf)
3003 _mm256_setzero_ps (),
3004 (__mmask8) __U);
3005}
3006
3007static __inline__ __m128i __DEFAULT_FN_ATTRS
3008_mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
3009 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
3010 (__v4si) __W,
3011 (__mmask8) __U);
3012}
3013
3014static __inline__ __m128i __DEFAULT_FN_ATTRS
3015_mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) {
3016 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
3017 (__v4si)
3018 _mm_setzero_si128 (),
3019 (__mmask8) __U);
3020}
3021
3022static __inline__ __m256i __DEFAULT_FN_ATTRS
3023_mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
3024 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
3025 (__v8si) __W,
3026 (__mmask8) __U);
3027}
3028
3029static __inline__ __m256i __DEFAULT_FN_ATTRS
3030_mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) {
3031 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
3032 (__v8si)
3033 _mm256_setzero_si256 (),
3034 (__mmask8) __U);
3035}
3036
3037static __inline__ __m128d __DEFAULT_FN_ATTRS
3038_mm_getexp_pd (__m128d __A) {
3039 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
3040 (__v2df)
3041 _mm_setzero_pd (),
3042 (__mmask8) -1);
3043}
3044
3045static __inline__ __m128d __DEFAULT_FN_ATTRS
3046_mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) {
3047 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
3048 (__v2df) __W,
3049 (__mmask8) __U);
3050}
3051
3052static __inline__ __m128d __DEFAULT_FN_ATTRS
3053_mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) {
3054 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
3055 (__v2df)
3056 _mm_setzero_pd (),
3057 (__mmask8) __U);
3058}
3059
3060static __inline__ __m256d __DEFAULT_FN_ATTRS
3061_mm256_getexp_pd (__m256d __A) {
3062 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3063 (__v4df)
3064 _mm256_setzero_pd (),
3065 (__mmask8) -1);
3066}
3067
3068static __inline__ __m256d __DEFAULT_FN_ATTRS
3069_mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) {
3070 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3071 (__v4df) __W,
3072 (__mmask8) __U);
3073}
3074
3075static __inline__ __m256d __DEFAULT_FN_ATTRS
3076_mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) {
3077 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3078 (__v4df)
3079 _mm256_setzero_pd (),
3080 (__mmask8) __U);
3081}
3082
3083static __inline__ __m128 __DEFAULT_FN_ATTRS
3084_mm_getexp_ps (__m128 __A) {
3085 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3086 (__v4sf)
3087 _mm_setzero_ps (),
3088 (__mmask8) -1);
3089}
3090
3091static __inline__ __m128 __DEFAULT_FN_ATTRS
3092_mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) {
3093 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3094 (__v4sf) __W,
3095 (__mmask8) __U);
3096}
3097
3098static __inline__ __m128 __DEFAULT_FN_ATTRS
3099_mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) {
3100 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3101 (__v4sf)
3102 _mm_setzero_ps (),
3103 (__mmask8) __U);
3104}
3105
3106static __inline__ __m256 __DEFAULT_FN_ATTRS
3107_mm256_getexp_ps (__m256 __A) {
3108 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3109 (__v8sf)
3110 _mm256_setzero_ps (),
3111 (__mmask8) -1);
3112}
3113
3114static __inline__ __m256 __DEFAULT_FN_ATTRS
3115_mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) {
3116 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3117 (__v8sf) __W,
3118 (__mmask8) __U);
3119}
3120
3121static __inline__ __m256 __DEFAULT_FN_ATTRS
3122_mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) {
3123 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3124 (__v8sf)
3125 _mm256_setzero_ps (),
3126 (__mmask8) __U);
3127}
3128
3129static __inline__ __m128d __DEFAULT_FN_ATTRS
3130_mm_mask_max_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3131 return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A,
3132 (__v2df) __B,
3133 (__v2df) __W,
3134 (__mmask8) __U);
3135}
3136
3137static __inline__ __m128d __DEFAULT_FN_ATTRS
3138_mm_maskz_max_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3139 return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A,
3140 (__v2df) __B,
3141 (__v2df)
3142 _mm_setzero_pd (),
3143 (__mmask8) __U);
3144}
3145
3146static __inline__ __m256d __DEFAULT_FN_ATTRS
3147_mm256_mask_max_pd (__m256d __W, __mmask8 __U, __m256d __A,
3148 __m256d __B) {
3149 return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A,
3150 (__v4df) __B,
3151 (__v4df) __W,
3152 (__mmask8) __U);
3153}
3154
3155static __inline__ __m256d __DEFAULT_FN_ATTRS
3156_mm256_maskz_max_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3157 return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A,
3158 (__v4df) __B,
3159 (__v4df)
3160 _mm256_setzero_pd (),
3161 (__mmask8) __U);
3162}
3163
3164static __inline__ __m128 __DEFAULT_FN_ATTRS
3165_mm_mask_max_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3166 return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A,
3167 (__v4sf) __B,
3168 (__v4sf) __W,
3169 (__mmask8) __U);
3170}
3171
3172static __inline__ __m128 __DEFAULT_FN_ATTRS
3173_mm_maskz_max_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3174 return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A,
3175 (__v4sf) __B,
3176 (__v4sf)
3177 _mm_setzero_ps (),
3178 (__mmask8) __U);
3179}
3180
3181static __inline__ __m256 __DEFAULT_FN_ATTRS
3182_mm256_mask_max_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3183 return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A,
3184 (__v8sf) __B,
3185 (__v8sf) __W,
3186 (__mmask8) __U);
3187}
3188
3189static __inline__ __m256 __DEFAULT_FN_ATTRS
3190_mm256_maskz_max_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3191 return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A,
3192 (__v8sf) __B,
3193 (__v8sf)
3194 _mm256_setzero_ps (),
3195 (__mmask8) __U);
3196}
3197
3198static __inline__ __m128d __DEFAULT_FN_ATTRS
3199_mm_mask_min_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3200 return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A,
3201 (__v2df) __B,
3202 (__v2df) __W,
3203 (__mmask8) __U);
3204}
3205
3206static __inline__ __m128d __DEFAULT_FN_ATTRS
3207_mm_maskz_min_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3208 return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A,
3209 (__v2df) __B,
3210 (__v2df)
3211 _mm_setzero_pd (),
3212 (__mmask8) __U);
3213}
3214
3215static __inline__ __m256d __DEFAULT_FN_ATTRS
3216_mm256_mask_min_pd (__m256d __W, __mmask8 __U, __m256d __A,
3217 __m256d __B) {
3218 return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A,
3219 (__v4df) __B,
3220 (__v4df) __W,
3221 (__mmask8) __U);
3222}
3223
3224static __inline__ __m256d __DEFAULT_FN_ATTRS
3225_mm256_maskz_min_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3226 return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A,
3227 (__v4df) __B,
3228 (__v4df)
3229 _mm256_setzero_pd (),
3230 (__mmask8) __U);
3231}
3232
3233static __inline__ __m128 __DEFAULT_FN_ATTRS
3234_mm_mask_min_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3235 return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A,
3236 (__v4sf) __B,
3237 (__v4sf) __W,
3238 (__mmask8) __U);
3239}
3240
3241static __inline__ __m128 __DEFAULT_FN_ATTRS
3242_mm_maskz_min_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3243 return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A,
3244 (__v4sf) __B,
3245 (__v4sf)
3246 _mm_setzero_ps (),
3247 (__mmask8) __U);
3248}
3249
3250static __inline__ __m256 __DEFAULT_FN_ATTRS
3251_mm256_mask_min_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3252 return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A,
3253 (__v8sf) __B,
3254 (__v8sf) __W,
3255 (__mmask8) __U);
3256}
3257
3258static __inline__ __m256 __DEFAULT_FN_ATTRS
3259_mm256_maskz_min_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3260 return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A,
3261 (__v8sf) __B,
3262 (__v8sf)
3263 _mm256_setzero_ps (),
3264 (__mmask8) __U);
3265}
3266
3267static __inline__ __m128d __DEFAULT_FN_ATTRS
3268_mm_mask_mul_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3269 return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A,
3270 (__v2df) __B,
3271 (__v2df) __W,
3272 (__mmask8) __U);
3273}
3274
3275static __inline__ __m128d __DEFAULT_FN_ATTRS
3276_mm_maskz_mul_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3277 return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A,
3278 (__v2df) __B,
3279 (__v2df)
3280 _mm_setzero_pd (),
3281 (__mmask8) __U);
3282}
3283
3284static __inline__ __m256d __DEFAULT_FN_ATTRS
3285_mm256_mask_mul_pd (__m256d __W, __mmask8 __U, __m256d __A,
3286 __m256d __B) {
3287 return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A,
3288 (__v4df) __B,
3289 (__v4df) __W,
3290 (__mmask8) __U);
3291}
3292
3293static __inline__ __m256d __DEFAULT_FN_ATTRS
3294_mm256_maskz_mul_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3295 return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A,
3296 (__v4df) __B,
3297 (__v4df)
3298 _mm256_setzero_pd (),
3299 (__mmask8) __U);
3300}
3301
3302static __inline__ __m128 __DEFAULT_FN_ATTRS
3303_mm_mask_mul_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3304 return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A,
3305 (__v4sf) __B,
3306 (__v4sf) __W,
3307 (__mmask8) __U);
3308}
3309
3310static __inline__ __m128 __DEFAULT_FN_ATTRS
3311_mm_maskz_mul_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3312 return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A,
3313 (__v4sf) __B,
3314 (__v4sf)
3315 _mm_setzero_ps (),
3316 (__mmask8) __U);
3317}
3318
3319static __inline__ __m256 __DEFAULT_FN_ATTRS
3320_mm256_mask_mul_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3321 return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A,
3322 (__v8sf) __B,
3323 (__v8sf) __W,
3324 (__mmask8) __U);
3325}
3326
3327static __inline__ __m256 __DEFAULT_FN_ATTRS
3328_mm256_maskz_mul_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3329 return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A,
3330 (__v8sf) __B,
3331 (__v8sf)
3332 _mm256_setzero_ps (),
3333 (__mmask8) __U);
3334}
3335
3336static __inline__ __m128i __DEFAULT_FN_ATTRS
3337_mm_mask_abs_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
3338 return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A,
3339 (__v4si) __W,
3340 (__mmask8) __U);
3341}
3342
3343static __inline__ __m128i __DEFAULT_FN_ATTRS
3344_mm_maskz_abs_epi32 (__mmask8 __U, __m128i __A) {
3345 return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A,
3346 (__v4si)
3347 _mm_setzero_si128 (),
3348 (__mmask8) __U);
3349}
3350
3351static __inline__ __m256i __DEFAULT_FN_ATTRS
3352_mm256_mask_abs_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
3353 return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A,
3354 (__v8si) __W,
3355 (__mmask8) __U);
3356}
3357
3358static __inline__ __m256i __DEFAULT_FN_ATTRS
3359_mm256_maskz_abs_epi32 (__mmask8 __U, __m256i __A) {
3360 return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A,
3361 (__v8si)
3362 _mm256_setzero_si256 (),
3363 (__mmask8) __U);
3364}
3365
3366static __inline__ __m128i __DEFAULT_FN_ATTRS
3367_mm_abs_epi64 (__m128i __A) {
3368 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3369 (__v2di)
3370 _mm_setzero_si128 (),
3371 (__mmask8) -1);
3372}
3373
3374static __inline__ __m128i __DEFAULT_FN_ATTRS
3375_mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
3376 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3377 (__v2di) __W,
3378 (__mmask8) __U);
3379}
3380
3381static __inline__ __m128i __DEFAULT_FN_ATTRS
3382_mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) {
3383 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3384 (__v2di)
3385 _mm_setzero_si128 (),
3386 (__mmask8) __U);
3387}
3388
3389static __inline__ __m256i __DEFAULT_FN_ATTRS
3390_mm256_abs_epi64 (__m256i __A) {
3391 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3392 (__v4di)
3393 _mm256_setzero_si256 (),
3394 (__mmask8) -1);
3395}
3396
3397static __inline__ __m256i __DEFAULT_FN_ATTRS
3398_mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
3399 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3400 (__v4di) __W,
3401 (__mmask8) __U);
3402}
3403
3404static __inline__ __m256i __DEFAULT_FN_ATTRS
3405_mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) {
3406 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3407 (__v4di)
3408 _mm256_setzero_si256 (),
3409 (__mmask8) __U);
3410}
3411
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003412static __inline__ __m128i __DEFAULT_FN_ATTRS
3413_mm_maskz_max_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
3414 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
3415 (__v4si) __B,
3416 (__v4si)
3417 _mm_setzero_si128 (),
3418 __M);
3419}
3420
3421static __inline__ __m128i __DEFAULT_FN_ATTRS
3422_mm_mask_max_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
3423 __m128i __B) {
3424 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
3425 (__v4si) __B,
3426 (__v4si) __W, __M);
3427}
3428
3429static __inline__ __m256i __DEFAULT_FN_ATTRS
3430_mm256_maskz_max_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
3431 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
3432 (__v8si) __B,
3433 (__v8si)
3434 _mm256_setzero_si256 (),
3435 __M);
3436}
3437
3438static __inline__ __m256i __DEFAULT_FN_ATTRS
3439_mm256_mask_max_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
3440 __m256i __B) {
3441 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
3442 (__v8si) __B,
3443 (__v8si) __W, __M);
3444}
3445
3446static __inline__ __m128i __DEFAULT_FN_ATTRS
3447_mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3448 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3449 (__v2di) __B,
3450 (__v2di)
3451 _mm_setzero_si128 (),
3452 __M);
3453}
3454
3455static __inline__ __m128i __DEFAULT_FN_ATTRS
3456_mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3457 __m128i __B) {
3458 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3459 (__v2di) __B,
3460 (__v2di) __W, __M);
3461}
3462
3463static __inline__ __m128i __DEFAULT_FN_ATTRS
3464_mm_max_epi64 (__m128i __A, __m128i __B) {
3465 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3466 (__v2di) __B,
3467 (__v2di)
3468 _mm_setzero_si128 (),
3469 (__mmask8) -1);
3470}
3471
3472static __inline__ __m256i __DEFAULT_FN_ATTRS
3473_mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3474 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3475 (__v4di) __B,
3476 (__v4di)
3477 _mm256_setzero_si256 (),
3478 __M);
3479}
3480
3481static __inline__ __m256i __DEFAULT_FN_ATTRS
3482_mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3483 __m256i __B) {
3484 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3485 (__v4di) __B,
3486 (__v4di) __W, __M);
3487}
3488
3489static __inline__ __m256i __DEFAULT_FN_ATTRS
3490_mm256_max_epi64 (__m256i __A, __m256i __B) {
3491 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3492 (__v4di) __B,
3493 (__v4di)
3494 _mm256_setzero_si256 (),
3495 (__mmask8) -1);
3496}
3497
3498static __inline__ __m128i __DEFAULT_FN_ATTRS
3499_mm_maskz_max_epu32 (__mmask8 __M, __m128i __A, __m128i __B) {
3500 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
3501 (__v4si) __B,
3502 (__v4si)
3503 _mm_setzero_si128 (),
3504 __M);
3505}
3506
3507static __inline__ __m128i __DEFAULT_FN_ATTRS
3508_mm_mask_max_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
3509 __m128i __B) {
3510 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
3511 (__v4si) __B,
3512 (__v4si) __W, __M);
3513}
3514
3515static __inline__ __m256i __DEFAULT_FN_ATTRS
3516_mm256_maskz_max_epu32 (__mmask8 __M, __m256i __A, __m256i __B) {
3517 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
3518 (__v8si) __B,
3519 (__v8si)
3520 _mm256_setzero_si256 (),
3521 __M);
3522}
3523
3524static __inline__ __m256i __DEFAULT_FN_ATTRS
3525_mm256_mask_max_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
3526 __m256i __B) {
3527 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
3528 (__v8si) __B,
3529 (__v8si) __W, __M);
3530}
3531
3532static __inline__ __m128i __DEFAULT_FN_ATTRS
3533_mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3534 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3535 (__v2di) __B,
3536 (__v2di)
3537 _mm_setzero_si128 (),
3538 __M);
3539}
3540
3541static __inline__ __m128i __DEFAULT_FN_ATTRS
3542_mm_max_epu64 (__m128i __A, __m128i __B) {
3543 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3544 (__v2di) __B,
3545 (__v2di)
3546 _mm_setzero_si128 (),
3547 (__mmask8) -1);
3548}
3549
3550static __inline__ __m128i __DEFAULT_FN_ATTRS
3551_mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3552 __m128i __B) {
3553 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3554 (__v2di) __B,
3555 (__v2di) __W, __M);
3556}
3557
3558static __inline__ __m256i __DEFAULT_FN_ATTRS
3559_mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3560 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3561 (__v4di) __B,
3562 (__v4di)
3563 _mm256_setzero_si256 (),
3564 __M);
3565}
3566
3567static __inline__ __m256i __DEFAULT_FN_ATTRS
3568_mm256_max_epu64 (__m256i __A, __m256i __B) {
3569 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3570 (__v4di) __B,
3571 (__v4di)
3572 _mm256_setzero_si256 (),
3573 (__mmask8) -1);
3574}
3575
3576static __inline__ __m256i __DEFAULT_FN_ATTRS
3577_mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3578 __m256i __B) {
3579 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3580 (__v4di) __B,
3581 (__v4di) __W, __M);
3582}
3583
3584static __inline__ __m128i __DEFAULT_FN_ATTRS
3585_mm_maskz_min_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
3586 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
3587 (__v4si) __B,
3588 (__v4si)
3589 _mm_setzero_si128 (),
3590 __M);
3591}
3592
3593static __inline__ __m128i __DEFAULT_FN_ATTRS
3594_mm_mask_min_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
3595 __m128i __B) {
3596 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
3597 (__v4si) __B,
3598 (__v4si) __W, __M);
3599}
3600
3601static __inline__ __m256i __DEFAULT_FN_ATTRS
3602_mm256_maskz_min_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
3603 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
3604 (__v8si) __B,
3605 (__v8si)
3606 _mm256_setzero_si256 (),
3607 __M);
3608}
3609
3610static __inline__ __m256i __DEFAULT_FN_ATTRS
3611_mm256_mask_min_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
3612 __m256i __B) {
3613 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
3614 (__v8si) __B,
3615 (__v8si) __W, __M);
3616}
3617
3618static __inline__ __m128i __DEFAULT_FN_ATTRS
3619_mm_min_epi64 (__m128i __A, __m128i __B) {
3620 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3621 (__v2di) __B,
3622 (__v2di)
3623 _mm_setzero_si128 (),
3624 (__mmask8) -1);
3625}
3626
3627static __inline__ __m128i __DEFAULT_FN_ATTRS
3628_mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3629 __m128i __B) {
3630 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3631 (__v2di) __B,
3632 (__v2di) __W, __M);
3633}
3634
3635static __inline__ __m128i __DEFAULT_FN_ATTRS
3636_mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3637 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3638 (__v2di) __B,
3639 (__v2di)
3640 _mm_setzero_si128 (),
3641 __M);
3642}
3643
3644static __inline__ __m256i __DEFAULT_FN_ATTRS
3645_mm256_min_epi64 (__m256i __A, __m256i __B) {
3646 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3647 (__v4di) __B,
3648 (__v4di)
3649 _mm256_setzero_si256 (),
3650 (__mmask8) -1);
3651}
3652
3653static __inline__ __m256i __DEFAULT_FN_ATTRS
3654_mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3655 __m256i __B) {
3656 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3657 (__v4di) __B,
3658 (__v4di) __W, __M);
3659}
3660
3661static __inline__ __m256i __DEFAULT_FN_ATTRS
3662_mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3663 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3664 (__v4di) __B,
3665 (__v4di)
3666 _mm256_setzero_si256 (),
3667 __M);
3668}
3669
3670static __inline__ __m128i __DEFAULT_FN_ATTRS
3671_mm_maskz_min_epu32 (__mmask8 __M, __m128i __A, __m128i __B) {
3672 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
3673 (__v4si) __B,
3674 (__v4si)
3675 _mm_setzero_si128 (),
3676 __M);
3677}
3678
3679static __inline__ __m128i __DEFAULT_FN_ATTRS
3680_mm_mask_min_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
3681 __m128i __B) {
3682 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
3683 (__v4si) __B,
3684 (__v4si) __W, __M);
3685}
3686
3687static __inline__ __m256i __DEFAULT_FN_ATTRS
3688_mm256_maskz_min_epu32 (__mmask8 __M, __m256i __A, __m256i __B) {
3689 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
3690 (__v8si) __B,
3691 (__v8si)
3692 _mm256_setzero_si256 (),
3693 __M);
3694}
3695
3696static __inline__ __m256i __DEFAULT_FN_ATTRS
3697_mm256_mask_min_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
3698 __m256i __B) {
3699 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
3700 (__v8si) __B,
3701 (__v8si) __W, __M);
3702}
3703
3704static __inline__ __m128i __DEFAULT_FN_ATTRS
3705_mm_min_epu64 (__m128i __A, __m128i __B) {
3706 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3707 (__v2di) __B,
3708 (__v2di)
3709 _mm_setzero_si128 (),
3710 (__mmask8) -1);
3711}
3712
3713static __inline__ __m128i __DEFAULT_FN_ATTRS
3714_mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3715 __m128i __B) {
3716 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3717 (__v2di) __B,
3718 (__v2di) __W, __M);
3719}
3720
3721static __inline__ __m128i __DEFAULT_FN_ATTRS
3722_mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3723 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3724 (__v2di) __B,
3725 (__v2di)
3726 _mm_setzero_si128 (),
3727 __M);
3728}
3729
3730static __inline__ __m256i __DEFAULT_FN_ATTRS
3731_mm256_min_epu64 (__m256i __A, __m256i __B) {
3732 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3733 (__v4di) __B,
3734 (__v4di)
3735 _mm256_setzero_si256 (),
3736 (__mmask8) -1);
3737}
3738
3739static __inline__ __m256i __DEFAULT_FN_ATTRS
3740_mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3741 __m256i __B) {
3742 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3743 (__v4di) __B,
3744 (__v4di) __W, __M);
3745}
3746
3747static __inline__ __m256i __DEFAULT_FN_ATTRS
3748_mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3749 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3750 (__v4di) __B,
3751 (__v4di)
3752 _mm256_setzero_si256 (),
3753 __M);
3754}
3755
Craig Topperd2661882016-05-17 04:41:48 +00003756#define _mm_roundscale_pd(A, imm) __extension__ ({ \
3757 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3758 (int)(imm), \
3759 (__v2df)_mm_setzero_pd(), \
3760 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003761
3762
Craig Topperd2661882016-05-17 04:41:48 +00003763#define _mm_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3764 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3765 (int)(imm), \
3766 (__v2df)(__m128d)(W), \
3767 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003768
3769
Craig Topperd2661882016-05-17 04:41:48 +00003770#define _mm_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3771 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3772 (int)(imm), \
3773 (__v2df)_mm_setzero_pd(), \
3774 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003775
3776
Craig Topperd2661882016-05-17 04:41:48 +00003777#define _mm256_roundscale_pd(A, imm) __extension__ ({ \
3778 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3779 (int)(imm), \
3780 (__v4df)_mm256_setzero_pd(), \
3781 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003782
3783
Craig Topperd2661882016-05-17 04:41:48 +00003784#define _mm256_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3785 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3786 (int)(imm), \
3787 (__v4df)(__m256d)(W), \
3788 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003789
3790
Craig Topperd2661882016-05-17 04:41:48 +00003791#define _mm256_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3792 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3793 (int)(imm), \
3794 (__v4df)_mm256_setzero_pd(), \
3795 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003796
Craig Topperd2661882016-05-17 04:41:48 +00003797#define _mm_roundscale_ps(A, imm) __extension__ ({ \
3798 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3799 (__v4sf)_mm_setzero_ps(), \
3800 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003801
3802
Craig Topperd2661882016-05-17 04:41:48 +00003803#define _mm_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3804 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3805 (__v4sf)(__m128)(W), \
3806 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003807
3808
Craig Topperd2661882016-05-17 04:41:48 +00003809#define _mm_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3810 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3811 (__v4sf)_mm_setzero_ps(), \
3812 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003813
Craig Topperd2661882016-05-17 04:41:48 +00003814#define _mm256_roundscale_ps(A, imm) __extension__ ({ \
3815 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3816 (__v8sf)_mm256_setzero_ps(), \
3817 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003818
Craig Topperd2661882016-05-17 04:41:48 +00003819#define _mm256_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3820 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3821 (__v8sf)(__m256)(W), \
3822 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003823
3824
Craig Topperd2661882016-05-17 04:41:48 +00003825#define _mm256_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3826 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3827 (__v8sf)_mm256_setzero_ps(), \
3828 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003829
3830static __inline__ __m128d __DEFAULT_FN_ATTRS
3831_mm_scalef_pd (__m128d __A, __m128d __B) {
3832 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3833 (__v2df) __B,
3834 (__v2df)
3835 _mm_setzero_pd (),
3836 (__mmask8) -1);
3837}
3838
3839static __inline__ __m128d __DEFAULT_FN_ATTRS
3840_mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A,
3841 __m128d __B) {
3842 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3843 (__v2df) __B,
3844 (__v2df) __W,
3845 (__mmask8) __U);
3846}
3847
3848static __inline__ __m128d __DEFAULT_FN_ATTRS
3849_mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3850 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3851 (__v2df) __B,
3852 (__v2df)
3853 _mm_setzero_pd (),
3854 (__mmask8) __U);
3855}
3856
3857static __inline__ __m256d __DEFAULT_FN_ATTRS
3858_mm256_scalef_pd (__m256d __A, __m256d __B) {
3859 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3860 (__v4df) __B,
3861 (__v4df)
3862 _mm256_setzero_pd (),
3863 (__mmask8) -1);
3864}
3865
3866static __inline__ __m256d __DEFAULT_FN_ATTRS
3867_mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A,
3868 __m256d __B) {
3869 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3870 (__v4df) __B,
3871 (__v4df) __W,
3872 (__mmask8) __U);
3873}
3874
3875static __inline__ __m256d __DEFAULT_FN_ATTRS
3876_mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3877 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3878 (__v4df) __B,
3879 (__v4df)
3880 _mm256_setzero_pd (),
3881 (__mmask8) __U);
3882}
3883
3884static __inline__ __m128 __DEFAULT_FN_ATTRS
3885_mm_scalef_ps (__m128 __A, __m128 __B) {
3886 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3887 (__v4sf) __B,
3888 (__v4sf)
3889 _mm_setzero_ps (),
3890 (__mmask8) -1);
3891}
3892
3893static __inline__ __m128 __DEFAULT_FN_ATTRS
3894_mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3895 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3896 (__v4sf) __B,
3897 (__v4sf) __W,
3898 (__mmask8) __U);
3899}
3900
3901static __inline__ __m128 __DEFAULT_FN_ATTRS
3902_mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3903 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3904 (__v4sf) __B,
3905 (__v4sf)
3906 _mm_setzero_ps (),
3907 (__mmask8) __U);
3908}
3909
3910static __inline__ __m256 __DEFAULT_FN_ATTRS
3911_mm256_scalef_ps (__m256 __A, __m256 __B) {
3912 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3913 (__v8sf) __B,
3914 (__v8sf)
3915 _mm256_setzero_ps (),
3916 (__mmask8) -1);
3917}
3918
3919static __inline__ __m256 __DEFAULT_FN_ATTRS
3920_mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A,
3921 __m256 __B) {
3922 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3923 (__v8sf) __B,
3924 (__v8sf) __W,
3925 (__mmask8) __U);
3926}
3927
3928static __inline__ __m256 __DEFAULT_FN_ATTRS
3929_mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3930 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3931 (__v8sf) __B,
3932 (__v8sf)
3933 _mm256_setzero_ps (),
3934 (__mmask8) __U);
3935}
3936
Craig Topperd2661882016-05-17 04:41:48 +00003937#define _mm_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
3938 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)-1, \
3939 (__v2di)(__m128i)(index), \
3940 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003941
Craig Topperd2661882016-05-17 04:41:48 +00003942#define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3943 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)(mask), \
3944 (__v2di)(__m128i)(index), \
3945 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003946
Craig Topperd2661882016-05-17 04:41:48 +00003947#define _mm_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3948 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)-1, \
3949 (__v2di)(__m128i)(index), \
3950 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003951
Craig Topperd2661882016-05-17 04:41:48 +00003952#define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3953 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)(mask), \
3954 (__v2di)(__m128i)(index), \
3955 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003956
Craig Topperd2661882016-05-17 04:41:48 +00003957#define _mm256_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
3958 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)-1, \
3959 (__v4di)(__m256i)(index), \
3960 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003961
Craig Topperd2661882016-05-17 04:41:48 +00003962#define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
3963 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)(mask), \
3964 (__v4di)(__m256i)(index), \
3965 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003966
Craig Topperd2661882016-05-17 04:41:48 +00003967#define _mm256_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
3968 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)-1, \
3969 (__v4di)(__m256i)(index), \
3970 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003971
Craig Topperd2661882016-05-17 04:41:48 +00003972#define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
3973 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)(mask), \
3974 (__v4di)(__m256i)(index), \
3975 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003976
Craig Topperd2661882016-05-17 04:41:48 +00003977#define _mm_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
3978 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)-1, \
3979 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
3980 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003981
Craig Topperd2661882016-05-17 04:41:48 +00003982#define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
3983 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)(mask), \
3984 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
3985 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003986
Craig Topperd2661882016-05-17 04:41:48 +00003987#define _mm_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
3988 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)-1, \
3989 (__v2di)(__m128i)(index), \
3990 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003991
Craig Topperd2661882016-05-17 04:41:48 +00003992#define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
3993 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)(mask), \
3994 (__v2di)(__m128i)(index), \
3995 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003996
Craig Topperd2661882016-05-17 04:41:48 +00003997#define _mm256_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
3998 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)-1, \
3999 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
4000 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004001
Craig Topperd2661882016-05-17 04:41:48 +00004002#define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4003 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)(mask), \
4004 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
4005 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004006
Craig Topperd2661882016-05-17 04:41:48 +00004007#define _mm256_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4008 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)-1, \
4009 (__v4di)(__m256i)(index), \
4010 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004011
Craig Topperd2661882016-05-17 04:41:48 +00004012#define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4013 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)(mask), \
4014 (__v4di)(__m256i)(index), \
4015 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004016
Craig Topperd2661882016-05-17 04:41:48 +00004017#define _mm_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
4018 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)-1, \
4019 (__v4si)(__m128i)(index), \
4020 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004021
Craig Topperd2661882016-05-17 04:41:48 +00004022#define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
4023 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)(mask), \
4024 (__v4si)(__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_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
4028 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)-1, \
4029 (__v4si)(__m128i)(index), \
4030 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004031
Craig Topperd2661882016-05-17 04:41:48 +00004032#define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
4033 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)(mask), \
4034 (__v4si)(__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 _mm256_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
4038 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)-1, \
4039 (__v4si)(__m128i)(index), \
4040 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004041
Craig Topperd2661882016-05-17 04:41:48 +00004042#define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
4043 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)(mask), \
4044 (__v4si)(__m128i)(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_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
4048 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)-1, \
4049 (__v4si)(__m128i)(index), \
4050 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004051
Craig Topperd2661882016-05-17 04:41:48 +00004052#define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
4053 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)(mask), \
4054 (__v4si)(__m128i)(index), \
4055 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004056
Craig Topperd2661882016-05-17 04:41:48 +00004057#define _mm_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
4058 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)-1, \
4059 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
4060 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004061
Craig Topperd2661882016-05-17 04:41:48 +00004062#define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4063 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)(mask), \
4064 (__v4si)(__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_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4068 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)-1, \
4069 (__v4si)(__m128i)(index), \
4070 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004071
Craig Topperd2661882016-05-17 04:41:48 +00004072#define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4073 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)(mask), \
4074 (__v4si)(__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 _mm256_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
4078 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)-1, \
4079 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
4080 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004081
Craig Topperd2661882016-05-17 04:41:48 +00004082#define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4083 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)(mask), \
4084 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
4085 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004086
Craig Topperd2661882016-05-17 04:41:48 +00004087#define _mm256_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4088 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)-1, \
4089 (__v8si)(__m256i)(index), \
4090 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004091
Craig Topperd2661882016-05-17 04:41:48 +00004092#define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4093 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)(mask), \
4094 (__v8si)(__m256i)(index), \
4095 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004096
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004097static __inline__ __m128d __DEFAULT_FN_ATTRS
4098_mm_mask_sqrt_pd (__m128d __W, __mmask8 __U, __m128d __A) {
4099 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
4100 (__v2df) __W,
4101 (__mmask8) __U);
4102}
4103
4104static __inline__ __m128d __DEFAULT_FN_ATTRS
4105_mm_maskz_sqrt_pd (__mmask8 __U, __m128d __A) {
4106 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
4107 (__v2df)
4108 _mm_setzero_pd (),
4109 (__mmask8) __U);
4110}
4111
4112static __inline__ __m256d __DEFAULT_FN_ATTRS
4113_mm256_mask_sqrt_pd (__m256d __W, __mmask8 __U, __m256d __A) {
4114 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
4115 (__v4df) __W,
4116 (__mmask8) __U);
4117}
4118
4119static __inline__ __m256d __DEFAULT_FN_ATTRS
4120_mm256_maskz_sqrt_pd (__mmask8 __U, __m256d __A) {
4121 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
4122 (__v4df)
4123 _mm256_setzero_pd (),
4124 (__mmask8) __U);
4125}
4126
4127static __inline__ __m128 __DEFAULT_FN_ATTRS
4128_mm_mask_sqrt_ps (__m128 __W, __mmask8 __U, __m128 __A) {
4129 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
4130 (__v4sf) __W,
4131 (__mmask8) __U);
4132}
4133
4134static __inline__ __m128 __DEFAULT_FN_ATTRS
4135_mm_maskz_sqrt_ps (__mmask8 __U, __m128 __A) {
4136 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
4137 (__v4sf)
4138 _mm_setzero_ps (),
4139 (__mmask8) __U);
4140}
4141
4142static __inline__ __m256 __DEFAULT_FN_ATTRS
4143_mm256_mask_sqrt_ps (__m256 __W, __mmask8 __U, __m256 __A) {
4144 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4145 (__v8sf) __W,
4146 (__mmask8) __U);
4147}
4148
4149static __inline__ __m256 __DEFAULT_FN_ATTRS
4150_mm256_maskz_sqrt_ps (__mmask8 __U, __m256 __A) {
4151 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4152 (__v8sf)
4153 _mm256_setzero_ps (),
4154 (__mmask8) __U);
4155}
4156
4157static __inline__ __m128d __DEFAULT_FN_ATTRS
4158_mm_mask_sub_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4159 return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A,
4160 (__v2df) __B,
4161 (__v2df) __W,
4162 (__mmask8) __U);
4163}
4164
4165static __inline__ __m128d __DEFAULT_FN_ATTRS
4166_mm_maskz_sub_pd (__mmask8 __U, __m128d __A, __m128d __B) {
4167 return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A,
4168 (__v2df) __B,
4169 (__v2df)
4170 _mm_setzero_pd (),
4171 (__mmask8) __U);
4172}
4173
4174static __inline__ __m256d __DEFAULT_FN_ATTRS
4175_mm256_mask_sub_pd (__m256d __W, __mmask8 __U, __m256d __A,
4176 __m256d __B) {
4177 return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A,
4178 (__v4df) __B,
4179 (__v4df) __W,
4180 (__mmask8) __U);
4181}
4182
4183static __inline__ __m256d __DEFAULT_FN_ATTRS
4184_mm256_maskz_sub_pd (__mmask8 __U, __m256d __A, __m256d __B) {
4185 return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A,
4186 (__v4df) __B,
4187 (__v4df)
4188 _mm256_setzero_pd (),
4189 (__mmask8) __U);
4190}
4191
4192static __inline__ __m128 __DEFAULT_FN_ATTRS
4193_mm_mask_sub_ps (__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) {
4194 return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A,
4195 (__v4sf) __B,
4196 (__v4sf) __W,
4197 (__mmask8) __U);
4198}
4199
4200static __inline__ __m128 __DEFAULT_FN_ATTRS
4201_mm_maskz_sub_ps (__mmask16 __U, __m128 __A, __m128 __B) {
4202 return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A,
4203 (__v4sf) __B,
4204 (__v4sf)
4205 _mm_setzero_ps (),
4206 (__mmask8) __U);
4207}
4208
4209static __inline__ __m256 __DEFAULT_FN_ATTRS
4210_mm256_mask_sub_ps (__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) {
4211 return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A,
4212 (__v8sf) __B,
4213 (__v8sf) __W,
4214 (__mmask8) __U);
4215}
4216
4217static __inline__ __m256 __DEFAULT_FN_ATTRS
4218_mm256_maskz_sub_ps (__mmask16 __U, __m256 __A, __m256 __B) {
4219 return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A,
4220 (__v8sf) __B,
4221 (__v8sf)
4222 _mm256_setzero_ps (),
4223 (__mmask8) __U);
4224}
4225
4226static __inline__ __m128i __DEFAULT_FN_ATTRS
4227_mm_mask2_permutex2var_epi32 (__m128i __A, __m128i __I, __mmask8 __U,
4228 __m128i __B) {
4229 return (__m128i) __builtin_ia32_vpermi2vard128_mask ((__v4si) __A,
4230 (__v4si) __I
4231 /* idx */ ,
4232 (__v4si) __B,
4233 (__mmask8) __U);
4234}
4235
4236static __inline__ __m256i __DEFAULT_FN_ATTRS
4237_mm256_mask2_permutex2var_epi32 (__m256i __A, __m256i __I,
4238 __mmask8 __U, __m256i __B) {
4239 return (__m256i) __builtin_ia32_vpermi2vard256_mask ((__v8si) __A,
4240 (__v8si) __I
4241 /* idx */ ,
4242 (__v8si) __B,
4243 (__mmask8) __U);
4244}
4245
4246static __inline__ __m128d __DEFAULT_FN_ATTRS
4247_mm_mask2_permutex2var_pd (__m128d __A, __m128i __I, __mmask8 __U,
4248 __m128d __B) {
4249 return (__m128d) __builtin_ia32_vpermi2varpd128_mask ((__v2df) __A,
4250 (__v2di) __I
4251 /* idx */ ,
4252 (__v2df) __B,
4253 (__mmask8)
4254 __U);
4255}
4256
4257static __inline__ __m256d __DEFAULT_FN_ATTRS
4258_mm256_mask2_permutex2var_pd (__m256d __A, __m256i __I, __mmask8 __U,
4259 __m256d __B) {
4260 return (__m256d) __builtin_ia32_vpermi2varpd256_mask ((__v4df) __A,
4261 (__v4di) __I
4262 /* idx */ ,
4263 (__v4df) __B,
4264 (__mmask8)
4265 __U);
4266}
4267
4268static __inline__ __m128 __DEFAULT_FN_ATTRS
4269_mm_mask2_permutex2var_ps (__m128 __A, __m128i __I, __mmask8 __U,
4270 __m128 __B) {
4271 return (__m128) __builtin_ia32_vpermi2varps128_mask ((__v4sf) __A,
4272 (__v4si) __I
4273 /* idx */ ,
4274 (__v4sf) __B,
4275 (__mmask8) __U);
4276}
4277
4278static __inline__ __m256 __DEFAULT_FN_ATTRS
4279_mm256_mask2_permutex2var_ps (__m256 __A, __m256i __I, __mmask8 __U,
4280 __m256 __B) {
4281 return (__m256) __builtin_ia32_vpermi2varps256_mask ((__v8sf) __A,
4282 (__v8si) __I
4283 /* idx */ ,
4284 (__v8sf) __B,
4285 (__mmask8) __U);
4286}
4287
4288static __inline__ __m128i __DEFAULT_FN_ATTRS
4289_mm_mask2_permutex2var_epi64 (__m128i __A, __m128i __I, __mmask8 __U,
4290 __m128i __B) {
4291 return (__m128i) __builtin_ia32_vpermi2varq128_mask ((__v2di) __A,
4292 (__v2di) __I
4293 /* idx */ ,
4294 (__v2di) __B,
4295 (__mmask8) __U);
4296}
4297
4298static __inline__ __m256i __DEFAULT_FN_ATTRS
4299_mm256_mask2_permutex2var_epi64 (__m256i __A, __m256i __I,
4300 __mmask8 __U, __m256i __B) {
4301 return (__m256i) __builtin_ia32_vpermi2varq256_mask ((__v4di) __A,
4302 (__v4di) __I
4303 /* idx */ ,
4304 (__v4di) __B,
4305 (__mmask8) __U);
4306}
4307
4308static __inline__ __m128i __DEFAULT_FN_ATTRS
4309_mm_permutex2var_epi32 (__m128i __A, __m128i __I, __m128i __B) {
4310 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4311 /* idx */ ,
4312 (__v4si) __A,
4313 (__v4si) __B,
4314 (__mmask8) -1);
4315}
4316
4317static __inline__ __m128i __DEFAULT_FN_ATTRS
4318_mm_mask_permutex2var_epi32 (__m128i __A, __mmask8 __U, __m128i __I,
4319 __m128i __B) {
4320 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4321 /* idx */ ,
4322 (__v4si) __A,
4323 (__v4si) __B,
4324 (__mmask8) __U);
4325}
4326
4327static __inline__ __m128i __DEFAULT_FN_ATTRS
4328_mm_maskz_permutex2var_epi32 (__mmask8 __U, __m128i __A, __m128i __I,
4329 __m128i __B) {
4330 return (__m128i) __builtin_ia32_vpermt2vard128_maskz ((__v4si) __I
4331 /* idx */ ,
4332 (__v4si) __A,
4333 (__v4si) __B,
4334 (__mmask8)
4335 __U);
4336}
4337
4338static __inline__ __m256i __DEFAULT_FN_ATTRS
4339_mm256_permutex2var_epi32 (__m256i __A, __m256i __I, __m256i __B) {
4340 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4341 /* idx */ ,
4342 (__v8si) __A,
4343 (__v8si) __B,
4344 (__mmask8) -1);
4345}
4346
4347static __inline__ __m256i __DEFAULT_FN_ATTRS
4348_mm256_mask_permutex2var_epi32 (__m256i __A, __mmask8 __U, __m256i __I,
4349 __m256i __B) {
4350 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4351 /* idx */ ,
4352 (__v8si) __A,
4353 (__v8si) __B,
4354 (__mmask8) __U);
4355}
4356
4357static __inline__ __m256i __DEFAULT_FN_ATTRS
4358_mm256_maskz_permutex2var_epi32 (__mmask8 __U, __m256i __A,
4359 __m256i __I, __m256i __B) {
4360 return (__m256i) __builtin_ia32_vpermt2vard256_maskz ((__v8si) __I
4361 /* idx */ ,
4362 (__v8si) __A,
4363 (__v8si) __B,
4364 (__mmask8)
4365 __U);
4366}
4367
4368static __inline__ __m128d __DEFAULT_FN_ATTRS
4369_mm_permutex2var_pd (__m128d __A, __m128i __I, __m128d __B) {
4370 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4371 /* idx */ ,
4372 (__v2df) __A,
4373 (__v2df) __B,
4374 (__mmask8) -
4375 1);
4376}
4377
4378static __inline__ __m128d __DEFAULT_FN_ATTRS
4379_mm_mask_permutex2var_pd (__m128d __A, __mmask8 __U, __m128i __I,
4380 __m128d __B) {
4381 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4382 /* idx */ ,
4383 (__v2df) __A,
4384 (__v2df) __B,
4385 (__mmask8)
4386 __U);
4387}
4388
4389static __inline__ __m128d __DEFAULT_FN_ATTRS
4390_mm_maskz_permutex2var_pd (__mmask8 __U, __m128d __A, __m128i __I,
4391 __m128d __B) {
4392 return (__m128d) __builtin_ia32_vpermt2varpd128_maskz ((__v2di) __I
4393 /* idx */ ,
4394 (__v2df) __A,
4395 (__v2df) __B,
4396 (__mmask8)
4397 __U);
4398}
4399
4400static __inline__ __m256d __DEFAULT_FN_ATTRS
4401_mm256_permutex2var_pd (__m256d __A, __m256i __I, __m256d __B) {
4402 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4403 /* idx */ ,
4404 (__v4df) __A,
4405 (__v4df) __B,
4406 (__mmask8) -
4407 1);
4408}
4409
4410static __inline__ __m256d __DEFAULT_FN_ATTRS
4411_mm256_mask_permutex2var_pd (__m256d __A, __mmask8 __U, __m256i __I,
4412 __m256d __B) {
4413 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4414 /* idx */ ,
4415 (__v4df) __A,
4416 (__v4df) __B,
4417 (__mmask8)
4418 __U);
4419}
4420
4421static __inline__ __m256d __DEFAULT_FN_ATTRS
4422_mm256_maskz_permutex2var_pd (__mmask8 __U, __m256d __A, __m256i __I,
4423 __m256d __B) {
4424 return (__m256d) __builtin_ia32_vpermt2varpd256_maskz ((__v4di) __I
4425 /* idx */ ,
4426 (__v4df) __A,
4427 (__v4df) __B,
4428 (__mmask8)
4429 __U);
4430}
4431
4432static __inline__ __m128 __DEFAULT_FN_ATTRS
4433_mm_permutex2var_ps (__m128 __A, __m128i __I, __m128 __B) {
4434 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4435 /* idx */ ,
4436 (__v4sf) __A,
4437 (__v4sf) __B,
4438 (__mmask8) -1);
4439}
4440
4441static __inline__ __m128 __DEFAULT_FN_ATTRS
4442_mm_mask_permutex2var_ps (__m128 __A, __mmask8 __U, __m128i __I,
4443 __m128 __B) {
4444 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4445 /* idx */ ,
4446 (__v4sf) __A,
4447 (__v4sf) __B,
4448 (__mmask8) __U);
4449}
4450
4451static __inline__ __m128 __DEFAULT_FN_ATTRS
4452_mm_maskz_permutex2var_ps (__mmask8 __U, __m128 __A, __m128i __I,
4453 __m128 __B) {
4454 return (__m128) __builtin_ia32_vpermt2varps128_maskz ((__v4si) __I
4455 /* idx */ ,
4456 (__v4sf) __A,
4457 (__v4sf) __B,
4458 (__mmask8)
4459 __U);
4460}
4461
4462static __inline__ __m256 __DEFAULT_FN_ATTRS
4463_mm256_permutex2var_ps (__m256 __A, __m256i __I, __m256 __B) {
4464 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4465 /* idx */ ,
4466 (__v8sf) __A,
4467 (__v8sf) __B,
4468 (__mmask8) -1);
4469}
4470
4471static __inline__ __m256 __DEFAULT_FN_ATTRS
4472_mm256_mask_permutex2var_ps (__m256 __A, __mmask8 __U, __m256i __I,
4473 __m256 __B) {
4474 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4475 /* idx */ ,
4476 (__v8sf) __A,
4477 (__v8sf) __B,
4478 (__mmask8) __U);
4479}
4480
4481static __inline__ __m256 __DEFAULT_FN_ATTRS
4482_mm256_maskz_permutex2var_ps (__mmask8 __U, __m256 __A, __m256i __I,
4483 __m256 __B) {
4484 return (__m256) __builtin_ia32_vpermt2varps256_maskz ((__v8si) __I
4485 /* idx */ ,
4486 (__v8sf) __A,
4487 (__v8sf) __B,
4488 (__mmask8)
4489 __U);
4490}
4491
4492static __inline__ __m128i __DEFAULT_FN_ATTRS
4493_mm_permutex2var_epi64 (__m128i __A, __m128i __I, __m128i __B) {
4494 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4495 /* idx */ ,
4496 (__v2di) __A,
4497 (__v2di) __B,
4498 (__mmask8) -1);
4499}
4500
4501static __inline__ __m128i __DEFAULT_FN_ATTRS
4502_mm_mask_permutex2var_epi64 (__m128i __A, __mmask8 __U, __m128i __I,
4503 __m128i __B) {
4504 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4505 /* idx */ ,
4506 (__v2di) __A,
4507 (__v2di) __B,
4508 (__mmask8) __U);
4509}
4510
4511static __inline__ __m128i __DEFAULT_FN_ATTRS
4512_mm_maskz_permutex2var_epi64 (__mmask8 __U, __m128i __A, __m128i __I,
4513 __m128i __B) {
4514 return (__m128i) __builtin_ia32_vpermt2varq128_maskz ((__v2di) __I
4515 /* idx */ ,
4516 (__v2di) __A,
4517 (__v2di) __B,
4518 (__mmask8)
4519 __U);
4520}
4521
4522
4523static __inline__ __m256i __DEFAULT_FN_ATTRS
4524_mm256_permutex2var_epi64 (__m256i __A, __m256i __I, __m256i __B) {
4525 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4526 /* idx */ ,
4527 (__v4di) __A,
4528 (__v4di) __B,
4529 (__mmask8) -1);
4530}
4531
4532static __inline__ __m256i __DEFAULT_FN_ATTRS
4533_mm256_mask_permutex2var_epi64 (__m256i __A, __mmask8 __U, __m256i __I,
4534 __m256i __B) {
4535 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4536 /* idx */ ,
4537 (__v4di) __A,
4538 (__v4di) __B,
4539 (__mmask8) __U);
4540}
4541
4542static __inline__ __m256i __DEFAULT_FN_ATTRS
4543_mm256_maskz_permutex2var_epi64 (__mmask8 __U, __m256i __A,
4544 __m256i __I, __m256i __B) {
4545 return (__m256i) __builtin_ia32_vpermt2varq256_maskz ((__v4di) __I
4546 /* idx */ ,
4547 (__v4di) __A,
4548 (__v4di) __B,
4549 (__mmask8)
4550 __U);
4551}
4552
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004553static __inline__ __m128i __DEFAULT_FN_ATTRS
4554_mm_mask_cvtepi8_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4555{
4556 return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A,
4557 (__v4si) __W,
4558 (__mmask8) __U);
4559}
4560
4561static __inline__ __m128i __DEFAULT_FN_ATTRS
4562_mm_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4563{
4564 return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A,
4565 (__v4si)
4566 _mm_setzero_si128 (),
4567 (__mmask8) __U);
4568}
4569
4570static __inline__ __m256i __DEFAULT_FN_ATTRS
4571_mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4572{
4573 return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A,
4574 (__v8si) __W,
4575 (__mmask8) __U);
4576}
4577
4578static __inline__ __m256i __DEFAULT_FN_ATTRS
4579_mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4580{
4581 return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A,
4582 (__v8si)
4583 _mm256_setzero_si256 (),
4584 (__mmask8) __U);
4585}
4586
4587static __inline__ __m128i __DEFAULT_FN_ATTRS
4588_mm_mask_cvtepi8_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4589{
4590 return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A,
4591 (__v2di) __W,
4592 (__mmask8) __U);
4593}
4594
4595static __inline__ __m128i __DEFAULT_FN_ATTRS
4596_mm_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
4597{
4598 return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A,
4599 (__v2di)
4600 _mm_setzero_si128 (),
4601 (__mmask8) __U);
4602}
4603
4604static __inline__ __m256i __DEFAULT_FN_ATTRS
4605_mm256_mask_cvtepi8_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4606{
4607 return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A,
4608 (__v4di) __W,
4609 (__mmask8) __U);
4610}
4611
4612static __inline__ __m256i __DEFAULT_FN_ATTRS
4613_mm256_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
4614{
4615 return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A,
4616 (__v4di)
4617 _mm256_setzero_si256 (),
4618 (__mmask8) __U);
4619}
4620
4621static __inline__ __m128i __DEFAULT_FN_ATTRS
4622_mm_mask_cvtepi32_epi64 (__m128i __W, __mmask8 __U, __m128i __X)
4623{
4624 return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X,
4625 (__v2di) __W,
4626 (__mmask8) __U);
4627}
4628
4629static __inline__ __m128i __DEFAULT_FN_ATTRS
4630_mm_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X)
4631{
4632 return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X,
4633 (__v2di)
4634 _mm_setzero_si128 (),
4635 (__mmask8) __U);
4636}
4637
4638static __inline__ __m256i __DEFAULT_FN_ATTRS
4639_mm256_mask_cvtepi32_epi64 (__m256i __W, __mmask8 __U, __m128i __X)
4640{
4641 return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X,
4642 (__v4di) __W,
4643 (__mmask8) __U);
4644}
4645
4646static __inline__ __m256i __DEFAULT_FN_ATTRS
4647_mm256_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X)
4648{
4649 return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X,
4650 (__v4di)
4651 _mm256_setzero_si256 (),
4652 (__mmask8) __U);
4653}
4654
4655static __inline__ __m128i __DEFAULT_FN_ATTRS
4656_mm_mask_cvtepi16_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4657{
4658 return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A,
4659 (__v4si) __W,
4660 (__mmask8) __U);
4661}
4662
4663static __inline__ __m128i __DEFAULT_FN_ATTRS
4664_mm_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4665{
4666 return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A,
4667 (__v4si)
4668 _mm_setzero_si128 (),
4669 (__mmask8) __U);
4670}
4671
4672static __inline__ __m256i __DEFAULT_FN_ATTRS
4673_mm256_mask_cvtepi16_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4674{
4675 return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A,
4676 (__v8si) __W,
4677 (__mmask8) __U);
4678}
4679
4680static __inline__ __m256i __DEFAULT_FN_ATTRS
4681_mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4682{
4683 return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A,
4684 (__v8si)
4685 _mm256_setzero_si256 (),
4686 (__mmask8) __U);
4687}
4688
4689static __inline__ __m128i __DEFAULT_FN_ATTRS
4690_mm_mask_cvtepi16_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4691{
4692 return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A,
4693 (__v2di) __W,
4694 (__mmask8) __U);
4695}
4696
4697static __inline__ __m128i __DEFAULT_FN_ATTRS
4698_mm_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
4699{
4700 return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A,
4701 (__v2di)
4702 _mm_setzero_si128 (),
4703 (__mmask8) __U);
4704}
4705
4706static __inline__ __m256i __DEFAULT_FN_ATTRS
4707_mm256_mask_cvtepi16_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4708{
4709 return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A,
4710 (__v4di) __W,
4711 (__mmask8) __U);
4712}
4713
4714static __inline__ __m256i __DEFAULT_FN_ATTRS
4715_mm256_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
4716{
4717 return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A,
4718 (__v4di)
4719 _mm256_setzero_si256 (),
4720 (__mmask8) __U);
4721}
4722
4723
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004724static __inline__ __m128i __DEFAULT_FN_ATTRS
4725_mm_mask_cvtepu8_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4726{
4727 return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A,
4728 (__v4si) __W,
4729 (__mmask8) __U);
4730}
4731
4732static __inline__ __m128i __DEFAULT_FN_ATTRS
4733_mm_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A)
4734{
4735 return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A,
4736 (__v4si)
4737 _mm_setzero_si128 (),
4738 (__mmask8) __U);
4739}
4740
4741static __inline__ __m256i __DEFAULT_FN_ATTRS
4742_mm256_mask_cvtepu8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4743{
4744 return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A,
4745 (__v8si) __W,
4746 (__mmask8) __U);
4747}
4748
4749static __inline__ __m256i __DEFAULT_FN_ATTRS
4750_mm256_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A)
4751{
4752 return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A,
4753 (__v8si)
4754 _mm256_setzero_si256 (),
4755 (__mmask8) __U);
4756}
4757
4758static __inline__ __m128i __DEFAULT_FN_ATTRS
4759_mm_mask_cvtepu8_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4760{
4761 return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A,
4762 (__v2di) __W,
4763 (__mmask8) __U);
4764}
4765
4766static __inline__ __m128i __DEFAULT_FN_ATTRS
4767_mm_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
4768{
4769 return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A,
4770 (__v2di)
4771 _mm_setzero_si128 (),
4772 (__mmask8) __U);
4773}
4774
4775static __inline__ __m256i __DEFAULT_FN_ATTRS
4776_mm256_mask_cvtepu8_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4777{
4778 return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A,
4779 (__v4di) __W,
4780 (__mmask8) __U);
4781}
4782
4783static __inline__ __m256i __DEFAULT_FN_ATTRS
4784_mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
4785{
4786 return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A,
4787 (__v4di)
4788 _mm256_setzero_si256 (),
4789 (__mmask8) __U);
4790}
4791
4792static __inline__ __m128i __DEFAULT_FN_ATTRS
4793_mm_mask_cvtepu32_epi64 (__m128i __W, __mmask8 __U, __m128i __X)
4794{
4795 return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X,
4796 (__v2di) __W,
4797 (__mmask8) __U);
4798}
4799
4800static __inline__ __m128i __DEFAULT_FN_ATTRS
4801_mm_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X)
4802{
4803 return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X,
4804 (__v2di)
4805 _mm_setzero_si128 (),
4806 (__mmask8) __U);
4807}
4808
4809static __inline__ __m256i __DEFAULT_FN_ATTRS
4810_mm256_mask_cvtepu32_epi64 (__m256i __W, __mmask8 __U, __m128i __X)
4811{
4812 return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X,
4813 (__v4di) __W,
4814 (__mmask8) __U);
4815}
4816
4817static __inline__ __m256i __DEFAULT_FN_ATTRS
4818_mm256_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X)
4819{
4820 return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X,
4821 (__v4di)
4822 _mm256_setzero_si256 (),
4823 (__mmask8) __U);
4824}
4825
4826static __inline__ __m128i __DEFAULT_FN_ATTRS
4827_mm_mask_cvtepu16_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4828{
4829 return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A,
4830 (__v4si) __W,
4831 (__mmask8) __U);
4832}
4833
4834static __inline__ __m128i __DEFAULT_FN_ATTRS
4835_mm_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A)
4836{
4837 return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A,
4838 (__v4si)
4839 _mm_setzero_si128 (),
4840 (__mmask8) __U);
4841}
4842
4843static __inline__ __m256i __DEFAULT_FN_ATTRS
4844_mm256_mask_cvtepu16_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4845{
4846 return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A,
4847 (__v8si) __W,
4848 (__mmask8) __U);
4849}
4850
4851static __inline__ __m256i __DEFAULT_FN_ATTRS
4852_mm256_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A)
4853{
4854 return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A,
4855 (__v8si)
4856 _mm256_setzero_si256 (),
4857 (__mmask8) __U);
4858}
4859
4860static __inline__ __m128i __DEFAULT_FN_ATTRS
4861_mm_mask_cvtepu16_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4862{
4863 return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A,
4864 (__v2di) __W,
4865 (__mmask8) __U);
4866}
4867
4868static __inline__ __m128i __DEFAULT_FN_ATTRS
4869_mm_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
4870{
4871 return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A,
4872 (__v2di)
4873 _mm_setzero_si128 (),
4874 (__mmask8) __U);
4875}
4876
4877static __inline__ __m256i __DEFAULT_FN_ATTRS
4878_mm256_mask_cvtepu16_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4879{
4880 return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A,
4881 (__v4di) __W,
4882 (__mmask8) __U);
4883}
4884
4885static __inline__ __m256i __DEFAULT_FN_ATTRS
4886_mm256_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
4887{
4888 return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A,
4889 (__v4di)
4890 _mm256_setzero_si256 (),
4891 (__mmask8) __U);
4892}
4893
4894
Michael Zuckerman38a27272016-02-22 09:05:41 +00004895#define _mm_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004896 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4897 (__v4si)_mm_setzero_si128(), \
4898 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004899
4900#define _mm_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004901 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4902 (__v4si)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004903
4904#define _mm_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004905 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4906 (__v4si)_mm_setzero_si128(), \
4907 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004908
4909#define _mm256_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004910 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4911 (__v8si)_mm256_setzero_si256(), \
4912 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004913
4914#define _mm256_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004915 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4916 (__v8si)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004917
4918#define _mm256_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004919 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4920 (__v8si)_mm256_setzero_si256(), \
4921 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004922
Michael Zuckerman477e0a32016-02-22 09:42:57 +00004923#define _mm_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004924 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4925 (__v2di)_mm_setzero_di(), \
4926 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004927
4928#define _mm_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004929 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4930 (__v2di)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004931
4932#define _mm_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004933 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
4934 (__v2di)_mm_setzero_di(), \
4935 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004936
4937#define _mm256_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004938 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4939 (__v4di)_mm256_setzero_si256(), \
4940 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004941
4942#define _mm256_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004943 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4944 (__v4di)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004945
4946#define _mm256_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004947 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
4948 (__v4di)_mm256_setzero_si256(), \
4949 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004950
Michael Zuckerman0231f162016-02-23 13:41:13 +00004951static __inline__ __m128i __DEFAULT_FN_ATTRS
4952_mm_rolv_epi32 (__m128i __A, __m128i __B)
4953{
4954 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4955 (__v4si) __B,
4956 (__v4si)
4957 _mm_setzero_si128 (),
4958 (__mmask8) -1);
4959}
4960
4961static __inline__ __m128i __DEFAULT_FN_ATTRS
4962_mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
4963 __m128i __B)
4964{
4965 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4966 (__v4si) __B,
4967 (__v4si) __W,
4968 (__mmask8) __U);
4969}
4970
4971static __inline__ __m128i __DEFAULT_FN_ATTRS
4972_mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
4973{
4974 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
4975 (__v4si) __B,
4976 (__v4si)
4977 _mm_setzero_si128 (),
4978 (__mmask8) __U);
4979}
4980
4981static __inline__ __m256i __DEFAULT_FN_ATTRS
4982_mm256_rolv_epi32 (__m256i __A, __m256i __B)
4983{
4984 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4985 (__v8si) __B,
4986 (__v8si)
4987 _mm256_setzero_si256 (),
4988 (__mmask8) -1);
4989}
4990
4991static __inline__ __m256i __DEFAULT_FN_ATTRS
4992_mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
4993 __m256i __B)
4994{
4995 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
4996 (__v8si) __B,
4997 (__v8si) __W,
4998 (__mmask8) __U);
4999}
5000
5001static __inline__ __m256i __DEFAULT_FN_ATTRS
5002_mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
5003{
5004 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
5005 (__v8si) __B,
5006 (__v8si)
5007 _mm256_setzero_si256 (),
5008 (__mmask8) __U);
5009}
5010
5011static __inline__ __m128i __DEFAULT_FN_ATTRS
5012_mm_rolv_epi64 (__m128i __A, __m128i __B)
5013{
5014 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
5015 (__v2di) __B,
5016 (__v2di)
5017 _mm_setzero_di (),
5018 (__mmask8) -1);
5019}
5020
5021static __inline__ __m128i __DEFAULT_FN_ATTRS
5022_mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5023 __m128i __B)
5024{
5025 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
5026 (__v2di) __B,
5027 (__v2di) __W,
5028 (__mmask8) __U);
5029}
5030
5031static __inline__ __m128i __DEFAULT_FN_ATTRS
5032_mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5033{
5034 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
5035 (__v2di) __B,
5036 (__v2di)
5037 _mm_setzero_di (),
5038 (__mmask8) __U);
5039}
5040
5041static __inline__ __m256i __DEFAULT_FN_ATTRS
5042_mm256_rolv_epi64 (__m256i __A, __m256i __B)
5043{
5044 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
5045 (__v4di) __B,
5046 (__v4di)
5047 _mm256_setzero_si256 (),
5048 (__mmask8) -1);
5049}
5050
5051static __inline__ __m256i __DEFAULT_FN_ATTRS
5052_mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5053 __m256i __B)
5054{
5055 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
5056 (__v4di) __B,
5057 (__v4di) __W,
5058 (__mmask8) __U);
5059}
5060
5061static __inline__ __m256i __DEFAULT_FN_ATTRS
5062_mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
5063{
5064 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
5065 (__v4di) __B,
5066 (__v4di)
5067 _mm256_setzero_si256 (),
5068 (__mmask8) __U);
5069}
5070
Craig Topperd2661882016-05-17 04:41:48 +00005071#define _mm_ror_epi32(A, B) __extension__ ({ \
5072 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
5073 (__v4si)_mm_setzero_si128(), \
5074 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005075
Craig Topperd2661882016-05-17 04:41:48 +00005076#define _mm_mask_ror_epi32(W, U, A, B) __extension__ ({ \
5077 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
5078 (__v4si)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005079
Craig Topperd2661882016-05-17 04:41:48 +00005080#define _mm_maskz_ror_epi32(U, A, B) __extension__ ({ \
5081 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
5082 (__v4si)_mm_setzero_si128(), \
5083 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005084
Craig Topperd2661882016-05-17 04:41:48 +00005085#define _mm256_ror_epi32(A, B) __extension__ ({ \
5086 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
5087 (__v8si)_mm256_setzero_si256(), \
5088 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005089
Craig Topperd2661882016-05-17 04:41:48 +00005090#define _mm256_mask_ror_epi32(W, U, A, B) __extension__ ({ \
5091 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
5092 (__v8si)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005093
Craig Topperd2661882016-05-17 04:41:48 +00005094#define _mm256_maskz_ror_epi32(U, A, B) __extension__ ({ \
5095 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
5096 (__v8si)_mm256_setzero_si256(), \
5097 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005098
Craig Topperd2661882016-05-17 04:41:48 +00005099#define _mm_ror_epi64(A, B) __extension__ ({ \
5100 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
5101 (__v2di)_mm_setzero_di(), \
5102 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005103
Craig Topperd2661882016-05-17 04:41:48 +00005104#define _mm_mask_ror_epi64(W, U, A, B) __extension__ ({ \
5105 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
5106 (__v2di)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005107
Craig Topperd2661882016-05-17 04:41:48 +00005108#define _mm_maskz_ror_epi64(U, A, B) __extension__ ({ \
5109 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
5110 (__v2di)_mm_setzero_di(), \
5111 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005112
Craig Topperd2661882016-05-17 04:41:48 +00005113#define _mm256_ror_epi64(A, B) __extension__ ({ \
5114 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5115 (__v4di)_mm256_setzero_si256(), \
5116 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005117
Craig Topperd2661882016-05-17 04:41:48 +00005118#define _mm256_mask_ror_epi64(W, U, A, B) __extension__ ({ \
5119 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5120 (__v4di)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005121
Craig Topperd2661882016-05-17 04:41:48 +00005122#define _mm256_maskz_ror_epi64(U, A, B) __extension__ ({ \
5123 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5124 (__v4di)_mm256_setzero_si256(), \
5125 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005126
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005127static __inline__ __m128i __DEFAULT_FN_ATTRS
5128_mm_mask_sll_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5129 __m128i __B)
5130{
5131 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
5132 (__v4si) __B,
5133 (__v4si) __W,
5134 (__mmask8) __U);
5135}
5136
5137static __inline__ __m128i __DEFAULT_FN_ATTRS
5138_mm_maskz_sll_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5139{
5140 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
5141 (__v4si) __B,
5142 (__v4si)
5143 _mm_setzero_si128 (),
5144 (__mmask8) __U);
5145}
5146
5147static __inline__ __m256i __DEFAULT_FN_ATTRS
5148_mm256_mask_sll_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5149 __m128i __B)
5150{
5151 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
5152 (__v4si) __B,
5153 (__v8si) __W,
5154 (__mmask8) __U);
5155}
5156
5157static __inline__ __m256i __DEFAULT_FN_ATTRS
5158_mm256_maskz_sll_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
5159{
5160 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
5161 (__v4si) __B,
5162 (__v8si)
5163 _mm256_setzero_si256 (),
5164 (__mmask8) __U);
5165}
5166
Craig Topperd2661882016-05-17 04:41:48 +00005167#define _mm_mask_slli_epi32(W, U, A, B) __extension__ ({ \
5168 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \
5169 (__v4si)(__m128i)(W), \
5170 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005171
Craig Topperd2661882016-05-17 04:41:48 +00005172#define _mm_maskz_slli_epi32(U, A, B) __extension__ ({ \
5173 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \
5174 (__v4si)_mm_setzero_si128(), \
5175 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005176
Craig Topperd2661882016-05-17 04:41:48 +00005177#define _mm256_mask_slli_epi32(W, U, A, B) __extension__ ({ \
5178 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \
5179 (__v8si)(__m256i)(W), \
5180 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005181
Craig Topperd2661882016-05-17 04:41:48 +00005182#define _mm256_maskz_slli_epi32(U, A, B) __extension__ ({ \
5183 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \
5184 (__v8si)_mm256_setzero_si256(), \
5185 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005186
5187static __inline__ __m128i __DEFAULT_FN_ATTRS
5188_mm_mask_sll_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5189 __m128i __B)
5190{
5191 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
5192 (__v2di) __B,
5193 (__v2di) __W,
5194 (__mmask8) __U);
5195}
5196
5197static __inline__ __m128i __DEFAULT_FN_ATTRS
5198_mm_maskz_sll_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5199{
5200 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
5201 (__v2di) __B,
5202 (__v2di)
5203 _mm_setzero_di (),
5204 (__mmask8) __U);
5205}
5206
5207static __inline__ __m256i __DEFAULT_FN_ATTRS
5208_mm256_mask_sll_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5209 __m128i __B)
5210{
5211 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
5212 (__v2di) __B,
5213 (__v4di) __W,
5214 (__mmask8) __U);
5215}
5216
5217static __inline__ __m256i __DEFAULT_FN_ATTRS
5218_mm256_maskz_sll_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
5219{
5220 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
5221 (__v2di) __B,
5222 (__v4di)
5223 _mm256_setzero_si256 (),
5224 (__mmask8) __U);
5225}
5226
Craig Topperd2661882016-05-17 04:41:48 +00005227#define _mm_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5228 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \
5229 (__v2di)(__m128i)(W), \
5230 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005231
Craig Topperd2661882016-05-17 04:41:48 +00005232#define _mm_maskz_slli_epi64(U, A, B) __extension__ ({ \
5233 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \
5234 (__v2di)_mm_setzero_di(), \
5235 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005236
Craig Topperd2661882016-05-17 04:41:48 +00005237#define _mm256_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5238 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \
5239 (__v4di)(__m256i)(W), \
5240 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005241
Craig Topperd2661882016-05-17 04:41:48 +00005242#define _mm256_maskz_slli_epi64(U, A, B) __extension__ ({ \
5243 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \
5244 (__v4di)_mm256_setzero_si256(), \
5245 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005246
Michael Zuckerman0231f162016-02-23 13:41:13 +00005247
Michael Zuckermane98cc742016-02-23 15:59:47 +00005248static __inline__ __m128i __DEFAULT_FN_ATTRS
5249_mm_rorv_epi32 (__m128i __A, __m128i __B)
5250{
5251 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5252 (__v4si) __B,
5253 (__v4si)
5254 _mm_setzero_si128 (),
5255 (__mmask8) -1);
5256}
5257
5258static __inline__ __m128i __DEFAULT_FN_ATTRS
5259_mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5260 __m128i __B)
5261{
5262 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5263 (__v4si) __B,
5264 (__v4si) __W,
5265 (__mmask8) __U);
5266}
5267
5268static __inline__ __m128i __DEFAULT_FN_ATTRS
5269_mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5270{
5271 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5272 (__v4si) __B,
5273 (__v4si)
5274 _mm_setzero_si128 (),
5275 (__mmask8) __U);
5276}
5277
5278static __inline__ __m256i __DEFAULT_FN_ATTRS
5279_mm256_rorv_epi32 (__m256i __A, __m256i __B)
5280{
5281 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5282 (__v8si) __B,
5283 (__v8si)
5284 _mm256_setzero_si256 (),
5285 (__mmask8) -1);
5286}
5287
5288static __inline__ __m256i __DEFAULT_FN_ATTRS
5289_mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5290 __m256i __B)
5291{
5292 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5293 (__v8si) __B,
5294 (__v8si) __W,
5295 (__mmask8) __U);
5296}
5297
5298static __inline__ __m256i __DEFAULT_FN_ATTRS
5299_mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
5300{
5301 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5302 (__v8si) __B,
5303 (__v8si)
5304 _mm256_setzero_si256 (),
5305 (__mmask8) __U);
5306}
5307
5308static __inline__ __m128i __DEFAULT_FN_ATTRS
5309_mm_rorv_epi64 (__m128i __A, __m128i __B)
5310{
5311 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5312 (__v2di) __B,
5313 (__v2di)
5314 _mm_setzero_di (),
5315 (__mmask8) -1);
5316}
5317
5318static __inline__ __m128i __DEFAULT_FN_ATTRS
5319_mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5320 __m128i __B)
5321{
5322 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5323 (__v2di) __B,
5324 (__v2di) __W,
5325 (__mmask8) __U);
5326}
5327
5328static __inline__ __m128i __DEFAULT_FN_ATTRS
5329_mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5330{
5331 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5332 (__v2di) __B,
5333 (__v2di)
5334 _mm_setzero_di (),
5335 (__mmask8) __U);
5336}
5337
5338static __inline__ __m256i __DEFAULT_FN_ATTRS
5339_mm256_rorv_epi64 (__m256i __A, __m256i __B)
5340{
5341 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5342 (__v4di) __B,
5343 (__v4di)
5344 _mm256_setzero_si256 (),
5345 (__mmask8) -1);
5346}
5347
5348static __inline__ __m256i __DEFAULT_FN_ATTRS
5349_mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5350 __m256i __B)
5351{
5352 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5353 (__v4di) __B,
5354 (__v4di) __W,
5355 (__mmask8) __U);
5356}
5357
5358static __inline__ __m256i __DEFAULT_FN_ATTRS
5359_mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
5360{
5361 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5362 (__v4di) __B,
5363 (__v4di)
5364 _mm256_setzero_si256 (),
5365 (__mmask8) __U);
5366}
5367
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005368static __inline__ __m128i __DEFAULT_FN_ATTRS
5369_mm_mask_sllv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5370 __m128i __Y)
5371{
5372 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
5373 (__v2di) __Y,
5374 (__v2di) __W,
5375 (__mmask8) __U);
5376}
5377
5378static __inline__ __m128i __DEFAULT_FN_ATTRS
5379_mm_maskz_sllv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5380{
5381 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
5382 (__v2di) __Y,
5383 (__v2di)
5384 _mm_setzero_di (),
5385 (__mmask8) __U);
5386}
5387
5388static __inline__ __m256i __DEFAULT_FN_ATTRS
5389_mm256_mask_sllv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5390 __m256i __Y)
5391{
5392 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
5393 (__v4di) __Y,
5394 (__v4di) __W,
5395 (__mmask8) __U);
5396}
5397
5398static __inline__ __m256i __DEFAULT_FN_ATTRS
5399_mm256_maskz_sllv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5400{
5401 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
5402 (__v4di) __Y,
5403 (__v4di)
5404 _mm256_setzero_si256 (),
5405 (__mmask8) __U);
5406}
5407
5408static __inline__ __m128i __DEFAULT_FN_ATTRS
5409_mm_mask_sllv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5410 __m128i __Y)
5411{
5412 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
5413 (__v4si) __Y,
5414 (__v4si) __W,
5415 (__mmask8) __U);
5416}
5417
5418static __inline__ __m128i __DEFAULT_FN_ATTRS
5419_mm_maskz_sllv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5420{
5421 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
5422 (__v4si) __Y,
5423 (__v4si)
5424 _mm_setzero_si128 (),
5425 (__mmask8) __U);
5426}
5427
5428static __inline__ __m256i __DEFAULT_FN_ATTRS
5429_mm256_mask_sllv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5430 __m256i __Y)
5431{
5432 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
5433 (__v8si) __Y,
5434 (__v8si) __W,
5435 (__mmask8) __U);
5436}
5437
5438static __inline__ __m256i __DEFAULT_FN_ATTRS
5439_mm256_maskz_sllv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5440{
5441 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
5442 (__v8si) __Y,
5443 (__v8si)
5444 _mm256_setzero_si256 (),
5445 (__mmask8) __U);
5446}
5447
Michael Zuckerman0165e762016-03-01 13:03:45 +00005448
5449
5450static __inline__ __m128i __DEFAULT_FN_ATTRS
5451_mm_mask_srlv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5452 __m128i __Y)
5453{
5454 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
5455 (__v2di) __Y,
5456 (__v2di) __W,
5457 (__mmask8) __U);
5458}
5459
5460static __inline__ __m128i __DEFAULT_FN_ATTRS
5461_mm_maskz_srlv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5462{
5463 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
5464 (__v2di) __Y,
5465 (__v2di)
5466 _mm_setzero_di (),
5467 (__mmask8) __U);
5468}
5469
5470static __inline__ __m256i __DEFAULT_FN_ATTRS
5471_mm256_mask_srlv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5472 __m256i __Y)
5473{
5474 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
5475 (__v4di) __Y,
5476 (__v4di) __W,
5477 (__mmask8) __U);
5478}
5479
5480static __inline__ __m256i __DEFAULT_FN_ATTRS
5481_mm256_maskz_srlv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5482{
5483 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
5484 (__v4di) __Y,
5485 (__v4di)
5486 _mm256_setzero_si256 (),
5487 (__mmask8) __U);
5488}
5489
5490static __inline__ __m128i __DEFAULT_FN_ATTRS
5491_mm_mask_srlv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5492 __m128i __Y)
5493{
5494 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
5495 (__v4si) __Y,
5496 (__v4si) __W,
5497 (__mmask8) __U);
5498}
5499
5500static __inline__ __m128i __DEFAULT_FN_ATTRS
5501_mm_maskz_srlv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5502{
5503 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
5504 (__v4si) __Y,
5505 (__v4si)
5506 _mm_setzero_si128 (),
5507 (__mmask8) __U);
5508}
5509
5510static __inline__ __m256i __DEFAULT_FN_ATTRS
5511_mm256_mask_srlv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5512 __m256i __Y)
5513{
5514 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
5515 (__v8si) __Y,
5516 (__v8si) __W,
5517 (__mmask8) __U);
5518}
5519
5520static __inline__ __m256i __DEFAULT_FN_ATTRS
5521_mm256_maskz_srlv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5522{
5523 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
5524 (__v8si) __Y,
5525 (__v8si)
5526 _mm256_setzero_si256 (),
5527 (__mmask8) __U);
5528}
5529
Michael Zuckermand176d742016-03-01 17:49:03 +00005530
5531
5532static __inline__ __m128i __DEFAULT_FN_ATTRS
5533_mm_mask_srl_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5534 __m128i __B)
5535{
5536 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
5537 (__v4si) __B,
5538 (__v4si) __W,
5539 (__mmask8) __U);
5540}
5541
5542static __inline__ __m128i __DEFAULT_FN_ATTRS
5543_mm_maskz_srl_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5544{
5545 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
5546 (__v4si) __B,
5547 (__v4si)
5548 _mm_setzero_si128 (),
5549 (__mmask8) __U);
5550}
5551
5552static __inline__ __m256i __DEFAULT_FN_ATTRS
5553_mm256_mask_srl_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5554 __m128i __B)
5555{
5556 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
5557 (__v4si) __B,
5558 (__v8si) __W,
5559 (__mmask8) __U);
5560}
5561
5562static __inline__ __m256i __DEFAULT_FN_ATTRS
5563_mm256_maskz_srl_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
5564{
5565 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
5566 (__v4si) __B,
5567 (__v8si)
5568 _mm256_setzero_si256 (),
5569 (__mmask8) __U);
5570}
5571
Craig Topperd2661882016-05-17 04:41:48 +00005572#define _mm_mask_srli_epi32(W, U, A, imm) __extension__ ({ \
5573 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \
5574 (__v4si)(__m128i)(W), \
5575 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005576
Craig Topperd2661882016-05-17 04:41:48 +00005577#define _mm_maskz_srli_epi32(U, A, imm) __extension__ ({ \
5578 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \
5579 (__v4si)_mm_setzero_si128(), \
5580 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005581
Craig Topperd2661882016-05-17 04:41:48 +00005582#define _mm256_mask_srli_epi32(W, U, A, imm) __extension__ ({ \
5583 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \
5584 (__v8si)(__m256i)(W), \
5585 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005586
Craig Topperd2661882016-05-17 04:41:48 +00005587#define _mm256_maskz_srli_epi32(U, A, imm) __extension__ ({ \
5588 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \
5589 (__v8si)_mm256_setzero_si256(), \
5590 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005591
5592static __inline__ __m128i __DEFAULT_FN_ATTRS
5593_mm_mask_srl_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5594 __m128i __B)
5595{
5596 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
5597 (__v2di) __B,
5598 (__v2di) __W,
5599 (__mmask8) __U);
5600}
5601
5602static __inline__ __m128i __DEFAULT_FN_ATTRS
5603_mm_maskz_srl_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5604{
5605 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
5606 (__v2di) __B,
5607 (__v2di)
5608 _mm_setzero_di (),
5609 (__mmask8) __U);
5610}
5611
5612static __inline__ __m256i __DEFAULT_FN_ATTRS
5613_mm256_mask_srl_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5614 __m128i __B)
5615{
5616 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
5617 (__v2di) __B,
5618 (__v4di) __W,
5619 (__mmask8) __U);
5620}
5621
5622static __inline__ __m256i __DEFAULT_FN_ATTRS
5623_mm256_maskz_srl_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
5624{
5625 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
5626 (__v2di) __B,
5627 (__v4di)
5628 _mm256_setzero_si256 (),
5629 (__mmask8) __U);
5630}
5631
Craig Topperd2661882016-05-17 04:41:48 +00005632#define _mm_mask_srli_epi64(W, U, A, imm) __extension__ ({ \
5633 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
5634 (__v2di)(__m128i)(W), \
5635 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005636
Craig Topperd2661882016-05-17 04:41:48 +00005637#define _mm_maskz_srli_epi64(U, A, imm) __extension__ ({ \
5638 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
5639 (__v2di)_mm_setzero_si128(), \
5640 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005641
Craig Topperd2661882016-05-17 04:41:48 +00005642#define _mm256_mask_srli_epi64(W, U, A, imm) __extension__ ({ \
5643 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
5644 (__v4di)(__m256i)(W), \
5645 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005646
Craig Topperd2661882016-05-17 04:41:48 +00005647#define _mm256_maskz_srli_epi64(U, A, imm) __extension__ ({ \
5648 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
5649 (__v4di)_mm256_setzero_si256(), \
5650 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005651
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005652static __inline__ __m128i __DEFAULT_FN_ATTRS
5653_mm_mask_srav_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5654 __m128i __Y)
5655{
5656 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
5657 (__v4si) __Y,
5658 (__v4si) __W,
5659 (__mmask8) __U);
5660}
5661
5662static __inline__ __m128i __DEFAULT_FN_ATTRS
5663_mm_maskz_srav_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5664{
5665 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
5666 (__v4si) __Y,
5667 (__v4si)
5668 _mm_setzero_si128 (),
5669 (__mmask8) __U);
5670}
5671
5672static __inline__ __m256i __DEFAULT_FN_ATTRS
5673_mm256_mask_srav_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5674 __m256i __Y)
5675{
5676 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
5677 (__v8si) __Y,
5678 (__v8si) __W,
5679 (__mmask8) __U);
5680}
5681
5682static __inline__ __m256i __DEFAULT_FN_ATTRS
5683_mm256_maskz_srav_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5684{
5685 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
5686 (__v8si) __Y,
5687 (__v8si)
5688 _mm256_setzero_si256 (),
5689 (__mmask8) __U);
5690}
5691
5692static __inline__ __m128i __DEFAULT_FN_ATTRS
5693_mm_srav_epi64 (__m128i __X, __m128i __Y)
5694{
5695 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5696 (__v2di) __Y,
5697 (__v2di)
5698 _mm_setzero_di (),
5699 (__mmask8) -1);
5700}
5701
5702static __inline__ __m128i __DEFAULT_FN_ATTRS
5703_mm_mask_srav_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5704 __m128i __Y)
5705{
5706 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5707 (__v2di) __Y,
5708 (__v2di) __W,
5709 (__mmask8) __U);
5710}
5711
5712static __inline__ __m128i __DEFAULT_FN_ATTRS
5713_mm_maskz_srav_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5714{
5715 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5716 (__v2di) __Y,
5717 (__v2di)
5718 _mm_setzero_di (),
5719 (__mmask8) __U);
5720}
5721
5722static __inline__ __m256i __DEFAULT_FN_ATTRS
5723_mm256_srav_epi64 (__m256i __X, __m256i __Y)
5724{
5725 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5726 (__v4di) __Y,
5727 (__v4di)
5728 _mm256_setzero_si256 (),
5729 (__mmask8) -1);
5730}
5731
5732static __inline__ __m256i __DEFAULT_FN_ATTRS
5733_mm256_mask_srav_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5734 __m256i __Y)
5735{
5736 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5737 (__v4di) __Y,
5738 (__v4di) __W,
5739 (__mmask8) __U);
5740}
5741
5742static __inline__ __m256i __DEFAULT_FN_ATTRS
5743_mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5744{
5745 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5746 (__v4di) __Y,
5747 (__v4di)
5748 _mm256_setzero_si256 (),
5749 (__mmask8) __U);
5750}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005751
Michael Zuckermane6542002016-05-23 08:01:48 +00005752static __inline__ __m128i __DEFAULT_FN_ATTRS
5753_mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
5754{
Igor Bregeraadb8762016-06-08 13:59:20 +00005755 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5756 (__v4si) __A,
5757 (__v4si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005758}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005759
Michael Zuckermane6542002016-05-23 08:01:48 +00005760static __inline__ __m128i __DEFAULT_FN_ATTRS
5761_mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A)
5762{
Igor Bregeraadb8762016-06-08 13:59:20 +00005763 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5764 (__v4si) __A,
5765 (__v4si) _mm_setzero_si128 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005766}
5767
5768
5769static __inline__ __m256i __DEFAULT_FN_ATTRS
5770_mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
5771{
Igor Bregeraadb8762016-06-08 13:59:20 +00005772 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5773 (__v8si) __A,
5774 (__v8si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005775}
5776
5777static __inline__ __m256i __DEFAULT_FN_ATTRS
5778_mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A)
5779{
Igor Bregeraadb8762016-06-08 13:59:20 +00005780 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5781 (__v8si) __A,
5782 (__v8si) _mm256_setzero_si256 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005783}
5784
5785static __inline__ __m128i __DEFAULT_FN_ATTRS
5786_mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P)
5787{
5788 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5789 (__v4si) __W,
5790 (__mmask8)
5791 __U);
5792}
5793
5794static __inline__ __m128i __DEFAULT_FN_ATTRS
5795_mm_maskz_load_epi32 (__mmask8 __U, void const *__P)
5796{
5797 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5798 (__v4si)
5799 _mm_setzero_si128 (),
5800 (__mmask8)
5801 __U);
5802}
5803
5804static __inline__ __m256i __DEFAULT_FN_ATTRS
5805_mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P)
5806{
5807 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5808 (__v8si) __W,
5809 (__mmask8)
5810 __U);
5811}
5812
5813static __inline__ __m256i __DEFAULT_FN_ATTRS
5814_mm256_maskz_load_epi32 (__mmask8 __U, void const *__P)
5815{
5816 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5817 (__v8si)
5818 _mm256_setzero_si256 (),
5819 (__mmask8)
5820 __U);
5821}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005822
5823static __inline__ void __DEFAULT_FN_ATTRS
5824_mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
5825{
5826 __builtin_ia32_movdqa32store128_mask ((__v4si *) __P,
5827 (__v4si) __A,
5828 (__mmask8) __U);
5829}
5830
5831static __inline__ void __DEFAULT_FN_ATTRS
5832_mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A)
5833{
5834 __builtin_ia32_movdqa32store256_mask ((__v8si *) __P,
5835 (__v8si) __A,
5836 (__mmask8) __U);
5837}
5838
5839static __inline__ __m128i __DEFAULT_FN_ATTRS
5840_mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
5841{
Igor Bregeraadb8762016-06-08 13:59:20 +00005842 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5843 (__v2di) __A,
5844 (__v2di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005845}
5846
5847static __inline__ __m128i __DEFAULT_FN_ATTRS
5848_mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A)
5849{
Igor Bregeraadb8762016-06-08 13:59:20 +00005850 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5851 (__v2di) __A,
5852 (__v2di) _mm_setzero_di ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005853}
5854
5855static __inline__ __m256i __DEFAULT_FN_ATTRS
5856_mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
5857{
Igor Bregeraadb8762016-06-08 13:59:20 +00005858 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5859 (__v4di) __A,
5860 (__v4di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005861}
5862
5863static __inline__ __m256i __DEFAULT_FN_ATTRS
5864_mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A)
5865{
Igor Bregeraadb8762016-06-08 13:59:20 +00005866 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5867 (__v4di) __A,
5868 (__v4di) _mm256_setzero_si256 ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005869}
5870
5871static __inline__ __m128i __DEFAULT_FN_ATTRS
5872_mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P)
5873{
5874 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5875 (__v2di) __W,
5876 (__mmask8)
5877 __U);
5878}
5879
5880static __inline__ __m128i __DEFAULT_FN_ATTRS
5881_mm_maskz_load_epi64 (__mmask8 __U, void const *__P)
5882{
5883 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5884 (__v2di)
5885 _mm_setzero_di (),
5886 (__mmask8)
5887 __U);
5888}
5889
5890static __inline__ __m256i __DEFAULT_FN_ATTRS
5891_mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P)
5892{
5893 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5894 (__v4di) __W,
5895 (__mmask8)
5896 __U);
5897}
5898
5899static __inline__ __m256i __DEFAULT_FN_ATTRS
5900_mm256_maskz_load_epi64 (__mmask8 __U, void const *__P)
5901{
5902 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5903 (__v4di)
5904 _mm256_setzero_si256 (),
5905 (__mmask8)
5906 __U);
5907}
5908
5909static __inline__ void __DEFAULT_FN_ATTRS
5910_mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
5911{
5912 __builtin_ia32_movdqa64store128_mask ((__v2di *) __P,
5913 (__v2di) __A,
5914 (__mmask8) __U);
5915}
5916
5917static __inline__ void __DEFAULT_FN_ATTRS
5918_mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A)
5919{
5920 __builtin_ia32_movdqa64store256_mask ((__v4di *) __P,
5921 (__v4di) __A,
5922 (__mmask8) __U);
5923}
5924
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005925static __inline__ __m128d __DEFAULT_FN_ATTRS
5926_mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A)
5927{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005928 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5929 (__v2df)_mm_movedup_pd(__A),
5930 (__v2df)__W);
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005931}
5932
5933static __inline__ __m128d __DEFAULT_FN_ATTRS
5934_mm_maskz_movedup_pd (__mmask8 __U, __m128d __A)
5935{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005936 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
5937 (__v2df)_mm_movedup_pd(__A),
5938 (__v2df)_mm_setzero_pd());
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005939}
5940
5941static __inline__ __m256d __DEFAULT_FN_ATTRS
5942_mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A)
5943{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005944 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5945 (__v4df)_mm256_movedup_pd(__A),
5946 (__v4df)__W);
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005947}
5948
5949static __inline__ __m256d __DEFAULT_FN_ATTRS
5950_mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A)
5951{
Simon Pilgrim275d7212016-07-02 17:16:25 +00005952 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
5953 (__v4df)_mm256_movedup_pd(__A),
5954 (__v4df)_mm256_setzero_pd());
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00005955}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005956
Michael Zuckerman912be162016-03-07 08:29:10 +00005957
Craig Topperd2661882016-05-17 04:41:48 +00005958#define _mm_mask_set1_epi32(O, M, A) __extension__ ({ \
5959 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
5960 (__v4si)(__m128i)(O), \
5961 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005962
Craig Topperd2661882016-05-17 04:41:48 +00005963#define _mm_maskz_set1_epi32(M, A) __extension__ ({ \
5964 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
5965 (__v4si)_mm_setzero_si128(), \
5966 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005967
Craig Topperd2661882016-05-17 04:41:48 +00005968#define _mm256_mask_set1_epi32(O, M, A) __extension__ ({ \
5969 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
5970 (__v8si)(__m256i)(O), \
5971 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005972
Craig Topperd2661882016-05-17 04:41:48 +00005973#define _mm256_maskz_set1_epi32(M, A) __extension__ ({ \
5974 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
5975 (__v8si)_mm256_setzero_si256(), \
5976 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00005977
Craig Topper45db56c2016-07-21 07:38:39 +00005978#ifdef __x86_64__
Michael Zuckerman912be162016-03-07 08:29:10 +00005979static __inline__ __m128i __DEFAULT_FN_ATTRS
5980_mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A)
5981{
5982 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, (__v2di) __O,
5983 __M);
5984}
5985
5986static __inline__ __m128i __DEFAULT_FN_ATTRS
5987_mm_maskz_set1_epi64 (__mmask8 __M, long long __A)
5988{
5989 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A,
5990 (__v2di)
5991 _mm_setzero_si128 (),
5992 __M);
5993}
5994
5995static __inline__ __m256i __DEFAULT_FN_ATTRS
5996_mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A)
5997{
5998 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, (__v4di) __O,
5999 __M);
6000}
6001
6002static __inline__ __m256i __DEFAULT_FN_ATTRS
6003_mm256_maskz_set1_epi64 (__mmask8 __M, long long __A)
6004{
6005 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A,
6006 (__v4di)
6007 _mm256_setzero_si256 (),
6008 __M);
6009}
Craig Topper45db56c2016-07-21 07:38:39 +00006010#endif
Michael Zuckermandef78752016-03-28 12:23:09 +00006011
Craig Topperd2661882016-05-17 04:41:48 +00006012#define _mm_fixupimm_pd(A, B, C, imm) __extension__ ({ \
6013 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
6014 (__v2df)(__m128d)(B), \
6015 (__v2di)(__m128i)(C), (int)(imm), \
6016 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006017
Craig Topperd2661882016-05-17 04:41:48 +00006018#define _mm_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
6019 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
6020 (__v2df)(__m128d)(B), \
6021 (__v2di)(__m128i)(C), (int)(imm), \
6022 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006023
Craig Topperd2661882016-05-17 04:41:48 +00006024#define _mm_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
6025 (__m128d)__builtin_ia32_fixupimmpd128_maskz((__v2df)(__m128d)(A), \
6026 (__v2df)(__m128d)(B), \
6027 (__v2di)(__m128i)(C), \
6028 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006029
Craig Topperd2661882016-05-17 04:41:48 +00006030#define _mm256_fixupimm_pd(A, B, C, imm) __extension__ ({ \
6031 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
6032 (__v4df)(__m256d)(B), \
6033 (__v4di)(__m256i)(C), (int)(imm), \
6034 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006035
Craig Topperd2661882016-05-17 04:41:48 +00006036#define _mm256_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
6037 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
6038 (__v4df)(__m256d)(B), \
6039 (__v4di)(__m256i)(C), (int)(imm), \
6040 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006041
Craig Topperd2661882016-05-17 04:41:48 +00006042#define _mm256_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
6043 (__m256d)__builtin_ia32_fixupimmpd256_maskz((__v4df)(__m256d)(A), \
6044 (__v4df)(__m256d)(B), \
6045 (__v4di)(__m256i)(C), \
6046 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006047
Craig Topperd2661882016-05-17 04:41:48 +00006048#define _mm_fixupimm_ps(A, B, C, imm) __extension__ ({ \
6049 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
6050 (__v4sf)(__m128)(B), \
6051 (__v4si)(__m128i)(C), (int)(imm), \
6052 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006053
Craig Topperd2661882016-05-17 04:41:48 +00006054#define _mm_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
6055 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
6056 (__v4sf)(__m128)(B), \
6057 (__v4si)(__m128i)(C), (int)(imm), \
6058 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006059
Craig Topperd2661882016-05-17 04:41:48 +00006060#define _mm_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
6061 (__m128)__builtin_ia32_fixupimmps128_maskz((__v4sf)(__m128)(A), \
6062 (__v4sf)(__m128)(B), \
6063 (__v4si)(__m128i)(C), (int)(imm), \
6064 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006065
Craig Topperd2661882016-05-17 04:41:48 +00006066#define _mm256_fixupimm_ps(A, B, C, imm) __extension__ ({ \
6067 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
6068 (__v8sf)(__m256)(B), \
6069 (__v8si)(__m256i)(C), (int)(imm), \
6070 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006071
Craig Topperd2661882016-05-17 04:41:48 +00006072#define _mm256_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
6073 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
6074 (__v8sf)(__m256)(B), \
6075 (__v8si)(__m256i)(C), (int)(imm), \
6076 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006077
Craig Topperd2661882016-05-17 04:41:48 +00006078#define _mm256_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
6079 (__m256)__builtin_ia32_fixupimmps256_maskz((__v8sf)(__m256)(A), \
6080 (__v8sf)(__m256)(B), \
6081 (__v8si)(__m256i)(C), (int)(imm), \
6082 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006083
6084static __inline__ __m128d __DEFAULT_FN_ATTRS
6085_mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P)
6086{
6087 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
6088 (__v2df) __W,
6089 (__mmask8) __U);
6090}
6091
6092static __inline__ __m128d __DEFAULT_FN_ATTRS
6093_mm_maskz_load_pd (__mmask8 __U, void const *__P)
6094{
6095 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
6096 (__v2df)
6097 _mm_setzero_pd (),
6098 (__mmask8) __U);
6099}
6100
6101static __inline__ __m256d __DEFAULT_FN_ATTRS
6102_mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P)
6103{
6104 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
6105 (__v4df) __W,
6106 (__mmask8) __U);
6107}
6108
6109static __inline__ __m256d __DEFAULT_FN_ATTRS
6110_mm256_maskz_load_pd (__mmask8 __U, void const *__P)
6111{
6112 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
6113 (__v4df)
6114 _mm256_setzero_pd (),
6115 (__mmask8) __U);
6116}
6117
6118static __inline__ __m128 __DEFAULT_FN_ATTRS
6119_mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P)
6120{
6121 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
6122 (__v4sf) __W,
6123 (__mmask8) __U);
6124}
6125
6126static __inline__ __m128 __DEFAULT_FN_ATTRS
6127_mm_maskz_load_ps (__mmask8 __U, void const *__P)
6128{
6129 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
6130 (__v4sf)
6131 _mm_setzero_ps (),
6132 (__mmask8) __U);
6133}
6134
6135static __inline__ __m256 __DEFAULT_FN_ATTRS
6136_mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P)
6137{
6138 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
6139 (__v8sf) __W,
6140 (__mmask8) __U);
6141}
6142
6143static __inline__ __m256 __DEFAULT_FN_ATTRS
6144_mm256_maskz_load_ps (__mmask8 __U, void const *__P)
6145{
6146 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
6147 (__v8sf)
6148 _mm256_setzero_ps (),
6149 (__mmask8) __U);
6150}
6151
6152static __inline__ __m128i __DEFAULT_FN_ATTRS
6153_mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
6154{
6155 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
6156 (__v2di) __W,
6157 (__mmask8) __U);
6158}
6159
6160static __inline__ __m128i __DEFAULT_FN_ATTRS
6161_mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6162{
6163 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
6164 (__v2di)
6165 _mm_setzero_si128 (),
6166 (__mmask8) __U);
6167}
6168
6169static __inline__ __m256i __DEFAULT_FN_ATTRS
6170_mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P)
6171{
6172 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
6173 (__v4di) __W,
6174 (__mmask8) __U);
6175}
6176
6177static __inline__ __m256i __DEFAULT_FN_ATTRS
6178_mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6179{
6180 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
6181 (__v4di)
6182 _mm256_setzero_si256 (),
6183 (__mmask8) __U);
6184}
6185
6186static __inline__ __m128i __DEFAULT_FN_ATTRS
6187_mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
6188{
6189 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
6190 (__v4si) __W,
6191 (__mmask8) __U);
6192}
6193
6194static __inline__ __m128i __DEFAULT_FN_ATTRS
6195_mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
6196{
6197 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
6198 (__v4si)
6199 _mm_setzero_si128 (),
6200 (__mmask8) __U);
6201}
6202
6203static __inline__ __m256i __DEFAULT_FN_ATTRS
6204_mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P)
6205{
6206 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
6207 (__v8si) __W,
6208 (__mmask8) __U);
6209}
6210
6211static __inline__ __m256i __DEFAULT_FN_ATTRS
6212_mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
6213{
6214 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
6215 (__v8si)
6216 _mm256_setzero_si256 (),
6217 (__mmask8) __U);
6218}
6219
6220static __inline__ __m128d __DEFAULT_FN_ATTRS
6221_mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P)
6222{
6223 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6224 (__v2df) __W,
6225 (__mmask8) __U);
6226}
6227
6228static __inline__ __m128d __DEFAULT_FN_ATTRS
6229_mm_maskz_loadu_pd (__mmask8 __U, void const *__P)
6230{
6231 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6232 (__v2df)
6233 _mm_setzero_pd (),
6234 (__mmask8) __U);
6235}
6236
6237static __inline__ __m256d __DEFAULT_FN_ATTRS
6238_mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P)
6239{
6240 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6241 (__v4df) __W,
6242 (__mmask8) __U);
6243}
6244
6245static __inline__ __m256d __DEFAULT_FN_ATTRS
6246_mm256_maskz_loadu_pd (__mmask8 __U, void const *__P)
6247{
6248 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6249 (__v4df)
6250 _mm256_setzero_pd (),
6251 (__mmask8) __U);
6252}
6253
6254static __inline__ __m128 __DEFAULT_FN_ATTRS
6255_mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P)
6256{
6257 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6258 (__v4sf) __W,
6259 (__mmask8) __U);
6260}
6261
6262static __inline__ __m128 __DEFAULT_FN_ATTRS
6263_mm_maskz_loadu_ps (__mmask8 __U, void const *__P)
6264{
6265 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6266 (__v4sf)
6267 _mm_setzero_ps (),
6268 (__mmask8) __U);
6269}
6270
6271static __inline__ __m256 __DEFAULT_FN_ATTRS
6272_mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P)
6273{
6274 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6275 (__v8sf) __W,
6276 (__mmask8) __U);
6277}
6278
6279static __inline__ __m256 __DEFAULT_FN_ATTRS
6280_mm256_maskz_loadu_ps (__mmask8 __U, void const *__P)
6281{
6282 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6283 (__v8sf)
6284 _mm256_setzero_ps (),
6285 (__mmask8) __U);
6286}
Michael Zuckermanfa7ccc52016-04-10 10:51:04 +00006287
6288static __inline__ void __DEFAULT_FN_ATTRS
6289_mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A)
6290{
6291 __builtin_ia32_storeapd128_mask ((__v2df *) __P,
6292 (__v2df) __A,
6293 (__mmask8) __U);
6294}
6295
6296static __inline__ void __DEFAULT_FN_ATTRS
6297_mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A)
6298{
6299 __builtin_ia32_storeapd256_mask ((__v4df *) __P,
6300 (__v4df) __A,
6301 (__mmask8) __U);
6302}
6303
6304static __inline__ void __DEFAULT_FN_ATTRS
6305_mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A)
6306{
6307 __builtin_ia32_storeaps128_mask ((__v4sf *) __P,
6308 (__v4sf) __A,
6309 (__mmask8) __U);
6310}
6311
6312static __inline__ void __DEFAULT_FN_ATTRS
6313_mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
6314{
6315 __builtin_ia32_storeaps256_mask ((__v8sf *) __P,
6316 (__v8sf) __A,
6317 (__mmask8) __U);
6318}
6319
6320static __inline__ void __DEFAULT_FN_ATTRS
6321_mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
6322{
6323 __builtin_ia32_storedqudi128_mask ((__v2di *) __P,
6324 (__v2di) __A,
6325 (__mmask8) __U);
6326}
6327
6328static __inline__ void __DEFAULT_FN_ATTRS
6329_mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
6330{
6331 __builtin_ia32_storedqudi256_mask ((__v4di *) __P,
6332 (__v4di) __A,
6333 (__mmask8) __U);
6334}
6335
6336static __inline__ void __DEFAULT_FN_ATTRS
6337_mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
6338{
6339 __builtin_ia32_storedqusi128_mask ((__v4si *) __P,
6340 (__v4si) __A,
6341 (__mmask8) __U);
6342}
6343
6344static __inline__ void __DEFAULT_FN_ATTRS
6345_mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
6346{
6347 __builtin_ia32_storedqusi256_mask ((__v8si *) __P,
6348 (__v8si) __A,
6349 (__mmask8) __U);
6350}
6351
6352static __inline__ void __DEFAULT_FN_ATTRS
6353_mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A)
6354{
6355 __builtin_ia32_storeupd128_mask ((__v2df *) __P,
6356 (__v2df) __A,
6357 (__mmask8) __U);
6358}
6359
6360static __inline__ void __DEFAULT_FN_ATTRS
6361_mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A)
6362{
6363 __builtin_ia32_storeupd256_mask ((__v4df *) __P,
6364 (__v4df) __A,
6365 (__mmask8) __U);
6366}
6367
6368static __inline__ void __DEFAULT_FN_ATTRS
6369_mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A)
6370{
6371 __builtin_ia32_storeups128_mask ((__v4sf *) __P,
6372 (__v4sf) __A,
6373 (__mmask8) __U);
6374}
6375
6376static __inline__ void __DEFAULT_FN_ATTRS
6377_mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A)
6378{
6379 __builtin_ia32_storeups256_mask ((__v8sf *) __P,
6380 (__v8sf) __A,
6381 (__mmask8) __U);
6382}
6383
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006384
6385static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006386_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006387{
Craig Topper79f53ca2016-06-23 06:36:42 +00006388 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6389 (__v2df)_mm_unpackhi_pd(__A, __B),
6390 (__v2df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006391}
6392
6393static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006394_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006395{
Craig Topper79f53ca2016-06-23 06:36:42 +00006396 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6397 (__v2df)_mm_unpackhi_pd(__A, __B),
6398 (__v2df)_mm_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006399}
6400
6401static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006402_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006403{
Craig Topper79f53ca2016-06-23 06:36:42 +00006404 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6405 (__v4df)_mm256_unpackhi_pd(__A, __B),
6406 (__v4df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006407}
6408
6409static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006410_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006411{
Craig Topper79f53ca2016-06-23 06:36:42 +00006412 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6413 (__v4df)_mm256_unpackhi_pd(__A, __B),
6414 (__v4df)_mm256_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006415}
6416
6417static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006418_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006419{
Craig Topper79f53ca2016-06-23 06:36:42 +00006420 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6421 (__v4sf)_mm_unpackhi_ps(__A, __B),
6422 (__v4sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006423}
6424
6425static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006426_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006427{
Craig Topper79f53ca2016-06-23 06:36:42 +00006428 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6429 (__v4sf)_mm_unpackhi_ps(__A, __B),
6430 (__v4sf)_mm_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006431}
6432
6433static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006434_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006435{
Craig Topper79f53ca2016-06-23 06:36:42 +00006436 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6437 (__v8sf)_mm256_unpackhi_ps(__A, __B),
6438 (__v8sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006439}
6440
6441static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006442_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006443{
Craig Topper79f53ca2016-06-23 06:36:42 +00006444 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6445 (__v8sf)_mm256_unpackhi_ps(__A, __B),
6446 (__v8sf)_mm256_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006447}
6448
6449static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006450_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006451{
Craig Topper79f53ca2016-06-23 06:36:42 +00006452 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6453 (__v2df)_mm_unpacklo_pd(__A, __B),
6454 (__v2df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006455}
6456
6457static __inline__ __m128d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006458_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006459{
Craig Topper79f53ca2016-06-23 06:36:42 +00006460 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
6461 (__v2df)_mm_unpacklo_pd(__A, __B),
6462 (__v2df)_mm_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006463}
6464
6465static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006466_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006467{
Craig Topper79f53ca2016-06-23 06:36:42 +00006468 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6469 (__v4df)_mm256_unpacklo_pd(__A, __B),
6470 (__v4df)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006471}
6472
6473static __inline__ __m256d __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006474_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006475{
Craig Topper79f53ca2016-06-23 06:36:42 +00006476 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
6477 (__v4df)_mm256_unpacklo_pd(__A, __B),
6478 (__v4df)_mm256_setzero_pd());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006479}
6480
6481static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006482_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006483{
Craig Topper79f53ca2016-06-23 06:36:42 +00006484 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6485 (__v4sf)_mm_unpacklo_ps(__A, __B),
6486 (__v4sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006487}
6488
6489static __inline__ __m128 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006490_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006491{
Craig Topper79f53ca2016-06-23 06:36:42 +00006492 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
6493 (__v4sf)_mm_unpacklo_ps(__A, __B),
6494 (__v4sf)_mm_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006495}
6496
6497static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006498_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006499{
Craig Topper79f53ca2016-06-23 06:36:42 +00006500 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6501 (__v8sf)_mm256_unpacklo_ps(__A, __B),
6502 (__v8sf)__W);
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006503}
6504
6505static __inline__ __m256 __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006506_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B)
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006507{
Craig Topper79f53ca2016-06-23 06:36:42 +00006508 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
6509 (__v8sf)_mm256_unpacklo_ps(__A, __B),
6510 (__v8sf)_mm256_setzero_ps());
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006511}
6512
6513static __inline__ __m128d __DEFAULT_FN_ATTRS
6514_mm_rcp14_pd (__m128d __A)
6515{
6516 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6517 (__v2df)
6518 _mm_setzero_pd (),
6519 (__mmask8) -1);
6520}
6521
6522static __inline__ __m128d __DEFAULT_FN_ATTRS
6523_mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A)
6524{
6525 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6526 (__v2df) __W,
6527 (__mmask8) __U);
6528}
6529
6530static __inline__ __m128d __DEFAULT_FN_ATTRS
6531_mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A)
6532{
6533 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6534 (__v2df)
6535 _mm_setzero_pd (),
6536 (__mmask8) __U);
6537}
6538
6539static __inline__ __m256d __DEFAULT_FN_ATTRS
6540_mm256_rcp14_pd (__m256d __A)
6541{
6542 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6543 (__v4df)
6544 _mm256_setzero_pd (),
6545 (__mmask8) -1);
6546}
6547
6548static __inline__ __m256d __DEFAULT_FN_ATTRS
6549_mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A)
6550{
6551 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6552 (__v4df) __W,
6553 (__mmask8) __U);
6554}
6555
6556static __inline__ __m256d __DEFAULT_FN_ATTRS
6557_mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A)
6558{
6559 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6560 (__v4df)
6561 _mm256_setzero_pd (),
6562 (__mmask8) __U);
6563}
6564
6565static __inline__ __m128 __DEFAULT_FN_ATTRS
6566_mm_rcp14_ps (__m128 __A)
6567{
6568 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6569 (__v4sf)
6570 _mm_setzero_ps (),
6571 (__mmask8) -1);
6572}
6573
6574static __inline__ __m128 __DEFAULT_FN_ATTRS
6575_mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A)
6576{
6577 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6578 (__v4sf) __W,
6579 (__mmask8) __U);
6580}
6581
6582static __inline__ __m128 __DEFAULT_FN_ATTRS
6583_mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A)
6584{
6585 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6586 (__v4sf)
6587 _mm_setzero_ps (),
6588 (__mmask8) __U);
6589}
6590
6591static __inline__ __m256 __DEFAULT_FN_ATTRS
6592_mm256_rcp14_ps (__m256 __A)
6593{
6594 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6595 (__v8sf)
6596 _mm256_setzero_ps (),
6597 (__mmask8) -1);
6598}
6599
6600static __inline__ __m256 __DEFAULT_FN_ATTRS
6601_mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A)
6602{
6603 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6604 (__v8sf) __W,
6605 (__mmask8) __U);
6606}
6607
6608static __inline__ __m256 __DEFAULT_FN_ATTRS
6609_mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A)
6610{
6611 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6612 (__v8sf)
6613 _mm256_setzero_ps (),
6614 (__mmask8) __U);
6615}
6616
Craig Topperd2661882016-05-17 04:41:48 +00006617#define _mm_mask_permute_pd(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006618 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6619 (__v2df)_mm_permute_pd((X), (C)), \
6620 (__v2df)(__m128d)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006621
Craig Topperd2661882016-05-17 04:41:48 +00006622#define _mm_maskz_permute_pd(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006623 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
6624 (__v2df)_mm_permute_pd((X), (C)), \
6625 (__v2df)_mm_setzero_pd()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006626
Craig Topperd2661882016-05-17 04:41:48 +00006627#define _mm256_mask_permute_pd(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006628 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6629 (__v4df)_mm256_permute_pd((X), (C)), \
6630 (__v4df)(__m256d)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006631
Craig Topperd2661882016-05-17 04:41:48 +00006632#define _mm256_maskz_permute_pd(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006633 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
6634 (__v4df)_mm256_permute_pd((X), (C)), \
6635 (__v4df)_mm256_setzero_pd()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006636
Craig Topperd2661882016-05-17 04:41:48 +00006637#define _mm_mask_permute_ps(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006638 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6639 (__v4sf)_mm_permute_ps((X), (C)), \
6640 (__v4sf)(__m128)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006641
Craig Topperd2661882016-05-17 04:41:48 +00006642#define _mm_maskz_permute_ps(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006643 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
6644 (__v4sf)_mm_permute_ps((X), (C)), \
6645 (__v4sf)_mm_setzero_ps()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006646
Craig Topperd2661882016-05-17 04:41:48 +00006647#define _mm256_mask_permute_ps(W, U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006648 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6649 (__v8sf)_mm256_permute_ps((X), (C)), \
6650 (__v8sf)(__m256)(W)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006651
Craig Topperd2661882016-05-17 04:41:48 +00006652#define _mm256_maskz_permute_ps(U, X, C) __extension__ ({ \
Craig Topperb3a44772016-07-02 05:36:43 +00006653 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
6654 (__v8sf)_mm256_permute_ps((X), (C)), \
6655 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006656
6657static __inline__ __m128d __DEFAULT_FN_ATTRS
6658_mm_mask_permutevar_pd (__m128d __W, __mmask8 __U, __m128d __A,
6659 __m128i __C)
6660{
6661 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
6662 (__v2di) __C,
6663 (__v2df) __W,
6664 (__mmask8) __U);
6665}
6666
6667static __inline__ __m128d __DEFAULT_FN_ATTRS
6668_mm_maskz_permutevar_pd (__mmask8 __U, __m128d __A, __m128i __C)
6669{
6670 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
6671 (__v2di) __C,
6672 (__v2df)
6673 _mm_setzero_pd (),
6674 (__mmask8) __U);
6675}
6676
6677static __inline__ __m256d __DEFAULT_FN_ATTRS
6678_mm256_mask_permutevar_pd (__m256d __W, __mmask8 __U, __m256d __A,
6679 __m256i __C)
6680{
6681 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
6682 (__v4di) __C,
6683 (__v4df) __W,
6684 (__mmask8)
6685 __U);
6686}
6687
6688static __inline__ __m256d __DEFAULT_FN_ATTRS
6689_mm256_maskz_permutevar_pd (__mmask8 __U, __m256d __A, __m256i __C)
6690{
6691 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
6692 (__v4di) __C,
6693 (__v4df)
6694 _mm256_setzero_pd (),
6695 (__mmask8)
6696 __U);
6697}
6698
6699static __inline__ __m128 __DEFAULT_FN_ATTRS
6700_mm_mask_permutevar_ps (__m128 __W, __mmask8 __U, __m128 __A,
6701 __m128i __C)
6702{
6703 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
6704 (__v4si) __C,
6705 (__v4sf) __W,
6706 (__mmask8) __U);
6707}
6708
6709static __inline__ __m128 __DEFAULT_FN_ATTRS
6710_mm_maskz_permutevar_ps (__mmask8 __U, __m128 __A, __m128i __C)
6711{
6712 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
6713 (__v4si) __C,
6714 (__v4sf)
6715 _mm_setzero_ps (),
6716 (__mmask8) __U);
6717}
6718
6719static __inline__ __m256 __DEFAULT_FN_ATTRS
6720_mm256_mask_permutevar_ps (__m256 __W, __mmask8 __U, __m256 __A,
6721 __m256i __C)
6722{
6723 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
6724 (__v8si) __C,
6725 (__v8sf) __W,
6726 (__mmask8) __U);
6727}
6728
6729static __inline__ __m256 __DEFAULT_FN_ATTRS
6730_mm256_maskz_permutevar_ps (__mmask8 __U, __m256 __A, __m256i __C)
6731{
6732 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
6733 (__v8si) __C,
6734 (__v8sf)
6735 _mm256_setzero_ps (),
6736 (__mmask8) __U);
6737}
6738
Michael Zuckerman07525092016-04-11 10:22:07 +00006739static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6740_mm_test_epi32_mask (__m128i __A, __m128i __B)
6741{
6742 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6743 (__v4si) __B,
6744 (__mmask8) -1);
6745}
6746
6747static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6748_mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6749{
6750 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6751 (__v4si) __B, __U);
6752}
6753
6754static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6755_mm256_test_epi32_mask (__m256i __A, __m256i __B)
6756{
6757 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6758 (__v8si) __B,
6759 (__mmask8) -1);
6760}
6761
6762static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6763_mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6764{
6765 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6766 (__v8si) __B, __U);
6767}
6768
6769static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6770_mm_test_epi64_mask (__m128i __A, __m128i __B)
6771{
6772 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6773 (__v2di) __B,
6774 (__mmask8) -1);
6775}
6776
6777static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6778_mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6779{
6780 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6781 (__v2di) __B, __U);
6782}
6783
6784static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6785_mm256_test_epi64_mask (__m256i __A, __m256i __B)
6786{
6787 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
6788 (__v4di) __B,
6789 (__mmask8) -1);
6790}
6791
6792static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6793_mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6794{
6795 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
6796 (__v4di) __B, __U);
6797}
6798
6799static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6800_mm_testn_epi32_mask (__m128i __A, __m128i __B)
6801{
6802 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
6803 (__v4si) __B,
6804 (__mmask8) -1);
6805}
6806
6807static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6808_mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6809{
6810 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
6811 (__v4si) __B, __U);
6812}
6813
6814static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6815_mm256_testn_epi32_mask (__m256i __A, __m256i __B)
6816{
6817 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
6818 (__v8si) __B,
6819 (__mmask8) -1);
6820}
6821
6822static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6823_mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6824{
6825 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
6826 (__v8si) __B, __U);
6827}
6828
6829static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6830_mm_testn_epi64_mask (__m128i __A, __m128i __B)
6831{
6832 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
6833 (__v2di) __B,
6834 (__mmask8) -1);
6835}
6836
6837static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6838_mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6839{
6840 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
6841 (__v2di) __B, __U);
6842}
6843
6844static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6845_mm256_testn_epi64_mask (__m256i __A, __m256i __B)
6846{
6847 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
6848 (__v4di) __B,
6849 (__mmask8) -1);
6850}
6851
6852static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6853_mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
6854{
6855 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
6856 (__v4di) __B, __U);
6857}
6858
6859
6860
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006861static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006862_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006863{
Craig Topper79f53ca2016-06-23 06:36:42 +00006864 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6865 (__v4si)_mm_unpackhi_epi32(__A, __B),
6866 (__v4si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006867}
6868
6869static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006870_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006871{
Craig Topper79f53ca2016-06-23 06:36:42 +00006872 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6873 (__v4si)_mm_unpackhi_epi32(__A, __B),
6874 (__v4si)_mm_setzero_si128());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006875}
6876
6877static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006878_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006879{
Craig Topper79f53ca2016-06-23 06:36:42 +00006880 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6881 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6882 (__v8si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006883}
6884
6885static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006886_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006887{
Craig Topper79f53ca2016-06-23 06:36:42 +00006888 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6889 (__v8si)_mm256_unpackhi_epi32(__A, __B),
6890 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006891}
6892
6893static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006894_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006895{
Craig Topper79f53ca2016-06-23 06:36:42 +00006896 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6897 (__v2di)_mm_unpackhi_epi64(__A, __B),
6898 (__v2di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006899}
6900
6901static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006902_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006903{
Craig Topper79f53ca2016-06-23 06:36:42 +00006904 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6905 (__v2di)_mm_unpackhi_epi64(__A, __B),
6906 (__v2di)_mm_setzero_di());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006907}
6908
6909static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006910_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006911{
Craig Topper79f53ca2016-06-23 06:36:42 +00006912 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6913 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6914 (__v4di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006915}
6916
6917static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006918_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006919{
Craig Topper79f53ca2016-06-23 06:36:42 +00006920 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6921 (__v4di)_mm256_unpackhi_epi64(__A, __B),
6922 (__v4di)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006923}
6924
6925static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006926_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006927{
Craig Topper79f53ca2016-06-23 06:36:42 +00006928 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6929 (__v4si)_mm_unpacklo_epi32(__A, __B),
6930 (__v4si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006931}
6932
6933static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006934_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006935{
Craig Topper79f53ca2016-06-23 06:36:42 +00006936 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
6937 (__v4si)_mm_unpacklo_epi32(__A, __B),
6938 (__v4si)_mm_setzero_si128());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006939}
6940
6941static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006942_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006943{
Craig Topper79f53ca2016-06-23 06:36:42 +00006944 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6945 (__v8si)_mm256_unpacklo_epi32(__A, __B),
6946 (__v8si)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006947}
6948
6949static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006950_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006951{
Craig Topper79f53ca2016-06-23 06:36:42 +00006952 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
6953 (__v8si)_mm256_unpacklo_epi32(__A, __B),
6954 (__v8si)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006955}
6956
6957static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006958_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006959{
Craig Topper79f53ca2016-06-23 06:36:42 +00006960 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6961 (__v2di)_mm_unpacklo_epi64(__A, __B),
6962 (__v2di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006963}
6964
6965static __inline__ __m128i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006966_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006967{
Craig Topper79f53ca2016-06-23 06:36:42 +00006968 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
6969 (__v2di)_mm_unpacklo_epi64(__A, __B),
6970 (__v2di)_mm_setzero_di());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006971}
6972
6973static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006974_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006975{
Craig Topper79f53ca2016-06-23 06:36:42 +00006976 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6977 (__v4di)_mm256_unpacklo_epi64(__A, __B),
6978 (__v4di)__W);
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006979}
6980
6981static __inline__ __m256i __DEFAULT_FN_ATTRS
Craig Topper79f53ca2016-06-23 06:36:42 +00006982_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B)
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006983{
Craig Topper79f53ca2016-06-23 06:36:42 +00006984 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
6985 (__v4di)_mm256_unpacklo_epi64(__A, __B),
6986 (__v4di)_mm256_setzero_si256());
Michael Zuckerman1af947a2016-04-11 12:32:31 +00006987}
6988
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00006989static __inline__ __m128i __DEFAULT_FN_ATTRS
6990_mm_mask_sra_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
6991 __m128i __B)
6992{
6993 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
6994 (__v4si) __B,
6995 (__v4si) __W,
6996 (__mmask8) __U);
6997}
6998
6999static __inline__ __m128i __DEFAULT_FN_ATTRS
7000_mm_maskz_sra_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
7001{
7002 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
7003 (__v4si) __B,
7004 (__v4si)
7005 _mm_setzero_si128 (),
7006 (__mmask8) __U);
7007}
7008
7009static __inline__ __m256i __DEFAULT_FN_ATTRS
7010_mm256_mask_sra_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
7011 __m128i __B)
7012{
7013 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
7014 (__v4si) __B,
7015 (__v8si) __W,
7016 (__mmask8) __U);
7017}
7018
7019static __inline__ __m256i __DEFAULT_FN_ATTRS
7020_mm256_maskz_sra_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
7021{
7022 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
7023 (__v4si) __B,
7024 (__v8si)
7025 _mm256_setzero_si256 (),
7026 (__mmask8) __U);
7027}
7028
Craig Topperd2661882016-05-17 04:41:48 +00007029#define _mm_mask_srai_epi32(W, U, A, imm) __extension__ ({ \
7030 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \
7031 (__v4si)(__m128i)(W), \
7032 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007033
Craig Topperd2661882016-05-17 04:41:48 +00007034#define _mm_maskz_srai_epi32(U, A, imm) __extension__ ({ \
7035 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \
7036 (__v4si)_mm_setzero_si128(), \
7037 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007038
Craig Topperd2661882016-05-17 04:41:48 +00007039#define _mm256_mask_srai_epi32(W, U, A, imm) __extension__ ({ \
7040 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \
7041 (__v8si)(__m256i)(W), \
7042 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007043
Craig Topperd2661882016-05-17 04:41:48 +00007044#define _mm256_maskz_srai_epi32(U, A, imm) __extension__ ({ \
7045 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \
7046 (__v8si)_mm256_setzero_si256(), \
7047 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007048
7049static __inline__ __m128i __DEFAULT_FN_ATTRS
7050_mm_sra_epi64 (__m128i __A, __m128i __B)
7051{
7052 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
7053 (__v2di) __B,
7054 (__v2di)
7055 _mm_setzero_di (),
7056 (__mmask8) -1);
7057}
7058
7059static __inline__ __m128i __DEFAULT_FN_ATTRS
7060_mm_mask_sra_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
7061 __m128i __B)
7062{
7063 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
7064 (__v2di) __B,
7065 (__v2di) __W,
7066 (__mmask8) __U);
7067}
7068
7069static __inline__ __m128i __DEFAULT_FN_ATTRS
7070_mm_maskz_sra_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
7071{
7072 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
7073 (__v2di) __B,
7074 (__v2di)
7075 _mm_setzero_di (),
7076 (__mmask8) __U);
7077}
7078
7079static __inline__ __m256i __DEFAULT_FN_ATTRS
7080_mm256_sra_epi64 (__m256i __A, __m128i __B)
7081{
7082 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
7083 (__v2di) __B,
7084 (__v4di)
7085 _mm256_setzero_si256 (),
7086 (__mmask8) -1);
7087}
7088
7089static __inline__ __m256i __DEFAULT_FN_ATTRS
7090_mm256_mask_sra_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
7091 __m128i __B)
7092{
7093 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
7094 (__v2di) __B,
7095 (__v4di) __W,
7096 (__mmask8) __U);
7097}
7098
7099static __inline__ __m256i __DEFAULT_FN_ATTRS
7100_mm256_maskz_sra_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
7101{
7102 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
7103 (__v2di) __B,
7104 (__v4di)
7105 _mm256_setzero_si256 (),
7106 (__mmask8) __U);
7107}
7108
Craig Topperd2661882016-05-17 04:41:48 +00007109#define _mm_srai_epi64(A, imm) __extension__ ({ \
7110 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7111 (__v2di)_mm_setzero_di(), \
7112 (__mmask8)-1); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007113
Craig Topperd2661882016-05-17 04:41:48 +00007114#define _mm_mask_srai_epi64(W, U, A, imm) __extension__ ({ \
7115 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7116 (__v2di)(__m128i)(W), \
7117 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007118
Craig Topperd2661882016-05-17 04:41:48 +00007119#define _mm_maskz_srai_epi64(U, A, imm) __extension__ ({ \
7120 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7121 (__v2di)_mm_setzero_si128(), \
7122 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007123
Craig Topperd2661882016-05-17 04:41:48 +00007124#define _mm256_srai_epi64(A, imm) __extension__ ({ \
7125 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7126 (__v4di)_mm256_setzero_si256(), \
7127 (__mmask8)-1); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007128
Craig Topperd2661882016-05-17 04:41:48 +00007129#define _mm256_mask_srai_epi64(W, U, A, imm) __extension__ ({ \
7130 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7131 (__v4di)(__m256i)(W), \
7132 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007133
Craig Topperd2661882016-05-17 04:41:48 +00007134#define _mm256_maskz_srai_epi64(U, A, imm) __extension__ ({ \
7135 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7136 (__v4di)_mm256_setzero_si256(), \
7137 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007138
Craig Topperd2661882016-05-17 04:41:48 +00007139#define _mm_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
7140 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
7141 (__v4si)(__m128i)(B), \
7142 (__v4si)(__m128i)(C), (int)(imm), \
7143 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007144
Craig Topperd2661882016-05-17 04:41:48 +00007145#define _mm_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
7146 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
7147 (__v4si)(__m128i)(B), \
7148 (__v4si)(__m128i)(C), (int)(imm), \
7149 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007150
Craig Topperd2661882016-05-17 04:41:48 +00007151#define _mm_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
7152 (__m128i)__builtin_ia32_pternlogd128_maskz((__v4si)(__m128i)(A), \
7153 (__v4si)(__m128i)(B), \
7154 (__v4si)(__m128i)(C), (int)(imm), \
7155 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007156
Craig Topperd2661882016-05-17 04:41:48 +00007157#define _mm256_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
7158 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
7159 (__v8si)(__m256i)(B), \
7160 (__v8si)(__m256i)(C), (int)(imm), \
7161 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007162
Craig Topperd2661882016-05-17 04:41:48 +00007163#define _mm256_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
7164 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
7165 (__v8si)(__m256i)(B), \
7166 (__v8si)(__m256i)(C), (int)(imm), \
7167 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007168
Craig Topperd2661882016-05-17 04:41:48 +00007169#define _mm256_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
7170 (__m256i)__builtin_ia32_pternlogd256_maskz((__v8si)(__m256i)(A), \
7171 (__v8si)(__m256i)(B), \
7172 (__v8si)(__m256i)(C), (int)(imm), \
7173 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007174
Craig Topperd2661882016-05-17 04:41:48 +00007175#define _mm_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
7176 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
7177 (__v2di)(__m128i)(B), \
7178 (__v2di)(__m128i)(C), (int)(imm), \
7179 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007180
Craig Topperd2661882016-05-17 04:41:48 +00007181#define _mm_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
7182 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
7183 (__v2di)(__m128i)(B), \
7184 (__v2di)(__m128i)(C), (int)(imm), \
7185 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007186
Craig Topperd2661882016-05-17 04:41:48 +00007187#define _mm_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
7188 (__m128i)__builtin_ia32_pternlogq128_maskz((__v2di)(__m128i)(A), \
7189 (__v2di)(__m128i)(B), \
7190 (__v2di)(__m128i)(C), (int)(imm), \
7191 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007192
Craig Topperd2661882016-05-17 04:41:48 +00007193#define _mm256_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
7194 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
7195 (__v4di)(__m256i)(B), \
7196 (__v4di)(__m256i)(C), (int)(imm), \
7197 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007198
Craig Topperd2661882016-05-17 04:41:48 +00007199#define _mm256_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
7200 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
7201 (__v4di)(__m256i)(B), \
7202 (__v4di)(__m256i)(C), (int)(imm), \
7203 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007204
Craig Topperd2661882016-05-17 04:41:48 +00007205#define _mm256_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
7206 (__m256i)__builtin_ia32_pternlogq256_maskz((__v4di)(__m256i)(A), \
7207 (__v4di)(__m256i)(B), \
7208 (__v4di)(__m256i)(C), (int)(imm), \
7209 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007210
7211
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007212
Craig Topperd2661882016-05-17 04:41:48 +00007213#define _mm256_shuffle_f32x4(A, B, imm) __extension__ ({ \
7214 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7215 (__v8sf)(__m256)(B), (int)(imm), \
7216 (__v8sf)_mm256_setzero_ps(), \
7217 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007218
Craig Topperd2661882016-05-17 04:41:48 +00007219#define _mm256_mask_shuffle_f32x4(W, U, A, B, imm) __extension__ ({ \
7220 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7221 (__v8sf)(__m256)(B), (int)(imm), \
7222 (__v8sf)(__m256)(W), \
7223 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007224
Craig Topperd2661882016-05-17 04:41:48 +00007225#define _mm256_maskz_shuffle_f32x4(U, A, B, imm) __extension__ ({ \
7226 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7227 (__v8sf)(__m256)(B), (int)(imm), \
7228 (__v8sf)_mm256_setzero_ps(), \
7229 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007230
Craig Topperd2661882016-05-17 04:41:48 +00007231#define _mm256_shuffle_f64x2(A, B, imm) __extension__ ({ \
7232 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7233 (__v4df)(__m256d)(B), \
7234 (int)(imm), \
7235 (__v4df)_mm256_setzero_pd(), \
7236 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007237
Craig Topperd2661882016-05-17 04:41:48 +00007238#define _mm256_mask_shuffle_f64x2(W, U, A, B, imm) __extension__ ({ \
7239 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7240 (__v4df)(__m256d)(B), \
7241 (int)(imm), \
7242 (__v4df)(__m256d)(W), \
7243 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007244
Craig Topperd2661882016-05-17 04:41:48 +00007245#define _mm256_maskz_shuffle_f64x2(U, A, B, imm) __extension__ ({ \
7246 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7247 (__v4df)(__m256d)(B), \
7248 (int)(imm), \
7249 (__v4df)_mm256_setzero_pd(), \
7250 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007251
Craig Topperd2661882016-05-17 04:41:48 +00007252#define _mm256_shuffle_i32x4(A, B, imm) __extension__ ({ \
7253 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7254 (__v8si)(__m256i)(B), \
7255 (int)(imm), \
7256 (__v8si)_mm256_setzero_si256(), \
7257 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007258
Craig Topperd2661882016-05-17 04:41:48 +00007259#define _mm256_mask_shuffle_i32x4(W, U, A, B, imm) __extension__ ({ \
7260 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7261 (__v8si)(__m256i)(B), \
7262 (int)(imm), \
7263 (__v8si)(__m256i)(W), \
7264 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007265
Craig Topperd2661882016-05-17 04:41:48 +00007266#define _mm256_maskz_shuffle_i32x4(U, A, B, imm) __extension__ ({ \
7267 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7268 (__v8si)(__m256i)(B), \
7269 (int)(imm), \
7270 (__v8si)_mm256_setzero_si256(), \
7271 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007272
Craig Topperd2661882016-05-17 04:41:48 +00007273#define _mm256_shuffle_i64x2(A, B, imm) __extension__ ({ \
7274 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7275 (__v4di)(__m256i)(B), \
7276 (int)(imm), \
7277 (__v4di)_mm256_setzero_si256(), \
7278 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007279
Craig Topperd2661882016-05-17 04:41:48 +00007280#define _mm256_mask_shuffle_i64x2(W, U, A, B, imm) __extension__ ({ \
7281 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7282 (__v4di)(__m256i)(B), \
7283 (int)(imm), \
7284 (__v4di)(__m256i)(W), \
7285 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007286
Craig Topperd2661882016-05-17 04:41:48 +00007287#define _mm256_maskz_shuffle_i64x2(U, A, B, imm) __extension__ ({ \
7288 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7289 (__v4di)(__m256i)(B), \
7290 (int)(imm), \
7291 (__v4di)_mm256_setzero_si256(), \
7292 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007293
Simon Pilgrim427154d2016-07-04 21:30:47 +00007294#define _mm_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7295 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
7296 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
7297 (__v2df)(__m128d)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007298
Simon Pilgrim427154d2016-07-04 21:30:47 +00007299#define _mm_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7300 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
7301 (__v2df)_mm_shuffle_pd((A), (B), (M)), \
7302 (__v2df)_mm_setzero_pd()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007303
Simon Pilgrim427154d2016-07-04 21:30:47 +00007304#define _mm256_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7305 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
7306 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
7307 (__v4df)(__m256d)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007308
Simon Pilgrim427154d2016-07-04 21:30:47 +00007309#define _mm256_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7310 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
7311 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
7312 (__v4df)_mm256_setzero_pd()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007313
Simon Pilgrim427154d2016-07-04 21:30:47 +00007314#define _mm_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7315 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
7316 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
7317 (__v4sf)(__m128)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007318
Simon Pilgrim427154d2016-07-04 21:30:47 +00007319#define _mm_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7320 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
7321 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
7322 (__v4sf)_mm_setzero_ps()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007323
Simon Pilgrim427154d2016-07-04 21:30:47 +00007324#define _mm256_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7325 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7326 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
7327 (__v8sf)(__m256)(W)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007328
Simon Pilgrim427154d2016-07-04 21:30:47 +00007329#define _mm256_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7330 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
7331 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
7332 (__v8sf)_mm256_setzero_ps()); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007333
7334static __inline__ __m128d __DEFAULT_FN_ATTRS
7335_mm_rsqrt14_pd (__m128d __A)
7336{
7337 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7338 (__v2df)
7339 _mm_setzero_pd (),
7340 (__mmask8) -1);
7341}
7342
7343static __inline__ __m128d __DEFAULT_FN_ATTRS
7344_mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A)
7345{
7346 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7347 (__v2df) __W,
7348 (__mmask8) __U);
7349}
7350
7351static __inline__ __m128d __DEFAULT_FN_ATTRS
7352_mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A)
7353{
7354 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7355 (__v2df)
7356 _mm_setzero_pd (),
7357 (__mmask8) __U);
7358}
7359
7360static __inline__ __m256d __DEFAULT_FN_ATTRS
7361_mm256_rsqrt14_pd (__m256d __A)
7362{
7363 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7364 (__v4df)
7365 _mm256_setzero_pd (),
7366 (__mmask8) -1);
7367}
7368
7369static __inline__ __m256d __DEFAULT_FN_ATTRS
7370_mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A)
7371{
7372 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7373 (__v4df) __W,
7374 (__mmask8) __U);
7375}
7376
7377static __inline__ __m256d __DEFAULT_FN_ATTRS
7378_mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A)
7379{
7380 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7381 (__v4df)
7382 _mm256_setzero_pd (),
7383 (__mmask8) __U);
7384}
7385
7386static __inline__ __m128 __DEFAULT_FN_ATTRS
7387_mm_rsqrt14_ps (__m128 __A)
7388{
7389 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7390 (__v4sf)
7391 _mm_setzero_ps (),
7392 (__mmask8) -1);
7393}
7394
7395static __inline__ __m128 __DEFAULT_FN_ATTRS
7396_mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A)
7397{
7398 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7399 (__v4sf) __W,
7400 (__mmask8) __U);
7401}
7402
7403static __inline__ __m128 __DEFAULT_FN_ATTRS
7404_mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A)
7405{
7406 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7407 (__v4sf)
7408 _mm_setzero_ps (),
7409 (__mmask8) __U);
7410}
7411
7412static __inline__ __m256 __DEFAULT_FN_ATTRS
7413_mm256_rsqrt14_ps (__m256 __A)
7414{
7415 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7416 (__v8sf)
7417 _mm256_setzero_ps (),
7418 (__mmask8) -1);
7419}
7420
7421static __inline__ __m256 __DEFAULT_FN_ATTRS
7422_mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A)
7423{
7424 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7425 (__v8sf) __W,
7426 (__mmask8) __U);
7427}
7428
7429static __inline__ __m256 __DEFAULT_FN_ATTRS
7430_mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A)
7431{
7432 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7433 (__v8sf)
7434 _mm256_setzero_ps (),
7435 (__mmask8) __U);
7436}
7437
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007438static __inline__ __m256 __DEFAULT_FN_ATTRS
7439_mm256_broadcast_f32x4 (__m128 __A)
7440{
7441 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7442 (__v8sf)_mm256_undefined_pd (),
Craig Topper406d5cd2016-06-04 05:43:37 +00007443 (__mmask8) -1);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007444}
7445
7446static __inline__ __m256 __DEFAULT_FN_ATTRS
7447_mm256_mask_broadcast_f32x4 (__m256 __O, __mmask8 __M, __m128 __A)
7448{
7449 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7450 (__v8sf) __O,
7451 __M);
7452}
7453
7454static __inline__ __m256 __DEFAULT_FN_ATTRS
7455_mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A)
7456{
7457 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7458 (__v8sf) _mm256_setzero_ps (),
7459 __M);
7460}
7461
7462static __inline__ __m256i __DEFAULT_FN_ATTRS
7463_mm256_broadcast_i32x4 (__m128i __A)
7464{
7465 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
7466 (__v8si)_mm256_undefined_si256 (),
Craig Topper406d5cd2016-06-04 05:43:37 +00007467 (__mmask8) -1);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007468}
7469
7470static __inline__ __m256i __DEFAULT_FN_ATTRS
7471_mm256_mask_broadcast_i32x4 (__m256i __O, __mmask8 __M, __m128i __A)
7472{
7473 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
7474 (__v8si)
7475 __O, __M);
7476}
7477
7478static __inline__ __m256i __DEFAULT_FN_ATTRS
7479_mm256_maskz_broadcast_i32x4 (__mmask8 __M, __m128i __A)
7480{
7481 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si)
7482 __A,
7483 (__v8si) _mm256_setzero_si256 (),
7484 __M);
7485}
7486
7487static __inline__ __m256d __DEFAULT_FN_ATTRS
7488_mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A)
7489{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007490 return (__m256d)__builtin_ia32_selectpd_256(__M,
7491 (__v4df) _mm256_broadcastsd_pd(__A),
7492 (__v4df) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007493}
7494
7495static __inline__ __m256d __DEFAULT_FN_ATTRS
7496_mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
7497{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007498 return (__m256d)__builtin_ia32_selectpd_256(__M,
7499 (__v4df) _mm256_broadcastsd_pd(__A),
7500 (__v4df) _mm256_setzero_pd());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007501}
7502
7503static __inline__ __m128 __DEFAULT_FN_ATTRS
7504_mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A)
7505{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007506 return (__m128)__builtin_ia32_selectps_128(__M,
7507 (__v4sf) _mm_broadcastss_ps(__A),
7508 (__v4sf) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007509}
7510
7511static __inline__ __m128 __DEFAULT_FN_ATTRS
7512_mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7513{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007514 return (__m128)__builtin_ia32_selectps_128(__M,
7515 (__v4sf) _mm_broadcastss_ps(__A),
7516 (__v4sf) _mm_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007517}
7518
7519static __inline__ __m256 __DEFAULT_FN_ATTRS
7520_mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A)
7521{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007522 return (__m256)__builtin_ia32_selectps_256(__M,
7523 (__v8sf) _mm256_broadcastss_ps(__A),
7524 (__v8sf) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007525}
7526
7527static __inline__ __m256 __DEFAULT_FN_ATTRS
7528_mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7529{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007530 return (__m256)__builtin_ia32_selectps_256(__M,
7531 (__v8sf) _mm256_broadcastss_ps(__A),
7532 (__v8sf) _mm256_setzero_ps());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007533}
7534
7535static __inline__ __m128i __DEFAULT_FN_ATTRS
7536_mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7537{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007538 return (__m128i)__builtin_ia32_selectd_128(__M,
7539 (__v4si) _mm_broadcastd_epi32(__A),
7540 (__v4si) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007541}
7542
7543static __inline__ __m128i __DEFAULT_FN_ATTRS
7544_mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7545{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007546 return (__m128i)__builtin_ia32_selectd_128(__M,
7547 (__v4si) _mm_broadcastd_epi32(__A),
7548 (__v4si) _mm_setzero_si128());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007549}
7550
7551static __inline__ __m256i __DEFAULT_FN_ATTRS
7552_mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A)
7553{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007554 return (__m256i)__builtin_ia32_selectd_256(__M,
7555 (__v8si) _mm256_broadcastd_epi32(__A),
7556 (__v8si) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007557}
7558
7559static __inline__ __m256i __DEFAULT_FN_ATTRS
7560_mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7561{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007562 return (__m256i)__builtin_ia32_selectd_256(__M,
7563 (__v8si) _mm256_broadcastd_epi32(__A),
7564 (__v8si) _mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007565}
7566
7567static __inline__ __m128i __DEFAULT_FN_ATTRS
7568_mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A)
7569{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007570 return (__m128i)__builtin_ia32_selectq_128(__M,
7571 (__v2di) _mm_broadcastq_epi64(__A),
7572 (__v2di) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007573}
7574
7575static __inline__ __m128i __DEFAULT_FN_ATTRS
7576_mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7577{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007578 return (__m128i)__builtin_ia32_selectq_128(__M,
7579 (__v2di) _mm_broadcastq_epi64(__A),
7580 (__v2di) _mm_setzero_si128());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007581}
7582
7583static __inline__ __m256i __DEFAULT_FN_ATTRS
7584_mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A)
7585{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007586 return (__m256i)__builtin_ia32_selectq_256(__M,
7587 (__v4di) _mm256_broadcastq_epi64(__A),
7588 (__v4di) __O);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007589}
7590
7591static __inline__ __m256i __DEFAULT_FN_ATTRS
7592_mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7593{
Simon Pilgrimf5a88372016-07-05 12:59:33 +00007594 return (__m256i)__builtin_ia32_selectq_256(__M,
7595 (__v4di) _mm256_broadcastq_epi64(__A),
7596 (__v4di) _mm256_setzero_si256());
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007597}
7598
Michael Zuckermane1680612016-04-13 15:02:04 +00007599static __inline__ __m128i __DEFAULT_FN_ATTRS
7600_mm_cvtsepi32_epi8 (__m128i __A)
7601{
7602 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7603 (__v16qi)_mm_undefined_si128(),
7604 (__mmask8) -1);
7605}
7606
7607static __inline__ __m128i __DEFAULT_FN_ATTRS
7608_mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7609{
7610 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7611 (__v16qi) __O, __M);
7612}
7613
7614static __inline__ __m128i __DEFAULT_FN_ATTRS
7615_mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A)
7616{
7617 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7618 (__v16qi) _mm_setzero_si128 (),
7619 __M);
7620}
7621
7622static __inline__ void __DEFAULT_FN_ATTRS
7623_mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7624{
7625 __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7626}
7627
7628static __inline__ __m128i __DEFAULT_FN_ATTRS
7629_mm256_cvtsepi32_epi8 (__m256i __A)
7630{
7631 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7632 (__v16qi)_mm_undefined_si128(),
7633 (__mmask8) -1);
7634}
7635
7636static __inline__ __m128i __DEFAULT_FN_ATTRS
7637_mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7638{
7639 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7640 (__v16qi) __O, __M);
7641}
7642
7643static __inline__ __m128i __DEFAULT_FN_ATTRS
7644_mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A)
7645{
7646 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7647 (__v16qi) _mm_setzero_si128 (),
7648 __M);
7649}
7650
7651static __inline__ void __DEFAULT_FN_ATTRS
7652_mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7653{
7654 __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
7655}
7656
7657static __inline__ __m128i __DEFAULT_FN_ATTRS
7658_mm_cvtsepi32_epi16 (__m128i __A)
7659{
7660 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7661 (__v8hi)_mm_setzero_si128 (),
7662 (__mmask8) -1);
7663}
7664
7665static __inline__ __m128i __DEFAULT_FN_ATTRS
7666_mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7667{
7668 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7669 (__v8hi)__O,
7670 __M);
7671}
7672
7673static __inline__ __m128i __DEFAULT_FN_ATTRS
7674_mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A)
7675{
7676 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7677 (__v8hi) _mm_setzero_si128 (),
7678 __M);
7679}
7680
7681static __inline__ void __DEFAULT_FN_ATTRS
7682_mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7683{
7684 __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7685}
7686
7687static __inline__ __m128i __DEFAULT_FN_ATTRS
7688_mm256_cvtsepi32_epi16 (__m256i __A)
7689{
7690 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7691 (__v8hi)_mm_undefined_si128(),
7692 (__mmask8) -1);
7693}
7694
7695static __inline__ __m128i __DEFAULT_FN_ATTRS
7696_mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7697{
7698 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7699 (__v8hi) __O, __M);
7700}
7701
7702static __inline__ __m128i __DEFAULT_FN_ATTRS
7703_mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A)
7704{
7705 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7706 (__v8hi) _mm_setzero_si128 (),
7707 __M);
7708}
7709
7710static __inline__ void __DEFAULT_FN_ATTRS
7711_mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7712{
7713 __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7714}
7715
7716static __inline__ __m128i __DEFAULT_FN_ATTRS
7717_mm_cvtsepi64_epi8 (__m128i __A)
7718{
7719 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7720 (__v16qi)_mm_undefined_si128(),
7721 (__mmask8) -1);
7722}
7723
7724static __inline__ __m128i __DEFAULT_FN_ATTRS
7725_mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7726{
7727 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7728 (__v16qi) __O, __M);
7729}
7730
7731static __inline__ __m128i __DEFAULT_FN_ATTRS
7732_mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A)
7733{
7734 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7735 (__v16qi) _mm_setzero_si128 (),
7736 __M);
7737}
7738
7739static __inline__ void __DEFAULT_FN_ATTRS
7740_mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7741{
7742 __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7743}
7744
7745static __inline__ __m128i __DEFAULT_FN_ATTRS
7746_mm256_cvtsepi64_epi8 (__m256i __A)
7747{
7748 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7749 (__v16qi)_mm_undefined_si128(),
7750 (__mmask8) -1);
7751}
7752
7753static __inline__ __m128i __DEFAULT_FN_ATTRS
7754_mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7755{
7756 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7757 (__v16qi) __O, __M);
7758}
7759
7760static __inline__ __m128i __DEFAULT_FN_ATTRS
7761_mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A)
7762{
7763 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
7764 (__v16qi) _mm_setzero_si128 (),
7765 __M);
7766}
7767
7768static __inline__ void __DEFAULT_FN_ATTRS
7769_mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7770{
7771 __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
7772}
7773
7774static __inline__ __m128i __DEFAULT_FN_ATTRS
7775_mm_cvtsepi64_epi32 (__m128i __A)
7776{
7777 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7778 (__v4si)_mm_undefined_si128(),
7779 (__mmask8) -1);
7780}
7781
7782static __inline__ __m128i __DEFAULT_FN_ATTRS
7783_mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7784{
7785 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7786 (__v4si) __O, __M);
7787}
7788
7789static __inline__ __m128i __DEFAULT_FN_ATTRS
7790_mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A)
7791{
7792 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
7793 (__v4si) _mm_setzero_si128 (),
7794 __M);
7795}
7796
7797static __inline__ void __DEFAULT_FN_ATTRS
7798_mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
7799{
7800 __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
7801}
7802
7803static __inline__ __m128i __DEFAULT_FN_ATTRS
7804_mm256_cvtsepi64_epi32 (__m256i __A)
7805{
7806 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7807 (__v4si)_mm_undefined_si128(),
7808 (__mmask8) -1);
7809}
7810
7811static __inline__ __m128i __DEFAULT_FN_ATTRS
7812_mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
7813{
7814 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7815 (__v4si)__O,
7816 __M);
7817}
7818
7819static __inline__ __m128i __DEFAULT_FN_ATTRS
7820_mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A)
7821{
7822 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
7823 (__v4si) _mm_setzero_si128 (),
7824 __M);
7825}
7826
7827static __inline__ void __DEFAULT_FN_ATTRS
7828_mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
7829{
7830 __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
7831}
7832
7833static __inline__ __m128i __DEFAULT_FN_ATTRS
7834_mm_cvtsepi64_epi16 (__m128i __A)
7835{
7836 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7837 (__v8hi)_mm_undefined_si128(),
7838 (__mmask8) -1);
7839}
7840
7841static __inline__ __m128i __DEFAULT_FN_ATTRS
7842_mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7843{
7844 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7845 (__v8hi) __O, __M);
7846}
7847
7848static __inline__ __m128i __DEFAULT_FN_ATTRS
7849_mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A)
7850{
7851 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
7852 (__v8hi) _mm_setzero_si128 (),
7853 __M);
7854}
7855
7856static __inline__ void __DEFAULT_FN_ATTRS
7857_mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7858{
7859 __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
7860}
7861
7862static __inline__ __m128i __DEFAULT_FN_ATTRS
7863_mm256_cvtsepi64_epi16 (__m256i __A)
7864{
7865 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7866 (__v8hi)_mm_undefined_si128(),
7867 (__mmask8) -1);
7868}
7869
7870static __inline__ __m128i __DEFAULT_FN_ATTRS
7871_mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7872{
7873 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7874 (__v8hi) __O, __M);
7875}
7876
7877static __inline__ __m128i __DEFAULT_FN_ATTRS
7878_mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A)
7879{
7880 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
7881 (__v8hi) _mm_setzero_si128 (),
7882 __M);
7883}
7884
7885static __inline__ void __DEFAULT_FN_ATTRS
7886_mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7887{
7888 __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
7889}
7890
Michael Zuckermand8715312016-04-14 06:48:09 +00007891static __inline__ __m128i __DEFAULT_FN_ATTRS
7892_mm_cvtusepi32_epi8 (__m128i __A)
7893{
7894 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7895 (__v16qi)_mm_undefined_si128(),
7896 (__mmask8) -1);
7897}
7898
7899static __inline__ __m128i __DEFAULT_FN_ATTRS
7900_mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7901{
7902 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7903 (__v16qi) __O,
7904 __M);
7905}
7906
7907static __inline__ __m128i __DEFAULT_FN_ATTRS
7908_mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A)
7909{
7910 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
7911 (__v16qi) _mm_setzero_si128 (),
7912 __M);
7913}
7914
7915static __inline__ void __DEFAULT_FN_ATTRS
7916_mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7917{
7918 __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7919}
7920
7921static __inline__ __m128i __DEFAULT_FN_ATTRS
7922_mm256_cvtusepi32_epi8 (__m256i __A)
7923{
7924 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7925 (__v16qi)_mm_undefined_si128(),
7926 (__mmask8) -1);
7927}
7928
7929static __inline__ __m128i __DEFAULT_FN_ATTRS
7930_mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7931{
7932 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7933 (__v16qi) __O,
7934 __M);
7935}
7936
7937static __inline__ __m128i __DEFAULT_FN_ATTRS
7938_mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A)
7939{
7940 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
7941 (__v16qi) _mm_setzero_si128 (),
7942 __M);
7943}
7944
7945static __inline__ void __DEFAULT_FN_ATTRS
7946_mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7947{
7948 __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M);
7949}
7950
7951static __inline__ __m128i __DEFAULT_FN_ATTRS
7952_mm_cvtusepi32_epi16 (__m128i __A)
7953{
7954 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7955 (__v8hi)_mm_undefined_si128(),
7956 (__mmask8) -1);
7957}
7958
7959static __inline__ __m128i __DEFAULT_FN_ATTRS
7960_mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7961{
7962 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7963 (__v8hi) __O, __M);
7964}
7965
7966static __inline__ __m128i __DEFAULT_FN_ATTRS
7967_mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A)
7968{
7969 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
7970 (__v8hi) _mm_setzero_si128 (),
7971 __M);
7972}
7973
7974static __inline__ void __DEFAULT_FN_ATTRS
7975_mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7976{
7977 __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7978}
7979
7980static __inline__ __m128i __DEFAULT_FN_ATTRS
7981_mm256_cvtusepi32_epi16 (__m256i __A)
7982{
7983 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7984 (__v8hi) _mm_undefined_si128(),
7985 (__mmask8) -1);
7986}
7987
7988static __inline__ __m128i __DEFAULT_FN_ATTRS
7989_mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7990{
7991 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7992 (__v8hi) __O, __M);
7993}
7994
7995static __inline__ __m128i __DEFAULT_FN_ATTRS
7996_mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A)
7997{
7998 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
7999 (__v8hi) _mm_setzero_si128 (),
8000 __M);
8001}
8002
8003static __inline__ void __DEFAULT_FN_ATTRS
8004_mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8005{
8006 __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
8007}
8008
8009static __inline__ __m128i __DEFAULT_FN_ATTRS
8010_mm_cvtusepi64_epi8 (__m128i __A)
8011{
8012 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
8013 (__v16qi)_mm_undefined_si128(),
8014 (__mmask8) -1);
8015}
8016
8017static __inline__ __m128i __DEFAULT_FN_ATTRS
8018_mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8019{
8020 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
8021 (__v16qi) __O,
8022 __M);
8023}
8024
8025static __inline__ __m128i __DEFAULT_FN_ATTRS
8026_mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A)
8027{
8028 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
8029 (__v16qi) _mm_setzero_si128 (),
8030 __M);
8031}
8032
8033static __inline__ void __DEFAULT_FN_ATTRS
8034_mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8035{
8036 __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
8037}
8038
8039static __inline__ __m128i __DEFAULT_FN_ATTRS
8040_mm256_cvtusepi64_epi8 (__m256i __A)
8041{
8042 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
8043 (__v16qi)_mm_undefined_si128(),
8044 (__mmask8) -1);
8045}
8046
8047static __inline__ __m128i __DEFAULT_FN_ATTRS
8048_mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8049{
8050 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
8051 (__v16qi) __O,
8052 __M);
8053}
8054
8055static __inline__ __m128i __DEFAULT_FN_ATTRS
8056_mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A)
8057{
8058 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
8059 (__v16qi) _mm_setzero_si128 (),
8060 __M);
8061}
8062
8063static __inline__ void __DEFAULT_FN_ATTRS
8064_mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8065{
8066 __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
8067}
8068
8069static __inline__ __m128i __DEFAULT_FN_ATTRS
8070_mm_cvtusepi64_epi32 (__m128i __A)
8071{
8072 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
8073 (__v4si)_mm_undefined_si128(),
8074 (__mmask8) -1);
8075}
8076
8077static __inline__ __m128i __DEFAULT_FN_ATTRS
8078_mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
8079{
8080 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
8081 (__v4si) __O, __M);
8082}
8083
8084static __inline__ __m128i __DEFAULT_FN_ATTRS
8085_mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A)
8086{
8087 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
8088 (__v4si) _mm_setzero_si128 (),
8089 __M);
8090}
8091
8092static __inline__ void __DEFAULT_FN_ATTRS
8093_mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
8094{
8095 __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
8096}
8097
8098static __inline__ __m128i __DEFAULT_FN_ATTRS
8099_mm256_cvtusepi64_epi32 (__m256i __A)
8100{
8101 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8102 (__v4si)_mm_undefined_si128(),
8103 (__mmask8) -1);
8104}
8105
8106static __inline__ __m128i __DEFAULT_FN_ATTRS
8107_mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
8108{
8109 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8110 (__v4si) __O, __M);
8111}
8112
8113static __inline__ __m128i __DEFAULT_FN_ATTRS
8114_mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A)
8115{
8116 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8117 (__v4si) _mm_setzero_si128 (),
8118 __M);
8119}
8120
8121static __inline__ void __DEFAULT_FN_ATTRS
8122_mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8123{
8124 __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8125}
8126
8127static __inline__ __m128i __DEFAULT_FN_ATTRS
8128_mm_cvtusepi64_epi16 (__m128i __A)
8129{
8130 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8131 (__v8hi)_mm_undefined_si128(),
8132 (__mmask8) -1);
8133}
8134
8135static __inline__ __m128i __DEFAULT_FN_ATTRS
8136_mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8137{
8138 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8139 (__v8hi) __O, __M);
8140}
8141
8142static __inline__ __m128i __DEFAULT_FN_ATTRS
8143_mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A)
8144{
8145 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8146 (__v8hi) _mm_setzero_si128 (),
8147 __M);
8148}
8149
8150static __inline__ void __DEFAULT_FN_ATTRS
8151_mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8152{
8153 __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8154}
8155
8156static __inline__ __m128i __DEFAULT_FN_ATTRS
8157_mm256_cvtusepi64_epi16 (__m256i __A)
8158{
8159 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8160 (__v8hi)_mm_undefined_si128(),
8161 (__mmask8) -1);
8162}
8163
8164static __inline__ __m128i __DEFAULT_FN_ATTRS
8165_mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8166{
8167 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8168 (__v8hi) __O, __M);
8169}
8170
8171static __inline__ __m128i __DEFAULT_FN_ATTRS
8172_mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A)
8173{
8174 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8175 (__v8hi) _mm_setzero_si128 (),
8176 __M);
8177}
8178
8179static __inline__ void __DEFAULT_FN_ATTRS
8180_mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8181{
8182 return __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8183}
8184
Michael Zuckerman0a3508a2016-04-14 07:56:51 +00008185static __inline__ __m128i __DEFAULT_FN_ATTRS
8186_mm_cvtepi32_epi8 (__m128i __A)
8187{
8188 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8189 (__v16qi)_mm_undefined_si128(),
8190 (__mmask8) -1);
8191}
8192
8193static __inline__ __m128i __DEFAULT_FN_ATTRS
8194_mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8195{
8196 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8197 (__v16qi) __O, __M);
8198}
8199
8200static __inline__ __m128i __DEFAULT_FN_ATTRS
8201_mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A)
8202{
8203 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8204 (__v16qi)
8205 _mm_setzero_si128 (),
8206 __M);
8207}
8208
8209static __inline__ void __DEFAULT_FN_ATTRS
8210_mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8211{
8212 __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
8213}
8214
8215static __inline__ __m128i __DEFAULT_FN_ATTRS
8216_mm256_cvtepi32_epi8 (__m256i __A)
8217{
8218 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8219 (__v16qi)_mm_undefined_si128(),
8220 (__mmask8) -1);
8221}
8222
8223static __inline__ __m128i __DEFAULT_FN_ATTRS
8224_mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8225{
8226 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8227 (__v16qi) __O, __M);
8228}
8229
8230static __inline__ __m128i __DEFAULT_FN_ATTRS
8231_mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A)
8232{
8233 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8234 (__v16qi) _mm_setzero_si128 (),
8235 __M);
8236}
8237
8238static __inline__ void __DEFAULT_FN_ATTRS
8239_mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8240{
8241 __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
8242}
8243
8244static __inline__ __m128i __DEFAULT_FN_ATTRS
8245_mm_cvtepi32_epi16 (__m128i __A)
8246{
8247 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8248 (__v8hi) _mm_setzero_si128 (),
8249 (__mmask8) -1);
8250}
8251
8252static __inline__ __m128i __DEFAULT_FN_ATTRS
8253_mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8254{
8255 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8256 (__v8hi) __O, __M);
8257}
8258
8259static __inline__ __m128i __DEFAULT_FN_ATTRS
8260_mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A)
8261{
8262 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8263 (__v8hi) _mm_setzero_si128 (),
8264 __M);
8265}
8266
8267static __inline__ void __DEFAULT_FN_ATTRS
8268_mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8269{
8270 __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
8271}
8272
8273static __inline__ __m128i __DEFAULT_FN_ATTRS
8274_mm256_cvtepi32_epi16 (__m256i __A)
8275{
8276 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8277 (__v8hi)_mm_setzero_si128 (),
8278 (__mmask8) -1);
8279}
8280
8281static __inline__ __m128i __DEFAULT_FN_ATTRS
8282_mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8283{
8284 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8285 (__v8hi) __O, __M);
8286}
8287
8288static __inline__ __m128i __DEFAULT_FN_ATTRS
8289_mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A)
8290{
8291 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8292 (__v8hi) _mm_setzero_si128 (),
8293 __M);
8294}
8295
8296static __inline__ void __DEFAULT_FN_ATTRS
8297_mm256_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8298{
8299 __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
8300}
8301
8302static __inline__ __m128i __DEFAULT_FN_ATTRS
8303_mm_cvtepi64_epi8 (__m128i __A)
8304{
8305 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8306 (__v16qi) _mm_undefined_si128(),
8307 (__mmask8) -1);
8308}
8309
8310static __inline__ __m128i __DEFAULT_FN_ATTRS
8311_mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8312{
8313 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8314 (__v16qi) __O, __M);
8315}
8316
8317static __inline__ __m128i __DEFAULT_FN_ATTRS
8318_mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A)
8319{
8320 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8321 (__v16qi) _mm_setzero_si128 (),
8322 __M);
8323}
8324
8325static __inline__ void __DEFAULT_FN_ATTRS
8326_mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8327{
8328 __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
8329}
8330
8331static __inline__ __m128i __DEFAULT_FN_ATTRS
8332_mm256_cvtepi64_epi8 (__m256i __A)
8333{
8334 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8335 (__v16qi) _mm_undefined_si128(),
8336 (__mmask8) -1);
8337}
8338
8339static __inline__ __m128i __DEFAULT_FN_ATTRS
8340_mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8341{
8342 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8343 (__v16qi) __O, __M);
8344}
8345
8346static __inline__ __m128i __DEFAULT_FN_ATTRS
8347_mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A)
8348{
8349 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8350 (__v16qi) _mm_setzero_si128 (),
8351 __M);
8352}
8353
8354static __inline__ void __DEFAULT_FN_ATTRS
8355_mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8356{
8357 __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
8358}
8359
8360static __inline__ __m128i __DEFAULT_FN_ATTRS
8361_mm_cvtepi64_epi32 (__m128i __A)
8362{
8363 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8364 (__v4si)_mm_undefined_si128(),
8365 (__mmask8) -1);
8366}
8367
8368static __inline__ __m128i __DEFAULT_FN_ATTRS
8369_mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
8370{
8371 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8372 (__v4si) __O, __M);
8373}
8374
8375static __inline__ __m128i __DEFAULT_FN_ATTRS
8376_mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A)
8377{
8378 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8379 (__v4si) _mm_setzero_si128 (),
8380 __M);
8381}
8382
8383static __inline__ void __DEFAULT_FN_ATTRS
8384_mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
8385{
8386 __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
8387}
8388
8389static __inline__ __m128i __DEFAULT_FN_ATTRS
8390_mm256_cvtepi64_epi32 (__m256i __A)
8391{
8392 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8393 (__v4si) _mm_undefined_si128(),
8394 (__mmask8) -1);
8395}
8396
8397static __inline__ __m128i __DEFAULT_FN_ATTRS
8398_mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
8399{
8400 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8401 (__v4si) __O, __M);
8402}
8403
8404static __inline__ __m128i __DEFAULT_FN_ATTRS
8405_mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A)
8406{
8407 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8408 (__v4si) _mm_setzero_si128 (),
8409 __M);
8410}
8411
8412static __inline__ void __DEFAULT_FN_ATTRS
8413_mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8414{
8415 __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8416}
8417
8418static __inline__ __m128i __DEFAULT_FN_ATTRS
8419_mm_cvtepi64_epi16 (__m128i __A)
8420{
8421 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8422 (__v8hi) _mm_undefined_si128(),
8423 (__mmask8) -1);
8424}
8425
8426static __inline__ __m128i __DEFAULT_FN_ATTRS
8427_mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8428{
8429 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8430 (__v8hi)__O,
8431 __M);
8432}
8433
8434static __inline__ __m128i __DEFAULT_FN_ATTRS
8435_mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A)
8436{
8437 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8438 (__v8hi) _mm_setzero_si128 (),
8439 __M);
8440}
8441
8442static __inline__ void __DEFAULT_FN_ATTRS
8443_mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8444{
8445 __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8446}
8447
8448static __inline__ __m128i __DEFAULT_FN_ATTRS
8449_mm256_cvtepi64_epi16 (__m256i __A)
8450{
8451 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8452 (__v8hi)_mm_undefined_si128(),
8453 (__mmask8) -1);
8454}
8455
8456static __inline__ __m128i __DEFAULT_FN_ATTRS
8457_mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8458{
8459 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8460 (__v8hi) __O, __M);
8461}
8462
8463static __inline__ __m128i __DEFAULT_FN_ATTRS
8464_mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A)
8465{
8466 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8467 (__v8hi) _mm_setzero_si128 (),
8468 __M);
8469}
8470
8471static __inline__ void __DEFAULT_FN_ATTRS
8472_mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8473{
8474 __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8475}
8476
Craig Topperd2661882016-05-17 04:41:48 +00008477#define _mm256_extractf32x4_ps(A, imm) __extension__ ({ \
8478 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8479 (int)(imm), \
8480 (__v4sf)_mm_setzero_ps(), \
8481 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008482
Craig Topperd2661882016-05-17 04:41:48 +00008483#define _mm256_mask_extractf32x4_ps(W, U, A, imm) __extension__ ({ \
8484 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8485 (int)(imm), \
8486 (__v4sf)(__m128)(W), \
8487 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008488
Craig Topperd2661882016-05-17 04:41:48 +00008489#define _mm256_maskz_extractf32x4_ps(U, A, imm) __extension__ ({ \
8490 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8491 (int)(imm), \
8492 (__v4sf)_mm_setzero_ps(), \
8493 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008494
Craig Topperd2661882016-05-17 04:41:48 +00008495#define _mm256_extracti32x4_epi32(A, imm) __extension__ ({ \
8496 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8497 (int)(imm), \
8498 (__v4si)_mm_setzero_si128(), \
8499 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008500
Craig Topperd2661882016-05-17 04:41:48 +00008501#define _mm256_mask_extracti32x4_epi32(W, U, A, imm) __extension__ ({ \
8502 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8503 (int)(imm), \
8504 (__v4si)(__m128i)(W), \
8505 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008506
Craig Topperd2661882016-05-17 04:41:48 +00008507#define _mm256_maskz_extracti32x4_epi32(U, A, imm) __extension__ ({ \
8508 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8509 (int)(imm), \
8510 (__v4si)_mm_setzero_si128(), \
8511 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008512
Craig Topperd2661882016-05-17 04:41:48 +00008513#define _mm256_insertf32x4(A, B, imm) __extension__ ({ \
8514 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8515 (__v4sf)(__m128)(B), (int)(imm), \
8516 (__v8sf)_mm256_setzero_ps(), \
8517 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008518
Craig Topperd2661882016-05-17 04:41:48 +00008519#define _mm256_mask_insertf32x4(W, U, A, B, imm) __extension__ ({ \
8520 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8521 (__v4sf)(__m128)(B), (int)(imm), \
8522 (__v8sf)(__m256)(W), \
8523 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008524
Craig Topperd2661882016-05-17 04:41:48 +00008525#define _mm256_maskz_insertf32x4(U, A, B, imm) __extension__ ({ \
8526 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8527 (__v4sf)(__m128)(B), (int)(imm), \
8528 (__v8sf)_mm256_setzero_ps(), \
8529 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008530
Craig Topperd2661882016-05-17 04:41:48 +00008531#define _mm256_inserti32x4(A, B, imm) __extension__ ({ \
8532 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8533 (__v4si)(__m128i)(B), \
8534 (int)(imm), \
8535 (__v8si)_mm256_setzero_si256(), \
8536 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008537
Craig Topperd2661882016-05-17 04:41:48 +00008538#define _mm256_mask_inserti32x4(W, U, A, B, imm) __extension__ ({ \
8539 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8540 (__v4si)(__m128i)(B), \
8541 (int)(imm), \
8542 (__v8si)(__m256i)(W), \
8543 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008544
Craig Topperd2661882016-05-17 04:41:48 +00008545#define _mm256_maskz_inserti32x4(U, A, B, imm) __extension__ ({ \
8546 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8547 (__v4si)(__m128i)(B), \
8548 (int)(imm), \
8549 (__v8si)_mm256_setzero_si256(), \
8550 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008551
Craig Topperd2661882016-05-17 04:41:48 +00008552#define _mm_getmant_pd(A, B, C) __extension__({\
8553 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8554 (int)(((C)<<2) | (B)), \
8555 (__v2df)_mm_setzero_pd(), \
8556 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008557
Craig Topperd2661882016-05-17 04:41:48 +00008558#define _mm_mask_getmant_pd(W, U, A, B, C) __extension__({\
8559 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8560 (int)(((C)<<2) | (B)), \
8561 (__v2df)(__m128d)(W), \
8562 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008563
Craig Topperd2661882016-05-17 04:41:48 +00008564#define _mm_maskz_getmant_pd(U, A, B, C) __extension__({\
8565 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8566 (int)(((C)<<2) | (B)), \
8567 (__v2df)_mm_setzero_pd(), \
8568 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008569
Craig Topperd2661882016-05-17 04:41:48 +00008570#define _mm256_getmant_pd(A, B, C) __extension__ ({ \
8571 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8572 (int)(((C)<<2) | (B)), \
8573 (__v4df)_mm256_setzero_pd(), \
8574 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008575
Craig Topperd2661882016-05-17 04:41:48 +00008576#define _mm256_mask_getmant_pd(W, U, A, B, C) __extension__ ({ \
8577 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8578 (int)(((C)<<2) | (B)), \
8579 (__v4df)(__m256d)(W), \
8580 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008581
Craig Topperd2661882016-05-17 04:41:48 +00008582#define _mm256_maskz_getmant_pd(U, A, B, C) __extension__ ({ \
8583 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8584 (int)(((C)<<2) | (B)), \
8585 (__v4df)_mm256_setzero_pd(), \
8586 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008587
Craig Topperd2661882016-05-17 04:41:48 +00008588#define _mm_getmant_ps(A, B, C) __extension__ ({ \
8589 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8590 (int)(((C)<<2) | (B)), \
8591 (__v4sf)_mm_setzero_ps(), \
8592 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008593
Craig Topperd2661882016-05-17 04:41:48 +00008594#define _mm_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8595 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8596 (int)(((C)<<2) | (B)), \
8597 (__v4sf)(__m128)(W), \
8598 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008599
Craig Topperd2661882016-05-17 04:41:48 +00008600#define _mm_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8601 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8602 (int)(((C)<<2) | (B)), \
8603 (__v4sf)_mm_setzero_ps(), \
8604 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008605
Craig Topperd2661882016-05-17 04:41:48 +00008606#define _mm256_getmant_ps(A, B, C) __extension__ ({ \
8607 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8608 (int)(((C)<<2) | (B)), \
8609 (__v8sf)_mm256_setzero_ps(), \
8610 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008611
Craig Topperd2661882016-05-17 04:41:48 +00008612#define _mm256_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8613 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8614 (int)(((C)<<2) | (B)), \
8615 (__v8sf)(__m256)(W), \
8616 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008617
Craig Topperd2661882016-05-17 04:41:48 +00008618#define _mm256_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8619 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8620 (int)(((C)<<2) | (B)), \
8621 (__v8sf)_mm256_setzero_ps(), \
8622 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008623
Craig Topperd2661882016-05-17 04:41:48 +00008624#define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8625 (__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \
8626 (double const *)(addr), \
8627 (__v2di)(__m128i)(index), \
8628 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008629
Craig Topperd2661882016-05-17 04:41:48 +00008630#define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8631 (__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \
8632 (long long const *)(addr), \
8633 (__v2di)(__m128i)(index), \
8634 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008635
Craig Topperd2661882016-05-17 04:41:48 +00008636#define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8637 (__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \
8638 (double const *)(addr), \
8639 (__v4di)(__m256i)(index), \
8640 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008641
Craig Topperd2661882016-05-17 04:41:48 +00008642#define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8643 (__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \
8644 (long long const *)(addr), \
8645 (__v4di)(__m256i)(index), \
8646 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008647
Craig Topperd2661882016-05-17 04:41:48 +00008648#define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8649 (__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \
8650 (float const *)(addr), \
8651 (__v2di)(__m128i)(index), \
8652 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008653
Craig Topperd2661882016-05-17 04:41:48 +00008654#define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8655 (__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \
8656 (int const *)(addr), \
8657 (__v2di)(__m128i)(index), \
8658 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008659
Craig Topperd2661882016-05-17 04:41:48 +00008660#define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8661 (__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \
8662 (float const *)(addr), \
8663 (__v4di)(__m256i)(index), \
8664 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008665
Craig Topperd2661882016-05-17 04:41:48 +00008666#define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8667 (__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \
8668 (int const *)(addr), \
8669 (__v4di)(__m256i)(index), \
8670 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008671
Craig Topperd2661882016-05-17 04:41:48 +00008672#define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8673 (__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \
8674 (double const *)(addr), \
8675 (__v4si)(__m128i)(index), \
8676 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008677
Craig Topperd2661882016-05-17 04:41:48 +00008678#define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8679 (__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \
8680 (long long const *)(addr), \
8681 (__v4si)(__m128i)(index), \
8682 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008683
Craig Topperd2661882016-05-17 04:41:48 +00008684#define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8685 (__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \
8686 (double const *)(addr), \
8687 (__v4si)(__m128i)(index), \
8688 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008689
Craig Topperd2661882016-05-17 04:41:48 +00008690#define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8691 (__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \
8692 (long long const *)(addr), \
8693 (__v4si)(__m128i)(index), \
8694 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008695
Craig Topperd2661882016-05-17 04:41:48 +00008696#define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8697 (__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \
8698 (float const *)(addr), \
8699 (__v4si)(__m128i)(index), \
8700 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008701
Craig Topperd2661882016-05-17 04:41:48 +00008702#define _mm_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8703 (__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \
8704 (int const *)(addr), \
8705 (__v4si)(__m128i)(index), \
8706 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008707
Craig Topperd2661882016-05-17 04:41:48 +00008708#define _mm256_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8709 (__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \
8710 (float const *)(addr), \
8711 (__v8si)(__m256i)(index), \
8712 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008713
Craig Topperd2661882016-05-17 04:41:48 +00008714#define _mm256_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8715 (__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \
8716 (int const *)(addr), \
8717 (__v8si)(__m256i)(index), \
8718 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008719
Simon Pilgrim30db8112016-07-04 13:34:44 +00008720#define _mm256_permutex_pd(X, C) __extension__ ({ \
8721 (__m256d)__builtin_shufflevector((__v4df)(__m256d)(X), \
8722 (__v4df)_mm256_undefined_pd(), \
Craig Topper2a383c92016-07-04 22:18:01 +00008723 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \
8724 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008725
Simon Pilgrim30db8112016-07-04 13:34:44 +00008726#define _mm256_mask_permutex_pd(W, U, X, C) __extension__ ({ \
8727 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8728 (__v4df)_mm256_permutex_pd((X), (C)), \
8729 (__v4df)(__m256d)(W)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008730
Simon Pilgrim30db8112016-07-04 13:34:44 +00008731#define _mm256_maskz_permutex_pd(U, X, C) __extension__ ({ \
8732 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
8733 (__v4df)_mm256_permutex_pd((X), (C)), \
8734 (__v4df)_mm256_setzero_pd()); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008735
Simon Pilgrim30db8112016-07-04 13:34:44 +00008736#define _mm256_permutex_epi64(X, C) __extension__ ({ \
8737 (__m256i)__builtin_shufflevector((__v4di)(__m256i)(X), \
8738 (__v4di)_mm256_undefined_si256(), \
Craig Topper2a383c92016-07-04 22:18:01 +00008739 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \
8740 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008741
Simon Pilgrim30db8112016-07-04 13:34:44 +00008742#define _mm256_mask_permutex_epi64(W, U, X, C) __extension__ ({ \
8743 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8744 (__v4di)_mm256_permutex_epi64((X), (C)), \
8745 (__v4di)(__m256i)(W)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008746
Simon Pilgrim30db8112016-07-04 13:34:44 +00008747#define _mm256_maskz_permutex_epi64(U, X, C) __extension__ ({ \
8748 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
8749 (__v4di)_mm256_permutex_epi64((X), (C)), \
8750 (__v4di)_mm256_setzero_si256()); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008751
8752static __inline__ __m256d __DEFAULT_FN_ATTRS
8753_mm256_permutexvar_pd (__m256i __X, __m256d __Y)
8754{
8755 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8756 (__v4di) __X,
8757 (__v4df) _mm256_undefined_si256 (),
8758 (__mmask8) -1);
8759}
8760
8761static __inline__ __m256d __DEFAULT_FN_ATTRS
8762_mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X,
8763 __m256d __Y)
8764{
8765 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8766 (__v4di) __X,
8767 (__v4df) __W,
8768 (__mmask8) __U);
8769}
8770
8771static __inline__ __m256d __DEFAULT_FN_ATTRS
8772_mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y)
8773{
8774 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
8775 (__v4di) __X,
8776 (__v4df) _mm256_setzero_pd (),
8777 (__mmask8) __U);
8778}
8779
8780static __inline__ __m256i __DEFAULT_FN_ATTRS
8781_mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
8782{
8783 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8784 (__v4di) __X,
8785 (__v4di) _mm256_setzero_si256 (),
8786 (__mmask8) __M);
8787}
8788
8789static __inline__ __m256i __DEFAULT_FN_ATTRS
Michael Zuckermana72b49ef2016-07-05 11:30:31 +00008790_mm256_permutexvar_epi64 ( __m256i __X, __m256i __Y)
Michael Zuckerman8938e832016-04-25 05:32:35 +00008791{
8792 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8793 (__v4di) __X,
8794 (__v4di) _mm256_undefined_si256 (),
8795 (__mmask8) -1);
8796}
8797
8798static __inline__ __m256i __DEFAULT_FN_ATTRS
8799_mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X,
8800 __m256i __Y)
8801{
8802 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
8803 (__v4di) __X,
8804 (__v4di) __W,
8805 __M);
8806}
8807
8808static __inline__ __m256 __DEFAULT_FN_ATTRS
8809_mm256_mask_permutexvar_ps (__m256 __W, __mmask8 __U, __m256i __X,
8810 __m256 __Y)
8811{
8812 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8813 (__v8si) __X,
8814 (__v8sf) __W,
8815 (__mmask8) __U);
8816}
8817
8818static __inline__ __m256 __DEFAULT_FN_ATTRS
8819_mm256_maskz_permutexvar_ps (__mmask8 __U, __m256i __X, __m256 __Y)
8820{
8821 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8822 (__v8si) __X,
8823 (__v8sf) _mm256_setzero_ps (),
8824 (__mmask8) __U);
8825}
8826
8827static __inline__ __m256 __DEFAULT_FN_ATTRS
8828_mm256_permutexvar_ps (__m256i __X, __m256 __Y)
8829{
8830 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
8831 (__v8si) __X,
8832 (__v8sf) _mm256_undefined_si256 (),
8833 (__mmask8) -1);
8834}
8835
8836static __inline__ __m256i __DEFAULT_FN_ATTRS
8837_mm256_maskz_permutexvar_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
8838{
8839 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8840 (__v8si) __X,
8841 (__v8si) _mm256_setzero_si256 (),
8842 __M);
8843}
8844
8845static __inline__ __m256i __DEFAULT_FN_ATTRS
8846_mm256_mask_permutexvar_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
8847 __m256i __Y)
8848{
8849 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8850 (__v8si) __X,
8851 (__v8si) __W,
8852 (__mmask8) __M);
8853}
8854
8855static __inline__ __m256i __DEFAULT_FN_ATTRS
8856_mm256_permutexvar_epi32 (__m256i __X, __m256i __Y)
8857{
8858 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
8859 (__v8si) __X,
8860 (__v8si) _mm256_undefined_si256(),
8861 (__mmask8) -1);
8862}
8863
Craig Topperd2661882016-05-17 04:41:48 +00008864#define _mm_alignr_epi32(A, B, imm) __extension__ ({ \
8865 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8866 (__v4si)(__m128i)(B), (int)(imm), \
8867 (__v4si)_mm_undefined_si128(), \
8868 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008869
Craig Topperd2661882016-05-17 04:41:48 +00008870#define _mm_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
8871 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8872 (__v4si)(__m128i)(B), (int)(imm), \
8873 (__v4si)(__m128i)(W), \
8874 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008875
Craig Topperd2661882016-05-17 04:41:48 +00008876#define _mm_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
8877 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
8878 (__v4si)(__m128i)(B), (int)(imm), \
8879 (__v4si)_mm_setzero_si128(), \
8880 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008881
Craig Topperd2661882016-05-17 04:41:48 +00008882#define _mm256_alignr_epi32(A, B, imm) __extension__ ({ \
8883 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8884 (__v8si)(__m256i)(B), (int)(imm), \
8885 (__v8si)_mm256_undefined_si256(), \
8886 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008887
Craig Topperd2661882016-05-17 04:41:48 +00008888#define _mm256_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
8889 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8890 (__v8si)(__m256i)(B), (int)(imm), \
8891 (__v8si)(__m256i)(W), \
8892 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008893
Craig Topperd2661882016-05-17 04:41:48 +00008894#define _mm256_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
8895 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
8896 (__v8si)(__m256i)(B), (int)(imm), \
8897 (__v8si)_mm256_setzero_si256(), \
8898 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008899
Craig Topperd2661882016-05-17 04:41:48 +00008900#define _mm_alignr_epi64(A, B, imm) __extension__ ({ \
8901 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8902 (__v2di)(__m128i)(B), (int)(imm), \
8903 (__v2di)_mm_setzero_di(), \
8904 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008905
Craig Topperd2661882016-05-17 04:41:48 +00008906#define _mm_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
8907 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8908 (__v2di)(__m128i)(B), (int)(imm), \
8909 (__v2di)(__m128i)(W), \
8910 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008911
Craig Topperd2661882016-05-17 04:41:48 +00008912#define _mm_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
8913 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
8914 (__v2di)(__m128i)(B), (int)(imm), \
8915 (__v2di)_mm_setzero_di(), \
8916 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008917
Craig Topperd2661882016-05-17 04:41:48 +00008918#define _mm256_alignr_epi64(A, B, imm) __extension__ ({ \
8919 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
8920 (__v4di)(__m256i)(B), (int)(imm), \
8921 (__v4di)_mm256_undefined_pd(), \
8922 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008923
Craig Topperd2661882016-05-17 04:41:48 +00008924#define _mm256_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
8925 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
8926 (__v4di)(__m256i)(B), (int)(imm), \
8927 (__v4di)(__m256i)(W), \
8928 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008929
Craig Topperd2661882016-05-17 04:41:48 +00008930#define _mm256_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
8931 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
8932 (__v4di)(__m256i)(B), (int)(imm), \
8933 (__v4di)_mm256_setzero_si256(), \
8934 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00008935
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008936static __inline__ __m128 __DEFAULT_FN_ATTRS
8937_mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A)
8938{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008939 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8940 (__v4sf)_mm_movehdup_ps(__A),
8941 (__v4sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008942}
8943
8944static __inline__ __m128 __DEFAULT_FN_ATTRS
8945_mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A)
8946{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008947 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8948 (__v4sf)_mm_movehdup_ps(__A),
8949 (__v4sf)_mm_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008950}
8951
8952static __inline__ __m256 __DEFAULT_FN_ATTRS
8953_mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A)
8954{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008955 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8956 (__v8sf)_mm256_movehdup_ps(__A),
8957 (__v8sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008958}
8959
8960static __inline__ __m256 __DEFAULT_FN_ATTRS
8961_mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A)
8962{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008963 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8964 (__v8sf)_mm256_movehdup_ps(__A),
8965 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008966}
8967
8968static __inline__ __m128 __DEFAULT_FN_ATTRS
8969_mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A)
8970{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008971 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8972 (__v4sf)_mm_moveldup_ps(__A),
8973 (__v4sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008974}
8975
8976static __inline__ __m128 __DEFAULT_FN_ATTRS
8977_mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A)
8978{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008979 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
8980 (__v4sf)_mm_moveldup_ps(__A),
8981 (__v4sf)_mm_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008982}
8983
8984static __inline__ __m256 __DEFAULT_FN_ATTRS
8985_mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A)
8986{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008987 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8988 (__v8sf)_mm256_moveldup_ps(__A),
8989 (__v8sf)__W);
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008990}
8991
8992static __inline__ __m256 __DEFAULT_FN_ATTRS
8993_mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A)
8994{
Simon Pilgrim275d7212016-07-02 17:16:25 +00008995 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
8996 (__v8sf)_mm256_moveldup_ps(__A),
8997 (__v8sf)_mm256_setzero_ps());
Michael Zuckermanac1e5192016-05-01 14:43:43 +00008998}
8999
Craig Topperd2661882016-05-17 04:41:48 +00009000#define _mm256_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00009001 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
9002 (__v8si)_mm256_shuffle_epi32((A), (I)), \
9003 (__v8si)(__m256i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00009004
Craig Topperd2661882016-05-17 04:41:48 +00009005#define _mm256_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00009006 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
9007 (__v8si)_mm256_shuffle_epi32((A), (I)), \
9008 (__v8si)_mm256_setzero_si256()); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00009009
Craig Topperd2661882016-05-17 04:41:48 +00009010#define _mm_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00009011 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
9012 (__v4si)_mm_shuffle_epi32((A), (I)), \
9013 (__v4si)(__m128i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00009014
Craig Topperd2661882016-05-17 04:41:48 +00009015#define _mm_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00009016 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
9017 (__v4si)_mm_shuffle_epi32((A), (I)), \
9018 (__v4si)_mm_setzero_si128()); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009019
9020static __inline__ __m128d __DEFAULT_FN_ATTRS
9021_mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A)
9022{
Igor Bregeraadb8762016-06-08 13:59:20 +00009023 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
9024 (__v2df) __A,
9025 (__v2df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009026}
9027
9028static __inline__ __m128d __DEFAULT_FN_ATTRS
9029_mm_maskz_mov_pd (__mmask8 __U, __m128d __A)
9030{
Igor Bregeraadb8762016-06-08 13:59:20 +00009031 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
9032 (__v2df) __A,
9033 (__v2df) _mm_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009034}
9035
9036static __inline__ __m256d __DEFAULT_FN_ATTRS
9037_mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A)
9038{
Igor Bregeraadb8762016-06-08 13:59:20 +00009039 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
9040 (__v4df) __A,
9041 (__v4df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009042}
9043
9044static __inline__ __m256d __DEFAULT_FN_ATTRS
9045_mm256_maskz_mov_pd (__mmask8 __U, __m256d __A)
9046{
Igor Bregeraadb8762016-06-08 13:59:20 +00009047 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
9048 (__v4df) __A,
9049 (__v4df) _mm256_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009050}
9051
9052static __inline__ __m128 __DEFAULT_FN_ATTRS
9053_mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A)
9054{
Igor Bregeraadb8762016-06-08 13:59:20 +00009055 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
9056 (__v4sf) __A,
9057 (__v4sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009058}
9059
9060static __inline__ __m128 __DEFAULT_FN_ATTRS
9061_mm_maskz_mov_ps (__mmask8 __U, __m128 __A)
9062{
Igor Bregeraadb8762016-06-08 13:59:20 +00009063 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
9064 (__v4sf) __A,
9065 (__v4sf) _mm_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009066}
9067
9068static __inline__ __m256 __DEFAULT_FN_ATTRS
9069_mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A)
9070{
Igor Bregeraadb8762016-06-08 13:59:20 +00009071 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
9072 (__v8sf) __A,
9073 (__v8sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009074}
9075
9076static __inline__ __m256 __DEFAULT_FN_ATTRS
9077_mm256_maskz_mov_ps (__mmask8 __U, __m256 __A)
9078{
Igor Bregeraadb8762016-06-08 13:59:20 +00009079 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
9080 (__v8sf) __A,
9081 (__v8sf) _mm256_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009082}
9083
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009084static __inline__ __m128 __DEFAULT_FN_ATTRS
9085_mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A)
9086{
9087 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
9088 (__v4sf) __W,
9089 (__mmask8) __U);
9090}
9091
9092static __inline__ __m128 __DEFAULT_FN_ATTRS
9093_mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
9094{
9095 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
9096 (__v4sf)
9097 _mm_setzero_ps (),
9098 (__mmask8) __U);
9099}
9100
9101static __inline__ __m256 __DEFAULT_FN_ATTRS
9102_mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A)
9103{
9104 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
9105 (__v8sf) __W,
9106 (__mmask8) __U);
9107}
9108
9109static __inline__ __m256 __DEFAULT_FN_ATTRS
9110_mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
9111{
9112 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
9113 (__v8sf)
9114 _mm256_setzero_ps (),
9115 (__mmask8) __U);
9116}
9117
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009118static __inline __m128i __DEFAULT_FN_ATTRS
9119_mm_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m128 __A)
9120{
9121 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
9122 (__v8hi) __W,
9123 (__mmask8) __U);
9124}
9125
9126static __inline __m128i __DEFAULT_FN_ATTRS
9127_mm_maskz_cvtps_ph (__mmask8 __U, __m128 __A)
9128{
9129 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
9130 (__v8hi) _mm_setzero_si128 (),
9131 (__mmask8) __U);
9132}
9133
9134#define _mm_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009135 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
9136 (__v8hi)(__m128i)(W), \
9137 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009138
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009139#define _mm_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009140 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
9141 (__v8hi)_mm_setzero_si128(), \
9142 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009143
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009144static __inline __m128i __DEFAULT_FN_ATTRS
9145_mm256_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m256 __A)
9146{
9147 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
9148 (__v8hi) __W,
9149 (__mmask8) __U);
9150}
9151
9152static __inline __m128i __DEFAULT_FN_ATTRS
9153_mm256_maskz_cvtps_ph ( __mmask8 __U, __m256 __A)
9154{
9155 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
9156 (__v8hi) _mm_setzero_si128(),
9157 (__mmask8) __U);
9158}
9159#define _mm256_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009160 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
9161 (__v8hi)(__m128i)(W), \
9162 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009163
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009164#define _mm256_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009165 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
9166 (__v8hi)_mm_setzero_si128(), \
9167 (__mmask8)(U)); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009168
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009169
Michael Kupersteine45af542015-06-30 13:36:19 +00009170#undef __DEFAULT_FN_ATTRS
Eric Christopher4d1851682015-06-17 07:09:20 +00009171
Robert Khasanovb9f3a912014-10-08 17:18:13 +00009172#endif /* __AVX512VLINTRIN_H */