blob: 494e7be59109bc07ca1a205f4db559272a472e3f [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 Christopher99af5b22015-10-27 06:11:03 +000032#define __DEFAULT_FN_ATTRS_BOTH __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bw")))
Eric Christopher4d1851682015-06-17 07:09:20 +000033
Robert Khasanovb9f3a912014-10-08 17:18:13 +000034/* Integer compare */
35
Eric Christopher99af5b22015-10-27 06:11:03 +000036static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Robert Khasanovb9f3a912014-10-08 17:18:13 +000037_mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) {
38 return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b,
39 (__mmask8)-1);
40}
41
Eric Christopher99af5b22015-10-27 06:11:03 +000042static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Robert Khasanovb9f3a912014-10-08 17:18:13 +000043_mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
44 return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b,
45 __u);
46}
47
Michael Kupersteine45af542015-06-30 13:36:19 +000048static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000049_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) {
50 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0,
51 (__mmask8)-1);
52}
53
Michael Kupersteine45af542015-06-30 13:36:19 +000054static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000055_mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
56 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0,
57 __u);
58}
Robert Khasanovb9f3a912014-10-08 17:18:13 +000059
Eric Christopher99af5b22015-10-27 06:11:03 +000060static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Robert Khasanovb9f3a912014-10-08 17:18:13 +000061_mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) {
62 return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b,
63 (__mmask8)-1);
64}
65
Eric Christopher99af5b22015-10-27 06:11:03 +000066static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Robert Khasanovb9f3a912014-10-08 17:18:13 +000067_mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
68 return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b,
69 __u);
70}
71
Michael Kupersteine45af542015-06-30 13:36:19 +000072static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000073_mm256_cmpeq_epu32_mask(__m256i __a, __m256i __b) {
74 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0,
75 (__mmask8)-1);
76}
77
Michael Kupersteine45af542015-06-30 13:36:19 +000078static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000079_mm256_mask_cmpeq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
80 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0,
81 __u);
82}
83
Eric Christopher99af5b22015-10-27 06:11:03 +000084static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Robert Khasanovb9f3a912014-10-08 17:18:13 +000085_mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) {
86 return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b,
87 (__mmask8)-1);
88}
89
Eric Christopher99af5b22015-10-27 06:11:03 +000090static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Robert Khasanovb9f3a912014-10-08 17:18:13 +000091_mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
92 return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b,
93 __u);
94}
95
Michael Kupersteine45af542015-06-30 13:36:19 +000096static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000097_mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) {
98 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0,
99 (__mmask8)-1);
100}
101
Michael Kupersteine45af542015-06-30 13:36:19 +0000102static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000103_mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
104 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0,
105 __u);
106}
Robert Khasanovb9f3a912014-10-08 17:18:13 +0000107
Eric Christopher99af5b22015-10-27 06:11:03 +0000108static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Robert Khasanovb9f3a912014-10-08 17:18:13 +0000109_mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) {
110 return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b,
111 (__mmask8)-1);
112}
113
Eric Christopher99af5b22015-10-27 06:11:03 +0000114static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Robert Khasanovb9f3a912014-10-08 17:18:13 +0000115_mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
116 return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b,
117 __u);
118}
119
Michael Kupersteine45af542015-06-30 13:36:19 +0000120static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000121_mm256_cmpeq_epu64_mask(__m256i __a, __m256i __b) {
122 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0,
123 (__mmask8)-1);
124}
125
Michael Kupersteine45af542015-06-30 13:36:19 +0000126static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000127_mm256_mask_cmpeq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
128 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0,
129 __u);
130}
131
132
Michael Kupersteine45af542015-06-30 13:36:19 +0000133static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000134_mm_cmpge_epi32_mask(__m128i __a, __m128i __b) {
135 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5,
136 (__mmask8)-1);
137}
138
Michael Kupersteine45af542015-06-30 13:36:19 +0000139static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000140_mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
141 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5,
142 __u);
143}
144
Michael Kupersteine45af542015-06-30 13:36:19 +0000145static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000146_mm_cmpge_epu32_mask(__m128i __a, __m128i __b) {
147 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5,
148 (__mmask8)-1);
149}
150
Michael Kupersteine45af542015-06-30 13:36:19 +0000151static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000152_mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
153 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5,
154 __u);
155}
156
Michael Kupersteine45af542015-06-30 13:36:19 +0000157static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000158_mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) {
159 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5,
160 (__mmask8)-1);
161}
162
Michael Kupersteine45af542015-06-30 13:36:19 +0000163static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000164_mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
165 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5,
166 __u);
167}
168
Michael Kupersteine45af542015-06-30 13:36:19 +0000169static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000170_mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) {
171 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5,
172 (__mmask8)-1);
173}
174
Michael Kupersteine45af542015-06-30 13:36:19 +0000175static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000176_mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
177 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5,
178 __u);
179}
180
Michael Kupersteine45af542015-06-30 13:36:19 +0000181static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000182_mm_cmpge_epi64_mask(__m128i __a, __m128i __b) {
183 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5,
184 (__mmask8)-1);
185}
186
Michael Kupersteine45af542015-06-30 13:36:19 +0000187static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000188_mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
189 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5,
190 __u);
191}
192
Michael Kupersteine45af542015-06-30 13:36:19 +0000193static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000194_mm_cmpge_epu64_mask(__m128i __a, __m128i __b) {
195 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5,
196 (__mmask8)-1);
197}
198
Michael Kupersteine45af542015-06-30 13:36:19 +0000199static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000200_mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
201 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5,
202 __u);
203}
204
Michael Kupersteine45af542015-06-30 13:36:19 +0000205static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000206_mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) {
207 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5,
208 (__mmask8)-1);
209}
210
Michael Kupersteine45af542015-06-30 13:36:19 +0000211static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000212_mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
213 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5,
214 __u);
215}
216
Michael Kupersteine45af542015-06-30 13:36:19 +0000217static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000218_mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) {
219 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5,
220 (__mmask8)-1);
221}
222
Michael Kupersteine45af542015-06-30 13:36:19 +0000223static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000224_mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
225 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5,
226 __u);
227}
228
Eric Christopher99af5b22015-10-27 06:11:03 +0000229static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Craig Topper2f25a5a2015-01-26 08:11:49 +0000230_mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) {
231 return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b,
232 (__mmask8)-1);
233}
234
Eric Christopher99af5b22015-10-27 06:11:03 +0000235static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Craig Topper2f25a5a2015-01-26 08:11:49 +0000236_mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
237 return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b,
238 __u);
239}
240
Michael Kupersteine45af542015-06-30 13:36:19 +0000241static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000242_mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) {
243 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6,
244 (__mmask8)-1);
245}
246
Michael Kupersteine45af542015-06-30 13:36:19 +0000247static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000248_mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
249 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6,
250 __u);
251}
252
Eric Christopher99af5b22015-10-27 06:11:03 +0000253static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Craig Topper2f25a5a2015-01-26 08:11:49 +0000254_mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) {
255 return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b,
256 (__mmask8)-1);
257}
258
Eric Christopher99af5b22015-10-27 06:11:03 +0000259static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Craig Topper2f25a5a2015-01-26 08:11:49 +0000260_mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
261 return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b,
262 __u);
263}
264
Michael Kupersteine45af542015-06-30 13:36:19 +0000265static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000266_mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) {
267 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6,
268 (__mmask8)-1);
269}
270
Michael Kupersteine45af542015-06-30 13:36:19 +0000271static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000272_mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
273 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6,
274 __u);
275}
276
Eric Christopher99af5b22015-10-27 06:11:03 +0000277static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Craig Topper2f25a5a2015-01-26 08:11:49 +0000278_mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) {
279 return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b,
280 (__mmask8)-1);
281}
282
Eric Christopher99af5b22015-10-27 06:11:03 +0000283static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Craig Topper2f25a5a2015-01-26 08:11:49 +0000284_mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
285 return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b,
286 __u);
287}
288
Michael Kupersteine45af542015-06-30 13:36:19 +0000289static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000290_mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) {
291 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6,
292 (__mmask8)-1);
293}
294
Michael Kupersteine45af542015-06-30 13:36:19 +0000295static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000296_mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
297 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6,
298 __u);
299}
300
Eric Christopher99af5b22015-10-27 06:11:03 +0000301static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Craig Topper2f25a5a2015-01-26 08:11:49 +0000302_mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) {
303 return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b,
304 (__mmask8)-1);
305}
306
Eric Christopher99af5b22015-10-27 06:11:03 +0000307static __inline__ __mmask8 __DEFAULT_FN_ATTRS_BOTH
Craig Topper2f25a5a2015-01-26 08:11:49 +0000308_mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
309 return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b,
310 __u);
311}
312
Michael Kupersteine45af542015-06-30 13:36:19 +0000313static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000314_mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) {
315 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6,
316 (__mmask8)-1);
317}
318
Michael Kupersteine45af542015-06-30 13:36:19 +0000319static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000320_mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
321 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6,
322 __u);
323}
324
Michael Kupersteine45af542015-06-30 13:36:19 +0000325static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000326_mm_cmple_epi32_mask(__m128i __a, __m128i __b) {
327 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2,
328 (__mmask8)-1);
329}
330
Michael Kupersteine45af542015-06-30 13:36:19 +0000331static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000332_mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
333 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2,
334 __u);
335}
336
Michael Kupersteine45af542015-06-30 13:36:19 +0000337static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000338_mm_cmple_epu32_mask(__m128i __a, __m128i __b) {
339 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2,
340 (__mmask8)-1);
341}
342
Michael Kupersteine45af542015-06-30 13:36:19 +0000343static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000344_mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
345 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2,
346 __u);
347}
348
Michael Kupersteine45af542015-06-30 13:36:19 +0000349static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000350_mm256_cmple_epi32_mask(__m256i __a, __m256i __b) {
351 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2,
352 (__mmask8)-1);
353}
354
Michael Kupersteine45af542015-06-30 13:36:19 +0000355static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000356_mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
357 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2,
358 __u);
359}
360
Michael Kupersteine45af542015-06-30 13:36:19 +0000361static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000362_mm256_cmple_epu32_mask(__m256i __a, __m256i __b) {
363 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2,
364 (__mmask8)-1);
365}
366
Michael Kupersteine45af542015-06-30 13:36:19 +0000367static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000368_mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
369 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2,
370 __u);
371}
372
Michael Kupersteine45af542015-06-30 13:36:19 +0000373static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000374_mm_cmple_epi64_mask(__m128i __a, __m128i __b) {
375 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2,
376 (__mmask8)-1);
377}
378
Michael Kupersteine45af542015-06-30 13:36:19 +0000379static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000380_mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
381 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2,
382 __u);
383}
384
Michael Kupersteine45af542015-06-30 13:36:19 +0000385static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000386_mm_cmple_epu64_mask(__m128i __a, __m128i __b) {
387 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2,
388 (__mmask8)-1);
389}
390
Michael Kupersteine45af542015-06-30 13:36:19 +0000391static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000392_mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
393 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2,
394 __u);
395}
396
Michael Kupersteine45af542015-06-30 13:36:19 +0000397static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000398_mm256_cmple_epi64_mask(__m256i __a, __m256i __b) {
399 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2,
400 (__mmask8)-1);
401}
402
Michael Kupersteine45af542015-06-30 13:36:19 +0000403static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000404_mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
405 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2,
406 __u);
407}
408
Michael Kupersteine45af542015-06-30 13:36:19 +0000409static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000410_mm256_cmple_epu64_mask(__m256i __a, __m256i __b) {
411 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2,
412 (__mmask8)-1);
413}
414
Michael Kupersteine45af542015-06-30 13:36:19 +0000415static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000416_mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
417 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2,
418 __u);
419}
420
Michael Kupersteine45af542015-06-30 13:36:19 +0000421static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000422_mm_cmplt_epi32_mask(__m128i __a, __m128i __b) {
423 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1,
424 (__mmask8)-1);
425}
426
Michael Kupersteine45af542015-06-30 13:36:19 +0000427static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000428_mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
429 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1,
430 __u);
431}
432
Michael Kupersteine45af542015-06-30 13:36:19 +0000433static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000434_mm_cmplt_epu32_mask(__m128i __a, __m128i __b) {
435 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1,
436 (__mmask8)-1);
437}
438
Michael Kupersteine45af542015-06-30 13:36:19 +0000439static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000440_mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
441 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1,
442 __u);
443}
444
Michael Kupersteine45af542015-06-30 13:36:19 +0000445static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000446_mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) {
447 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1,
448 (__mmask8)-1);
449}
450
Michael Kupersteine45af542015-06-30 13:36:19 +0000451static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000452_mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
453 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1,
454 __u);
455}
456
Michael Kupersteine45af542015-06-30 13:36:19 +0000457static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000458_mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) {
459 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1,
460 (__mmask8)-1);
461}
462
Michael Kupersteine45af542015-06-30 13:36:19 +0000463static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000464_mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
465 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1,
466 __u);
467}
468
Michael Kupersteine45af542015-06-30 13:36:19 +0000469static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000470_mm_cmplt_epi64_mask(__m128i __a, __m128i __b) {
471 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1,
472 (__mmask8)-1);
473}
474
Michael Kupersteine45af542015-06-30 13:36:19 +0000475static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000476_mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
477 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1,
478 __u);
479}
480
Michael Kupersteine45af542015-06-30 13:36:19 +0000481static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000482_mm_cmplt_epu64_mask(__m128i __a, __m128i __b) {
483 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1,
484 (__mmask8)-1);
485}
486
Michael Kupersteine45af542015-06-30 13:36:19 +0000487static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000488_mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
489 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1,
490 __u);
491}
492
Michael Kupersteine45af542015-06-30 13:36:19 +0000493static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000494_mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) {
495 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1,
496 (__mmask8)-1);
497}
498
Michael Kupersteine45af542015-06-30 13:36:19 +0000499static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000500_mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
501 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1,
502 __u);
503}
504
Michael Kupersteine45af542015-06-30 13:36:19 +0000505static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000506_mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) {
507 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1,
508 (__mmask8)-1);
509}
510
Michael Kupersteine45af542015-06-30 13:36:19 +0000511static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000512_mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
513 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1,
514 __u);
515}
516
Michael Kupersteine45af542015-06-30 13:36:19 +0000517static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000518_mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) {
519 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4,
520 (__mmask8)-1);
521}
522
Michael Kupersteine45af542015-06-30 13:36:19 +0000523static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000524_mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
525 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4,
526 __u);
527}
528
Michael Kupersteine45af542015-06-30 13:36:19 +0000529static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000530_mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) {
531 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4,
532 (__mmask8)-1);
533}
534
Michael Kupersteine45af542015-06-30 13:36:19 +0000535static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000536_mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
537 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4,
538 __u);
539}
540
Michael Kupersteine45af542015-06-30 13:36:19 +0000541static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000542_mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) {
543 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4,
544 (__mmask8)-1);
545}
546
Michael Kupersteine45af542015-06-30 13:36:19 +0000547static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000548_mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
549 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4,
550 __u);
551}
552
Michael Kupersteine45af542015-06-30 13:36:19 +0000553static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000554_mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) {
555 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4,
556 (__mmask8)-1);
557}
558
Michael Kupersteine45af542015-06-30 13:36:19 +0000559static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000560_mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
561 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4,
562 __u);
563}
564
Michael Kupersteine45af542015-06-30 13:36:19 +0000565static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000566_mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) {
567 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4,
568 (__mmask8)-1);
569}
570
Michael Kupersteine45af542015-06-30 13:36:19 +0000571static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000572_mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
573 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4,
574 __u);
575}
576
Michael Kupersteine45af542015-06-30 13:36:19 +0000577static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000578_mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) {
579 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4,
580 (__mmask8)-1);
581}
582
Michael Kupersteine45af542015-06-30 13:36:19 +0000583static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000584_mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
585 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4,
586 __u);
587}
588
Michael Kupersteine45af542015-06-30 13:36:19 +0000589static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000590_mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) {
591 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4,
592 (__mmask8)-1);
593}
594
Michael Kupersteine45af542015-06-30 13:36:19 +0000595static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000596_mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
597 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4,
598 __u);
599}
600
Michael Kupersteine45af542015-06-30 13:36:19 +0000601static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000602_mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) {
603 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4,
604 (__mmask8)-1);
605}
606
Michael Kupersteine45af542015-06-30 13:36:19 +0000607static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000608_mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
609 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4,
610 __u);
611}
612
Michael Kupersteine45af542015-06-30 13:36:19 +0000613static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000614_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
615 __m256i __B)
616{
617 return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
618 (__v8si) __B,
619 (__v8si) __W,
620 (__mmask8) __U);
621}
622
Michael Kupersteine45af542015-06-30 13:36:19 +0000623static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000624_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
625{
626 return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
627 (__v8si) __B,
628 (__v8si)
629 _mm256_setzero_si256 (),
630 (__mmask8) __U);
631}
632
Michael Kupersteine45af542015-06-30 13:36:19 +0000633static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000634_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
635 __m256i __B)
636{
637 return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
638 (__v4di) __B,
639 (__v4di) __W,
640 (__mmask8) __U);
641}
642
Michael Kupersteine45af542015-06-30 13:36:19 +0000643static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000644_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
645{
646 return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
647 (__v4di) __B,
648 (__v4di)
649 _mm256_setzero_si256 (),
650 (__mmask8) __U);
651}
652
Michael Kupersteine45af542015-06-30 13:36:19 +0000653static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000654_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
655 __m256i __B)
656{
657 return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
658 (__v8si) __B,
659 (__v8si) __W,
660 (__mmask8) __U);
661}
662
Michael Kupersteine45af542015-06-30 13:36:19 +0000663static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000664_mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
665{
666 return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
667 (__v8si) __B,
668 (__v8si)
669 _mm256_setzero_si256 (),
670 (__mmask8) __U);
671}
672
Michael Kupersteine45af542015-06-30 13:36:19 +0000673static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000674_mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
675 __m256i __B)
676{
677 return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
678 (__v4di) __B,
679 (__v4di) __W,
680 (__mmask8) __U);
681}
682
Michael Kupersteine45af542015-06-30 13:36:19 +0000683static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000684_mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
685{
686 return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
687 (__v4di) __B,
688 (__v4di)
689 _mm256_setzero_si256 (),
690 (__mmask8) __U);
691}
692
Michael Kupersteine45af542015-06-30 13:36:19 +0000693static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000694_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
695 __m128i __B)
696{
697 return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
698 (__v4si) __B,
699 (__v4si) __W,
700 (__mmask8) __U);
701}
702
Michael Kupersteine45af542015-06-30 13:36:19 +0000703static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000704_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
705{
706 return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
707 (__v4si) __B,
708 (__v4si)
709 _mm_setzero_si128 (),
710 (__mmask8) __U);
711}
712
Michael Kupersteine45af542015-06-30 13:36:19 +0000713static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000714_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
715 __m128i __B)
716{
717 return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
718 (__v2di) __B,
719 (__v2di) __W,
720 (__mmask8) __U);
721}
722
Michael Kupersteine45af542015-06-30 13:36:19 +0000723static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000724_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
725{
726 return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
727 (__v2di) __B,
728 (__v2di)
729 _mm_setzero_si128 (),
730 (__mmask8) __U);
731}
732
Michael Kupersteine45af542015-06-30 13:36:19 +0000733static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000734_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
735 __m128i __B)
736{
737 return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
738 (__v4si) __B,
739 (__v4si) __W,
740 (__mmask8) __U);
741}
742
Michael Kupersteine45af542015-06-30 13:36:19 +0000743static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000744_mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
745{
746 return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
747 (__v4si) __B,
748 (__v4si)
749 _mm_setzero_si128 (),
750 (__mmask8) __U);
751}
752
Michael Kupersteine45af542015-06-30 13:36:19 +0000753static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000754_mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
755 __m128i __B)
756{
757 return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
758 (__v2di) __B,
759 (__v2di) __W,
760 (__mmask8) __U);
761}
762
Michael Kupersteine45af542015-06-30 13:36:19 +0000763static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000764_mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
765{
766 return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
767 (__v2di) __B,
768 (__v2di)
769 _mm_setzero_si128 (),
770 (__mmask8) __U);
771}
772
Michael Kupersteine45af542015-06-30 13:36:19 +0000773static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000774_mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
775 __m256i __Y)
776{
777 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
778 (__v8si) __Y,
779 (__v4di) __W, __M);
780}
781
Michael Kupersteine45af542015-06-30 13:36:19 +0000782static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000783_mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
784{
785 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
786 (__v8si) __Y,
787 (__v4di)
788 _mm256_setzero_si256 (),
789 __M);
790}
791
Michael Kupersteine45af542015-06-30 13:36:19 +0000792static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000793_mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X,
794 __m128i __Y)
795{
796 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
797 (__v4si) __Y,
798 (__v2di) __W, __M);
799}
800
Michael Kupersteine45af542015-06-30 13:36:19 +0000801static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000802_mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y)
803{
804 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
805 (__v4si) __Y,
806 (__v2di)
807 _mm_setzero_si128 (),
808 __M);
809}
810
Michael Kupersteine45af542015-06-30 13:36:19 +0000811static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000812_mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X,
813 __m256i __Y)
814{
815 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
816 (__v8si) __Y,
817 (__v4di) __W, __M);
818}
819
Michael Kupersteine45af542015-06-30 13:36:19 +0000820static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000821_mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y)
822{
823 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
824 (__v8si) __Y,
825 (__v4di)
826 _mm256_setzero_si256 (),
827 __M);
828}
829
Michael Kupersteine45af542015-06-30 13:36:19 +0000830static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000831_mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X,
832 __m128i __Y)
833{
834 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
835 (__v4si) __Y,
836 (__v2di) __W, __M);
837}
838
Michael Kupersteine45af542015-06-30 13:36:19 +0000839static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000840_mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y)
841{
842 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
843 (__v4si) __Y,
844 (__v2di)
845 _mm_setzero_si128 (),
846 __M);
847}
848
Michael Kupersteine45af542015-06-30 13:36:19 +0000849static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000850_mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B)
851{
852 return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
853 (__v8si) __B,
854 (__v8si)
855 _mm256_setzero_si256 (),
856 __M);
857}
858
Michael Kupersteine45af542015-06-30 13:36:19 +0000859static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000860_mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
861 __m256i __B)
862{
863 return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
864 (__v8si) __B,
865 (__v8si) __W, __M);
866}
867
Michael Kupersteine45af542015-06-30 13:36:19 +0000868static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000869_mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
870{
871 return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
872 (__v4si) __B,
873 (__v4si)
874 _mm_setzero_si128 (),
875 __M);
876}
877
Michael Kupersteine45af542015-06-30 13:36:19 +0000878static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000879_mm_mask_mullo_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
880 __m128i __B)
881{
882 return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
883 (__v4si) __B,
884 (__v4si) __W, __M);
885}
886
Michael Kupersteine45af542015-06-30 13:36:19 +0000887static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000888_mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
889 __m256i __B)
890{
891 return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
892 (__v8si) __B,
893 (__v8si) __W,
894 (__mmask8) __U);
895}
896
Michael Kupersteine45af542015-06-30 13:36:19 +0000897static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000898_mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
899{
900 return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
901 (__v8si) __B,
902 (__v8si)
903 _mm256_setzero_si256 (),
904 (__mmask8) __U);
905}
906
Michael Kupersteine45af542015-06-30 13:36:19 +0000907static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000908_mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
909{
910 return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
911 (__v4si) __B,
912 (__v4si) __W,
913 (__mmask8) __U);
914}
915
Michael Kupersteine45af542015-06-30 13:36:19 +0000916static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000917_mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
918{
919 return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
920 (__v4si) __B,
921 (__v4si)
922 _mm_setzero_si128 (),
923 (__mmask8) __U);
924}
925
Michael Kupersteine45af542015-06-30 13:36:19 +0000926static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000927_mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
928 __m256i __B)
929{
930 return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
931 (__v8si) __B,
932 (__v8si) __W,
933 (__mmask8) __U);
934}
935
Michael Kupersteine45af542015-06-30 13:36:19 +0000936static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000937_mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
938{
939 return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
940 (__v8si) __B,
941 (__v8si)
942 _mm256_setzero_si256 (),
943 (__mmask8) __U);
944}
945
Michael Kupersteine45af542015-06-30 13:36:19 +0000946static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000947_mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
948 __m128i __B)
949{
950 return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
951 (__v4si) __B,
952 (__v4si) __W,
953 (__mmask8) __U);
954}
955
Michael Kupersteine45af542015-06-30 13:36:19 +0000956static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000957_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
958{
959 return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
960 (__v4si) __B,
961 (__v4si)
962 _mm_setzero_si128 (),
963 (__mmask8) __U);
964}
965
Michael Kupersteine45af542015-06-30 13:36:19 +0000966static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000967_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
968 __m256i __B)
969{
970 return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
971 (__v8si) __B,
972 (__v8si) __W,
973 (__mmask8) __U);
974}
975
Michael Kupersteine45af542015-06-30 13:36:19 +0000976static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000977_mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
978{
979 return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
980 (__v8si) __B,
981 (__v8si)
982 _mm256_setzero_si256 (),
983 (__mmask8) __U);
984}
985
Michael Kupersteine45af542015-06-30 13:36:19 +0000986static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000987_mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
988{
989 return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
990 (__v4si) __B,
991 (__v4si) __W,
992 (__mmask8) __U);
993}
994
Michael Kupersteine45af542015-06-30 13:36:19 +0000995static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000996_mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
997{
998 return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
999 (__v4si) __B,
1000 (__v4si)
1001 _mm_setzero_si128 (),
1002 (__mmask8) __U);
1003}
1004
Michael Kupersteine45af542015-06-30 13:36:19 +00001005static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001006_mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
1007 __m256i __B)
1008{
1009 return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
1010 (__v8si) __B,
1011 (__v8si) __W,
1012 (__mmask8) __U);
1013}
1014
Michael Kupersteine45af542015-06-30 13:36:19 +00001015static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001016_mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
1017{
1018 return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
1019 (__v8si) __B,
1020 (__v8si)
1021 _mm256_setzero_si256 (),
1022 (__mmask8) __U);
1023}
1024
Michael Kupersteine45af542015-06-30 13:36:19 +00001025static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001026_mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
1027 __m128i __B)
1028{
1029 return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
1030 (__v4si) __B,
1031 (__v4si) __W,
1032 (__mmask8) __U);
1033}
1034
Michael Kupersteine45af542015-06-30 13:36:19 +00001035static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001036_mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
1037{
1038 return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
1039 (__v4si) __B,
1040 (__v4si)
1041 _mm_setzero_si128 (),
1042 (__mmask8) __U);
1043}
1044
Michael Kupersteine45af542015-06-30 13:36:19 +00001045static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001046_mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1047 __m256i __B)
1048{
1049 return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
1050 (__v4di) __B,
1051 (__v4di) __W, __U);
1052}
1053
Michael Kupersteine45af542015-06-30 13:36:19 +00001054static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001055_mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1056{
1057 return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
1058 (__v4di) __B,
1059 (__v4di)
1060 _mm256_setzero_pd (),
1061 __U);
1062}
1063
Michael Kupersteine45af542015-06-30 13:36:19 +00001064static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001065_mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1066 __m128i __B)
1067{
1068 return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
1069 (__v2di) __B,
1070 (__v2di) __W, __U);
1071}
1072
Michael Kupersteine45af542015-06-30 13:36:19 +00001073static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001074_mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1075{
1076 return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
1077 (__v2di) __B,
1078 (__v2di)
1079 _mm_setzero_pd (),
1080 __U);
1081}
1082
Michael Kupersteine45af542015-06-30 13:36:19 +00001083static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001084_mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1085 __m256i __B)
1086{
1087 return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
1088 (__v4di) __B,
1089 (__v4di) __W, __U);
1090}
1091
Michael Kupersteine45af542015-06-30 13:36:19 +00001092static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001093_mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1094{
1095 return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
1096 (__v4di) __B,
1097 (__v4di)
1098 _mm256_setzero_pd (),
1099 __U);
1100}
1101
Michael Kupersteine45af542015-06-30 13:36:19 +00001102static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001103_mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1104 __m128i __B)
1105{
1106 return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
1107 (__v2di) __B,
1108 (__v2di) __W, __U);
1109}
1110
Michael Kupersteine45af542015-06-30 13:36:19 +00001111static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001112_mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1113{
1114 return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
1115 (__v2di) __B,
1116 (__v2di)
1117 _mm_setzero_pd (),
1118 __U);
1119}
1120
Michael Kupersteine45af542015-06-30 13:36:19 +00001121static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001122_mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1123 __m256i __B)
1124{
1125 return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
1126 (__v4di) __B,
1127 (__v4di) __W,
1128 (__mmask8) __U);
1129}
1130
Michael Kupersteine45af542015-06-30 13:36:19 +00001131static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001132_mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1133{
1134 return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
1135 (__v4di) __B,
1136 (__v4di)
1137 _mm256_setzero_si256 (),
1138 (__mmask8) __U);
1139}
1140
Michael Kupersteine45af542015-06-30 13:36:19 +00001141static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001142_mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1143{
1144 return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
1145 (__v2di) __B,
1146 (__v2di) __W,
1147 (__mmask8) __U);
1148}
1149
Michael Kupersteine45af542015-06-30 13:36:19 +00001150static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001151_mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1152{
1153 return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
1154 (__v2di) __B,
1155 (__v2di)
1156 _mm_setzero_si128 (),
1157 (__mmask8) __U);
1158}
1159
Michael Kupersteine45af542015-06-30 13:36:19 +00001160static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001161_mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1162 __m256i __B)
1163{
1164 return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
1165 (__v4di) __B,
1166 (__v4di) __W,
1167 (__mmask8) __U);
1168}
1169
Michael Kupersteine45af542015-06-30 13:36:19 +00001170static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001171_mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1172{
1173 return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
1174 (__v4di) __B,
1175 (__v4di)
1176 _mm256_setzero_si256 (),
1177 (__mmask8) __U);
1178}
1179
Michael Kupersteine45af542015-06-30 13:36:19 +00001180static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001181_mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1182 __m128i __B)
1183{
1184 return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
1185 (__v2di) __B,
1186 (__v2di) __W,
1187 (__mmask8) __U);
1188}
1189
Michael Kupersteine45af542015-06-30 13:36:19 +00001190static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001191_mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1192{
1193 return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
1194 (__v2di) __B,
1195 (__v2di)
1196 _mm_setzero_si128 (),
1197 (__mmask8) __U);
1198}
1199
Craig Topper2f25a5a2015-01-26 08:11:49 +00001200#define _mm_cmp_epi32_mask(a, b, p) __extension__ ({ \
1201 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
1202 (__v4si)(__m128i)(b), \
1203 (p), (__mmask8)-1); })
1204
1205#define _mm_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1206 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
1207 (__v4si)(__m128i)(b), \
1208 (p), (__mmask8)(m)); })
1209
1210#define _mm_cmp_epu32_mask(a, b, p) __extension__ ({ \
1211 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
1212 (__v4si)(__m128i)(b), \
1213 (p), (__mmask8)-1); })
1214
1215#define _mm_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1216 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
1217 (__v4si)(__m128i)(b), \
1218 (p), (__mmask8)(m)); })
1219
1220#define _mm256_cmp_epi32_mask(a, b, p) __extension__ ({ \
1221 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
1222 (__v8si)(__m256i)(b), \
1223 (p), (__mmask8)-1); })
1224
1225#define _mm256_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1226 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
1227 (__v8si)(__m256i)(b), \
1228 (p), (__mmask8)(m)); })
1229
1230#define _mm256_cmp_epu32_mask(a, b, p) __extension__ ({ \
1231 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
1232 (__v8si)(__m256i)(b), \
1233 (p), (__mmask8)-1); })
1234
1235#define _mm256_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1236 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
1237 (__v8si)(__m256i)(b), \
1238 (p), (__mmask8)(m)); })
1239
1240#define _mm_cmp_epi64_mask(a, b, p) __extension__ ({ \
1241 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
1242 (__v2di)(__m128i)(b), \
1243 (p), (__mmask8)-1); })
1244
1245#define _mm_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1246 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
1247 (__v2di)(__m128i)(b), \
1248 (p), (__mmask8)(m)); })
1249
1250#define _mm_cmp_epu64_mask(a, b, p) __extension__ ({ \
1251 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
1252 (__v2di)(__m128i)(b), \
1253 (p), (__mmask8)-1); })
1254
1255#define _mm_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1256 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
1257 (__v2di)(__m128i)(b), \
1258 (p), (__mmask8)(m)); })
1259
1260#define _mm256_cmp_epi64_mask(a, b, p) __extension__ ({ \
1261 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
1262 (__v4di)(__m256i)(b), \
1263 (p), (__mmask8)-1); })
1264
1265#define _mm256_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1266 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
1267 (__v4di)(__m256i)(b), \
1268 (p), (__mmask8)(m)); })
1269
1270#define _mm256_cmp_epu64_mask(a, b, p) __extension__ ({ \
1271 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
1272 (__v4di)(__m256i)(b), \
1273 (p), (__mmask8)-1); })
1274
1275#define _mm256_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1276 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
1277 (__v4di)(__m256i)(b), \
1278 (p), (__mmask8)(m)); })
1279
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001280#define _mm256_cmp_ps_mask(a, b, p) __extension__ ({ \
1281 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
1282 (__v8sf)(__m256)(b), \
1283 (p), (__mmask8)-1); })
1284
1285#define _mm256_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
1286 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
1287 (__v8sf)(__m256)(b), \
1288 (p), (__mmask8)(m)); })
1289
1290#define _mm256_cmp_pd_mask(a, b, p) __extension__ ({ \
1291 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256)(a), \
1292 (__v4df)(__m256)(b), \
1293 (p), (__mmask8)-1); })
1294
1295#define _mm256_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
1296 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256)(a), \
1297 (__v4df)(__m256)(b), \
1298 (p), (__mmask8)(m)); })
1299
1300#define _mm128_cmp_ps_mask(a, b, p) __extension__ ({ \
1301 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
1302 (__v4sf)(__m128)(b), \
1303 (p), (__mmask8)-1); })
1304
1305#define _mm128_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
1306 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
1307 (__v4sf)(__m128)(b), \
1308 (p), (__mmask8)(m)); })
1309
1310#define _mm128_cmp_pd_mask(a, b, p) __extension__ ({ \
1311 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128)(a), \
1312 (__v2df)(__m128)(b), \
1313 (p), (__mmask8)-1); })
1314
1315#define _mm128_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
1316 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128)(a), \
1317 (__v2df)(__m128)(b), \
1318 (p), (__mmask8)(m)); })
Eric Christopher4d1851682015-06-17 07:09:20 +00001319
Michael Kupersteine45af542015-06-30 13:36:19 +00001320static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001321_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1322{
1323 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1324 (__v2df) __B,
1325 (__v2df) __C,
1326 (__mmask8) __U);
1327}
1328
Michael Kupersteine45af542015-06-30 13:36:19 +00001329static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001330_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1331{
1332 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 ((__v2df) __A,
1333 (__v2df) __B,
1334 (__v2df) __C,
1335 (__mmask8) __U);
1336}
1337
Michael Kupersteine45af542015-06-30 13:36:19 +00001338static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001339_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1340{
1341 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1342 (__v2df) __B,
1343 (__v2df) __C,
1344 (__mmask8) __U);
1345}
1346
Michael Kupersteine45af542015-06-30 13:36:19 +00001347static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001348_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1349{
1350 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1351 (__v2df) __B,
1352 -(__v2df) __C,
1353 (__mmask8) __U);
1354}
1355
Michael Kupersteine45af542015-06-30 13:36:19 +00001356static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001357_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1358{
1359 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1360 (__v2df) __B,
1361 -(__v2df) __C,
1362 (__mmask8) __U);
1363}
1364
Michael Kupersteine45af542015-06-30 13:36:19 +00001365static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001366_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1367{
1368 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 (-(__v2df) __A,
1369 (__v2df) __B,
1370 (__v2df) __C,
1371 (__mmask8) __U);
1372}
1373
Michael Kupersteine45af542015-06-30 13:36:19 +00001374static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001375_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1376{
1377 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1378 (__v2df) __B,
1379 (__v2df) __C,
1380 (__mmask8) __U);
1381}
1382
Michael Kupersteine45af542015-06-30 13:36:19 +00001383static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001384_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1385{
1386 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1387 (__v2df) __B,
1388 -(__v2df) __C,
1389 (__mmask8) __U);
1390}
1391
Michael Kupersteine45af542015-06-30 13:36:19 +00001392static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001393_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1394{
1395 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1396 (__v4df) __B,
1397 (__v4df) __C,
1398 (__mmask8) __U);
1399}
1400
Michael Kupersteine45af542015-06-30 13:36:19 +00001401static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001402_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1403{
1404 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 ((__v4df) __A,
1405 (__v4df) __B,
1406 (__v4df) __C,
1407 (__mmask8) __U);
1408}
1409
Michael Kupersteine45af542015-06-30 13:36:19 +00001410static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001411_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1412{
1413 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1414 (__v4df) __B,
1415 (__v4df) __C,
1416 (__mmask8) __U);
1417}
1418
Michael Kupersteine45af542015-06-30 13:36:19 +00001419static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001420_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1421{
1422 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1423 (__v4df) __B,
1424 -(__v4df) __C,
1425 (__mmask8) __U);
1426}
1427
Michael Kupersteine45af542015-06-30 13:36:19 +00001428static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001429_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1430{
1431 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1432 (__v4df) __B,
1433 -(__v4df) __C,
1434 (__mmask8) __U);
1435}
1436
Michael Kupersteine45af542015-06-30 13:36:19 +00001437static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001438_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1439{
1440 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 (-(__v4df) __A,
1441 (__v4df) __B,
1442 (__v4df) __C,
1443 (__mmask8) __U);
1444}
1445
Michael Kupersteine45af542015-06-30 13:36:19 +00001446static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001447_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1448{
1449 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1450 (__v4df) __B,
1451 (__v4df) __C,
1452 (__mmask8) __U);
1453}
1454
Michael Kupersteine45af542015-06-30 13:36:19 +00001455static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001456_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1457{
1458 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1459 (__v4df) __B,
1460 -(__v4df) __C,
1461 (__mmask8) __U);
1462}
1463
Michael Kupersteine45af542015-06-30 13:36:19 +00001464static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001465_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1466{
1467 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1468 (__v4sf) __B,
1469 (__v4sf) __C,
1470 (__mmask8) __U);
1471}
1472
Michael Kupersteine45af542015-06-30 13:36:19 +00001473static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001474_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1475{
1476 return (__m128) __builtin_ia32_vfmaddps128_mask3 ((__v4sf) __A,
1477 (__v4sf) __B,
1478 (__v4sf) __C,
1479 (__mmask8) __U);
1480}
1481
Michael Kupersteine45af542015-06-30 13:36:19 +00001482static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001483_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1484{
1485 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1486 (__v4sf) __B,
1487 (__v4sf) __C,
1488 (__mmask8) __U);
1489}
1490
Michael Kupersteine45af542015-06-30 13:36:19 +00001491static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001492_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1493{
1494 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1495 (__v4sf) __B,
1496 -(__v4sf) __C,
1497 (__mmask8) __U);
1498}
1499
Michael Kupersteine45af542015-06-30 13:36:19 +00001500static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001501_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1502{
1503 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1504 (__v4sf) __B,
1505 -(__v4sf) __C,
1506 (__mmask8) __U);
1507}
1508
Michael Kupersteine45af542015-06-30 13:36:19 +00001509static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001510_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1511{
1512 return (__m128) __builtin_ia32_vfmaddps128_mask3 (-(__v4sf) __A,
1513 (__v4sf) __B,
1514 (__v4sf) __C,
1515 (__mmask8) __U);
1516}
1517
Michael Kupersteine45af542015-06-30 13:36:19 +00001518static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001519_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1520{
1521 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1522 (__v4sf) __B,
1523 (__v4sf) __C,
1524 (__mmask8) __U);
1525}
1526
Michael Kupersteine45af542015-06-30 13:36:19 +00001527static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001528_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1529{
1530 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1531 (__v4sf) __B,
1532 -(__v4sf) __C,
1533 (__mmask8) __U);
1534}
1535
Michael Kupersteine45af542015-06-30 13:36:19 +00001536static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001537_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1538{
1539 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1540 (__v8sf) __B,
1541 (__v8sf) __C,
1542 (__mmask8) __U);
1543}
1544
Michael Kupersteine45af542015-06-30 13:36:19 +00001545static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001546_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1547{
1548 return (__m256) __builtin_ia32_vfmaddps256_mask3 ((__v8sf) __A,
1549 (__v8sf) __B,
1550 (__v8sf) __C,
1551 (__mmask8) __U);
1552}
1553
Michael Kupersteine45af542015-06-30 13:36:19 +00001554static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001555_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1556{
1557 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1558 (__v8sf) __B,
1559 (__v8sf) __C,
1560 (__mmask8) __U);
1561}
1562
Michael Kupersteine45af542015-06-30 13:36:19 +00001563static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001564_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1565{
1566 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1567 (__v8sf) __B,
1568 -(__v8sf) __C,
1569 (__mmask8) __U);
1570}
1571
Michael Kupersteine45af542015-06-30 13:36:19 +00001572static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001573_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1574{
1575 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1576 (__v8sf) __B,
1577 -(__v8sf) __C,
1578 (__mmask8) __U);
1579}
1580
Michael Kupersteine45af542015-06-30 13:36:19 +00001581static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001582_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1583{
1584 return (__m256) __builtin_ia32_vfmaddps256_mask3 (-(__v8sf) __A,
1585 (__v8sf) __B,
1586 (__v8sf) __C,
1587 (__mmask8) __U);
1588}
1589
Michael Kupersteine45af542015-06-30 13:36:19 +00001590static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001591_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1592{
1593 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1594 (__v8sf) __B,
1595 (__v8sf) __C,
1596 (__mmask8) __U);
1597}
1598
Michael Kupersteine45af542015-06-30 13:36:19 +00001599static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001600_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1601{
1602 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1603 (__v8sf) __B,
1604 -(__v8sf) __C,
1605 (__mmask8) __U);
1606}
1607
Michael Kupersteine45af542015-06-30 13:36:19 +00001608static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001609_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1610{
1611 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1612 (__v2df) __B,
1613 (__v2df) __C,
1614 (__mmask8) __U);
1615}
1616
Michael Kupersteine45af542015-06-30 13:36:19 +00001617static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001618_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1619{
1620 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask3 ((__v2df) __A,
1621 (__v2df) __B,
1622 (__v2df) __C,
1623 (__mmask8)
1624 __U);
1625}
1626
Michael Kupersteine45af542015-06-30 13:36:19 +00001627static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001628_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1629{
1630 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1631 (__v2df) __B,
1632 (__v2df) __C,
1633 (__mmask8)
1634 __U);
1635}
1636
Michael Kupersteine45af542015-06-30 13:36:19 +00001637static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001638_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1639{
1640 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1641 (__v2df) __B,
1642 -(__v2df) __C,
1643 (__mmask8) __U);
1644}
1645
Michael Kupersteine45af542015-06-30 13:36:19 +00001646static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001647_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1648{
1649 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1650 (__v2df) __B,
1651 -(__v2df) __C,
1652 (__mmask8)
1653 __U);
1654}
1655
Michael Kupersteine45af542015-06-30 13:36:19 +00001656static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001657_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1658{
1659 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1660 (__v4df) __B,
1661 (__v4df) __C,
1662 (__mmask8) __U);
1663}
1664
Michael Kupersteine45af542015-06-30 13:36:19 +00001665static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001666_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1667{
1668 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask3 ((__v4df) __A,
1669 (__v4df) __B,
1670 (__v4df) __C,
1671 (__mmask8)
1672 __U);
1673}
1674
Michael Kupersteine45af542015-06-30 13:36:19 +00001675static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001676_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1677{
1678 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1679 (__v4df) __B,
1680 (__v4df) __C,
1681 (__mmask8)
1682 __U);
1683}
1684
Michael Kupersteine45af542015-06-30 13:36:19 +00001685static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001686_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1687{
1688 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1689 (__v4df) __B,
1690 -(__v4df) __C,
1691 (__mmask8) __U);
1692}
1693
Michael Kupersteine45af542015-06-30 13:36:19 +00001694static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001695_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1696{
1697 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1698 (__v4df) __B,
1699 -(__v4df) __C,
1700 (__mmask8)
1701 __U);
1702}
1703
Michael Kupersteine45af542015-06-30 13:36:19 +00001704static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001705_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1706{
1707 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1708 (__v4sf) __B,
1709 (__v4sf) __C,
1710 (__mmask8) __U);
1711}
1712
Michael Kupersteine45af542015-06-30 13:36:19 +00001713static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001714_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1715{
1716 return (__m128) __builtin_ia32_vfmaddsubps128_mask3 ((__v4sf) __A,
1717 (__v4sf) __B,
1718 (__v4sf) __C,
1719 (__mmask8) __U);
1720}
1721
Michael Kupersteine45af542015-06-30 13:36:19 +00001722static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001723_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1724{
1725 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1726 (__v4sf) __B,
1727 (__v4sf) __C,
1728 (__mmask8) __U);
1729}
1730
Michael Kupersteine45af542015-06-30 13:36:19 +00001731static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001732_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1733{
1734 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1735 (__v4sf) __B,
1736 -(__v4sf) __C,
1737 (__mmask8) __U);
1738}
1739
Michael Kupersteine45af542015-06-30 13:36:19 +00001740static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001741_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1742{
1743 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1744 (__v4sf) __B,
1745 -(__v4sf) __C,
1746 (__mmask8) __U);
1747}
1748
Michael Kupersteine45af542015-06-30 13:36:19 +00001749static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001750_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B,
1751 __m256 __C)
1752{
1753 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1754 (__v8sf) __B,
1755 (__v8sf) __C,
1756 (__mmask8) __U);
1757}
1758
Michael Kupersteine45af542015-06-30 13:36:19 +00001759static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001760_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1761{
1762 return (__m256) __builtin_ia32_vfmaddsubps256_mask3 ((__v8sf) __A,
1763 (__v8sf) __B,
1764 (__v8sf) __C,
1765 (__mmask8) __U);
1766}
1767
Michael Kupersteine45af542015-06-30 13:36:19 +00001768static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001769_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1770{
1771 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1772 (__v8sf) __B,
1773 (__v8sf) __C,
1774 (__mmask8) __U);
1775}
1776
Michael Kupersteine45af542015-06-30 13:36:19 +00001777static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001778_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1779{
1780 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1781 (__v8sf) __B,
1782 -(__v8sf) __C,
1783 (__mmask8) __U);
1784}
1785
Michael Kupersteine45af542015-06-30 13:36:19 +00001786static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001787_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1788{
1789 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1790 (__v8sf) __B,
1791 -(__v8sf) __C,
1792 (__mmask8) __U);
1793}
1794
Michael Kupersteine45af542015-06-30 13:36:19 +00001795static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001796_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1797{
1798 return (__m128d) __builtin_ia32_vfmsubpd128_mask3 ((__v2df) __A,
1799 (__v2df) __B,
1800 (__v2df) __C,
1801 (__mmask8) __U);
1802}
1803
Michael Kupersteine45af542015-06-30 13:36:19 +00001804static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001805_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1806{
1807 return (__m256d) __builtin_ia32_vfmsubpd256_mask3 ((__v4df) __A,
1808 (__v4df) __B,
1809 (__v4df) __C,
1810 (__mmask8) __U);
1811}
1812
Michael Kupersteine45af542015-06-30 13:36:19 +00001813static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001814_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1815{
1816 return (__m128) __builtin_ia32_vfmsubps128_mask3 ((__v4sf) __A,
1817 (__v4sf) __B,
1818 (__v4sf) __C,
1819 (__mmask8) __U);
1820}
1821
Michael Kupersteine45af542015-06-30 13:36:19 +00001822static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001823_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1824{
1825 return (__m256) __builtin_ia32_vfmsubps256_mask3 ((__v8sf) __A,
1826 (__v8sf) __B,
1827 (__v8sf) __C,
1828 (__mmask8) __U);
1829}
1830
Michael Kupersteine45af542015-06-30 13:36:19 +00001831static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001832_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1833{
1834 return (__m128d) __builtin_ia32_vfmsubaddpd128_mask3 ((__v2df) __A,
1835 (__v2df) __B,
1836 (__v2df) __C,
1837 (__mmask8)
1838 __U);
1839}
1840
Michael Kupersteine45af542015-06-30 13:36:19 +00001841static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001842_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1843{
1844 return (__m256d) __builtin_ia32_vfmsubaddpd256_mask3 ((__v4df) __A,
1845 (__v4df) __B,
1846 (__v4df) __C,
1847 (__mmask8)
1848 __U);
1849}
1850
Michael Kupersteine45af542015-06-30 13:36:19 +00001851static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001852_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1853{
1854 return (__m128) __builtin_ia32_vfmsubaddps128_mask3 ((__v4sf) __A,
1855 (__v4sf) __B,
1856 (__v4sf) __C,
1857 (__mmask8) __U);
1858}
1859
Michael Kupersteine45af542015-06-30 13:36:19 +00001860static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001861_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1862{
1863 return (__m256) __builtin_ia32_vfmsubaddps256_mask3 ((__v8sf) __A,
1864 (__v8sf) __B,
1865 (__v8sf) __C,
1866 (__mmask8) __U);
1867}
1868
Michael Kupersteine45af542015-06-30 13:36:19 +00001869static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001870_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1871{
1872 return (__m128d) __builtin_ia32_vfnmaddpd128_mask ((__v2df) __A,
1873 (__v2df) __B,
1874 (__v2df) __C,
1875 (__mmask8) __U);
1876}
1877
Michael Kupersteine45af542015-06-30 13:36:19 +00001878static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001879_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1880{
1881 return (__m256d) __builtin_ia32_vfnmaddpd256_mask ((__v4df) __A,
1882 (__v4df) __B,
1883 (__v4df) __C,
1884 (__mmask8) __U);
1885}
1886
Michael Kupersteine45af542015-06-30 13:36:19 +00001887static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001888_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1889{
1890 return (__m128) __builtin_ia32_vfnmaddps128_mask ((__v4sf) __A,
1891 (__v4sf) __B,
1892 (__v4sf) __C,
1893 (__mmask8) __U);
1894}
1895
Michael Kupersteine45af542015-06-30 13:36:19 +00001896static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001897_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1898{
1899 return (__m256) __builtin_ia32_vfnmaddps256_mask ((__v8sf) __A,
1900 (__v8sf) __B,
1901 (__v8sf) __C,
1902 (__mmask8) __U);
1903}
1904
Michael Kupersteine45af542015-06-30 13:36:19 +00001905static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001906_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1907{
1908 return (__m128d) __builtin_ia32_vfnmsubpd128_mask ((__v2df) __A,
1909 (__v2df) __B,
1910 (__v2df) __C,
1911 (__mmask8) __U);
1912}
1913
Michael Kupersteine45af542015-06-30 13:36:19 +00001914static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001915_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1916{
1917 return (__m128d) __builtin_ia32_vfnmsubpd128_mask3 ((__v2df) __A,
1918 (__v2df) __B,
1919 (__v2df) __C,
1920 (__mmask8) __U);
1921}
1922
Michael Kupersteine45af542015-06-30 13:36:19 +00001923static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001924_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1925{
1926 return (__m256d) __builtin_ia32_vfnmsubpd256_mask ((__v4df) __A,
1927 (__v4df) __B,
1928 (__v4df) __C,
1929 (__mmask8) __U);
1930}
1931
Michael Kupersteine45af542015-06-30 13:36:19 +00001932static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001933_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1934{
1935 return (__m256d) __builtin_ia32_vfnmsubpd256_mask3 ((__v4df) __A,
1936 (__v4df) __B,
1937 (__v4df) __C,
1938 (__mmask8) __U);
1939}
1940
Michael Kupersteine45af542015-06-30 13:36:19 +00001941static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001942_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1943{
1944 return (__m128) __builtin_ia32_vfnmsubps128_mask ((__v4sf) __A,
1945 (__v4sf) __B,
1946 (__v4sf) __C,
1947 (__mmask8) __U);
1948}
1949
Michael Kupersteine45af542015-06-30 13:36:19 +00001950static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001951_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1952{
1953 return (__m128) __builtin_ia32_vfnmsubps128_mask3 ((__v4sf) __A,
1954 (__v4sf) __B,
1955 (__v4sf) __C,
1956 (__mmask8) __U);
1957}
1958
Michael Kupersteine45af542015-06-30 13:36:19 +00001959static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001960_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1961{
1962 return (__m256) __builtin_ia32_vfnmsubps256_mask ((__v8sf) __A,
1963 (__v8sf) __B,
1964 (__v8sf) __C,
1965 (__mmask8) __U);
1966}
1967
Michael Kupersteine45af542015-06-30 13:36:19 +00001968static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001969_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1970{
1971 return (__m256) __builtin_ia32_vfnmsubps256_mask3 ((__v8sf) __A,
1972 (__v8sf) __B,
1973 (__v8sf) __C,
1974 (__mmask8) __U);
1975}
1976
Asaf Badouh74da3872015-07-28 08:26:14 +00001977static __inline__ __m128d __DEFAULT_FN_ATTRS
1978_mm_mask_add_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1979 return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A,
1980 (__v2df) __B,
1981 (__v2df) __W,
1982 (__mmask8) __U);
1983}
1984
1985static __inline__ __m128d __DEFAULT_FN_ATTRS
1986_mm_maskz_add_pd (__mmask8 __U, __m128d __A, __m128d __B) {
1987 return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A,
1988 (__v2df) __B,
1989 (__v2df)
1990 _mm_setzero_pd (),
1991 (__mmask8) __U);
1992}
1993
1994static __inline__ __m256d __DEFAULT_FN_ATTRS
1995_mm256_mask_add_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
1996 return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A,
1997 (__v4df) __B,
1998 (__v4df) __W,
1999 (__mmask8) __U);
2000}
2001
2002static __inline__ __m256d __DEFAULT_FN_ATTRS
2003_mm256_maskz_add_pd (__mmask8 __U, __m256d __A, __m256d __B) {
2004 return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A,
2005 (__v4df) __B,
2006 (__v4df)
2007 _mm256_setzero_pd (),
2008 (__mmask8) __U);
2009}
2010
2011static __inline__ __m128 __DEFAULT_FN_ATTRS
2012_mm_mask_add_ps (__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) {
2013 return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A,
2014 (__v4sf) __B,
2015 (__v4sf) __W,
2016 (__mmask8) __U);
2017}
2018
2019static __inline__ __m128 __DEFAULT_FN_ATTRS
2020_mm_maskz_add_ps (__mmask16 __U, __m128 __A, __m128 __B) {
2021 return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A,
2022 (__v4sf) __B,
2023 (__v4sf)
2024 _mm_setzero_ps (),
2025 (__mmask8) __U);
2026}
2027
2028static __inline__ __m256 __DEFAULT_FN_ATTRS
2029_mm256_mask_add_ps (__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) {
2030 return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A,
2031 (__v8sf) __B,
2032 (__v8sf) __W,
2033 (__mmask8) __U);
2034}
2035
2036static __inline__ __m256 __DEFAULT_FN_ATTRS
2037_mm256_maskz_add_ps (__mmask16 __U, __m256 __A, __m256 __B) {
2038 return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A,
2039 (__v8sf) __B,
2040 (__v8sf)
2041 _mm256_setzero_ps (),
2042 (__mmask8) __U);
2043}
2044
2045static __inline__ __m128i __DEFAULT_FN_ATTRS
2046_mm_mask_blend_epi32 (__mmask8 __U, __m128i __A, __m128i __W) {
2047 return (__m128i) __builtin_ia32_blendmd_128_mask ((__v4si) __A,
2048 (__v4si) __W,
2049 (__mmask8) __U);
2050}
2051
2052static __inline__ __m256i __DEFAULT_FN_ATTRS
2053_mm256_mask_blend_epi32 (__mmask8 __U, __m256i __A, __m256i __W) {
2054 return (__m256i) __builtin_ia32_blendmd_256_mask ((__v8si) __A,
2055 (__v8si) __W,
2056 (__mmask8) __U);
2057}
2058
2059static __inline__ __m128d __DEFAULT_FN_ATTRS
2060_mm_mask_blend_pd (__mmask8 __U, __m128d __A, __m128d __W) {
2061 return (__m128d) __builtin_ia32_blendmpd_128_mask ((__v2df) __A,
2062 (__v2df) __W,
2063 (__mmask8) __U);
2064}
2065
2066static __inline__ __m256d __DEFAULT_FN_ATTRS
2067_mm256_mask_blend_pd (__mmask8 __U, __m256d __A, __m256d __W) {
2068 return (__m256d) __builtin_ia32_blendmpd_256_mask ((__v4df) __A,
2069 (__v4df) __W,
2070 (__mmask8) __U);
2071}
2072
2073static __inline__ __m128 __DEFAULT_FN_ATTRS
2074_mm_mask_blend_ps (__mmask8 __U, __m128 __A, __m128 __W) {
2075 return (__m128) __builtin_ia32_blendmps_128_mask ((__v4sf) __A,
2076 (__v4sf) __W,
2077 (__mmask8) __U);
2078}
2079
2080static __inline__ __m256 __DEFAULT_FN_ATTRS
2081_mm256_mask_blend_ps (__mmask8 __U, __m256 __A, __m256 __W) {
2082 return (__m256) __builtin_ia32_blendmps_256_mask ((__v8sf) __A,
2083 (__v8sf) __W,
2084 (__mmask8) __U);
2085}
2086
2087static __inline__ __m128i __DEFAULT_FN_ATTRS
2088_mm_mask_blend_epi64 (__mmask8 __U, __m128i __A, __m128i __W) {
2089 return (__m128i) __builtin_ia32_blendmq_128_mask ((__v2di) __A,
2090 (__v2di) __W,
2091 (__mmask8) __U);
2092}
2093
2094static __inline__ __m256i __DEFAULT_FN_ATTRS
2095_mm256_mask_blend_epi64 (__mmask8 __U, __m256i __A, __m256i __W) {
2096 return (__m256i) __builtin_ia32_blendmq_256_mask ((__v4di) __A,
2097 (__v4di) __W,
2098 (__mmask8) __U);
2099}
2100
2101static __inline__ __m128d __DEFAULT_FN_ATTRS
2102_mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2103 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
2104 (__v2df) __W,
2105 (__mmask8) __U);
2106}
2107
2108static __inline__ __m128d __DEFAULT_FN_ATTRS
2109_mm_maskz_compress_pd (__mmask8 __U, __m128d __A) {
2110 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
2111 (__v2df)
2112 _mm_setzero_pd (),
2113 (__mmask8) __U);
2114}
2115
2116static __inline__ __m256d __DEFAULT_FN_ATTRS
2117_mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2118 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
2119 (__v4df) __W,
2120 (__mmask8) __U);
2121}
2122
2123static __inline__ __m256d __DEFAULT_FN_ATTRS
2124_mm256_maskz_compress_pd (__mmask8 __U, __m256d __A) {
2125 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
2126 (__v4df)
2127 _mm256_setzero_pd (),
2128 (__mmask8) __U);
2129}
2130
2131static __inline__ __m128i __DEFAULT_FN_ATTRS
2132_mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2133 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
2134 (__v2di) __W,
2135 (__mmask8) __U);
2136}
2137
2138static __inline__ __m128i __DEFAULT_FN_ATTRS
2139_mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A) {
2140 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
2141 (__v2di)
2142 _mm_setzero_si128 (),
2143 (__mmask8) __U);
2144}
2145
2146static __inline__ __m256i __DEFAULT_FN_ATTRS
2147_mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2148 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
2149 (__v4di) __W,
2150 (__mmask8) __U);
2151}
2152
2153static __inline__ __m256i __DEFAULT_FN_ATTRS
2154_mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A) {
2155 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
2156 (__v4di)
2157 _mm256_setzero_si256 (),
2158 (__mmask8) __U);
2159}
2160
2161static __inline__ __m128 __DEFAULT_FN_ATTRS
2162_mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A) {
2163 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
2164 (__v4sf) __W,
2165 (__mmask8) __U);
2166}
2167
2168static __inline__ __m128 __DEFAULT_FN_ATTRS
2169_mm_maskz_compress_ps (__mmask8 __U, __m128 __A) {
2170 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
2171 (__v4sf)
2172 _mm_setzero_ps (),
2173 (__mmask8) __U);
2174}
2175
2176static __inline__ __m256 __DEFAULT_FN_ATTRS
2177_mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A) {
2178 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
2179 (__v8sf) __W,
2180 (__mmask8) __U);
2181}
2182
2183static __inline__ __m256 __DEFAULT_FN_ATTRS
2184_mm256_maskz_compress_ps (__mmask8 __U, __m256 __A) {
2185 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
2186 (__v8sf)
2187 _mm256_setzero_ps (),
2188 (__mmask8) __U);
2189}
2190
2191static __inline__ __m128i __DEFAULT_FN_ATTRS
2192_mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
2193 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
2194 (__v4si) __W,
2195 (__mmask8) __U);
2196}
2197
2198static __inline__ __m128i __DEFAULT_FN_ATTRS
2199_mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A) {
2200 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
2201 (__v4si)
2202 _mm_setzero_si128 (),
2203 (__mmask8) __U);
2204}
2205
2206static __inline__ __m256i __DEFAULT_FN_ATTRS
2207_mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
2208 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
2209 (__v8si) __W,
2210 (__mmask8) __U);
2211}
2212
2213static __inline__ __m256i __DEFAULT_FN_ATTRS
2214_mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A) {
2215 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
2216 (__v8si)
2217 _mm256_setzero_si256 (),
2218 (__mmask8) __U);
2219}
2220
2221static __inline__ void __DEFAULT_FN_ATTRS
2222_mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A) {
2223 __builtin_ia32_compressstoredf128_mask ((__v2df *) __P,
2224 (__v2df) __A,
2225 (__mmask8) __U);
2226}
2227
2228static __inline__ void __DEFAULT_FN_ATTRS
2229_mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A) {
2230 __builtin_ia32_compressstoredf256_mask ((__v4df *) __P,
2231 (__v4df) __A,
2232 (__mmask8) __U);
2233}
2234
2235static __inline__ void __DEFAULT_FN_ATTRS
2236_mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A) {
2237 __builtin_ia32_compressstoredi128_mask ((__v2di *) __P,
2238 (__v2di) __A,
2239 (__mmask8) __U);
2240}
2241
2242static __inline__ void __DEFAULT_FN_ATTRS
2243_mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A) {
2244 __builtin_ia32_compressstoredi256_mask ((__v4di *) __P,
2245 (__v4di) __A,
2246 (__mmask8) __U);
2247}
2248
2249static __inline__ void __DEFAULT_FN_ATTRS
2250_mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A) {
2251 __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P,
2252 (__v4sf) __A,
2253 (__mmask8) __U);
2254}
2255
2256static __inline__ void __DEFAULT_FN_ATTRS
2257_mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A) {
2258 __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P,
2259 (__v8sf) __A,
2260 (__mmask8) __U);
2261}
2262
2263static __inline__ void __DEFAULT_FN_ATTRS
2264_mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A) {
2265 __builtin_ia32_compressstoresi128_mask ((__v4si *) __P,
2266 (__v4si) __A,
2267 (__mmask8) __U);
2268}
2269
2270static __inline__ void __DEFAULT_FN_ATTRS
2271_mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A) {
2272 __builtin_ia32_compressstoresi256_mask ((__v8si *) __P,
2273 (__v8si) __A,
2274 (__mmask8) __U);
2275}
2276
2277static __inline__ __m128d __DEFAULT_FN_ATTRS
2278_mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2279 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
2280 (__v2df) __W,
2281 (__mmask8) __U);
2282}
2283
2284static __inline__ __m128d __DEFAULT_FN_ATTRS
2285_mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
2286 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
2287 (__v2df)
2288 _mm_setzero_pd (),
2289 (__mmask8) __U);
2290}
2291
2292static __inline__ __m256d __DEFAULT_FN_ATTRS
2293_mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2294 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
2295 (__v4df) __W,
2296 (__mmask8) __U);
2297}
2298
2299static __inline__ __m256d __DEFAULT_FN_ATTRS
2300_mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
2301 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
2302 (__v4df)
2303 _mm256_setzero_pd (),
2304 (__mmask8) __U);
2305}
2306
2307static __inline__ __m128 __DEFAULT_FN_ATTRS
2308_mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2309 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2310 (__v4sf) __W,
2311 (__mmask8) __U);
2312}
2313
2314static __inline__ __m128 __DEFAULT_FN_ATTRS
2315_mm_maskz_cvtepi32_ps (__mmask16 __U, __m128i __A) {
2316 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2317 (__v4sf)
2318 _mm_setzero_ps (),
2319 (__mmask8) __U);
2320}
2321
2322static __inline__ __m256 __DEFAULT_FN_ATTRS
2323_mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2324 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2325 (__v8sf) __W,
2326 (__mmask8) __U);
2327}
2328
2329static __inline__ __m256 __DEFAULT_FN_ATTRS
2330_mm256_maskz_cvtepi32_ps (__mmask16 __U, __m256i __A) {
2331 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2332 (__v8sf)
2333 _mm256_setzero_ps (),
2334 (__mmask8) __U);
2335}
2336
2337static __inline__ __m128i __DEFAULT_FN_ATTRS
2338_mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2339 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2340 (__v4si) __W,
2341 (__mmask8) __U);
2342}
2343
2344static __inline__ __m128i __DEFAULT_FN_ATTRS
2345_mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) {
2346 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2347 (__v4si)
2348 _mm_setzero_si128 (),
2349 (__mmask8) __U);
2350}
2351
2352static __inline__ __m128i __DEFAULT_FN_ATTRS
2353_mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2354 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2355 (__v4si) __W,
2356 (__mmask8) __U);
2357}
2358
2359static __inline__ __m128i __DEFAULT_FN_ATTRS
2360_mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) {
2361 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2362 (__v4si)
2363 _mm_setzero_si128 (),
2364 (__mmask8) __U);
2365}
2366
2367static __inline__ __m128 __DEFAULT_FN_ATTRS
2368_mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) {
2369 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2370 (__v4sf) __W,
2371 (__mmask8) __U);
2372}
2373
2374static __inline__ __m128 __DEFAULT_FN_ATTRS
2375_mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) {
2376 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2377 (__v4sf)
2378 _mm_setzero_ps (),
2379 (__mmask8) __U);
2380}
2381
2382static __inline__ __m128 __DEFAULT_FN_ATTRS
2383_mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) {
2384 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2385 (__v4sf) __W,
2386 (__mmask8) __U);
2387}
2388
2389static __inline__ __m128 __DEFAULT_FN_ATTRS
2390_mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) {
2391 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2392 (__v4sf)
2393 _mm_setzero_ps (),
2394 (__mmask8) __U);
2395}
2396
2397static __inline__ __m128i __DEFAULT_FN_ATTRS
2398_mm_cvtpd_epu32 (__m128d __A) {
2399 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2400 (__v4si)
2401 _mm_setzero_si128 (),
2402 (__mmask8) -1);
2403}
2404
2405static __inline__ __m128i __DEFAULT_FN_ATTRS
2406_mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2407 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2408 (__v4si) __W,
2409 (__mmask8) __U);
2410}
2411
2412static __inline__ __m128i __DEFAULT_FN_ATTRS
2413_mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) {
2414 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2415 (__v4si)
2416 _mm_setzero_si128 (),
2417 (__mmask8) __U);
2418}
2419
2420static __inline__ __m128i __DEFAULT_FN_ATTRS
2421_mm256_cvtpd_epu32 (__m256d __A) {
2422 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2423 (__v4si)
2424 _mm_setzero_si128 (),
2425 (__mmask8) -1);
2426}
2427
2428static __inline__ __m128i __DEFAULT_FN_ATTRS
2429_mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2430 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2431 (__v4si) __W,
2432 (__mmask8) __U);
2433}
2434
2435static __inline__ __m128i __DEFAULT_FN_ATTRS
2436_mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) {
2437 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2438 (__v4si)
2439 _mm_setzero_si128 (),
2440 (__mmask8) __U);
2441}
2442
2443static __inline__ __m128i __DEFAULT_FN_ATTRS
2444_mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2445 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2446 (__v4si) __W,
2447 (__mmask8) __U);
2448}
2449
2450static __inline__ __m128i __DEFAULT_FN_ATTRS
2451_mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) {
2452 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2453 (__v4si)
2454 _mm_setzero_si128 (),
2455 (__mmask8) __U);
2456}
2457
2458static __inline__ __m256i __DEFAULT_FN_ATTRS
2459_mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2460 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2461 (__v8si) __W,
2462 (__mmask8) __U);
2463}
2464
2465static __inline__ __m256i __DEFAULT_FN_ATTRS
2466_mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) {
2467 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2468 (__v8si)
2469 _mm256_setzero_si256 (),
2470 (__mmask8) __U);
2471}
2472
2473static __inline__ __m128d __DEFAULT_FN_ATTRS
2474_mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) {
2475 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2476 (__v2df) __W,
2477 (__mmask8) __U);
2478}
2479
2480static __inline__ __m128d __DEFAULT_FN_ATTRS
2481_mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2482 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2483 (__v2df)
2484 _mm_setzero_pd (),
2485 (__mmask8) __U);
2486}
2487
2488static __inline__ __m256d __DEFAULT_FN_ATTRS
2489_mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) {
2490 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2491 (__v4df) __W,
2492 (__mmask8) __U);
2493}
2494
2495static __inline__ __m256d __DEFAULT_FN_ATTRS
2496_mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2497 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2498 (__v4df)
2499 _mm256_setzero_pd (),
2500 (__mmask8) __U);
2501}
2502
2503static __inline__ __m128i __DEFAULT_FN_ATTRS
2504_mm_cvtps_epu32 (__m128 __A) {
2505 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2506 (__v4si)
2507 _mm_setzero_si128 (),
2508 (__mmask8) -1);
2509}
2510
2511static __inline__ __m128i __DEFAULT_FN_ATTRS
2512_mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2513 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2514 (__v4si) __W,
2515 (__mmask8) __U);
2516}
2517
2518static __inline__ __m128i __DEFAULT_FN_ATTRS
2519_mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) {
2520 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2521 (__v4si)
2522 _mm_setzero_si128 (),
2523 (__mmask8) __U);
2524}
2525
2526static __inline__ __m256i __DEFAULT_FN_ATTRS
2527_mm256_cvtps_epu32 (__m256 __A) {
2528 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2529 (__v8si)
2530 _mm256_setzero_si256 (),
2531 (__mmask8) -1);
2532}
2533
2534static __inline__ __m256i __DEFAULT_FN_ATTRS
2535_mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2536 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2537 (__v8si) __W,
2538 (__mmask8) __U);
2539}
2540
2541static __inline__ __m256i __DEFAULT_FN_ATTRS
2542_mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) {
2543 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2544 (__v8si)
2545 _mm256_setzero_si256 (),
2546 (__mmask8) __U);
2547}
2548
2549static __inline__ __m128i __DEFAULT_FN_ATTRS
2550_mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2551 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2552 (__v4si) __W,
2553 (__mmask8) __U);
2554}
2555
2556static __inline__ __m128i __DEFAULT_FN_ATTRS
2557_mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) {
2558 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2559 (__v4si)
2560 _mm_setzero_si128 (),
2561 (__mmask8) __U);
2562}
2563
2564static __inline__ __m128i __DEFAULT_FN_ATTRS
2565_mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2566 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2567 (__v4si) __W,
2568 (__mmask8) __U);
2569}
2570
2571static __inline__ __m128i __DEFAULT_FN_ATTRS
2572_mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) {
2573 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2574 (__v4si)
2575 _mm_setzero_si128 (),
2576 (__mmask8) __U);
2577}
2578
2579static __inline__ __m128i __DEFAULT_FN_ATTRS
2580_mm_cvttpd_epu32 (__m128d __A) {
2581 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2582 (__v4si)
2583 _mm_setzero_si128 (),
2584 (__mmask8) -1);
2585}
2586
2587static __inline__ __m128i __DEFAULT_FN_ATTRS
2588_mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2589 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2590 (__v4si) __W,
2591 (__mmask8) __U);
2592}
2593
2594static __inline__ __m128i __DEFAULT_FN_ATTRS
2595_mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) {
2596 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2597 (__v4si)
2598 _mm_setzero_si128 (),
2599 (__mmask8) __U);
2600}
2601
2602static __inline__ __m128i __DEFAULT_FN_ATTRS
2603_mm256_cvttpd_epu32 (__m256d __A) {
2604 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2605 (__v4si)
2606 _mm_setzero_si128 (),
2607 (__mmask8) -1);
2608}
2609
2610static __inline__ __m128i __DEFAULT_FN_ATTRS
2611_mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2612 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2613 (__v4si) __W,
2614 (__mmask8) __U);
2615}
2616
2617static __inline__ __m128i __DEFAULT_FN_ATTRS
2618_mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) {
2619 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2620 (__v4si)
2621 _mm_setzero_si128 (),
2622 (__mmask8) __U);
2623}
2624
2625static __inline__ __m128i __DEFAULT_FN_ATTRS
2626_mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2627 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2628 (__v4si) __W,
2629 (__mmask8) __U);
2630}
2631
2632static __inline__ __m128i __DEFAULT_FN_ATTRS
2633_mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) {
2634 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2635 (__v4si)
2636 _mm_setzero_si128 (),
2637 (__mmask8) __U);
2638}
2639
2640static __inline__ __m256i __DEFAULT_FN_ATTRS
2641_mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2642 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2643 (__v8si) __W,
2644 (__mmask8) __U);
2645}
2646
2647static __inline__ __m256i __DEFAULT_FN_ATTRS
2648_mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) {
2649 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2650 (__v8si)
2651 _mm256_setzero_si256 (),
2652 (__mmask8) __U);
2653}
2654
2655static __inline__ __m128i __DEFAULT_FN_ATTRS
2656_mm_cvttps_epu32 (__m128 __A) {
2657 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2658 (__v4si)
2659 _mm_setzero_si128 (),
2660 (__mmask8) -1);
2661}
2662
2663static __inline__ __m128i __DEFAULT_FN_ATTRS
2664_mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2665 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2666 (__v4si) __W,
2667 (__mmask8) __U);
2668}
2669
2670static __inline__ __m128i __DEFAULT_FN_ATTRS
2671_mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) {
2672 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2673 (__v4si)
2674 _mm_setzero_si128 (),
2675 (__mmask8) __U);
2676}
2677
2678static __inline__ __m256i __DEFAULT_FN_ATTRS
2679_mm256_cvttps_epu32 (__m256 __A) {
2680 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2681 (__v8si)
2682 _mm256_setzero_si256 (),
2683 (__mmask8) -1);
2684}
2685
2686static __inline__ __m256i __DEFAULT_FN_ATTRS
2687_mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2688 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2689 (__v8si) __W,
2690 (__mmask8) __U);
2691}
2692
2693static __inline__ __m256i __DEFAULT_FN_ATTRS
2694_mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) {
2695 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2696 (__v8si)
2697 _mm256_setzero_si256 (),
2698 (__mmask8) __U);
2699}
2700
2701static __inline__ __m128d __DEFAULT_FN_ATTRS
2702_mm_cvtepu32_pd (__m128i __A) {
2703 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2704 (__v2df)
2705 _mm_setzero_pd (),
2706 (__mmask8) -1);
2707}
2708
2709static __inline__ __m128d __DEFAULT_FN_ATTRS
2710_mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2711 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2712 (__v2df) __W,
2713 (__mmask8) __U);
2714}
2715
2716static __inline__ __m128d __DEFAULT_FN_ATTRS
2717_mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2718 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2719 (__v2df)
2720 _mm_setzero_pd (),
2721 (__mmask8) __U);
2722}
2723
2724static __inline__ __m256d __DEFAULT_FN_ATTRS
2725_mm256_cvtepu32_pd (__m128i __A) {
2726 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2727 (__v4df)
2728 _mm256_setzero_pd (),
2729 (__mmask8) -1);
2730}
2731
2732static __inline__ __m256d __DEFAULT_FN_ATTRS
2733_mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2734 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2735 (__v4df) __W,
2736 (__mmask8) __U);
2737}
2738
2739static __inline__ __m256d __DEFAULT_FN_ATTRS
2740_mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2741 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2742 (__v4df)
2743 _mm256_setzero_pd (),
2744 (__mmask8) __U);
2745}
2746
2747static __inline__ __m128 __DEFAULT_FN_ATTRS
2748_mm_cvtepu32_ps (__m128i __A) {
2749 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2750 (__v4sf)
2751 _mm_setzero_ps (),
2752 (__mmask8) -1);
2753}
2754
2755static __inline__ __m128 __DEFAULT_FN_ATTRS
2756_mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2757 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2758 (__v4sf) __W,
2759 (__mmask8) __U);
2760}
2761
2762static __inline__ __m128 __DEFAULT_FN_ATTRS
2763_mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) {
2764 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2765 (__v4sf)
2766 _mm_setzero_ps (),
2767 (__mmask8) __U);
2768}
2769
2770static __inline__ __m256 __DEFAULT_FN_ATTRS
2771_mm256_cvtepu32_ps (__m256i __A) {
2772 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2773 (__v8sf)
2774 _mm256_setzero_ps (),
2775 (__mmask8) -1);
2776}
2777
2778static __inline__ __m256 __DEFAULT_FN_ATTRS
2779_mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2780 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2781 (__v8sf) __W,
2782 (__mmask8) __U);
2783}
2784
2785static __inline__ __m256 __DEFAULT_FN_ATTRS
2786_mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) {
2787 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2788 (__v8sf)
2789 _mm256_setzero_ps (),
2790 (__mmask8) __U);
2791}
2792
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002793static __inline__ __m128d __DEFAULT_FN_ATTRS
2794_mm_mask_div_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2795 return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A,
2796 (__v2df) __B,
2797 (__v2df) __W,
2798 (__mmask8) __U);
2799}
2800
2801static __inline__ __m128d __DEFAULT_FN_ATTRS
2802_mm_maskz_div_pd (__mmask8 __U, __m128d __A, __m128d __B) {
2803 return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A,
2804 (__v2df) __B,
2805 (__v2df)
2806 _mm_setzero_pd (),
2807 (__mmask8) __U);
2808}
2809
2810static __inline__ __m256d __DEFAULT_FN_ATTRS
2811_mm256_mask_div_pd (__m256d __W, __mmask8 __U, __m256d __A,
2812 __m256d __B) {
2813 return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A,
2814 (__v4df) __B,
2815 (__v4df) __W,
2816 (__mmask8) __U);
2817}
2818
2819static __inline__ __m256d __DEFAULT_FN_ATTRS
2820_mm256_maskz_div_pd (__mmask8 __U, __m256d __A, __m256d __B) {
2821 return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A,
2822 (__v4df) __B,
2823 (__v4df)
2824 _mm256_setzero_pd (),
2825 (__mmask8) __U);
2826}
2827
2828static __inline__ __m128 __DEFAULT_FN_ATTRS
2829_mm_mask_div_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2830 return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A,
2831 (__v4sf) __B,
2832 (__v4sf) __W,
2833 (__mmask8) __U);
2834}
2835
2836static __inline__ __m128 __DEFAULT_FN_ATTRS
2837_mm_maskz_div_ps (__mmask8 __U, __m128 __A, __m128 __B) {
2838 return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A,
2839 (__v4sf) __B,
2840 (__v4sf)
2841 _mm_setzero_ps (),
2842 (__mmask8) __U);
2843}
2844
2845static __inline__ __m256 __DEFAULT_FN_ATTRS
2846_mm256_mask_div_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2847 return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A,
2848 (__v8sf) __B,
2849 (__v8sf) __W,
2850 (__mmask8) __U);
2851}
2852
2853static __inline__ __m256 __DEFAULT_FN_ATTRS
2854_mm256_maskz_div_ps (__mmask8 __U, __m256 __A, __m256 __B) {
2855 return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A,
2856 (__v8sf) __B,
2857 (__v8sf)
2858 _mm256_setzero_ps (),
2859 (__mmask8) __U);
2860}
2861
2862static __inline__ __m128d __DEFAULT_FN_ATTRS
2863_mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2864 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2865 (__v2df) __W,
2866 (__mmask8) __U);
2867}
2868
2869static __inline__ __m128d __DEFAULT_FN_ATTRS
2870_mm_maskz_expand_pd (__mmask8 __U, __m128d __A) {
2871 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2872 (__v2df)
2873 _mm_setzero_pd (),
2874 (__mmask8) __U);
2875}
2876
2877static __inline__ __m256d __DEFAULT_FN_ATTRS
2878_mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2879 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2880 (__v4df) __W,
2881 (__mmask8) __U);
2882}
2883
2884static __inline__ __m256d __DEFAULT_FN_ATTRS
2885_mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) {
2886 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2887 (__v4df)
2888 _mm256_setzero_pd (),
2889 (__mmask8) __U);
2890}
2891
2892static __inline__ __m128i __DEFAULT_FN_ATTRS
2893_mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2894 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2895 (__v2di) __W,
2896 (__mmask8) __U);
2897}
2898
2899static __inline__ __m128i __DEFAULT_FN_ATTRS
2900_mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) {
2901 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2902 (__v2di)
2903 _mm_setzero_si128 (),
2904 (__mmask8) __U);
2905}
2906
2907static __inline__ __m256i __DEFAULT_FN_ATTRS
2908_mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2909 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2910 (__v4di) __W,
2911 (__mmask8) __U);
2912}
2913
2914static __inline__ __m256i __DEFAULT_FN_ATTRS
2915_mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) {
2916 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2917 (__v4di)
2918 _mm256_setzero_si256 (),
2919 (__mmask8) __U);
2920}
2921
2922static __inline__ __m128d __DEFAULT_FN_ATTRS
2923_mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) {
2924 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2925 (__v2df) __W,
2926 (__mmask8)
2927 __U);
2928}
2929
2930static __inline__ __m128d __DEFAULT_FN_ATTRS
2931_mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2932 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2933 (__v2df)
2934 _mm_setzero_pd (),
2935 (__mmask8)
2936 __U);
2937}
2938
2939static __inline__ __m256d __DEFAULT_FN_ATTRS
2940_mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) {
2941 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2942 (__v4df) __W,
2943 (__mmask8)
2944 __U);
2945}
2946
2947static __inline__ __m256d __DEFAULT_FN_ATTRS
2948_mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2949 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2950 (__v4df)
2951 _mm256_setzero_pd (),
2952 (__mmask8)
2953 __U);
2954}
2955
2956static __inline__ __m128i __DEFAULT_FN_ATTRS
2957_mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) {
2958 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2959 (__v2di) __W,
2960 (__mmask8)
2961 __U);
2962}
2963
2964static __inline__ __m128i __DEFAULT_FN_ATTRS
2965_mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2966 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2967 (__v2di)
2968 _mm_setzero_si128 (),
2969 (__mmask8)
2970 __U);
2971}
2972
2973static __inline__ __m256i __DEFAULT_FN_ATTRS
2974_mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U,
2975 void const *__P) {
2976 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2977 (__v4di) __W,
2978 (__mmask8)
2979 __U);
2980}
2981
2982static __inline__ __m256i __DEFAULT_FN_ATTRS
2983_mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2984 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2985 (__v4di)
2986 _mm256_setzero_si256 (),
2987 (__mmask8)
2988 __U);
2989}
2990
2991static __inline__ __m128 __DEFAULT_FN_ATTRS
2992_mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) {
2993 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
2994 (__v4sf) __W,
2995 (__mmask8) __U);
2996}
2997
2998static __inline__ __m128 __DEFAULT_FN_ATTRS
2999_mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
3000 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
3001 (__v4sf)
3002 _mm_setzero_ps (),
3003 (__mmask8)
3004 __U);
3005}
3006
3007static __inline__ __m256 __DEFAULT_FN_ATTRS
3008_mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) {
3009 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
3010 (__v8sf) __W,
3011 (__mmask8) __U);
3012}
3013
3014static __inline__ __m256 __DEFAULT_FN_ATTRS
3015_mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
3016 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
3017 (__v8sf)
3018 _mm256_setzero_ps (),
3019 (__mmask8)
3020 __U);
3021}
3022
3023static __inline__ __m128i __DEFAULT_FN_ATTRS
3024_mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) {
3025 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
3026 (__v4si) __W,
3027 (__mmask8)
3028 __U);
3029}
3030
3031static __inline__ __m128i __DEFAULT_FN_ATTRS
3032_mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
3033 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
3034 (__v4si)
3035 _mm_setzero_si128 (),
3036 (__mmask8) __U);
3037}
3038
3039static __inline__ __m256i __DEFAULT_FN_ATTRS
3040_mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U,
3041 void const *__P) {
3042 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
3043 (__v8si) __W,
3044 (__mmask8)
3045 __U);
3046}
3047
3048static __inline__ __m256i __DEFAULT_FN_ATTRS
3049_mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
3050 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
3051 (__v8si)
3052 _mm256_setzero_si256 (),
3053 (__mmask8)
3054 __U);
3055}
3056
3057static __inline__ __m128 __DEFAULT_FN_ATTRS
3058_mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) {
3059 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
3060 (__v4sf) __W,
3061 (__mmask8) __U);
3062}
3063
3064static __inline__ __m128 __DEFAULT_FN_ATTRS
3065_mm_maskz_expand_ps (__mmask8 __U, __m128 __A) {
3066 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
3067 (__v4sf)
3068 _mm_setzero_ps (),
3069 (__mmask8) __U);
3070}
3071
3072static __inline__ __m256 __DEFAULT_FN_ATTRS
3073_mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) {
3074 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
3075 (__v8sf) __W,
3076 (__mmask8) __U);
3077}
3078
3079static __inline__ __m256 __DEFAULT_FN_ATTRS
3080_mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) {
3081 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
3082 (__v8sf)
3083 _mm256_setzero_ps (),
3084 (__mmask8) __U);
3085}
3086
3087static __inline__ __m128i __DEFAULT_FN_ATTRS
3088_mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
3089 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
3090 (__v4si) __W,
3091 (__mmask8) __U);
3092}
3093
3094static __inline__ __m128i __DEFAULT_FN_ATTRS
3095_mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) {
3096 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
3097 (__v4si)
3098 _mm_setzero_si128 (),
3099 (__mmask8) __U);
3100}
3101
3102static __inline__ __m256i __DEFAULT_FN_ATTRS
3103_mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
3104 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
3105 (__v8si) __W,
3106 (__mmask8) __U);
3107}
3108
3109static __inline__ __m256i __DEFAULT_FN_ATTRS
3110_mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) {
3111 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
3112 (__v8si)
3113 _mm256_setzero_si256 (),
3114 (__mmask8) __U);
3115}
3116
3117static __inline__ __m128d __DEFAULT_FN_ATTRS
3118_mm_getexp_pd (__m128d __A) {
3119 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
3120 (__v2df)
3121 _mm_setzero_pd (),
3122 (__mmask8) -1);
3123}
3124
3125static __inline__ __m128d __DEFAULT_FN_ATTRS
3126_mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) {
3127 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
3128 (__v2df) __W,
3129 (__mmask8) __U);
3130}
3131
3132static __inline__ __m128d __DEFAULT_FN_ATTRS
3133_mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) {
3134 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
3135 (__v2df)
3136 _mm_setzero_pd (),
3137 (__mmask8) __U);
3138}
3139
3140static __inline__ __m256d __DEFAULT_FN_ATTRS
3141_mm256_getexp_pd (__m256d __A) {
3142 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3143 (__v4df)
3144 _mm256_setzero_pd (),
3145 (__mmask8) -1);
3146}
3147
3148static __inline__ __m256d __DEFAULT_FN_ATTRS
3149_mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) {
3150 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3151 (__v4df) __W,
3152 (__mmask8) __U);
3153}
3154
3155static __inline__ __m256d __DEFAULT_FN_ATTRS
3156_mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) {
3157 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3158 (__v4df)
3159 _mm256_setzero_pd (),
3160 (__mmask8) __U);
3161}
3162
3163static __inline__ __m128 __DEFAULT_FN_ATTRS
3164_mm_getexp_ps (__m128 __A) {
3165 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3166 (__v4sf)
3167 _mm_setzero_ps (),
3168 (__mmask8) -1);
3169}
3170
3171static __inline__ __m128 __DEFAULT_FN_ATTRS
3172_mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) {
3173 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3174 (__v4sf) __W,
3175 (__mmask8) __U);
3176}
3177
3178static __inline__ __m128 __DEFAULT_FN_ATTRS
3179_mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) {
3180 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3181 (__v4sf)
3182 _mm_setzero_ps (),
3183 (__mmask8) __U);
3184}
3185
3186static __inline__ __m256 __DEFAULT_FN_ATTRS
3187_mm256_getexp_ps (__m256 __A) {
3188 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3189 (__v8sf)
3190 _mm256_setzero_ps (),
3191 (__mmask8) -1);
3192}
3193
3194static __inline__ __m256 __DEFAULT_FN_ATTRS
3195_mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) {
3196 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3197 (__v8sf) __W,
3198 (__mmask8) __U);
3199}
3200
3201static __inline__ __m256 __DEFAULT_FN_ATTRS
3202_mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) {
3203 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3204 (__v8sf)
3205 _mm256_setzero_ps (),
3206 (__mmask8) __U);
3207}
3208
3209static __inline__ __m128d __DEFAULT_FN_ATTRS
3210_mm_mask_max_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3211 return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A,
3212 (__v2df) __B,
3213 (__v2df) __W,
3214 (__mmask8) __U);
3215}
3216
3217static __inline__ __m128d __DEFAULT_FN_ATTRS
3218_mm_maskz_max_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3219 return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A,
3220 (__v2df) __B,
3221 (__v2df)
3222 _mm_setzero_pd (),
3223 (__mmask8) __U);
3224}
3225
3226static __inline__ __m256d __DEFAULT_FN_ATTRS
3227_mm256_mask_max_pd (__m256d __W, __mmask8 __U, __m256d __A,
3228 __m256d __B) {
3229 return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A,
3230 (__v4df) __B,
3231 (__v4df) __W,
3232 (__mmask8) __U);
3233}
3234
3235static __inline__ __m256d __DEFAULT_FN_ATTRS
3236_mm256_maskz_max_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3237 return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A,
3238 (__v4df) __B,
3239 (__v4df)
3240 _mm256_setzero_pd (),
3241 (__mmask8) __U);
3242}
3243
3244static __inline__ __m128 __DEFAULT_FN_ATTRS
3245_mm_mask_max_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3246 return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A,
3247 (__v4sf) __B,
3248 (__v4sf) __W,
3249 (__mmask8) __U);
3250}
3251
3252static __inline__ __m128 __DEFAULT_FN_ATTRS
3253_mm_maskz_max_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3254 return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A,
3255 (__v4sf) __B,
3256 (__v4sf)
3257 _mm_setzero_ps (),
3258 (__mmask8) __U);
3259}
3260
3261static __inline__ __m256 __DEFAULT_FN_ATTRS
3262_mm256_mask_max_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3263 return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A,
3264 (__v8sf) __B,
3265 (__v8sf) __W,
3266 (__mmask8) __U);
3267}
3268
3269static __inline__ __m256 __DEFAULT_FN_ATTRS
3270_mm256_maskz_max_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3271 return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A,
3272 (__v8sf) __B,
3273 (__v8sf)
3274 _mm256_setzero_ps (),
3275 (__mmask8) __U);
3276}
3277
3278static __inline__ __m128d __DEFAULT_FN_ATTRS
3279_mm_mask_min_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3280 return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A,
3281 (__v2df) __B,
3282 (__v2df) __W,
3283 (__mmask8) __U);
3284}
3285
3286static __inline__ __m128d __DEFAULT_FN_ATTRS
3287_mm_maskz_min_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3288 return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A,
3289 (__v2df) __B,
3290 (__v2df)
3291 _mm_setzero_pd (),
3292 (__mmask8) __U);
3293}
3294
3295static __inline__ __m256d __DEFAULT_FN_ATTRS
3296_mm256_mask_min_pd (__m256d __W, __mmask8 __U, __m256d __A,
3297 __m256d __B) {
3298 return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A,
3299 (__v4df) __B,
3300 (__v4df) __W,
3301 (__mmask8) __U);
3302}
3303
3304static __inline__ __m256d __DEFAULT_FN_ATTRS
3305_mm256_maskz_min_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3306 return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A,
3307 (__v4df) __B,
3308 (__v4df)
3309 _mm256_setzero_pd (),
3310 (__mmask8) __U);
3311}
3312
3313static __inline__ __m128 __DEFAULT_FN_ATTRS
3314_mm_mask_min_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3315 return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A,
3316 (__v4sf) __B,
3317 (__v4sf) __W,
3318 (__mmask8) __U);
3319}
3320
3321static __inline__ __m128 __DEFAULT_FN_ATTRS
3322_mm_maskz_min_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3323 return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A,
3324 (__v4sf) __B,
3325 (__v4sf)
3326 _mm_setzero_ps (),
3327 (__mmask8) __U);
3328}
3329
3330static __inline__ __m256 __DEFAULT_FN_ATTRS
3331_mm256_mask_min_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3332 return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A,
3333 (__v8sf) __B,
3334 (__v8sf) __W,
3335 (__mmask8) __U);
3336}
3337
3338static __inline__ __m256 __DEFAULT_FN_ATTRS
3339_mm256_maskz_min_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3340 return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A,
3341 (__v8sf) __B,
3342 (__v8sf)
3343 _mm256_setzero_ps (),
3344 (__mmask8) __U);
3345}
3346
3347static __inline__ __m128d __DEFAULT_FN_ATTRS
3348_mm_mask_mul_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3349 return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A,
3350 (__v2df) __B,
3351 (__v2df) __W,
3352 (__mmask8) __U);
3353}
3354
3355static __inline__ __m128d __DEFAULT_FN_ATTRS
3356_mm_maskz_mul_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3357 return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A,
3358 (__v2df) __B,
3359 (__v2df)
3360 _mm_setzero_pd (),
3361 (__mmask8) __U);
3362}
3363
3364static __inline__ __m256d __DEFAULT_FN_ATTRS
3365_mm256_mask_mul_pd (__m256d __W, __mmask8 __U, __m256d __A,
3366 __m256d __B) {
3367 return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A,
3368 (__v4df) __B,
3369 (__v4df) __W,
3370 (__mmask8) __U);
3371}
3372
3373static __inline__ __m256d __DEFAULT_FN_ATTRS
3374_mm256_maskz_mul_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3375 return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A,
3376 (__v4df) __B,
3377 (__v4df)
3378 _mm256_setzero_pd (),
3379 (__mmask8) __U);
3380}
3381
3382static __inline__ __m128 __DEFAULT_FN_ATTRS
3383_mm_mask_mul_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3384 return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A,
3385 (__v4sf) __B,
3386 (__v4sf) __W,
3387 (__mmask8) __U);
3388}
3389
3390static __inline__ __m128 __DEFAULT_FN_ATTRS
3391_mm_maskz_mul_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3392 return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A,
3393 (__v4sf) __B,
3394 (__v4sf)
3395 _mm_setzero_ps (),
3396 (__mmask8) __U);
3397}
3398
3399static __inline__ __m256 __DEFAULT_FN_ATTRS
3400_mm256_mask_mul_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3401 return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A,
3402 (__v8sf) __B,
3403 (__v8sf) __W,
3404 (__mmask8) __U);
3405}
3406
3407static __inline__ __m256 __DEFAULT_FN_ATTRS
3408_mm256_maskz_mul_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3409 return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A,
3410 (__v8sf) __B,
3411 (__v8sf)
3412 _mm256_setzero_ps (),
3413 (__mmask8) __U);
3414}
3415
3416static __inline__ __m128i __DEFAULT_FN_ATTRS
3417_mm_mask_abs_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
3418 return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A,
3419 (__v4si) __W,
3420 (__mmask8) __U);
3421}
3422
3423static __inline__ __m128i __DEFAULT_FN_ATTRS
3424_mm_maskz_abs_epi32 (__mmask8 __U, __m128i __A) {
3425 return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A,
3426 (__v4si)
3427 _mm_setzero_si128 (),
3428 (__mmask8) __U);
3429}
3430
3431static __inline__ __m256i __DEFAULT_FN_ATTRS
3432_mm256_mask_abs_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
3433 return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A,
3434 (__v8si) __W,
3435 (__mmask8) __U);
3436}
3437
3438static __inline__ __m256i __DEFAULT_FN_ATTRS
3439_mm256_maskz_abs_epi32 (__mmask8 __U, __m256i __A) {
3440 return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A,
3441 (__v8si)
3442 _mm256_setzero_si256 (),
3443 (__mmask8) __U);
3444}
3445
3446static __inline__ __m128i __DEFAULT_FN_ATTRS
3447_mm_abs_epi64 (__m128i __A) {
3448 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3449 (__v2di)
3450 _mm_setzero_si128 (),
3451 (__mmask8) -1);
3452}
3453
3454static __inline__ __m128i __DEFAULT_FN_ATTRS
3455_mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
3456 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3457 (__v2di) __W,
3458 (__mmask8) __U);
3459}
3460
3461static __inline__ __m128i __DEFAULT_FN_ATTRS
3462_mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) {
3463 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3464 (__v2di)
3465 _mm_setzero_si128 (),
3466 (__mmask8) __U);
3467}
3468
3469static __inline__ __m256i __DEFAULT_FN_ATTRS
3470_mm256_abs_epi64 (__m256i __A) {
3471 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3472 (__v4di)
3473 _mm256_setzero_si256 (),
3474 (__mmask8) -1);
3475}
3476
3477static __inline__ __m256i __DEFAULT_FN_ATTRS
3478_mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
3479 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3480 (__v4di) __W,
3481 (__mmask8) __U);
3482}
3483
3484static __inline__ __m256i __DEFAULT_FN_ATTRS
3485_mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) {
3486 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3487 (__v4di)
3488 _mm256_setzero_si256 (),
3489 (__mmask8) __U);
3490}
3491
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003492static __inline__ __m128i __DEFAULT_FN_ATTRS
3493_mm_maskz_max_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
3494 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
3495 (__v4si) __B,
3496 (__v4si)
3497 _mm_setzero_si128 (),
3498 __M);
3499}
3500
3501static __inline__ __m128i __DEFAULT_FN_ATTRS
3502_mm_mask_max_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
3503 __m128i __B) {
3504 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
3505 (__v4si) __B,
3506 (__v4si) __W, __M);
3507}
3508
3509static __inline__ __m256i __DEFAULT_FN_ATTRS
3510_mm256_maskz_max_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
3511 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
3512 (__v8si) __B,
3513 (__v8si)
3514 _mm256_setzero_si256 (),
3515 __M);
3516}
3517
3518static __inline__ __m256i __DEFAULT_FN_ATTRS
3519_mm256_mask_max_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
3520 __m256i __B) {
3521 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
3522 (__v8si) __B,
3523 (__v8si) __W, __M);
3524}
3525
3526static __inline__ __m128i __DEFAULT_FN_ATTRS
3527_mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3528 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3529 (__v2di) __B,
3530 (__v2di)
3531 _mm_setzero_si128 (),
3532 __M);
3533}
3534
3535static __inline__ __m128i __DEFAULT_FN_ATTRS
3536_mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3537 __m128i __B) {
3538 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3539 (__v2di) __B,
3540 (__v2di) __W, __M);
3541}
3542
3543static __inline__ __m128i __DEFAULT_FN_ATTRS
3544_mm_max_epi64 (__m128i __A, __m128i __B) {
3545 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3546 (__v2di) __B,
3547 (__v2di)
3548 _mm_setzero_si128 (),
3549 (__mmask8) -1);
3550}
3551
3552static __inline__ __m256i __DEFAULT_FN_ATTRS
3553_mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3554 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3555 (__v4di) __B,
3556 (__v4di)
3557 _mm256_setzero_si256 (),
3558 __M);
3559}
3560
3561static __inline__ __m256i __DEFAULT_FN_ATTRS
3562_mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3563 __m256i __B) {
3564 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3565 (__v4di) __B,
3566 (__v4di) __W, __M);
3567}
3568
3569static __inline__ __m256i __DEFAULT_FN_ATTRS
3570_mm256_max_epi64 (__m256i __A, __m256i __B) {
3571 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3572 (__v4di) __B,
3573 (__v4di)
3574 _mm256_setzero_si256 (),
3575 (__mmask8) -1);
3576}
3577
3578static __inline__ __m128i __DEFAULT_FN_ATTRS
3579_mm_maskz_max_epu32 (__mmask8 __M, __m128i __A, __m128i __B) {
3580 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
3581 (__v4si) __B,
3582 (__v4si)
3583 _mm_setzero_si128 (),
3584 __M);
3585}
3586
3587static __inline__ __m128i __DEFAULT_FN_ATTRS
3588_mm_mask_max_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
3589 __m128i __B) {
3590 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
3591 (__v4si) __B,
3592 (__v4si) __W, __M);
3593}
3594
3595static __inline__ __m256i __DEFAULT_FN_ATTRS
3596_mm256_maskz_max_epu32 (__mmask8 __M, __m256i __A, __m256i __B) {
3597 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
3598 (__v8si) __B,
3599 (__v8si)
3600 _mm256_setzero_si256 (),
3601 __M);
3602}
3603
3604static __inline__ __m256i __DEFAULT_FN_ATTRS
3605_mm256_mask_max_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
3606 __m256i __B) {
3607 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
3608 (__v8si) __B,
3609 (__v8si) __W, __M);
3610}
3611
3612static __inline__ __m128i __DEFAULT_FN_ATTRS
3613_mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3614 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3615 (__v2di) __B,
3616 (__v2di)
3617 _mm_setzero_si128 (),
3618 __M);
3619}
3620
3621static __inline__ __m128i __DEFAULT_FN_ATTRS
3622_mm_max_epu64 (__m128i __A, __m128i __B) {
3623 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3624 (__v2di) __B,
3625 (__v2di)
3626 _mm_setzero_si128 (),
3627 (__mmask8) -1);
3628}
3629
3630static __inline__ __m128i __DEFAULT_FN_ATTRS
3631_mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3632 __m128i __B) {
3633 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3634 (__v2di) __B,
3635 (__v2di) __W, __M);
3636}
3637
3638static __inline__ __m256i __DEFAULT_FN_ATTRS
3639_mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3640 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3641 (__v4di) __B,
3642 (__v4di)
3643 _mm256_setzero_si256 (),
3644 __M);
3645}
3646
3647static __inline__ __m256i __DEFAULT_FN_ATTRS
3648_mm256_max_epu64 (__m256i __A, __m256i __B) {
3649 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3650 (__v4di) __B,
3651 (__v4di)
3652 _mm256_setzero_si256 (),
3653 (__mmask8) -1);
3654}
3655
3656static __inline__ __m256i __DEFAULT_FN_ATTRS
3657_mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3658 __m256i __B) {
3659 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3660 (__v4di) __B,
3661 (__v4di) __W, __M);
3662}
3663
3664static __inline__ __m128i __DEFAULT_FN_ATTRS
3665_mm_maskz_min_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
3666 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
3667 (__v4si) __B,
3668 (__v4si)
3669 _mm_setzero_si128 (),
3670 __M);
3671}
3672
3673static __inline__ __m128i __DEFAULT_FN_ATTRS
3674_mm_mask_min_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
3675 __m128i __B) {
3676 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
3677 (__v4si) __B,
3678 (__v4si) __W, __M);
3679}
3680
3681static __inline__ __m256i __DEFAULT_FN_ATTRS
3682_mm256_maskz_min_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
3683 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
3684 (__v8si) __B,
3685 (__v8si)
3686 _mm256_setzero_si256 (),
3687 __M);
3688}
3689
3690static __inline__ __m256i __DEFAULT_FN_ATTRS
3691_mm256_mask_min_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
3692 __m256i __B) {
3693 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
3694 (__v8si) __B,
3695 (__v8si) __W, __M);
3696}
3697
3698static __inline__ __m128i __DEFAULT_FN_ATTRS
3699_mm_min_epi64 (__m128i __A, __m128i __B) {
3700 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3701 (__v2di) __B,
3702 (__v2di)
3703 _mm_setzero_si128 (),
3704 (__mmask8) -1);
3705}
3706
3707static __inline__ __m128i __DEFAULT_FN_ATTRS
3708_mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3709 __m128i __B) {
3710 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3711 (__v2di) __B,
3712 (__v2di) __W, __M);
3713}
3714
3715static __inline__ __m128i __DEFAULT_FN_ATTRS
3716_mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3717 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3718 (__v2di) __B,
3719 (__v2di)
3720 _mm_setzero_si128 (),
3721 __M);
3722}
3723
3724static __inline__ __m256i __DEFAULT_FN_ATTRS
3725_mm256_min_epi64 (__m256i __A, __m256i __B) {
3726 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3727 (__v4di) __B,
3728 (__v4di)
3729 _mm256_setzero_si256 (),
3730 (__mmask8) -1);
3731}
3732
3733static __inline__ __m256i __DEFAULT_FN_ATTRS
3734_mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3735 __m256i __B) {
3736 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3737 (__v4di) __B,
3738 (__v4di) __W, __M);
3739}
3740
3741static __inline__ __m256i __DEFAULT_FN_ATTRS
3742_mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3743 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3744 (__v4di) __B,
3745 (__v4di)
3746 _mm256_setzero_si256 (),
3747 __M);
3748}
3749
3750static __inline__ __m128i __DEFAULT_FN_ATTRS
3751_mm_maskz_min_epu32 (__mmask8 __M, __m128i __A, __m128i __B) {
3752 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
3753 (__v4si) __B,
3754 (__v4si)
3755 _mm_setzero_si128 (),
3756 __M);
3757}
3758
3759static __inline__ __m128i __DEFAULT_FN_ATTRS
3760_mm_mask_min_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
3761 __m128i __B) {
3762 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
3763 (__v4si) __B,
3764 (__v4si) __W, __M);
3765}
3766
3767static __inline__ __m256i __DEFAULT_FN_ATTRS
3768_mm256_maskz_min_epu32 (__mmask8 __M, __m256i __A, __m256i __B) {
3769 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
3770 (__v8si) __B,
3771 (__v8si)
3772 _mm256_setzero_si256 (),
3773 __M);
3774}
3775
3776static __inline__ __m256i __DEFAULT_FN_ATTRS
3777_mm256_mask_min_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
3778 __m256i __B) {
3779 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
3780 (__v8si) __B,
3781 (__v8si) __W, __M);
3782}
3783
3784static __inline__ __m128i __DEFAULT_FN_ATTRS
3785_mm_min_epu64 (__m128i __A, __m128i __B) {
3786 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3787 (__v2di) __B,
3788 (__v2di)
3789 _mm_setzero_si128 (),
3790 (__mmask8) -1);
3791}
3792
3793static __inline__ __m128i __DEFAULT_FN_ATTRS
3794_mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3795 __m128i __B) {
3796 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3797 (__v2di) __B,
3798 (__v2di) __W, __M);
3799}
3800
3801static __inline__ __m128i __DEFAULT_FN_ATTRS
3802_mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3803 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3804 (__v2di) __B,
3805 (__v2di)
3806 _mm_setzero_si128 (),
3807 __M);
3808}
3809
3810static __inline__ __m256i __DEFAULT_FN_ATTRS
3811_mm256_min_epu64 (__m256i __A, __m256i __B) {
3812 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3813 (__v4di) __B,
3814 (__v4di)
3815 _mm256_setzero_si256 (),
3816 (__mmask8) -1);
3817}
3818
3819static __inline__ __m256i __DEFAULT_FN_ATTRS
3820_mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3821 __m256i __B) {
3822 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3823 (__v4di) __B,
3824 (__v4di) __W, __M);
3825}
3826
3827static __inline__ __m256i __DEFAULT_FN_ATTRS
3828_mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3829 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3830 (__v4di) __B,
3831 (__v4di)
3832 _mm256_setzero_si256 (),
3833 __M);
3834}
3835
3836#define _mm_roundscale_pd(__A, __imm) __extension__ ({ \
3837 (__m128d) __builtin_ia32_rndscalepd_128_mask ((__v2df) __A, \
3838 __imm, (__v2df) _mm_setzero_pd (), (__mmask8) -1); })
3839
3840
3841#define _mm_mask_roundscale_pd(__W, __U, __A, __imm) __extension__ ({ \
3842 (__m128d) __builtin_ia32_rndscalepd_128_mask ((__v2df) __A, __imm, \
3843 (__v2df) __W, (__mmask8) __U); })
3844
3845
3846#define _mm_maskz_roundscale_pd(__U, __A, __imm) __extension__ ({ \
3847 (__m128d) __builtin_ia32_rndscalepd_128_mask ((__v2df) __A, __imm, \
3848 (__v2df) _mm_setzero_pd (), (__mmask8) __U); })
3849
3850
3851#define _mm256_roundscale_pd(__A, __imm) __extension__ ({ \
3852 (__m256d) __builtin_ia32_rndscalepd_256_mask ((__v4df) __A, __imm, \
3853 (__v4df) _mm256_setzero_pd (), (__mmask8) -1); })
3854
3855
3856#define _mm256_mask_roundscale_pd(__W, __U, __A, __imm) __extension__ ({ \
3857 (__m256d) __builtin_ia32_rndscalepd_256_mask ((__v4df) __A, __imm, \
3858 (__v4df) __W, (__mmask8) __U); })
3859
3860
3861#define _mm256_maskz_roundscale_pd(__U, __A, __imm) __extension__ ({ \
3862 (__m256d) __builtin_ia32_rndscalepd_256_mask ((__v4df) __A, __imm, \
3863 (__v4df) _mm256_setzero_pd(), (__mmask8) __U); })
3864
3865#define _mm_roundscale_ps(__A, __imm) __extension__ ({ \
3866 (__m128) __builtin_ia32_rndscaleps_128_mask ((__v4sf) __A, __imm, \
3867 (__v4sf) _mm_setzero_ps(), (__mmask8) -1); })
3868
3869
3870#define _mm_mask_roundscale_ps(__W, __U, __A, __imm) __extension__ ({ \
3871 (__m128) __builtin_ia32_rndscaleps_128_mask ((__v4sf) __A, __imm, \
3872 (__v4sf) __W, (__mmask8) __U); })
3873
3874
3875#define _mm_maskz_roundscale_ps(__U, __A, __imm) __extension__ ({ \
3876 (__m128) __builtin_ia32_rndscaleps_128_mask ((__v4sf) __A, __imm, \
3877 (__v4sf) _mm_setzero_ps(), (__mmask8) __U); })
3878
3879#define _mm256_roundscale_ps(__A, __imm) __extension__ ({ \
3880 (__m256) __builtin_ia32_rndscaleps_256_mask ((__v8sf) __A,__imm, \
3881 (__v8sf) _mm256_setzero_ps(), (__mmask8) -1); })
3882
3883#define _mm256_mask_roundscale_ps(__W, __U, __A,__imm) __extension__ ({ \
3884 (__m256) __builtin_ia32_rndscaleps_256_mask ((__v8sf) __A, __imm, \
3885 (__v8sf) __W, (__mmask8) __U); })
3886
3887
3888#define _mm256_maskz_roundscale_ps(__U, __A, __imm) __extension__ ({ \
3889 (__m256) __builtin_ia32_rndscaleps_256_mask ((__v8sf) __A, __imm, \
3890 (__v8sf) _mm256_setzero_ps(), (__mmask8) __U); })
3891
3892static __inline__ __m128d __DEFAULT_FN_ATTRS
3893_mm_scalef_pd (__m128d __A, __m128d __B) {
3894 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3895 (__v2df) __B,
3896 (__v2df)
3897 _mm_setzero_pd (),
3898 (__mmask8) -1);
3899}
3900
3901static __inline__ __m128d __DEFAULT_FN_ATTRS
3902_mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A,
3903 __m128d __B) {
3904 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3905 (__v2df) __B,
3906 (__v2df) __W,
3907 (__mmask8) __U);
3908}
3909
3910static __inline__ __m128d __DEFAULT_FN_ATTRS
3911_mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3912 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3913 (__v2df) __B,
3914 (__v2df)
3915 _mm_setzero_pd (),
3916 (__mmask8) __U);
3917}
3918
3919static __inline__ __m256d __DEFAULT_FN_ATTRS
3920_mm256_scalef_pd (__m256d __A, __m256d __B) {
3921 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3922 (__v4df) __B,
3923 (__v4df)
3924 _mm256_setzero_pd (),
3925 (__mmask8) -1);
3926}
3927
3928static __inline__ __m256d __DEFAULT_FN_ATTRS
3929_mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A,
3930 __m256d __B) {
3931 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3932 (__v4df) __B,
3933 (__v4df) __W,
3934 (__mmask8) __U);
3935}
3936
3937static __inline__ __m256d __DEFAULT_FN_ATTRS
3938_mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3939 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3940 (__v4df) __B,
3941 (__v4df)
3942 _mm256_setzero_pd (),
3943 (__mmask8) __U);
3944}
3945
3946static __inline__ __m128 __DEFAULT_FN_ATTRS
3947_mm_scalef_ps (__m128 __A, __m128 __B) {
3948 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3949 (__v4sf) __B,
3950 (__v4sf)
3951 _mm_setzero_ps (),
3952 (__mmask8) -1);
3953}
3954
3955static __inline__ __m128 __DEFAULT_FN_ATTRS
3956_mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3957 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3958 (__v4sf) __B,
3959 (__v4sf) __W,
3960 (__mmask8) __U);
3961}
3962
3963static __inline__ __m128 __DEFAULT_FN_ATTRS
3964_mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3965 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3966 (__v4sf) __B,
3967 (__v4sf)
3968 _mm_setzero_ps (),
3969 (__mmask8) __U);
3970}
3971
3972static __inline__ __m256 __DEFAULT_FN_ATTRS
3973_mm256_scalef_ps (__m256 __A, __m256 __B) {
3974 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3975 (__v8sf) __B,
3976 (__v8sf)
3977 _mm256_setzero_ps (),
3978 (__mmask8) -1);
3979}
3980
3981static __inline__ __m256 __DEFAULT_FN_ATTRS
3982_mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A,
3983 __m256 __B) {
3984 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3985 (__v8sf) __B,
3986 (__v8sf) __W,
3987 (__mmask8) __U);
3988}
3989
3990static __inline__ __m256 __DEFAULT_FN_ATTRS
3991_mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3992 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3993 (__v8sf) __B,
3994 (__v8sf)
3995 _mm256_setzero_ps (),
3996 (__mmask8) __U);
3997}
3998
3999#define _mm_i64scatter_pd(__addr,__index, __v1, __scale) __extension__ ({ \
4000 __builtin_ia32_scatterdiv2df(__addr, (__mmask8) 0xFF, (__v2di) __index, \
4001 (__v2df) __v1, __scale); })
4002
4003#define _mm_mask_i64scatter_pd(__addr, __mask, __index, __v1, \
4004 __scale) __extension__ ({ \
4005 __builtin_ia32_scatterdiv2df (__addr, __mask, (__v2di) __index, \
4006 (__v2df) __v1, __scale); })
4007
4008
4009#define _mm_i64scatter_epi64(__addr, __index, __v1, __scale) __extension__ ({ \
4010 __builtin_ia32_scatterdiv2di (__addr, (__mmask8) 0xFF, \
4011 (__v2di) __index, (__v2di) __v1, __scale); })
4012
4013#define _mm_mask_i64scatter_epi64(__addr, __mask, __index, __v1,\
4014 __scale) __extension__ ({ \
4015 __builtin_ia32_scatterdiv2di (__addr, __mask, (__v2di) __index,\
4016 (__v2di) __v1, __scale); })
4017
4018#define _mm256_i64scatter_pd(__addr, __index, __v1, __scale) __extension__ ({ \
4019 __builtin_ia32_scatterdiv4df (__addr, (__mmask8) 0xFF,\
4020 (__v4di) __index, (__v4df) __v1, __scale); })
4021
4022#define _mm256_mask_i64scatter_pd(__addr, __mask, __index, __v1,\
4023 __scale) __extension__ ({ \
4024 __builtin_ia32_scatterdiv4df (__addr, __mask, (__v4di) __index,\
4025 (__v4df) __v1, __scale); })
4026
4027#define _mm256_i64scatter_epi64(__addr, __index, __v1, __scale) __extension__ ({ \
4028 __builtin_ia32_scatterdiv4di (__addr, (__mmask8) 0xFF, (__v4di) __index,\
4029 (__v4di) __v1, __scale); })
4030
4031#define _mm256_mask_i64scatter_epi64(__addr, __mask, __index, __v1,\
4032 __scale) __extension__ ({ \
4033 __builtin_ia32_scatterdiv4di (__addr, __mask, (__v4di) __index,\
4034 (__v4di) __v1, __scale); })
4035
4036#define _mm_i64scatter_ps(__addr, __index, __v1, __scale) __extension__ ({ \
4037 __builtin_ia32_scatterdiv4sf (__addr, (__mmask8) 0xFF,\
4038 (__v2di) __index, (__v4sf) __v1, __scale); })
4039
4040#define _mm_mask_i64scatter_ps(__addr, __mask, __index, __v1, \
4041 __scale) __extension__ ({ \
4042 __builtin_ia32_scatterdiv4sf (__addr, __mask, (__v2di) __index,\
4043 (__v4sf) __v1, __scale); })
4044
4045#define _mm_i64scatter_epi32(__addr, __index, __v1, \
4046 __scale) __extension__ ({ \
4047 __builtin_ia32_scatterdiv4si (__addr, (__mmask8) 0xFF,\
4048 (__v2di) __index, (__v4si) __v1, __scale); })
4049
4050#define _mm_mask_i64scatter_epi32(__addr, __mask, __index, __v1,\
4051 __scale) __extension__ ({ \
4052 __builtin_ia32_scatterdiv4si (__addr, __mask, (__v2di) __index,\
4053 (__v4si) __v1, __scale); })
4054
4055#define _mm256_i64scatter_ps(__addr, __index, __v1, __scale) __extension__ ({ \
4056 __builtin_ia32_scatterdiv8sf (__addr, (__mmask8) 0xFF, (__v4di) __index, \
4057 (__v4sf) __v1, __scale); })
4058
4059#define _mm256_mask_i64scatter_ps(__addr, __mask, __index, __v1, \
4060 __scale) __extension__ ({ \
4061 __builtin_ia32_scatterdiv8sf (__addr, __mask, (__v4di) __index, \
4062 (__v4sf) __v1, __scale); })
4063
4064#define _mm256_i64scatter_epi32(__addr, __index, __v1, __scale) __extension__ ({ \
4065 __builtin_ia32_scatterdiv8si (__addr, (__mmask8) 0xFF, \
4066 (__v4di) __index, (__v4si) __v1, __scale); })
4067
4068#define _mm256_mask_i64scatter_epi32(__addr, __mask, __index, __v1, \
4069 __scale) __extension__ ({ \
4070 __builtin_ia32_scatterdiv8si(__addr, __mask, (__v4di) __index, \
4071 (__v4si) __v1, __scale); })
4072
4073#define _mm_i32scatter_pd(__addr, __index, __v1, \
4074 __scale) __extension__ ({ \
4075 __builtin_ia32_scattersiv2df (__addr, (__mmask8) 0xFF, \
4076 (__v4si) __index, (__v2df) __v1, __scale); })
4077
4078#define _mm_mask_i32scatter_pd(__addr, __mask, __index, __v1, \
4079 __scale) __extension__ ({ \
4080 __builtin_ia32_scattersiv2df (__addr, __mask, (__v4si) __index,\
4081 (__v2df) __v1, __scale); })
4082
4083#define _mm_i32scatter_epi64(__addr, __index, __v1, __scale) __extension__ ({ \
4084 __builtin_ia32_scattersiv2di (__addr, (__mmask8) 0xFF, \
4085 (__v4si) __index, (__v2di) __v1, __scale); })
4086
4087#define _mm_mask_i32scatter_epi64(__addr, __mask, __index, __v1, \
4088 __scale) __extension__ ({ \
4089 __builtin_ia32_scattersiv2di (__addr, __mask, (__v4si) __index, \
4090 (__v2di) __v1, __scale); })
4091
4092#define _mm256_i32scatter_pd(__addr, __index, __v1, __scale) __extension__ ({ \
4093 __builtin_ia32_scattersiv4df (__addr, (__mmask8) 0xFF, \
4094 (__v4si) __index, (__v4df) __v1, __scale); })
4095
4096#define _mm256_mask_i32scatter_pd(__addr, __mask, __index, __v1, \
4097 __scale) __extension__ ({ \
4098 __builtin_ia32_scattersiv4df (__addr, __mask, (__v4si) __index, \
4099 (__v4df) __v1, __scale); })
4100
4101#define _mm256_i32scatter_epi64(__addr, __index, __v1, \
4102 __scale) __extension__ ({ \
4103 __builtin_ia32_scattersiv4di (__addr, (__mmask8) 0xFF, \
4104 (__v4si) __index, (__v4di) __v1, __scale); })
4105
4106#define _mm256_mask_i32scatter_epi64(__addr, __mask, __index, __v1, \
4107 __scale) __extension__ ({ \
4108 __builtin_ia32_scattersiv4di (__addr, __mask, (__v4si) __index, \
4109 (__v4di) __v1, __scale); })
4110
4111#define _mm_i32scatter_ps(__addr, __index, __v1, __scale) __extension__ ({ \
4112 __builtin_ia32_scattersiv4sf (__addr, (__mmask8) 0xFF, \
4113 (__v4si) __index, (__v4sf) __v1, __scale); })
4114
4115#define _mm_mask_i32scatter_ps(__addr, __mask, __index, __v1, \
4116 __scale) __extension__ ({ \
4117 __builtin_ia32_scattersiv4sf (__addr, __mask, (__v4si) __index, \
4118 (__v4sf) __v1, __scale); })
4119
4120#define _mm_i32scatter_epi32(__addr, __index, __v1, __scale) __extension__ ({ \
4121 __builtin_ia32_scattersiv4si (__addr, (__mmask8) 0xFF, \
4122 (__v4si) __index, (__v4si) __v1, __scale); })
4123
4124#define _mm_mask_i32scatter_epi32(__addr, __mask, __index, __v1, \
4125 __scale) __extension__ ({ \
4126 __builtin_ia32_scattersiv4si (__addr, __mask, (__v4si) __index,\
4127 (__v4si) __v1, __scale); })
4128
4129#define _mm256_i32scatter_ps(__addr, __index, __v1, __scale) __extension__ ({ \
4130 __builtin_ia32_scattersiv8sf (__addr, (__mmask8) 0xFF, \
4131 (__v8si) __index, (__v8sf) __v1, __scale); })
4132
4133#define _mm256_mask_i32scatter_ps(__addr, __mask, __index, __v1, \
4134 __scale) __extension__ ({ \
4135 __builtin_ia32_scattersiv8sf (__addr, __mask, (__v8si) __index,\
4136 (__v8sf) __v1, __scale); })
4137
4138#define _mm256_i32scatter_epi32(__addr, __index, __v1, __scale) __extension__ ({ \
4139 __builtin_ia32_scattersiv8si (__addr, (__mmask8) 0xFF, \
4140 (__v8si) __index, (__v8si) __v1, __scale); })
4141
4142#define _mm256_mask_i32scatter_epi32(__addr, __mask, __index, __v1, \
4143 __scale) __extension__ ({ \
4144 __builtin_ia32_scattersiv8si (__addr, __mask, (__v8si) __index, \
4145 (__v8si) __v1, __scale); })
4146
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004147static __inline__ __m128d __DEFAULT_FN_ATTRS
4148_mm_mask_sqrt_pd (__m128d __W, __mmask8 __U, __m128d __A) {
4149 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
4150 (__v2df) __W,
4151 (__mmask8) __U);
4152}
4153
4154static __inline__ __m128d __DEFAULT_FN_ATTRS
4155_mm_maskz_sqrt_pd (__mmask8 __U, __m128d __A) {
4156 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
4157 (__v2df)
4158 _mm_setzero_pd (),
4159 (__mmask8) __U);
4160}
4161
4162static __inline__ __m256d __DEFAULT_FN_ATTRS
4163_mm256_mask_sqrt_pd (__m256d __W, __mmask8 __U, __m256d __A) {
4164 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
4165 (__v4df) __W,
4166 (__mmask8) __U);
4167}
4168
4169static __inline__ __m256d __DEFAULT_FN_ATTRS
4170_mm256_maskz_sqrt_pd (__mmask8 __U, __m256d __A) {
4171 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
4172 (__v4df)
4173 _mm256_setzero_pd (),
4174 (__mmask8) __U);
4175}
4176
4177static __inline__ __m128 __DEFAULT_FN_ATTRS
4178_mm_mask_sqrt_ps (__m128 __W, __mmask8 __U, __m128 __A) {
4179 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
4180 (__v4sf) __W,
4181 (__mmask8) __U);
4182}
4183
4184static __inline__ __m128 __DEFAULT_FN_ATTRS
4185_mm_maskz_sqrt_ps (__mmask8 __U, __m128 __A) {
4186 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
4187 (__v4sf)
4188 _mm_setzero_ps (),
4189 (__mmask8) __U);
4190}
4191
4192static __inline__ __m256 __DEFAULT_FN_ATTRS
4193_mm256_mask_sqrt_ps (__m256 __W, __mmask8 __U, __m256 __A) {
4194 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4195 (__v8sf) __W,
4196 (__mmask8) __U);
4197}
4198
4199static __inline__ __m256 __DEFAULT_FN_ATTRS
4200_mm256_maskz_sqrt_ps (__mmask8 __U, __m256 __A) {
4201 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4202 (__v8sf)
4203 _mm256_setzero_ps (),
4204 (__mmask8) __U);
4205}
4206
4207static __inline__ __m128d __DEFAULT_FN_ATTRS
4208_mm_mask_sub_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4209 return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A,
4210 (__v2df) __B,
4211 (__v2df) __W,
4212 (__mmask8) __U);
4213}
4214
4215static __inline__ __m128d __DEFAULT_FN_ATTRS
4216_mm_maskz_sub_pd (__mmask8 __U, __m128d __A, __m128d __B) {
4217 return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A,
4218 (__v2df) __B,
4219 (__v2df)
4220 _mm_setzero_pd (),
4221 (__mmask8) __U);
4222}
4223
4224static __inline__ __m256d __DEFAULT_FN_ATTRS
4225_mm256_mask_sub_pd (__m256d __W, __mmask8 __U, __m256d __A,
4226 __m256d __B) {
4227 return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A,
4228 (__v4df) __B,
4229 (__v4df) __W,
4230 (__mmask8) __U);
4231}
4232
4233static __inline__ __m256d __DEFAULT_FN_ATTRS
4234_mm256_maskz_sub_pd (__mmask8 __U, __m256d __A, __m256d __B) {
4235 return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A,
4236 (__v4df) __B,
4237 (__v4df)
4238 _mm256_setzero_pd (),
4239 (__mmask8) __U);
4240}
4241
4242static __inline__ __m128 __DEFAULT_FN_ATTRS
4243_mm_mask_sub_ps (__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) {
4244 return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A,
4245 (__v4sf) __B,
4246 (__v4sf) __W,
4247 (__mmask8) __U);
4248}
4249
4250static __inline__ __m128 __DEFAULT_FN_ATTRS
4251_mm_maskz_sub_ps (__mmask16 __U, __m128 __A, __m128 __B) {
4252 return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A,
4253 (__v4sf) __B,
4254 (__v4sf)
4255 _mm_setzero_ps (),
4256 (__mmask8) __U);
4257}
4258
4259static __inline__ __m256 __DEFAULT_FN_ATTRS
4260_mm256_mask_sub_ps (__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) {
4261 return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A,
4262 (__v8sf) __B,
4263 (__v8sf) __W,
4264 (__mmask8) __U);
4265}
4266
4267static __inline__ __m256 __DEFAULT_FN_ATTRS
4268_mm256_maskz_sub_ps (__mmask16 __U, __m256 __A, __m256 __B) {
4269 return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A,
4270 (__v8sf) __B,
4271 (__v8sf)
4272 _mm256_setzero_ps (),
4273 (__mmask8) __U);
4274}
4275
4276static __inline__ __m128i __DEFAULT_FN_ATTRS
4277_mm_mask2_permutex2var_epi32 (__m128i __A, __m128i __I, __mmask8 __U,
4278 __m128i __B) {
4279 return (__m128i) __builtin_ia32_vpermi2vard128_mask ((__v4si) __A,
4280 (__v4si) __I
4281 /* idx */ ,
4282 (__v4si) __B,
4283 (__mmask8) __U);
4284}
4285
4286static __inline__ __m256i __DEFAULT_FN_ATTRS
4287_mm256_mask2_permutex2var_epi32 (__m256i __A, __m256i __I,
4288 __mmask8 __U, __m256i __B) {
4289 return (__m256i) __builtin_ia32_vpermi2vard256_mask ((__v8si) __A,
4290 (__v8si) __I
4291 /* idx */ ,
4292 (__v8si) __B,
4293 (__mmask8) __U);
4294}
4295
4296static __inline__ __m128d __DEFAULT_FN_ATTRS
4297_mm_mask2_permutex2var_pd (__m128d __A, __m128i __I, __mmask8 __U,
4298 __m128d __B) {
4299 return (__m128d) __builtin_ia32_vpermi2varpd128_mask ((__v2df) __A,
4300 (__v2di) __I
4301 /* idx */ ,
4302 (__v2df) __B,
4303 (__mmask8)
4304 __U);
4305}
4306
4307static __inline__ __m256d __DEFAULT_FN_ATTRS
4308_mm256_mask2_permutex2var_pd (__m256d __A, __m256i __I, __mmask8 __U,
4309 __m256d __B) {
4310 return (__m256d) __builtin_ia32_vpermi2varpd256_mask ((__v4df) __A,
4311 (__v4di) __I
4312 /* idx */ ,
4313 (__v4df) __B,
4314 (__mmask8)
4315 __U);
4316}
4317
4318static __inline__ __m128 __DEFAULT_FN_ATTRS
4319_mm_mask2_permutex2var_ps (__m128 __A, __m128i __I, __mmask8 __U,
4320 __m128 __B) {
4321 return (__m128) __builtin_ia32_vpermi2varps128_mask ((__v4sf) __A,
4322 (__v4si) __I
4323 /* idx */ ,
4324 (__v4sf) __B,
4325 (__mmask8) __U);
4326}
4327
4328static __inline__ __m256 __DEFAULT_FN_ATTRS
4329_mm256_mask2_permutex2var_ps (__m256 __A, __m256i __I, __mmask8 __U,
4330 __m256 __B) {
4331 return (__m256) __builtin_ia32_vpermi2varps256_mask ((__v8sf) __A,
4332 (__v8si) __I
4333 /* idx */ ,
4334 (__v8sf) __B,
4335 (__mmask8) __U);
4336}
4337
4338static __inline__ __m128i __DEFAULT_FN_ATTRS
4339_mm_mask2_permutex2var_epi64 (__m128i __A, __m128i __I, __mmask8 __U,
4340 __m128i __B) {
4341 return (__m128i) __builtin_ia32_vpermi2varq128_mask ((__v2di) __A,
4342 (__v2di) __I
4343 /* idx */ ,
4344 (__v2di) __B,
4345 (__mmask8) __U);
4346}
4347
4348static __inline__ __m256i __DEFAULT_FN_ATTRS
4349_mm256_mask2_permutex2var_epi64 (__m256i __A, __m256i __I,
4350 __mmask8 __U, __m256i __B) {
4351 return (__m256i) __builtin_ia32_vpermi2varq256_mask ((__v4di) __A,
4352 (__v4di) __I
4353 /* idx */ ,
4354 (__v4di) __B,
4355 (__mmask8) __U);
4356}
4357
4358static __inline__ __m128i __DEFAULT_FN_ATTRS
4359_mm_permutex2var_epi32 (__m128i __A, __m128i __I, __m128i __B) {
4360 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4361 /* idx */ ,
4362 (__v4si) __A,
4363 (__v4si) __B,
4364 (__mmask8) -1);
4365}
4366
4367static __inline__ __m128i __DEFAULT_FN_ATTRS
4368_mm_mask_permutex2var_epi32 (__m128i __A, __mmask8 __U, __m128i __I,
4369 __m128i __B) {
4370 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4371 /* idx */ ,
4372 (__v4si) __A,
4373 (__v4si) __B,
4374 (__mmask8) __U);
4375}
4376
4377static __inline__ __m128i __DEFAULT_FN_ATTRS
4378_mm_maskz_permutex2var_epi32 (__mmask8 __U, __m128i __A, __m128i __I,
4379 __m128i __B) {
4380 return (__m128i) __builtin_ia32_vpermt2vard128_maskz ((__v4si) __I
4381 /* idx */ ,
4382 (__v4si) __A,
4383 (__v4si) __B,
4384 (__mmask8)
4385 __U);
4386}
4387
4388static __inline__ __m256i __DEFAULT_FN_ATTRS
4389_mm256_permutex2var_epi32 (__m256i __A, __m256i __I, __m256i __B) {
4390 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4391 /* idx */ ,
4392 (__v8si) __A,
4393 (__v8si) __B,
4394 (__mmask8) -1);
4395}
4396
4397static __inline__ __m256i __DEFAULT_FN_ATTRS
4398_mm256_mask_permutex2var_epi32 (__m256i __A, __mmask8 __U, __m256i __I,
4399 __m256i __B) {
4400 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4401 /* idx */ ,
4402 (__v8si) __A,
4403 (__v8si) __B,
4404 (__mmask8) __U);
4405}
4406
4407static __inline__ __m256i __DEFAULT_FN_ATTRS
4408_mm256_maskz_permutex2var_epi32 (__mmask8 __U, __m256i __A,
4409 __m256i __I, __m256i __B) {
4410 return (__m256i) __builtin_ia32_vpermt2vard256_maskz ((__v8si) __I
4411 /* idx */ ,
4412 (__v8si) __A,
4413 (__v8si) __B,
4414 (__mmask8)
4415 __U);
4416}
4417
4418static __inline__ __m128d __DEFAULT_FN_ATTRS
4419_mm_permutex2var_pd (__m128d __A, __m128i __I, __m128d __B) {
4420 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4421 /* idx */ ,
4422 (__v2df) __A,
4423 (__v2df) __B,
4424 (__mmask8) -
4425 1);
4426}
4427
4428static __inline__ __m128d __DEFAULT_FN_ATTRS
4429_mm_mask_permutex2var_pd (__m128d __A, __mmask8 __U, __m128i __I,
4430 __m128d __B) {
4431 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4432 /* idx */ ,
4433 (__v2df) __A,
4434 (__v2df) __B,
4435 (__mmask8)
4436 __U);
4437}
4438
4439static __inline__ __m128d __DEFAULT_FN_ATTRS
4440_mm_maskz_permutex2var_pd (__mmask8 __U, __m128d __A, __m128i __I,
4441 __m128d __B) {
4442 return (__m128d) __builtin_ia32_vpermt2varpd128_maskz ((__v2di) __I
4443 /* idx */ ,
4444 (__v2df) __A,
4445 (__v2df) __B,
4446 (__mmask8)
4447 __U);
4448}
4449
4450static __inline__ __m256d __DEFAULT_FN_ATTRS
4451_mm256_permutex2var_pd (__m256d __A, __m256i __I, __m256d __B) {
4452 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4453 /* idx */ ,
4454 (__v4df) __A,
4455 (__v4df) __B,
4456 (__mmask8) -
4457 1);
4458}
4459
4460static __inline__ __m256d __DEFAULT_FN_ATTRS
4461_mm256_mask_permutex2var_pd (__m256d __A, __mmask8 __U, __m256i __I,
4462 __m256d __B) {
4463 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4464 /* idx */ ,
4465 (__v4df) __A,
4466 (__v4df) __B,
4467 (__mmask8)
4468 __U);
4469}
4470
4471static __inline__ __m256d __DEFAULT_FN_ATTRS
4472_mm256_maskz_permutex2var_pd (__mmask8 __U, __m256d __A, __m256i __I,
4473 __m256d __B) {
4474 return (__m256d) __builtin_ia32_vpermt2varpd256_maskz ((__v4di) __I
4475 /* idx */ ,
4476 (__v4df) __A,
4477 (__v4df) __B,
4478 (__mmask8)
4479 __U);
4480}
4481
4482static __inline__ __m128 __DEFAULT_FN_ATTRS
4483_mm_permutex2var_ps (__m128 __A, __m128i __I, __m128 __B) {
4484 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4485 /* idx */ ,
4486 (__v4sf) __A,
4487 (__v4sf) __B,
4488 (__mmask8) -1);
4489}
4490
4491static __inline__ __m128 __DEFAULT_FN_ATTRS
4492_mm_mask_permutex2var_ps (__m128 __A, __mmask8 __U, __m128i __I,
4493 __m128 __B) {
4494 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4495 /* idx */ ,
4496 (__v4sf) __A,
4497 (__v4sf) __B,
4498 (__mmask8) __U);
4499}
4500
4501static __inline__ __m128 __DEFAULT_FN_ATTRS
4502_mm_maskz_permutex2var_ps (__mmask8 __U, __m128 __A, __m128i __I,
4503 __m128 __B) {
4504 return (__m128) __builtin_ia32_vpermt2varps128_maskz ((__v4si) __I
4505 /* idx */ ,
4506 (__v4sf) __A,
4507 (__v4sf) __B,
4508 (__mmask8)
4509 __U);
4510}
4511
4512static __inline__ __m256 __DEFAULT_FN_ATTRS
4513_mm256_permutex2var_ps (__m256 __A, __m256i __I, __m256 __B) {
4514 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4515 /* idx */ ,
4516 (__v8sf) __A,
4517 (__v8sf) __B,
4518 (__mmask8) -1);
4519}
4520
4521static __inline__ __m256 __DEFAULT_FN_ATTRS
4522_mm256_mask_permutex2var_ps (__m256 __A, __mmask8 __U, __m256i __I,
4523 __m256 __B) {
4524 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4525 /* idx */ ,
4526 (__v8sf) __A,
4527 (__v8sf) __B,
4528 (__mmask8) __U);
4529}
4530
4531static __inline__ __m256 __DEFAULT_FN_ATTRS
4532_mm256_maskz_permutex2var_ps (__mmask8 __U, __m256 __A, __m256i __I,
4533 __m256 __B) {
4534 return (__m256) __builtin_ia32_vpermt2varps256_maskz ((__v8si) __I
4535 /* idx */ ,
4536 (__v8sf) __A,
4537 (__v8sf) __B,
4538 (__mmask8)
4539 __U);
4540}
4541
4542static __inline__ __m128i __DEFAULT_FN_ATTRS
4543_mm_permutex2var_epi64 (__m128i __A, __m128i __I, __m128i __B) {
4544 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4545 /* idx */ ,
4546 (__v2di) __A,
4547 (__v2di) __B,
4548 (__mmask8) -1);
4549}
4550
4551static __inline__ __m128i __DEFAULT_FN_ATTRS
4552_mm_mask_permutex2var_epi64 (__m128i __A, __mmask8 __U, __m128i __I,
4553 __m128i __B) {
4554 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4555 /* idx */ ,
4556 (__v2di) __A,
4557 (__v2di) __B,
4558 (__mmask8) __U);
4559}
4560
4561static __inline__ __m128i __DEFAULT_FN_ATTRS
4562_mm_maskz_permutex2var_epi64 (__mmask8 __U, __m128i __A, __m128i __I,
4563 __m128i __B) {
4564 return (__m128i) __builtin_ia32_vpermt2varq128_maskz ((__v2di) __I
4565 /* idx */ ,
4566 (__v2di) __A,
4567 (__v2di) __B,
4568 (__mmask8)
4569 __U);
4570}
4571
4572
4573static __inline__ __m256i __DEFAULT_FN_ATTRS
4574_mm256_permutex2var_epi64 (__m256i __A, __m256i __I, __m256i __B) {
4575 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4576 /* idx */ ,
4577 (__v4di) __A,
4578 (__v4di) __B,
4579 (__mmask8) -1);
4580}
4581
4582static __inline__ __m256i __DEFAULT_FN_ATTRS
4583_mm256_mask_permutex2var_epi64 (__m256i __A, __mmask8 __U, __m256i __I,
4584 __m256i __B) {
4585 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4586 /* idx */ ,
4587 (__v4di) __A,
4588 (__v4di) __B,
4589 (__mmask8) __U);
4590}
4591
4592static __inline__ __m256i __DEFAULT_FN_ATTRS
4593_mm256_maskz_permutex2var_epi64 (__mmask8 __U, __m256i __A,
4594 __m256i __I, __m256i __B) {
4595 return (__m256i) __builtin_ia32_vpermt2varq256_maskz ((__v4di) __I
4596 /* idx */ ,
4597 (__v4di) __A,
4598 (__v4di) __B,
4599 (__mmask8)
4600 __U);
4601}
4602
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004603static __inline__ __m128i __DEFAULT_FN_ATTRS
4604_mm_mask_cvtepi8_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4605{
4606 return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A,
4607 (__v4si) __W,
4608 (__mmask8) __U);
4609}
4610
4611static __inline__ __m128i __DEFAULT_FN_ATTRS
4612_mm_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4613{
4614 return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A,
4615 (__v4si)
4616 _mm_setzero_si128 (),
4617 (__mmask8) __U);
4618}
4619
4620static __inline__ __m256i __DEFAULT_FN_ATTRS
4621_mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4622{
4623 return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A,
4624 (__v8si) __W,
4625 (__mmask8) __U);
4626}
4627
4628static __inline__ __m256i __DEFAULT_FN_ATTRS
4629_mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4630{
4631 return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A,
4632 (__v8si)
4633 _mm256_setzero_si256 (),
4634 (__mmask8) __U);
4635}
4636
4637static __inline__ __m128i __DEFAULT_FN_ATTRS
4638_mm_mask_cvtepi8_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4639{
4640 return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A,
4641 (__v2di) __W,
4642 (__mmask8) __U);
4643}
4644
4645static __inline__ __m128i __DEFAULT_FN_ATTRS
4646_mm_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
4647{
4648 return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A,
4649 (__v2di)
4650 _mm_setzero_si128 (),
4651 (__mmask8) __U);
4652}
4653
4654static __inline__ __m256i __DEFAULT_FN_ATTRS
4655_mm256_mask_cvtepi8_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4656{
4657 return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A,
4658 (__v4di) __W,
4659 (__mmask8) __U);
4660}
4661
4662static __inline__ __m256i __DEFAULT_FN_ATTRS
4663_mm256_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
4664{
4665 return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A,
4666 (__v4di)
4667 _mm256_setzero_si256 (),
4668 (__mmask8) __U);
4669}
4670
4671static __inline__ __m128i __DEFAULT_FN_ATTRS
4672_mm_mask_cvtepi32_epi64 (__m128i __W, __mmask8 __U, __m128i __X)
4673{
4674 return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X,
4675 (__v2di) __W,
4676 (__mmask8) __U);
4677}
4678
4679static __inline__ __m128i __DEFAULT_FN_ATTRS
4680_mm_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X)
4681{
4682 return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X,
4683 (__v2di)
4684 _mm_setzero_si128 (),
4685 (__mmask8) __U);
4686}
4687
4688static __inline__ __m256i __DEFAULT_FN_ATTRS
4689_mm256_mask_cvtepi32_epi64 (__m256i __W, __mmask8 __U, __m128i __X)
4690{
4691 return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X,
4692 (__v4di) __W,
4693 (__mmask8) __U);
4694}
4695
4696static __inline__ __m256i __DEFAULT_FN_ATTRS
4697_mm256_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X)
4698{
4699 return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X,
4700 (__v4di)
4701 _mm256_setzero_si256 (),
4702 (__mmask8) __U);
4703}
4704
4705static __inline__ __m128i __DEFAULT_FN_ATTRS
4706_mm_mask_cvtepi16_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4707{
4708 return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A,
4709 (__v4si) __W,
4710 (__mmask8) __U);
4711}
4712
4713static __inline__ __m128i __DEFAULT_FN_ATTRS
4714_mm_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4715{
4716 return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A,
4717 (__v4si)
4718 _mm_setzero_si128 (),
4719 (__mmask8) __U);
4720}
4721
4722static __inline__ __m256i __DEFAULT_FN_ATTRS
4723_mm256_mask_cvtepi16_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4724{
4725 return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A,
4726 (__v8si) __W,
4727 (__mmask8) __U);
4728}
4729
4730static __inline__ __m256i __DEFAULT_FN_ATTRS
4731_mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4732{
4733 return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A,
4734 (__v8si)
4735 _mm256_setzero_si256 (),
4736 (__mmask8) __U);
4737}
4738
4739static __inline__ __m128i __DEFAULT_FN_ATTRS
4740_mm_mask_cvtepi16_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4741{
4742 return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A,
4743 (__v2di) __W,
4744 (__mmask8) __U);
4745}
4746
4747static __inline__ __m128i __DEFAULT_FN_ATTRS
4748_mm_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
4749{
4750 return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A,
4751 (__v2di)
4752 _mm_setzero_si128 (),
4753 (__mmask8) __U);
4754}
4755
4756static __inline__ __m256i __DEFAULT_FN_ATTRS
4757_mm256_mask_cvtepi16_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4758{
4759 return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A,
4760 (__v4di) __W,
4761 (__mmask8) __U);
4762}
4763
4764static __inline__ __m256i __DEFAULT_FN_ATTRS
4765_mm256_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
4766{
4767 return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A,
4768 (__v4di)
4769 _mm256_setzero_si256 (),
4770 (__mmask8) __U);
4771}
4772
4773
Michael Kupersteine45af542015-06-30 13:36:19 +00004774#undef __DEFAULT_FN_ATTRS
Eric Christopher99af5b22015-10-27 06:11:03 +00004775#undef __DEFAULT_FN_ATTRS_BOTH
Eric Christopher4d1851682015-06-17 07:09:20 +00004776
Robert Khasanovb9f3a912014-10-08 17:18:13 +00004777#endif /* __AVX512VLINTRIN_H */