blob: c03821f5996ea5eb2baee2018845bcd3fd11f473 [file] [log] [blame]
Robert Khasanovb9f3a912014-10-08 17:18:13 +00001/*===---- avx512vlintrin.h - AVX512VL intrinsics ---------------------------===
2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to deal
5 * in the Software without restriction, including without limitation the rights
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 * copies of the Software, and to permit persons to whom the Software is
8 * furnished to do so, subject to the following conditions:
9 *
10 * The above copyright notice and this permission notice shall be included in
11 * all copies or substantial portions of the Software.
12 *
13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 * THE SOFTWARE.
20 *
21 *===-----------------------------------------------------------------------===
22 */
23
24#ifndef __IMMINTRIN_H
25#error "Never use <avx512vlintrin.h> directly; include <immintrin.h> instead."
26#endif
27
28#ifndef __AVX512VLINTRIN_H
29#define __AVX512VLINTRIN_H
30
Michael Kupersteine45af542015-06-30 13:36:19 +000031#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl")))
Eric Christopher4d1851682015-06-17 07:09:20 +000032
Michael Zuckerman38a27272016-02-22 09:05:41 +000033static __inline __v2di __DEFAULT_FN_ATTRS
34_mm_setzero_di(void) {
35 return (__v2di){ 0, 0};
36}
37
Robert Khasanovb9f3a912014-10-08 17:18:13 +000038/* Integer compare */
39
Craig Topperfc074982016-06-13 04:15:11 +000040static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +000041_mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) {
42 return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b,
43 (__mmask8)-1);
44}
45
Craig Topperfc074982016-06-13 04:15:11 +000046static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +000047_mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
48 return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b,
49 __u);
50}
51
Michael Kupersteine45af542015-06-30 13:36:19 +000052static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000053_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) {
54 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0,
55 (__mmask8)-1);
56}
57
Michael Kupersteine45af542015-06-30 13:36:19 +000058static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000059_mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
60 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0,
61 __u);
62}
Robert Khasanovb9f3a912014-10-08 17:18:13 +000063
Craig Topperfc074982016-06-13 04:15:11 +000064static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +000065_mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) {
66 return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b,
67 (__mmask8)-1);
68}
69
Craig Topperfc074982016-06-13 04:15:11 +000070static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +000071_mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
72 return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b,
73 __u);
74}
75
Michael Kupersteine45af542015-06-30 13:36:19 +000076static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000077_mm256_cmpeq_epu32_mask(__m256i __a, __m256i __b) {
78 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0,
79 (__mmask8)-1);
80}
81
Michael Kupersteine45af542015-06-30 13:36:19 +000082static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +000083_mm256_mask_cmpeq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
84 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0,
85 __u);
86}
87
Craig Topperfc074982016-06-13 04:15:11 +000088static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +000089_mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) {
90 return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b,
91 (__mmask8)-1);
92}
93
Craig Topperfc074982016-06-13 04:15:11 +000094static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +000095_mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
96 return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b,
97 __u);
98}
99
Michael Kupersteine45af542015-06-30 13:36:19 +0000100static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000101_mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) {
102 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0,
103 (__mmask8)-1);
104}
105
Michael Kupersteine45af542015-06-30 13:36:19 +0000106static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000107_mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
108 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0,
109 __u);
110}
Robert Khasanovb9f3a912014-10-08 17:18:13 +0000111
Craig Topperfc074982016-06-13 04:15:11 +0000112static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +0000113_mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) {
114 return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b,
115 (__mmask8)-1);
116}
117
Craig Topperfc074982016-06-13 04:15:11 +0000118static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Robert Khasanovb9f3a912014-10-08 17:18:13 +0000119_mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
120 return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b,
121 __u);
122}
123
Michael Kupersteine45af542015-06-30 13:36:19 +0000124static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000125_mm256_cmpeq_epu64_mask(__m256i __a, __m256i __b) {
126 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0,
127 (__mmask8)-1);
128}
129
Michael Kupersteine45af542015-06-30 13:36:19 +0000130static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000131_mm256_mask_cmpeq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
132 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0,
133 __u);
134}
135
136
Michael Kupersteine45af542015-06-30 13:36:19 +0000137static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000138_mm_cmpge_epi32_mask(__m128i __a, __m128i __b) {
139 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5,
140 (__mmask8)-1);
141}
142
Michael Kupersteine45af542015-06-30 13:36:19 +0000143static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000144_mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
145 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5,
146 __u);
147}
148
Michael Kupersteine45af542015-06-30 13:36:19 +0000149static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000150_mm_cmpge_epu32_mask(__m128i __a, __m128i __b) {
151 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5,
152 (__mmask8)-1);
153}
154
Michael Kupersteine45af542015-06-30 13:36:19 +0000155static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000156_mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
157 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5,
158 __u);
159}
160
Michael Kupersteine45af542015-06-30 13:36:19 +0000161static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000162_mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) {
163 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5,
164 (__mmask8)-1);
165}
166
Michael Kupersteine45af542015-06-30 13:36:19 +0000167static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000168_mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
169 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5,
170 __u);
171}
172
Michael Kupersteine45af542015-06-30 13:36:19 +0000173static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000174_mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) {
175 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5,
176 (__mmask8)-1);
177}
178
Michael Kupersteine45af542015-06-30 13:36:19 +0000179static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000180_mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
181 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5,
182 __u);
183}
184
Michael Kupersteine45af542015-06-30 13:36:19 +0000185static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000186_mm_cmpge_epi64_mask(__m128i __a, __m128i __b) {
187 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5,
188 (__mmask8)-1);
189}
190
Michael Kupersteine45af542015-06-30 13:36:19 +0000191static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000192_mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
193 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5,
194 __u);
195}
196
Michael Kupersteine45af542015-06-30 13:36:19 +0000197static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000198_mm_cmpge_epu64_mask(__m128i __a, __m128i __b) {
199 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5,
200 (__mmask8)-1);
201}
202
Michael Kupersteine45af542015-06-30 13:36:19 +0000203static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000204_mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
205 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5,
206 __u);
207}
208
Michael Kupersteine45af542015-06-30 13:36:19 +0000209static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000210_mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) {
211 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5,
212 (__mmask8)-1);
213}
214
Michael Kupersteine45af542015-06-30 13:36:19 +0000215static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000216_mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
217 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5,
218 __u);
219}
220
Michael Kupersteine45af542015-06-30 13:36:19 +0000221static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000222_mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) {
223 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5,
224 (__mmask8)-1);
225}
226
Michael Kupersteine45af542015-06-30 13:36:19 +0000227static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000228_mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
229 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5,
230 __u);
231}
232
Craig Topperfc074982016-06-13 04:15:11 +0000233static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000234_mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) {
235 return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b,
236 (__mmask8)-1);
237}
238
Craig Topperfc074982016-06-13 04:15:11 +0000239static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000240_mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
241 return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b,
242 __u);
243}
244
Michael Kupersteine45af542015-06-30 13:36:19 +0000245static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000246_mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) {
247 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6,
248 (__mmask8)-1);
249}
250
Michael Kupersteine45af542015-06-30 13:36:19 +0000251static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000252_mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
253 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6,
254 __u);
255}
256
Craig Topperfc074982016-06-13 04:15:11 +0000257static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000258_mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) {
259 return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b,
260 (__mmask8)-1);
261}
262
Craig Topperfc074982016-06-13 04:15:11 +0000263static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000264_mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
265 return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b,
266 __u);
267}
268
Michael Kupersteine45af542015-06-30 13:36:19 +0000269static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000270_mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) {
271 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6,
272 (__mmask8)-1);
273}
274
Michael Kupersteine45af542015-06-30 13:36:19 +0000275static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000276_mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
277 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6,
278 __u);
279}
280
Craig Topperfc074982016-06-13 04:15:11 +0000281static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000282_mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) {
283 return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b,
284 (__mmask8)-1);
285}
286
Craig Topperfc074982016-06-13 04:15:11 +0000287static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000288_mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
289 return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b,
290 __u);
291}
292
Michael Kupersteine45af542015-06-30 13:36:19 +0000293static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000294_mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) {
295 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6,
296 (__mmask8)-1);
297}
298
Michael Kupersteine45af542015-06-30 13:36:19 +0000299static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000300_mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
301 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6,
302 __u);
303}
304
Craig Topperfc074982016-06-13 04:15:11 +0000305static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000306_mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) {
307 return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b,
308 (__mmask8)-1);
309}
310
Craig Topperfc074982016-06-13 04:15:11 +0000311static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000312_mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
313 return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b,
314 __u);
315}
316
Michael Kupersteine45af542015-06-30 13:36:19 +0000317static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000318_mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) {
319 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6,
320 (__mmask8)-1);
321}
322
Michael Kupersteine45af542015-06-30 13:36:19 +0000323static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000324_mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
325 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6,
326 __u);
327}
328
Michael Kupersteine45af542015-06-30 13:36:19 +0000329static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000330_mm_cmple_epi32_mask(__m128i __a, __m128i __b) {
331 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2,
332 (__mmask8)-1);
333}
334
Michael Kupersteine45af542015-06-30 13:36:19 +0000335static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000336_mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
337 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2,
338 __u);
339}
340
Michael Kupersteine45af542015-06-30 13:36:19 +0000341static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000342_mm_cmple_epu32_mask(__m128i __a, __m128i __b) {
343 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2,
344 (__mmask8)-1);
345}
346
Michael Kupersteine45af542015-06-30 13:36:19 +0000347static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000348_mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
349 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2,
350 __u);
351}
352
Michael Kupersteine45af542015-06-30 13:36:19 +0000353static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000354_mm256_cmple_epi32_mask(__m256i __a, __m256i __b) {
355 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2,
356 (__mmask8)-1);
357}
358
Michael Kupersteine45af542015-06-30 13:36:19 +0000359static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000360_mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
361 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2,
362 __u);
363}
364
Michael Kupersteine45af542015-06-30 13:36:19 +0000365static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000366_mm256_cmple_epu32_mask(__m256i __a, __m256i __b) {
367 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2,
368 (__mmask8)-1);
369}
370
Michael Kupersteine45af542015-06-30 13:36:19 +0000371static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000372_mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
373 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2,
374 __u);
375}
376
Michael Kupersteine45af542015-06-30 13:36:19 +0000377static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000378_mm_cmple_epi64_mask(__m128i __a, __m128i __b) {
379 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2,
380 (__mmask8)-1);
381}
382
Michael Kupersteine45af542015-06-30 13:36:19 +0000383static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000384_mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
385 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2,
386 __u);
387}
388
Michael Kupersteine45af542015-06-30 13:36:19 +0000389static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000390_mm_cmple_epu64_mask(__m128i __a, __m128i __b) {
391 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2,
392 (__mmask8)-1);
393}
394
Michael Kupersteine45af542015-06-30 13:36:19 +0000395static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000396_mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
397 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2,
398 __u);
399}
400
Michael Kupersteine45af542015-06-30 13:36:19 +0000401static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000402_mm256_cmple_epi64_mask(__m256i __a, __m256i __b) {
403 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2,
404 (__mmask8)-1);
405}
406
Michael Kupersteine45af542015-06-30 13:36:19 +0000407static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000408_mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
409 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2,
410 __u);
411}
412
Michael Kupersteine45af542015-06-30 13:36:19 +0000413static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000414_mm256_cmple_epu64_mask(__m256i __a, __m256i __b) {
415 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2,
416 (__mmask8)-1);
417}
418
Michael Kupersteine45af542015-06-30 13:36:19 +0000419static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000420_mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
421 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2,
422 __u);
423}
424
Michael Kupersteine45af542015-06-30 13:36:19 +0000425static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000426_mm_cmplt_epi32_mask(__m128i __a, __m128i __b) {
427 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1,
428 (__mmask8)-1);
429}
430
Michael Kupersteine45af542015-06-30 13:36:19 +0000431static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000432_mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
433 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1,
434 __u);
435}
436
Michael Kupersteine45af542015-06-30 13:36:19 +0000437static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000438_mm_cmplt_epu32_mask(__m128i __a, __m128i __b) {
439 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1,
440 (__mmask8)-1);
441}
442
Michael Kupersteine45af542015-06-30 13:36:19 +0000443static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000444_mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
445 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1,
446 __u);
447}
448
Michael Kupersteine45af542015-06-30 13:36:19 +0000449static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000450_mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) {
451 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1,
452 (__mmask8)-1);
453}
454
Michael Kupersteine45af542015-06-30 13:36:19 +0000455static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000456_mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
457 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1,
458 __u);
459}
460
Michael Kupersteine45af542015-06-30 13:36:19 +0000461static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000462_mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) {
463 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1,
464 (__mmask8)-1);
465}
466
Michael Kupersteine45af542015-06-30 13:36:19 +0000467static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000468_mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
469 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1,
470 __u);
471}
472
Michael Kupersteine45af542015-06-30 13:36:19 +0000473static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000474_mm_cmplt_epi64_mask(__m128i __a, __m128i __b) {
475 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1,
476 (__mmask8)-1);
477}
478
Michael Kupersteine45af542015-06-30 13:36:19 +0000479static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000480_mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
481 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1,
482 __u);
483}
484
Michael Kupersteine45af542015-06-30 13:36:19 +0000485static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000486_mm_cmplt_epu64_mask(__m128i __a, __m128i __b) {
487 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1,
488 (__mmask8)-1);
489}
490
Michael Kupersteine45af542015-06-30 13:36:19 +0000491static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000492_mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
493 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1,
494 __u);
495}
496
Michael Kupersteine45af542015-06-30 13:36:19 +0000497static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000498_mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) {
499 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1,
500 (__mmask8)-1);
501}
502
Michael Kupersteine45af542015-06-30 13:36:19 +0000503static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000504_mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
505 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1,
506 __u);
507}
508
Michael Kupersteine45af542015-06-30 13:36:19 +0000509static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000510_mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) {
511 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1,
512 (__mmask8)-1);
513}
514
Michael Kupersteine45af542015-06-30 13:36:19 +0000515static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000516_mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
517 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1,
518 __u);
519}
520
Michael Kupersteine45af542015-06-30 13:36:19 +0000521static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000522_mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) {
523 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4,
524 (__mmask8)-1);
525}
526
Michael Kupersteine45af542015-06-30 13:36:19 +0000527static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000528_mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
529 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4,
530 __u);
531}
532
Michael Kupersteine45af542015-06-30 13:36:19 +0000533static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000534_mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) {
535 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4,
536 (__mmask8)-1);
537}
538
Michael Kupersteine45af542015-06-30 13:36:19 +0000539static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000540_mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
541 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4,
542 __u);
543}
544
Michael Kupersteine45af542015-06-30 13:36:19 +0000545static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000546_mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) {
547 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4,
548 (__mmask8)-1);
549}
550
Michael Kupersteine45af542015-06-30 13:36:19 +0000551static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000552_mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
553 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4,
554 __u);
555}
556
Michael Kupersteine45af542015-06-30 13:36:19 +0000557static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000558_mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) {
559 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4,
560 (__mmask8)-1);
561}
562
Michael Kupersteine45af542015-06-30 13:36:19 +0000563static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000564_mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
565 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4,
566 __u);
567}
568
Michael Kupersteine45af542015-06-30 13:36:19 +0000569static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000570_mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) {
571 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4,
572 (__mmask8)-1);
573}
574
Michael Kupersteine45af542015-06-30 13:36:19 +0000575static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000576_mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
577 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4,
578 __u);
579}
580
Michael Kupersteine45af542015-06-30 13:36:19 +0000581static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000582_mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) {
583 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4,
584 (__mmask8)-1);
585}
586
Michael Kupersteine45af542015-06-30 13:36:19 +0000587static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000588_mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
589 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4,
590 __u);
591}
592
Michael Kupersteine45af542015-06-30 13:36:19 +0000593static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000594_mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) {
595 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4,
596 (__mmask8)-1);
597}
598
Michael Kupersteine45af542015-06-30 13:36:19 +0000599static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000600_mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
601 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4,
602 __u);
603}
604
Michael Kupersteine45af542015-06-30 13:36:19 +0000605static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000606_mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) {
607 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4,
608 (__mmask8)-1);
609}
610
Michael Kupersteine45af542015-06-30 13:36:19 +0000611static __inline__ __mmask8 __DEFAULT_FN_ATTRS
Craig Topper2f25a5a2015-01-26 08:11:49 +0000612_mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
613 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4,
614 __u);
615}
616
Michael Kupersteine45af542015-06-30 13:36:19 +0000617static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000618_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
619 __m256i __B)
620{
621 return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
622 (__v8si) __B,
623 (__v8si) __W,
624 (__mmask8) __U);
625}
626
Michael Kupersteine45af542015-06-30 13:36:19 +0000627static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000628_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
629{
630 return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
631 (__v8si) __B,
632 (__v8si)
633 _mm256_setzero_si256 (),
634 (__mmask8) __U);
635}
636
Michael Kupersteine45af542015-06-30 13:36:19 +0000637static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000638_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
639 __m256i __B)
640{
641 return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
642 (__v4di) __B,
643 (__v4di) __W,
644 (__mmask8) __U);
645}
646
Michael Kupersteine45af542015-06-30 13:36:19 +0000647static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000648_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
649{
650 return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
651 (__v4di) __B,
652 (__v4di)
653 _mm256_setzero_si256 (),
654 (__mmask8) __U);
655}
656
Michael Kupersteine45af542015-06-30 13:36:19 +0000657static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000658_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
659 __m256i __B)
660{
661 return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
662 (__v8si) __B,
663 (__v8si) __W,
664 (__mmask8) __U);
665}
666
Michael Kupersteine45af542015-06-30 13:36:19 +0000667static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000668_mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
669{
670 return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
671 (__v8si) __B,
672 (__v8si)
673 _mm256_setzero_si256 (),
674 (__mmask8) __U);
675}
676
Michael Kupersteine45af542015-06-30 13:36:19 +0000677static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000678_mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
679 __m256i __B)
680{
681 return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
682 (__v4di) __B,
683 (__v4di) __W,
684 (__mmask8) __U);
685}
686
Michael Kupersteine45af542015-06-30 13:36:19 +0000687static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000688_mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
689{
690 return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
691 (__v4di) __B,
692 (__v4di)
693 _mm256_setzero_si256 (),
694 (__mmask8) __U);
695}
696
Michael Kupersteine45af542015-06-30 13:36:19 +0000697static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000698_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
699 __m128i __B)
700{
701 return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
702 (__v4si) __B,
703 (__v4si) __W,
704 (__mmask8) __U);
705}
706
Michael Kupersteine45af542015-06-30 13:36:19 +0000707static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000708_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
709{
710 return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
711 (__v4si) __B,
712 (__v4si)
713 _mm_setzero_si128 (),
714 (__mmask8) __U);
715}
716
Michael Kupersteine45af542015-06-30 13:36:19 +0000717static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000718_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
719 __m128i __B)
720{
721 return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
722 (__v2di) __B,
723 (__v2di) __W,
724 (__mmask8) __U);
725}
726
Michael Kupersteine45af542015-06-30 13:36:19 +0000727static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000728_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
729{
730 return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
731 (__v2di) __B,
732 (__v2di)
733 _mm_setzero_si128 (),
734 (__mmask8) __U);
735}
736
Michael Kupersteine45af542015-06-30 13:36:19 +0000737static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000738_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
739 __m128i __B)
740{
741 return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
742 (__v4si) __B,
743 (__v4si) __W,
744 (__mmask8) __U);
745}
746
Michael Kupersteine45af542015-06-30 13:36:19 +0000747static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000748_mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
749{
750 return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
751 (__v4si) __B,
752 (__v4si)
753 _mm_setzero_si128 (),
754 (__mmask8) __U);
755}
756
Michael Kupersteine45af542015-06-30 13:36:19 +0000757static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000758_mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
759 __m128i __B)
760{
761 return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
762 (__v2di) __B,
763 (__v2di) __W,
764 (__mmask8) __U);
765}
766
Michael Kupersteine45af542015-06-30 13:36:19 +0000767static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000768_mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
769{
770 return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
771 (__v2di) __B,
772 (__v2di)
773 _mm_setzero_si128 (),
774 (__mmask8) __U);
775}
776
Michael Kupersteine45af542015-06-30 13:36:19 +0000777static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000778_mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
779 __m256i __Y)
780{
781 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
782 (__v8si) __Y,
783 (__v4di) __W, __M);
784}
785
Michael Kupersteine45af542015-06-30 13:36:19 +0000786static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000787_mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
788{
789 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
790 (__v8si) __Y,
791 (__v4di)
792 _mm256_setzero_si256 (),
793 __M);
794}
795
Michael Kupersteine45af542015-06-30 13:36:19 +0000796static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000797_mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X,
798 __m128i __Y)
799{
800 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
801 (__v4si) __Y,
802 (__v2di) __W, __M);
803}
804
Michael Kupersteine45af542015-06-30 13:36:19 +0000805static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000806_mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y)
807{
808 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
809 (__v4si) __Y,
810 (__v2di)
811 _mm_setzero_si128 (),
812 __M);
813}
814
Michael Kupersteine45af542015-06-30 13:36:19 +0000815static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000816_mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X,
817 __m256i __Y)
818{
819 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
820 (__v8si) __Y,
821 (__v4di) __W, __M);
822}
823
Michael Kupersteine45af542015-06-30 13:36:19 +0000824static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000825_mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y)
826{
827 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
828 (__v8si) __Y,
829 (__v4di)
830 _mm256_setzero_si256 (),
831 __M);
832}
833
Michael Kupersteine45af542015-06-30 13:36:19 +0000834static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000835_mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X,
836 __m128i __Y)
837{
838 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
839 (__v4si) __Y,
840 (__v2di) __W, __M);
841}
842
Michael Kupersteine45af542015-06-30 13:36:19 +0000843static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000844_mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y)
845{
846 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
847 (__v4si) __Y,
848 (__v2di)
849 _mm_setzero_si128 (),
850 __M);
851}
852
Michael Kupersteine45af542015-06-30 13:36:19 +0000853static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000854_mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B)
855{
856 return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
857 (__v8si) __B,
858 (__v8si)
859 _mm256_setzero_si256 (),
860 __M);
861}
862
Michael Kupersteine45af542015-06-30 13:36:19 +0000863static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000864_mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
865 __m256i __B)
866{
867 return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
868 (__v8si) __B,
869 (__v8si) __W, __M);
870}
871
Michael Kupersteine45af542015-06-30 13:36:19 +0000872static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000873_mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
874{
875 return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
876 (__v4si) __B,
877 (__v4si)
878 _mm_setzero_si128 (),
879 __M);
880}
881
Michael Kupersteine45af542015-06-30 13:36:19 +0000882static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000883_mm_mask_mullo_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
884 __m128i __B)
885{
886 return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
887 (__v4si) __B,
888 (__v4si) __W, __M);
889}
890
Michael Kupersteine45af542015-06-30 13:36:19 +0000891static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000892_mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
893 __m256i __B)
894{
895 return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
896 (__v8si) __B,
897 (__v8si) __W,
898 (__mmask8) __U);
899}
900
Michael Kupersteine45af542015-06-30 13:36:19 +0000901static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000902_mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
903{
904 return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
905 (__v8si) __B,
906 (__v8si)
907 _mm256_setzero_si256 (),
908 (__mmask8) __U);
909}
910
Michael Kupersteine45af542015-06-30 13:36:19 +0000911static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000912_mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
913{
914 return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
915 (__v4si) __B,
916 (__v4si) __W,
917 (__mmask8) __U);
918}
919
Michael Kupersteine45af542015-06-30 13:36:19 +0000920static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000921_mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
922{
923 return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
924 (__v4si) __B,
925 (__v4si)
926 _mm_setzero_si128 (),
927 (__mmask8) __U);
928}
929
Michael Kupersteine45af542015-06-30 13:36:19 +0000930static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000931_mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
932 __m256i __B)
933{
934 return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
935 (__v8si) __B,
936 (__v8si) __W,
937 (__mmask8) __U);
938}
939
Michael Kupersteine45af542015-06-30 13:36:19 +0000940static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000941_mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
942{
943 return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
944 (__v8si) __B,
945 (__v8si)
946 _mm256_setzero_si256 (),
947 (__mmask8) __U);
948}
949
Michael Kupersteine45af542015-06-30 13:36:19 +0000950static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000951_mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
952 __m128i __B)
953{
954 return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
955 (__v4si) __B,
956 (__v4si) __W,
957 (__mmask8) __U);
958}
959
Michael Kupersteine45af542015-06-30 13:36:19 +0000960static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000961_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
962{
963 return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
964 (__v4si) __B,
965 (__v4si)
966 _mm_setzero_si128 (),
967 (__mmask8) __U);
968}
969
Michael Kupersteine45af542015-06-30 13:36:19 +0000970static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000971_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
972 __m256i __B)
973{
974 return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
975 (__v8si) __B,
976 (__v8si) __W,
977 (__mmask8) __U);
978}
979
Michael Kupersteine45af542015-06-30 13:36:19 +0000980static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000981_mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
982{
983 return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
984 (__v8si) __B,
985 (__v8si)
986 _mm256_setzero_si256 (),
987 (__mmask8) __U);
988}
989
Michael Kupersteine45af542015-06-30 13:36:19 +0000990static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +0000991_mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
992{
993 return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
994 (__v4si) __B,
995 (__v4si) __W,
996 (__mmask8) __U);
997}
998
Michael Kupersteine45af542015-06-30 13:36:19 +0000999static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001000_mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
1001{
1002 return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
1003 (__v4si) __B,
1004 (__v4si)
1005 _mm_setzero_si128 (),
1006 (__mmask8) __U);
1007}
1008
Michael Kupersteine45af542015-06-30 13:36:19 +00001009static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001010_mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
1011 __m256i __B)
1012{
1013 return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
1014 (__v8si) __B,
1015 (__v8si) __W,
1016 (__mmask8) __U);
1017}
1018
Michael Kupersteine45af542015-06-30 13:36:19 +00001019static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001020_mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
1021{
1022 return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
1023 (__v8si) __B,
1024 (__v8si)
1025 _mm256_setzero_si256 (),
1026 (__mmask8) __U);
1027}
1028
Michael Kupersteine45af542015-06-30 13:36:19 +00001029static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001030_mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
1031 __m128i __B)
1032{
1033 return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
1034 (__v4si) __B,
1035 (__v4si) __W,
1036 (__mmask8) __U);
1037}
1038
Michael Kupersteine45af542015-06-30 13:36:19 +00001039static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001040_mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
1041{
1042 return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
1043 (__v4si) __B,
1044 (__v4si)
1045 _mm_setzero_si128 (),
1046 (__mmask8) __U);
1047}
1048
Michael Kupersteine45af542015-06-30 13:36:19 +00001049static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001050_mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1051 __m256i __B)
1052{
1053 return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
1054 (__v4di) __B,
1055 (__v4di) __W, __U);
1056}
1057
Michael Kupersteine45af542015-06-30 13:36:19 +00001058static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001059_mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1060{
1061 return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
1062 (__v4di) __B,
1063 (__v4di)
1064 _mm256_setzero_pd (),
1065 __U);
1066}
1067
Michael Kupersteine45af542015-06-30 13:36:19 +00001068static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001069_mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1070 __m128i __B)
1071{
1072 return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
1073 (__v2di) __B,
1074 (__v2di) __W, __U);
1075}
1076
Michael Kupersteine45af542015-06-30 13:36:19 +00001077static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001078_mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1079{
1080 return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
1081 (__v2di) __B,
1082 (__v2di)
1083 _mm_setzero_pd (),
1084 __U);
1085}
1086
Michael Kupersteine45af542015-06-30 13:36:19 +00001087static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001088_mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1089 __m256i __B)
1090{
1091 return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
1092 (__v4di) __B,
1093 (__v4di) __W, __U);
1094}
1095
Michael Kupersteine45af542015-06-30 13:36:19 +00001096static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001097_mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1098{
1099 return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
1100 (__v4di) __B,
1101 (__v4di)
1102 _mm256_setzero_pd (),
1103 __U);
1104}
1105
Michael Kupersteine45af542015-06-30 13:36:19 +00001106static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001107_mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1108 __m128i __B)
1109{
1110 return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
1111 (__v2di) __B,
1112 (__v2di) __W, __U);
1113}
1114
Michael Kupersteine45af542015-06-30 13:36:19 +00001115static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001116_mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1117{
1118 return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
1119 (__v2di) __B,
1120 (__v2di)
1121 _mm_setzero_pd (),
1122 __U);
1123}
1124
Michael Kupersteine45af542015-06-30 13:36:19 +00001125static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001126_mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1127 __m256i __B)
1128{
1129 return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
1130 (__v4di) __B,
1131 (__v4di) __W,
1132 (__mmask8) __U);
1133}
1134
Michael Kupersteine45af542015-06-30 13:36:19 +00001135static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001136_mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1137{
1138 return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
1139 (__v4di) __B,
1140 (__v4di)
1141 _mm256_setzero_si256 (),
1142 (__mmask8) __U);
1143}
1144
Michael Kupersteine45af542015-06-30 13:36:19 +00001145static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001146_mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1147{
1148 return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
1149 (__v2di) __B,
1150 (__v2di) __W,
1151 (__mmask8) __U);
1152}
1153
Michael Kupersteine45af542015-06-30 13:36:19 +00001154static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001155_mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1156{
1157 return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
1158 (__v2di) __B,
1159 (__v2di)
1160 _mm_setzero_si128 (),
1161 (__mmask8) __U);
1162}
1163
Michael Kupersteine45af542015-06-30 13:36:19 +00001164static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001165_mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
1166 __m256i __B)
1167{
1168 return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
1169 (__v4di) __B,
1170 (__v4di) __W,
1171 (__mmask8) __U);
1172}
1173
Michael Kupersteine45af542015-06-30 13:36:19 +00001174static __inline__ __m256i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001175_mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
1176{
1177 return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
1178 (__v4di) __B,
1179 (__v4di)
1180 _mm256_setzero_si256 (),
1181 (__mmask8) __U);
1182}
1183
Michael Kupersteine45af542015-06-30 13:36:19 +00001184static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001185_mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
1186 __m128i __B)
1187{
1188 return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
1189 (__v2di) __B,
1190 (__v2di) __W,
1191 (__mmask8) __U);
1192}
1193
Michael Kupersteine45af542015-06-30 13:36:19 +00001194static __inline__ __m128i __DEFAULT_FN_ATTRS
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001195_mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
1196{
1197 return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
1198 (__v2di) __B,
1199 (__v2di)
1200 _mm_setzero_si128 (),
1201 (__mmask8) __U);
1202}
1203
Craig Topper2f25a5a2015-01-26 08:11:49 +00001204#define _mm_cmp_epi32_mask(a, b, p) __extension__ ({ \
1205 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001206 (__v4si)(__m128i)(b), (int)(p), \
1207 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001208
1209#define _mm_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1210 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001211 (__v4si)(__m128i)(b), (int)(p), \
1212 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001213
1214#define _mm_cmp_epu32_mask(a, b, p) __extension__ ({ \
1215 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001216 (__v4si)(__m128i)(b), (int)(p), \
1217 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001218
1219#define _mm_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1220 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001221 (__v4si)(__m128i)(b), (int)(p), \
1222 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001223
1224#define _mm256_cmp_epi32_mask(a, b, p) __extension__ ({ \
1225 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001226 (__v8si)(__m256i)(b), (int)(p), \
1227 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001228
1229#define _mm256_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
1230 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001231 (__v8si)(__m256i)(b), (int)(p), \
1232 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001233
1234#define _mm256_cmp_epu32_mask(a, b, p) __extension__ ({ \
1235 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001236 (__v8si)(__m256i)(b), (int)(p), \
1237 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001238
1239#define _mm256_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
1240 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001241 (__v8si)(__m256i)(b), (int)(p), \
1242 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001243
1244#define _mm_cmp_epi64_mask(a, b, p) __extension__ ({ \
1245 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001246 (__v2di)(__m128i)(b), (int)(p), \
1247 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001248
1249#define _mm_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1250 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001251 (__v2di)(__m128i)(b), (int)(p), \
1252 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001253
1254#define _mm_cmp_epu64_mask(a, b, p) __extension__ ({ \
1255 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001256 (__v2di)(__m128i)(b), (int)(p), \
1257 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001258
1259#define _mm_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1260 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001261 (__v2di)(__m128i)(b), (int)(p), \
1262 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001263
1264#define _mm256_cmp_epi64_mask(a, b, p) __extension__ ({ \
1265 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001266 (__v4di)(__m256i)(b), (int)(p), \
1267 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001268
1269#define _mm256_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
1270 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001271 (__v4di)(__m256i)(b), (int)(p), \
1272 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001273
1274#define _mm256_cmp_epu64_mask(a, b, p) __extension__ ({ \
1275 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001276 (__v4di)(__m256i)(b), (int)(p), \
1277 (__mmask8)-1); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001278
1279#define _mm256_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
1280 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001281 (__v4di)(__m256i)(b), (int)(p), \
1282 (__mmask8)(m)); })
Craig Topper2f25a5a2015-01-26 08:11:49 +00001283
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001284#define _mm256_cmp_ps_mask(a, b, p) __extension__ ({ \
1285 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001286 (__v8sf)(__m256)(b), (int)(p), \
1287 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001288
1289#define _mm256_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
1290 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001291 (__v8sf)(__m256)(b), (int)(p), \
1292 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001293
1294#define _mm256_cmp_pd_mask(a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001295 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
1296 (__v4df)(__m256d)(b), (int)(p), \
1297 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001298
1299#define _mm256_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001300 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
1301 (__v4df)(__m256d)(b), (int)(p), \
1302 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001303
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001304#define _mm_cmp_ps_mask(a, b, p) __extension__ ({ \
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001305 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001306 (__v4sf)(__m128)(b), (int)(p), \
1307 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001308
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001309#define _mm_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001310 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
Craig Topperd2661882016-05-17 04:41:48 +00001311 (__v4sf)(__m128)(b), (int)(p), \
1312 (__mmask8)(m)); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001313
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001314#define _mm_cmp_pd_mask(a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001315 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
1316 (__v2df)(__m128d)(b), (int)(p), \
1317 (__mmask8)-1); })
Elena Demikhovskybd5c8b92015-05-07 11:26:36 +00001318
Michael Zuckermaneb5f1782016-05-26 08:10:12 +00001319#define _mm_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00001320 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
1321 (__v2df)(__m128d)(b), (int)(p), \
1322 (__mmask8)(m)); })
Eric Christopher4d1851682015-06-17 07:09:20 +00001323
Michael Kupersteine45af542015-06-30 13:36:19 +00001324static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001325_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1326{
1327 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1328 (__v2df) __B,
1329 (__v2df) __C,
1330 (__mmask8) __U);
1331}
1332
Michael Kupersteine45af542015-06-30 13:36:19 +00001333static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001334_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1335{
1336 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 ((__v2df) __A,
1337 (__v2df) __B,
1338 (__v2df) __C,
1339 (__mmask8) __U);
1340}
1341
Michael Kupersteine45af542015-06-30 13:36:19 +00001342static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001343_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1344{
1345 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1346 (__v2df) __B,
1347 (__v2df) __C,
1348 (__mmask8) __U);
1349}
1350
Michael Kupersteine45af542015-06-30 13:36:19 +00001351static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001352_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1353{
1354 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
1355 (__v2df) __B,
1356 -(__v2df) __C,
1357 (__mmask8) __U);
1358}
1359
Michael Kupersteine45af542015-06-30 13:36:19 +00001360static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001361_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1362{
1363 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
1364 (__v2df) __B,
1365 -(__v2df) __C,
1366 (__mmask8) __U);
1367}
1368
Michael Kupersteine45af542015-06-30 13:36:19 +00001369static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001370_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1371{
1372 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 (-(__v2df) __A,
1373 (__v2df) __B,
1374 (__v2df) __C,
1375 (__mmask8) __U);
1376}
1377
Michael Kupersteine45af542015-06-30 13:36:19 +00001378static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001379_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1380{
1381 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1382 (__v2df) __B,
1383 (__v2df) __C,
1384 (__mmask8) __U);
1385}
1386
Michael Kupersteine45af542015-06-30 13:36:19 +00001387static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001388_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1389{
1390 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
1391 (__v2df) __B,
1392 -(__v2df) __C,
1393 (__mmask8) __U);
1394}
1395
Michael Kupersteine45af542015-06-30 13:36:19 +00001396static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001397_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1398{
1399 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1400 (__v4df) __B,
1401 (__v4df) __C,
1402 (__mmask8) __U);
1403}
1404
Michael Kupersteine45af542015-06-30 13:36:19 +00001405static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001406_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1407{
1408 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 ((__v4df) __A,
1409 (__v4df) __B,
1410 (__v4df) __C,
1411 (__mmask8) __U);
1412}
1413
Michael Kupersteine45af542015-06-30 13:36:19 +00001414static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001415_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1416{
1417 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1418 (__v4df) __B,
1419 (__v4df) __C,
1420 (__mmask8) __U);
1421}
1422
Michael Kupersteine45af542015-06-30 13:36:19 +00001423static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001424_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1425{
1426 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
1427 (__v4df) __B,
1428 -(__v4df) __C,
1429 (__mmask8) __U);
1430}
1431
Michael Kupersteine45af542015-06-30 13:36:19 +00001432static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001433_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1434{
1435 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
1436 (__v4df) __B,
1437 -(__v4df) __C,
1438 (__mmask8) __U);
1439}
1440
Michael Kupersteine45af542015-06-30 13:36:19 +00001441static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001442_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1443{
1444 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 (-(__v4df) __A,
1445 (__v4df) __B,
1446 (__v4df) __C,
1447 (__mmask8) __U);
1448}
1449
Michael Kupersteine45af542015-06-30 13:36:19 +00001450static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001451_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1452{
1453 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1454 (__v4df) __B,
1455 (__v4df) __C,
1456 (__mmask8) __U);
1457}
1458
Michael Kupersteine45af542015-06-30 13:36:19 +00001459static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001460_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1461{
1462 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
1463 (__v4df) __B,
1464 -(__v4df) __C,
1465 (__mmask8) __U);
1466}
1467
Michael Kupersteine45af542015-06-30 13:36:19 +00001468static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001469_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1470{
1471 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1472 (__v4sf) __B,
1473 (__v4sf) __C,
1474 (__mmask8) __U);
1475}
1476
Michael Kupersteine45af542015-06-30 13:36:19 +00001477static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001478_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1479{
1480 return (__m128) __builtin_ia32_vfmaddps128_mask3 ((__v4sf) __A,
1481 (__v4sf) __B,
1482 (__v4sf) __C,
1483 (__mmask8) __U);
1484}
1485
Michael Kupersteine45af542015-06-30 13:36:19 +00001486static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001487_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1488{
1489 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1490 (__v4sf) __B,
1491 (__v4sf) __C,
1492 (__mmask8) __U);
1493}
1494
Michael Kupersteine45af542015-06-30 13:36:19 +00001495static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001496_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1497{
1498 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
1499 (__v4sf) __B,
1500 -(__v4sf) __C,
1501 (__mmask8) __U);
1502}
1503
Michael Kupersteine45af542015-06-30 13:36:19 +00001504static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001505_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1506{
1507 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
1508 (__v4sf) __B,
1509 -(__v4sf) __C,
1510 (__mmask8) __U);
1511}
1512
Michael Kupersteine45af542015-06-30 13:36:19 +00001513static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001514_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1515{
1516 return (__m128) __builtin_ia32_vfmaddps128_mask3 (-(__v4sf) __A,
1517 (__v4sf) __B,
1518 (__v4sf) __C,
1519 (__mmask8) __U);
1520}
1521
Michael Kupersteine45af542015-06-30 13:36:19 +00001522static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001523_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1524{
1525 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1526 (__v4sf) __B,
1527 (__v4sf) __C,
1528 (__mmask8) __U);
1529}
1530
Michael Kupersteine45af542015-06-30 13:36:19 +00001531static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001532_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1533{
1534 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
1535 (__v4sf) __B,
1536 -(__v4sf) __C,
1537 (__mmask8) __U);
1538}
1539
Michael Kupersteine45af542015-06-30 13:36:19 +00001540static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001541_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1542{
1543 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1544 (__v8sf) __B,
1545 (__v8sf) __C,
1546 (__mmask8) __U);
1547}
1548
Michael Kupersteine45af542015-06-30 13:36:19 +00001549static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001550_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1551{
1552 return (__m256) __builtin_ia32_vfmaddps256_mask3 ((__v8sf) __A,
1553 (__v8sf) __B,
1554 (__v8sf) __C,
1555 (__mmask8) __U);
1556}
1557
Michael Kupersteine45af542015-06-30 13:36:19 +00001558static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001559_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1560{
1561 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1562 (__v8sf) __B,
1563 (__v8sf) __C,
1564 (__mmask8) __U);
1565}
1566
Michael Kupersteine45af542015-06-30 13:36:19 +00001567static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001568_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1569{
1570 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
1571 (__v8sf) __B,
1572 -(__v8sf) __C,
1573 (__mmask8) __U);
1574}
1575
Michael Kupersteine45af542015-06-30 13:36:19 +00001576static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001577_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1578{
1579 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
1580 (__v8sf) __B,
1581 -(__v8sf) __C,
1582 (__mmask8) __U);
1583}
1584
Michael Kupersteine45af542015-06-30 13:36:19 +00001585static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001586_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1587{
1588 return (__m256) __builtin_ia32_vfmaddps256_mask3 (-(__v8sf) __A,
1589 (__v8sf) __B,
1590 (__v8sf) __C,
1591 (__mmask8) __U);
1592}
1593
Michael Kupersteine45af542015-06-30 13:36:19 +00001594static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001595_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1596{
1597 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1598 (__v8sf) __B,
1599 (__v8sf) __C,
1600 (__mmask8) __U);
1601}
1602
Michael Kupersteine45af542015-06-30 13:36:19 +00001603static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001604_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1605{
1606 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
1607 (__v8sf) __B,
1608 -(__v8sf) __C,
1609 (__mmask8) __U);
1610}
1611
Michael Kupersteine45af542015-06-30 13:36:19 +00001612static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001613_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1614{
1615 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1616 (__v2df) __B,
1617 (__v2df) __C,
1618 (__mmask8) __U);
1619}
1620
Michael Kupersteine45af542015-06-30 13:36:19 +00001621static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001622_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1623{
1624 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask3 ((__v2df) __A,
1625 (__v2df) __B,
1626 (__v2df) __C,
1627 (__mmask8)
1628 __U);
1629}
1630
Michael Kupersteine45af542015-06-30 13:36:19 +00001631static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001632_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1633{
1634 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1635 (__v2df) __B,
1636 (__v2df) __C,
1637 (__mmask8)
1638 __U);
1639}
1640
Michael Kupersteine45af542015-06-30 13:36:19 +00001641static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001642_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1643{
1644 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
1645 (__v2df) __B,
1646 -(__v2df) __C,
1647 (__mmask8) __U);
1648}
1649
Michael Kupersteine45af542015-06-30 13:36:19 +00001650static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001651_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
1652{
1653 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
1654 (__v2df) __B,
1655 -(__v2df) __C,
1656 (__mmask8)
1657 __U);
1658}
1659
Michael Kupersteine45af542015-06-30 13:36:19 +00001660static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001661_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1662{
1663 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1664 (__v4df) __B,
1665 (__v4df) __C,
1666 (__mmask8) __U);
1667}
1668
Michael Kupersteine45af542015-06-30 13:36:19 +00001669static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001670_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1671{
1672 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask3 ((__v4df) __A,
1673 (__v4df) __B,
1674 (__v4df) __C,
1675 (__mmask8)
1676 __U);
1677}
1678
Michael Kupersteine45af542015-06-30 13:36:19 +00001679static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001680_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1681{
1682 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1683 (__v4df) __B,
1684 (__v4df) __C,
1685 (__mmask8)
1686 __U);
1687}
1688
Michael Kupersteine45af542015-06-30 13:36:19 +00001689static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001690_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1691{
1692 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
1693 (__v4df) __B,
1694 -(__v4df) __C,
1695 (__mmask8) __U);
1696}
1697
Michael Kupersteine45af542015-06-30 13:36:19 +00001698static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001699_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
1700{
1701 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
1702 (__v4df) __B,
1703 -(__v4df) __C,
1704 (__mmask8)
1705 __U);
1706}
1707
Michael Kupersteine45af542015-06-30 13:36:19 +00001708static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001709_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1710{
1711 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1712 (__v4sf) __B,
1713 (__v4sf) __C,
1714 (__mmask8) __U);
1715}
1716
Michael Kupersteine45af542015-06-30 13:36:19 +00001717static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001718_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1719{
1720 return (__m128) __builtin_ia32_vfmaddsubps128_mask3 ((__v4sf) __A,
1721 (__v4sf) __B,
1722 (__v4sf) __C,
1723 (__mmask8) __U);
1724}
1725
Michael Kupersteine45af542015-06-30 13:36:19 +00001726static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001727_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1728{
1729 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1730 (__v4sf) __B,
1731 (__v4sf) __C,
1732 (__mmask8) __U);
1733}
1734
Michael Kupersteine45af542015-06-30 13:36:19 +00001735static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001736_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1737{
1738 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
1739 (__v4sf) __B,
1740 -(__v4sf) __C,
1741 (__mmask8) __U);
1742}
1743
Michael Kupersteine45af542015-06-30 13:36:19 +00001744static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001745_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
1746{
1747 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
1748 (__v4sf) __B,
1749 -(__v4sf) __C,
1750 (__mmask8) __U);
1751}
1752
Michael Kupersteine45af542015-06-30 13:36:19 +00001753static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001754_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B,
1755 __m256 __C)
1756{
1757 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1758 (__v8sf) __B,
1759 (__v8sf) __C,
1760 (__mmask8) __U);
1761}
1762
Michael Kupersteine45af542015-06-30 13:36:19 +00001763static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001764_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1765{
1766 return (__m256) __builtin_ia32_vfmaddsubps256_mask3 ((__v8sf) __A,
1767 (__v8sf) __B,
1768 (__v8sf) __C,
1769 (__mmask8) __U);
1770}
1771
Michael Kupersteine45af542015-06-30 13:36:19 +00001772static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001773_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1774{
1775 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1776 (__v8sf) __B,
1777 (__v8sf) __C,
1778 (__mmask8) __U);
1779}
1780
Michael Kupersteine45af542015-06-30 13:36:19 +00001781static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001782_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1783{
1784 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
1785 (__v8sf) __B,
1786 -(__v8sf) __C,
1787 (__mmask8) __U);
1788}
1789
Michael Kupersteine45af542015-06-30 13:36:19 +00001790static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001791_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
1792{
1793 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
1794 (__v8sf) __B,
1795 -(__v8sf) __C,
1796 (__mmask8) __U);
1797}
1798
Michael Kupersteine45af542015-06-30 13:36:19 +00001799static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001800_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1801{
1802 return (__m128d) __builtin_ia32_vfmsubpd128_mask3 ((__v2df) __A,
1803 (__v2df) __B,
1804 (__v2df) __C,
1805 (__mmask8) __U);
1806}
1807
Michael Kupersteine45af542015-06-30 13:36:19 +00001808static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001809_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1810{
1811 return (__m256d) __builtin_ia32_vfmsubpd256_mask3 ((__v4df) __A,
1812 (__v4df) __B,
1813 (__v4df) __C,
1814 (__mmask8) __U);
1815}
1816
Michael Kupersteine45af542015-06-30 13:36:19 +00001817static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001818_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1819{
1820 return (__m128) __builtin_ia32_vfmsubps128_mask3 ((__v4sf) __A,
1821 (__v4sf) __B,
1822 (__v4sf) __C,
1823 (__mmask8) __U);
1824}
1825
Michael Kupersteine45af542015-06-30 13:36:19 +00001826static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001827_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1828{
1829 return (__m256) __builtin_ia32_vfmsubps256_mask3 ((__v8sf) __A,
1830 (__v8sf) __B,
1831 (__v8sf) __C,
1832 (__mmask8) __U);
1833}
1834
Michael Kupersteine45af542015-06-30 13:36:19 +00001835static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001836_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1837{
1838 return (__m128d) __builtin_ia32_vfmsubaddpd128_mask3 ((__v2df) __A,
1839 (__v2df) __B,
1840 (__v2df) __C,
1841 (__mmask8)
1842 __U);
1843}
1844
Michael Kupersteine45af542015-06-30 13:36:19 +00001845static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001846_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1847{
1848 return (__m256d) __builtin_ia32_vfmsubaddpd256_mask3 ((__v4df) __A,
1849 (__v4df) __B,
1850 (__v4df) __C,
1851 (__mmask8)
1852 __U);
1853}
1854
Michael Kupersteine45af542015-06-30 13:36:19 +00001855static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001856_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1857{
1858 return (__m128) __builtin_ia32_vfmsubaddps128_mask3 ((__v4sf) __A,
1859 (__v4sf) __B,
1860 (__v4sf) __C,
1861 (__mmask8) __U);
1862}
1863
Michael Kupersteine45af542015-06-30 13:36:19 +00001864static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001865_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1866{
1867 return (__m256) __builtin_ia32_vfmsubaddps256_mask3 ((__v8sf) __A,
1868 (__v8sf) __B,
1869 (__v8sf) __C,
1870 (__mmask8) __U);
1871}
1872
Michael Kupersteine45af542015-06-30 13:36:19 +00001873static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001874_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1875{
1876 return (__m128d) __builtin_ia32_vfnmaddpd128_mask ((__v2df) __A,
1877 (__v2df) __B,
1878 (__v2df) __C,
1879 (__mmask8) __U);
1880}
1881
Michael Kupersteine45af542015-06-30 13:36:19 +00001882static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001883_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1884{
1885 return (__m256d) __builtin_ia32_vfnmaddpd256_mask ((__v4df) __A,
1886 (__v4df) __B,
1887 (__v4df) __C,
1888 (__mmask8) __U);
1889}
1890
Michael Kupersteine45af542015-06-30 13:36:19 +00001891static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001892_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1893{
1894 return (__m128) __builtin_ia32_vfnmaddps128_mask ((__v4sf) __A,
1895 (__v4sf) __B,
1896 (__v4sf) __C,
1897 (__mmask8) __U);
1898}
1899
Michael Kupersteine45af542015-06-30 13:36:19 +00001900static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001901_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1902{
1903 return (__m256) __builtin_ia32_vfnmaddps256_mask ((__v8sf) __A,
1904 (__v8sf) __B,
1905 (__v8sf) __C,
1906 (__mmask8) __U);
1907}
1908
Michael Kupersteine45af542015-06-30 13:36:19 +00001909static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001910_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
1911{
1912 return (__m128d) __builtin_ia32_vfnmsubpd128_mask ((__v2df) __A,
1913 (__v2df) __B,
1914 (__v2df) __C,
1915 (__mmask8) __U);
1916}
1917
Michael Kupersteine45af542015-06-30 13:36:19 +00001918static __inline__ __m128d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001919_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
1920{
1921 return (__m128d) __builtin_ia32_vfnmsubpd128_mask3 ((__v2df) __A,
1922 (__v2df) __B,
1923 (__v2df) __C,
1924 (__mmask8) __U);
1925}
1926
Michael Kupersteine45af542015-06-30 13:36:19 +00001927static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001928_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
1929{
1930 return (__m256d) __builtin_ia32_vfnmsubpd256_mask ((__v4df) __A,
1931 (__v4df) __B,
1932 (__v4df) __C,
1933 (__mmask8) __U);
1934}
1935
Michael Kupersteine45af542015-06-30 13:36:19 +00001936static __inline__ __m256d __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001937_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
1938{
1939 return (__m256d) __builtin_ia32_vfnmsubpd256_mask3 ((__v4df) __A,
1940 (__v4df) __B,
1941 (__v4df) __C,
1942 (__mmask8) __U);
1943}
1944
Michael Kupersteine45af542015-06-30 13:36:19 +00001945static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001946_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
1947{
1948 return (__m128) __builtin_ia32_vfnmsubps128_mask ((__v4sf) __A,
1949 (__v4sf) __B,
1950 (__v4sf) __C,
1951 (__mmask8) __U);
1952}
1953
Michael Kupersteine45af542015-06-30 13:36:19 +00001954static __inline__ __m128 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001955_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
1956{
1957 return (__m128) __builtin_ia32_vfnmsubps128_mask3 ((__v4sf) __A,
1958 (__v4sf) __B,
1959 (__v4sf) __C,
1960 (__mmask8) __U);
1961}
1962
Michael Kupersteine45af542015-06-30 13:36:19 +00001963static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001964_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
1965{
1966 return (__m256) __builtin_ia32_vfnmsubps256_mask ((__v8sf) __A,
1967 (__v8sf) __B,
1968 (__v8sf) __C,
1969 (__mmask8) __U);
1970}
1971
Michael Kupersteine45af542015-06-30 13:36:19 +00001972static __inline__ __m256 __DEFAULT_FN_ATTRS
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +00001973_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
1974{
1975 return (__m256) __builtin_ia32_vfnmsubps256_mask3 ((__v8sf) __A,
1976 (__v8sf) __B,
1977 (__v8sf) __C,
1978 (__mmask8) __U);
1979}
1980
Asaf Badouh74da3872015-07-28 08:26:14 +00001981static __inline__ __m128d __DEFAULT_FN_ATTRS
1982_mm_mask_add_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1983 return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A,
1984 (__v2df) __B,
1985 (__v2df) __W,
1986 (__mmask8) __U);
1987}
1988
1989static __inline__ __m128d __DEFAULT_FN_ATTRS
1990_mm_maskz_add_pd (__mmask8 __U, __m128d __A, __m128d __B) {
1991 return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A,
1992 (__v2df) __B,
1993 (__v2df)
1994 _mm_setzero_pd (),
1995 (__mmask8) __U);
1996}
1997
1998static __inline__ __m256d __DEFAULT_FN_ATTRS
1999_mm256_mask_add_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2000 return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A,
2001 (__v4df) __B,
2002 (__v4df) __W,
2003 (__mmask8) __U);
2004}
2005
2006static __inline__ __m256d __DEFAULT_FN_ATTRS
2007_mm256_maskz_add_pd (__mmask8 __U, __m256d __A, __m256d __B) {
2008 return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A,
2009 (__v4df) __B,
2010 (__v4df)
2011 _mm256_setzero_pd (),
2012 (__mmask8) __U);
2013}
2014
2015static __inline__ __m128 __DEFAULT_FN_ATTRS
2016_mm_mask_add_ps (__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) {
2017 return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A,
2018 (__v4sf) __B,
2019 (__v4sf) __W,
2020 (__mmask8) __U);
2021}
2022
2023static __inline__ __m128 __DEFAULT_FN_ATTRS
2024_mm_maskz_add_ps (__mmask16 __U, __m128 __A, __m128 __B) {
2025 return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A,
2026 (__v4sf) __B,
2027 (__v4sf)
2028 _mm_setzero_ps (),
2029 (__mmask8) __U);
2030}
2031
2032static __inline__ __m256 __DEFAULT_FN_ATTRS
2033_mm256_mask_add_ps (__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) {
2034 return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A,
2035 (__v8sf) __B,
2036 (__v8sf) __W,
2037 (__mmask8) __U);
2038}
2039
2040static __inline__ __m256 __DEFAULT_FN_ATTRS
2041_mm256_maskz_add_ps (__mmask16 __U, __m256 __A, __m256 __B) {
2042 return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A,
2043 (__v8sf) __B,
2044 (__v8sf)
2045 _mm256_setzero_ps (),
2046 (__mmask8) __U);
2047}
2048
2049static __inline__ __m128i __DEFAULT_FN_ATTRS
2050_mm_mask_blend_epi32 (__mmask8 __U, __m128i __A, __m128i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002051 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002052 (__v4si) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002053 (__v4si) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002054}
2055
2056static __inline__ __m256i __DEFAULT_FN_ATTRS
2057_mm256_mask_blend_epi32 (__mmask8 __U, __m256i __A, __m256i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002058 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002059 (__v8si) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002060 (__v8si) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002061}
2062
2063static __inline__ __m128d __DEFAULT_FN_ATTRS
2064_mm_mask_blend_pd (__mmask8 __U, __m128d __A, __m128d __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002065 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002066 (__v2df) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002067 (__v2df) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002068}
2069
2070static __inline__ __m256d __DEFAULT_FN_ATTRS
2071_mm256_mask_blend_pd (__mmask8 __U, __m256d __A, __m256d __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002072 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002073 (__v4df) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002074 (__v4df) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002075}
2076
2077static __inline__ __m128 __DEFAULT_FN_ATTRS
2078_mm_mask_blend_ps (__mmask8 __U, __m128 __A, __m128 __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002079 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002080 (__v4sf) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002081 (__v4sf) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002082}
2083
2084static __inline__ __m256 __DEFAULT_FN_ATTRS
2085_mm256_mask_blend_ps (__mmask8 __U, __m256 __A, __m256 __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002086 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002087 (__v8sf) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002088 (__v8sf) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002089}
2090
2091static __inline__ __m128i __DEFAULT_FN_ATTRS
2092_mm_mask_blend_epi64 (__mmask8 __U, __m128i __A, __m128i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002093 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002094 (__v2di) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002095 (__v2di) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002096}
2097
2098static __inline__ __m256i __DEFAULT_FN_ATTRS
2099_mm256_mask_blend_epi64 (__mmask8 __U, __m256i __A, __m256i __W) {
Igor Bregeraadb8762016-06-08 13:59:20 +00002100 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
Asaf Badouh74da3872015-07-28 08:26:14 +00002101 (__v4di) __W,
Igor Bregeraadb8762016-06-08 13:59:20 +00002102 (__v4di) __A);
Asaf Badouh74da3872015-07-28 08:26:14 +00002103}
2104
2105static __inline__ __m128d __DEFAULT_FN_ATTRS
2106_mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2107 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
2108 (__v2df) __W,
2109 (__mmask8) __U);
2110}
2111
2112static __inline__ __m128d __DEFAULT_FN_ATTRS
2113_mm_maskz_compress_pd (__mmask8 __U, __m128d __A) {
2114 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
2115 (__v2df)
2116 _mm_setzero_pd (),
2117 (__mmask8) __U);
2118}
2119
2120static __inline__ __m256d __DEFAULT_FN_ATTRS
2121_mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2122 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
2123 (__v4df) __W,
2124 (__mmask8) __U);
2125}
2126
2127static __inline__ __m256d __DEFAULT_FN_ATTRS
2128_mm256_maskz_compress_pd (__mmask8 __U, __m256d __A) {
2129 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
2130 (__v4df)
2131 _mm256_setzero_pd (),
2132 (__mmask8) __U);
2133}
2134
2135static __inline__ __m128i __DEFAULT_FN_ATTRS
2136_mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2137 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
2138 (__v2di) __W,
2139 (__mmask8) __U);
2140}
2141
2142static __inline__ __m128i __DEFAULT_FN_ATTRS
2143_mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A) {
2144 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
2145 (__v2di)
2146 _mm_setzero_si128 (),
2147 (__mmask8) __U);
2148}
2149
2150static __inline__ __m256i __DEFAULT_FN_ATTRS
2151_mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2152 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
2153 (__v4di) __W,
2154 (__mmask8) __U);
2155}
2156
2157static __inline__ __m256i __DEFAULT_FN_ATTRS
2158_mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A) {
2159 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
2160 (__v4di)
2161 _mm256_setzero_si256 (),
2162 (__mmask8) __U);
2163}
2164
2165static __inline__ __m128 __DEFAULT_FN_ATTRS
2166_mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A) {
2167 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
2168 (__v4sf) __W,
2169 (__mmask8) __U);
2170}
2171
2172static __inline__ __m128 __DEFAULT_FN_ATTRS
2173_mm_maskz_compress_ps (__mmask8 __U, __m128 __A) {
2174 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
2175 (__v4sf)
2176 _mm_setzero_ps (),
2177 (__mmask8) __U);
2178}
2179
2180static __inline__ __m256 __DEFAULT_FN_ATTRS
2181_mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A) {
2182 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
2183 (__v8sf) __W,
2184 (__mmask8) __U);
2185}
2186
2187static __inline__ __m256 __DEFAULT_FN_ATTRS
2188_mm256_maskz_compress_ps (__mmask8 __U, __m256 __A) {
2189 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
2190 (__v8sf)
2191 _mm256_setzero_ps (),
2192 (__mmask8) __U);
2193}
2194
2195static __inline__ __m128i __DEFAULT_FN_ATTRS
2196_mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
2197 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
2198 (__v4si) __W,
2199 (__mmask8) __U);
2200}
2201
2202static __inline__ __m128i __DEFAULT_FN_ATTRS
2203_mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A) {
2204 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
2205 (__v4si)
2206 _mm_setzero_si128 (),
2207 (__mmask8) __U);
2208}
2209
2210static __inline__ __m256i __DEFAULT_FN_ATTRS
2211_mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
2212 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
2213 (__v8si) __W,
2214 (__mmask8) __U);
2215}
2216
2217static __inline__ __m256i __DEFAULT_FN_ATTRS
2218_mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A) {
2219 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
2220 (__v8si)
2221 _mm256_setzero_si256 (),
2222 (__mmask8) __U);
2223}
2224
2225static __inline__ void __DEFAULT_FN_ATTRS
2226_mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A) {
2227 __builtin_ia32_compressstoredf128_mask ((__v2df *) __P,
2228 (__v2df) __A,
2229 (__mmask8) __U);
2230}
2231
2232static __inline__ void __DEFAULT_FN_ATTRS
2233_mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A) {
2234 __builtin_ia32_compressstoredf256_mask ((__v4df *) __P,
2235 (__v4df) __A,
2236 (__mmask8) __U);
2237}
2238
2239static __inline__ void __DEFAULT_FN_ATTRS
2240_mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A) {
2241 __builtin_ia32_compressstoredi128_mask ((__v2di *) __P,
2242 (__v2di) __A,
2243 (__mmask8) __U);
2244}
2245
2246static __inline__ void __DEFAULT_FN_ATTRS
2247_mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A) {
2248 __builtin_ia32_compressstoredi256_mask ((__v4di *) __P,
2249 (__v4di) __A,
2250 (__mmask8) __U);
2251}
2252
2253static __inline__ void __DEFAULT_FN_ATTRS
2254_mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A) {
2255 __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P,
2256 (__v4sf) __A,
2257 (__mmask8) __U);
2258}
2259
2260static __inline__ void __DEFAULT_FN_ATTRS
2261_mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A) {
2262 __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P,
2263 (__v8sf) __A,
2264 (__mmask8) __U);
2265}
2266
2267static __inline__ void __DEFAULT_FN_ATTRS
2268_mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A) {
2269 __builtin_ia32_compressstoresi128_mask ((__v4si *) __P,
2270 (__v4si) __A,
2271 (__mmask8) __U);
2272}
2273
2274static __inline__ void __DEFAULT_FN_ATTRS
2275_mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A) {
2276 __builtin_ia32_compressstoresi256_mask ((__v8si *) __P,
2277 (__v8si) __A,
2278 (__mmask8) __U);
2279}
2280
2281static __inline__ __m128d __DEFAULT_FN_ATTRS
2282_mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2283 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
2284 (__v2df) __W,
2285 (__mmask8) __U);
2286}
2287
2288static __inline__ __m128d __DEFAULT_FN_ATTRS
2289_mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
2290 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
2291 (__v2df)
2292 _mm_setzero_pd (),
2293 (__mmask8) __U);
2294}
2295
2296static __inline__ __m256d __DEFAULT_FN_ATTRS
2297_mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2298 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
2299 (__v4df) __W,
2300 (__mmask8) __U);
2301}
2302
2303static __inline__ __m256d __DEFAULT_FN_ATTRS
2304_mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
2305 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
2306 (__v4df)
2307 _mm256_setzero_pd (),
2308 (__mmask8) __U);
2309}
2310
2311static __inline__ __m128 __DEFAULT_FN_ATTRS
2312_mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2313 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2314 (__v4sf) __W,
2315 (__mmask8) __U);
2316}
2317
2318static __inline__ __m128 __DEFAULT_FN_ATTRS
2319_mm_maskz_cvtepi32_ps (__mmask16 __U, __m128i __A) {
2320 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
2321 (__v4sf)
2322 _mm_setzero_ps (),
2323 (__mmask8) __U);
2324}
2325
2326static __inline__ __m256 __DEFAULT_FN_ATTRS
2327_mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2328 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2329 (__v8sf) __W,
2330 (__mmask8) __U);
2331}
2332
2333static __inline__ __m256 __DEFAULT_FN_ATTRS
2334_mm256_maskz_cvtepi32_ps (__mmask16 __U, __m256i __A) {
2335 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
2336 (__v8sf)
2337 _mm256_setzero_ps (),
2338 (__mmask8) __U);
2339}
2340
2341static __inline__ __m128i __DEFAULT_FN_ATTRS
2342_mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2343 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2344 (__v4si) __W,
2345 (__mmask8) __U);
2346}
2347
2348static __inline__ __m128i __DEFAULT_FN_ATTRS
2349_mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) {
2350 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
2351 (__v4si)
2352 _mm_setzero_si128 (),
2353 (__mmask8) __U);
2354}
2355
2356static __inline__ __m128i __DEFAULT_FN_ATTRS
2357_mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2358 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2359 (__v4si) __W,
2360 (__mmask8) __U);
2361}
2362
2363static __inline__ __m128i __DEFAULT_FN_ATTRS
2364_mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) {
2365 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
2366 (__v4si)
2367 _mm_setzero_si128 (),
2368 (__mmask8) __U);
2369}
2370
2371static __inline__ __m128 __DEFAULT_FN_ATTRS
2372_mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) {
2373 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2374 (__v4sf) __W,
2375 (__mmask8) __U);
2376}
2377
2378static __inline__ __m128 __DEFAULT_FN_ATTRS
2379_mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) {
2380 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
2381 (__v4sf)
2382 _mm_setzero_ps (),
2383 (__mmask8) __U);
2384}
2385
2386static __inline__ __m128 __DEFAULT_FN_ATTRS
2387_mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) {
2388 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2389 (__v4sf) __W,
2390 (__mmask8) __U);
2391}
2392
2393static __inline__ __m128 __DEFAULT_FN_ATTRS
2394_mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) {
2395 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
2396 (__v4sf)
2397 _mm_setzero_ps (),
2398 (__mmask8) __U);
2399}
2400
2401static __inline__ __m128i __DEFAULT_FN_ATTRS
2402_mm_cvtpd_epu32 (__m128d __A) {
2403 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2404 (__v4si)
2405 _mm_setzero_si128 (),
2406 (__mmask8) -1);
2407}
2408
2409static __inline__ __m128i __DEFAULT_FN_ATTRS
2410_mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2411 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2412 (__v4si) __W,
2413 (__mmask8) __U);
2414}
2415
2416static __inline__ __m128i __DEFAULT_FN_ATTRS
2417_mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) {
2418 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
2419 (__v4si)
2420 _mm_setzero_si128 (),
2421 (__mmask8) __U);
2422}
2423
2424static __inline__ __m128i __DEFAULT_FN_ATTRS
2425_mm256_cvtpd_epu32 (__m256d __A) {
2426 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2427 (__v4si)
2428 _mm_setzero_si128 (),
2429 (__mmask8) -1);
2430}
2431
2432static __inline__ __m128i __DEFAULT_FN_ATTRS
2433_mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2434 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2435 (__v4si) __W,
2436 (__mmask8) __U);
2437}
2438
2439static __inline__ __m128i __DEFAULT_FN_ATTRS
2440_mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) {
2441 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
2442 (__v4si)
2443 _mm_setzero_si128 (),
2444 (__mmask8) __U);
2445}
2446
2447static __inline__ __m128i __DEFAULT_FN_ATTRS
2448_mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2449 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2450 (__v4si) __W,
2451 (__mmask8) __U);
2452}
2453
2454static __inline__ __m128i __DEFAULT_FN_ATTRS
2455_mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) {
2456 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
2457 (__v4si)
2458 _mm_setzero_si128 (),
2459 (__mmask8) __U);
2460}
2461
2462static __inline__ __m256i __DEFAULT_FN_ATTRS
2463_mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2464 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2465 (__v8si) __W,
2466 (__mmask8) __U);
2467}
2468
2469static __inline__ __m256i __DEFAULT_FN_ATTRS
2470_mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) {
2471 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
2472 (__v8si)
2473 _mm256_setzero_si256 (),
2474 (__mmask8) __U);
2475}
2476
2477static __inline__ __m128d __DEFAULT_FN_ATTRS
2478_mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) {
2479 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2480 (__v2df) __W,
2481 (__mmask8) __U);
2482}
2483
2484static __inline__ __m128d __DEFAULT_FN_ATTRS
2485_mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2486 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
2487 (__v2df)
2488 _mm_setzero_pd (),
2489 (__mmask8) __U);
2490}
2491
2492static __inline__ __m256d __DEFAULT_FN_ATTRS
2493_mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) {
2494 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2495 (__v4df) __W,
2496 (__mmask8) __U);
2497}
2498
2499static __inline__ __m256d __DEFAULT_FN_ATTRS
2500_mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
2501 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
2502 (__v4df)
2503 _mm256_setzero_pd (),
2504 (__mmask8) __U);
2505}
2506
2507static __inline__ __m128i __DEFAULT_FN_ATTRS
2508_mm_cvtps_epu32 (__m128 __A) {
2509 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2510 (__v4si)
2511 _mm_setzero_si128 (),
2512 (__mmask8) -1);
2513}
2514
2515static __inline__ __m128i __DEFAULT_FN_ATTRS
2516_mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2517 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2518 (__v4si) __W,
2519 (__mmask8) __U);
2520}
2521
2522static __inline__ __m128i __DEFAULT_FN_ATTRS
2523_mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) {
2524 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
2525 (__v4si)
2526 _mm_setzero_si128 (),
2527 (__mmask8) __U);
2528}
2529
2530static __inline__ __m256i __DEFAULT_FN_ATTRS
2531_mm256_cvtps_epu32 (__m256 __A) {
2532 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2533 (__v8si)
2534 _mm256_setzero_si256 (),
2535 (__mmask8) -1);
2536}
2537
2538static __inline__ __m256i __DEFAULT_FN_ATTRS
2539_mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2540 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2541 (__v8si) __W,
2542 (__mmask8) __U);
2543}
2544
2545static __inline__ __m256i __DEFAULT_FN_ATTRS
2546_mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) {
2547 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
2548 (__v8si)
2549 _mm256_setzero_si256 (),
2550 (__mmask8) __U);
2551}
2552
2553static __inline__ __m128i __DEFAULT_FN_ATTRS
2554_mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
2555 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2556 (__v4si) __W,
2557 (__mmask8) __U);
2558}
2559
2560static __inline__ __m128i __DEFAULT_FN_ATTRS
2561_mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) {
2562 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
2563 (__v4si)
2564 _mm_setzero_si128 (),
2565 (__mmask8) __U);
2566}
2567
2568static __inline__ __m128i __DEFAULT_FN_ATTRS
2569_mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
2570 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2571 (__v4si) __W,
2572 (__mmask8) __U);
2573}
2574
2575static __inline__ __m128i __DEFAULT_FN_ATTRS
2576_mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) {
2577 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
2578 (__v4si)
2579 _mm_setzero_si128 (),
2580 (__mmask8) __U);
2581}
2582
2583static __inline__ __m128i __DEFAULT_FN_ATTRS
2584_mm_cvttpd_epu32 (__m128d __A) {
2585 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2586 (__v4si)
2587 _mm_setzero_si128 (),
2588 (__mmask8) -1);
2589}
2590
2591static __inline__ __m128i __DEFAULT_FN_ATTRS
2592_mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
2593 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2594 (__v4si) __W,
2595 (__mmask8) __U);
2596}
2597
2598static __inline__ __m128i __DEFAULT_FN_ATTRS
2599_mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) {
2600 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
2601 (__v4si)
2602 _mm_setzero_si128 (),
2603 (__mmask8) __U);
2604}
2605
2606static __inline__ __m128i __DEFAULT_FN_ATTRS
2607_mm256_cvttpd_epu32 (__m256d __A) {
2608 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2609 (__v4si)
2610 _mm_setzero_si128 (),
2611 (__mmask8) -1);
2612}
2613
2614static __inline__ __m128i __DEFAULT_FN_ATTRS
2615_mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
2616 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2617 (__v4si) __W,
2618 (__mmask8) __U);
2619}
2620
2621static __inline__ __m128i __DEFAULT_FN_ATTRS
2622_mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) {
2623 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
2624 (__v4si)
2625 _mm_setzero_si128 (),
2626 (__mmask8) __U);
2627}
2628
2629static __inline__ __m128i __DEFAULT_FN_ATTRS
2630_mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
2631 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2632 (__v4si) __W,
2633 (__mmask8) __U);
2634}
2635
2636static __inline__ __m128i __DEFAULT_FN_ATTRS
2637_mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) {
2638 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
2639 (__v4si)
2640 _mm_setzero_si128 (),
2641 (__mmask8) __U);
2642}
2643
2644static __inline__ __m256i __DEFAULT_FN_ATTRS
2645_mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
2646 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2647 (__v8si) __W,
2648 (__mmask8) __U);
2649}
2650
2651static __inline__ __m256i __DEFAULT_FN_ATTRS
2652_mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) {
2653 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
2654 (__v8si)
2655 _mm256_setzero_si256 (),
2656 (__mmask8) __U);
2657}
2658
2659static __inline__ __m128i __DEFAULT_FN_ATTRS
2660_mm_cvttps_epu32 (__m128 __A) {
2661 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2662 (__v4si)
2663 _mm_setzero_si128 (),
2664 (__mmask8) -1);
2665}
2666
2667static __inline__ __m128i __DEFAULT_FN_ATTRS
2668_mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
2669 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2670 (__v4si) __W,
2671 (__mmask8) __U);
2672}
2673
2674static __inline__ __m128i __DEFAULT_FN_ATTRS
2675_mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) {
2676 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
2677 (__v4si)
2678 _mm_setzero_si128 (),
2679 (__mmask8) __U);
2680}
2681
2682static __inline__ __m256i __DEFAULT_FN_ATTRS
2683_mm256_cvttps_epu32 (__m256 __A) {
2684 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2685 (__v8si)
2686 _mm256_setzero_si256 (),
2687 (__mmask8) -1);
2688}
2689
2690static __inline__ __m256i __DEFAULT_FN_ATTRS
2691_mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
2692 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2693 (__v8si) __W,
2694 (__mmask8) __U);
2695}
2696
2697static __inline__ __m256i __DEFAULT_FN_ATTRS
2698_mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) {
2699 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
2700 (__v8si)
2701 _mm256_setzero_si256 (),
2702 (__mmask8) __U);
2703}
2704
2705static __inline__ __m128d __DEFAULT_FN_ATTRS
2706_mm_cvtepu32_pd (__m128i __A) {
2707 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2708 (__v2df)
2709 _mm_setzero_pd (),
2710 (__mmask8) -1);
2711}
2712
2713static __inline__ __m128d __DEFAULT_FN_ATTRS
2714_mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
2715 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2716 (__v2df) __W,
2717 (__mmask8) __U);
2718}
2719
2720static __inline__ __m128d __DEFAULT_FN_ATTRS
2721_mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2722 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
2723 (__v2df)
2724 _mm_setzero_pd (),
2725 (__mmask8) __U);
2726}
2727
2728static __inline__ __m256d __DEFAULT_FN_ATTRS
2729_mm256_cvtepu32_pd (__m128i __A) {
2730 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2731 (__v4df)
2732 _mm256_setzero_pd (),
2733 (__mmask8) -1);
2734}
2735
2736static __inline__ __m256d __DEFAULT_FN_ATTRS
2737_mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
2738 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2739 (__v4df) __W,
2740 (__mmask8) __U);
2741}
2742
2743static __inline__ __m256d __DEFAULT_FN_ATTRS
2744_mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
2745 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
2746 (__v4df)
2747 _mm256_setzero_pd (),
2748 (__mmask8) __U);
2749}
2750
2751static __inline__ __m128 __DEFAULT_FN_ATTRS
2752_mm_cvtepu32_ps (__m128i __A) {
2753 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2754 (__v4sf)
2755 _mm_setzero_ps (),
2756 (__mmask8) -1);
2757}
2758
2759static __inline__ __m128 __DEFAULT_FN_ATTRS
2760_mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
2761 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2762 (__v4sf) __W,
2763 (__mmask8) __U);
2764}
2765
2766static __inline__ __m128 __DEFAULT_FN_ATTRS
2767_mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) {
2768 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
2769 (__v4sf)
2770 _mm_setzero_ps (),
2771 (__mmask8) __U);
2772}
2773
2774static __inline__ __m256 __DEFAULT_FN_ATTRS
2775_mm256_cvtepu32_ps (__m256i __A) {
2776 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2777 (__v8sf)
2778 _mm256_setzero_ps (),
2779 (__mmask8) -1);
2780}
2781
2782static __inline__ __m256 __DEFAULT_FN_ATTRS
2783_mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
2784 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2785 (__v8sf) __W,
2786 (__mmask8) __U);
2787}
2788
2789static __inline__ __m256 __DEFAULT_FN_ATTRS
2790_mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) {
2791 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
2792 (__v8sf)
2793 _mm256_setzero_ps (),
2794 (__mmask8) __U);
2795}
2796
Asaf Badouh78ee5cc2015-07-28 10:30:56 +00002797static __inline__ __m128d __DEFAULT_FN_ATTRS
2798_mm_mask_div_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
2799 return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A,
2800 (__v2df) __B,
2801 (__v2df) __W,
2802 (__mmask8) __U);
2803}
2804
2805static __inline__ __m128d __DEFAULT_FN_ATTRS
2806_mm_maskz_div_pd (__mmask8 __U, __m128d __A, __m128d __B) {
2807 return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A,
2808 (__v2df) __B,
2809 (__v2df)
2810 _mm_setzero_pd (),
2811 (__mmask8) __U);
2812}
2813
2814static __inline__ __m256d __DEFAULT_FN_ATTRS
2815_mm256_mask_div_pd (__m256d __W, __mmask8 __U, __m256d __A,
2816 __m256d __B) {
2817 return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A,
2818 (__v4df) __B,
2819 (__v4df) __W,
2820 (__mmask8) __U);
2821}
2822
2823static __inline__ __m256d __DEFAULT_FN_ATTRS
2824_mm256_maskz_div_pd (__mmask8 __U, __m256d __A, __m256d __B) {
2825 return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A,
2826 (__v4df) __B,
2827 (__v4df)
2828 _mm256_setzero_pd (),
2829 (__mmask8) __U);
2830}
2831
2832static __inline__ __m128 __DEFAULT_FN_ATTRS
2833_mm_mask_div_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
2834 return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A,
2835 (__v4sf) __B,
2836 (__v4sf) __W,
2837 (__mmask8) __U);
2838}
2839
2840static __inline__ __m128 __DEFAULT_FN_ATTRS
2841_mm_maskz_div_ps (__mmask8 __U, __m128 __A, __m128 __B) {
2842 return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A,
2843 (__v4sf) __B,
2844 (__v4sf)
2845 _mm_setzero_ps (),
2846 (__mmask8) __U);
2847}
2848
2849static __inline__ __m256 __DEFAULT_FN_ATTRS
2850_mm256_mask_div_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2851 return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A,
2852 (__v8sf) __B,
2853 (__v8sf) __W,
2854 (__mmask8) __U);
2855}
2856
2857static __inline__ __m256 __DEFAULT_FN_ATTRS
2858_mm256_maskz_div_ps (__mmask8 __U, __m256 __A, __m256 __B) {
2859 return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A,
2860 (__v8sf) __B,
2861 (__v8sf)
2862 _mm256_setzero_ps (),
2863 (__mmask8) __U);
2864}
2865
2866static __inline__ __m128d __DEFAULT_FN_ATTRS
2867_mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) {
2868 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2869 (__v2df) __W,
2870 (__mmask8) __U);
2871}
2872
2873static __inline__ __m128d __DEFAULT_FN_ATTRS
2874_mm_maskz_expand_pd (__mmask8 __U, __m128d __A) {
2875 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
2876 (__v2df)
2877 _mm_setzero_pd (),
2878 (__mmask8) __U);
2879}
2880
2881static __inline__ __m256d __DEFAULT_FN_ATTRS
2882_mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) {
2883 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2884 (__v4df) __W,
2885 (__mmask8) __U);
2886}
2887
2888static __inline__ __m256d __DEFAULT_FN_ATTRS
2889_mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) {
2890 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
2891 (__v4df)
2892 _mm256_setzero_pd (),
2893 (__mmask8) __U);
2894}
2895
2896static __inline__ __m128i __DEFAULT_FN_ATTRS
2897_mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
2898 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2899 (__v2di) __W,
2900 (__mmask8) __U);
2901}
2902
2903static __inline__ __m128i __DEFAULT_FN_ATTRS
2904_mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) {
2905 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
2906 (__v2di)
2907 _mm_setzero_si128 (),
2908 (__mmask8) __U);
2909}
2910
2911static __inline__ __m256i __DEFAULT_FN_ATTRS
2912_mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
2913 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2914 (__v4di) __W,
2915 (__mmask8) __U);
2916}
2917
2918static __inline__ __m256i __DEFAULT_FN_ATTRS
2919_mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) {
2920 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
2921 (__v4di)
2922 _mm256_setzero_si256 (),
2923 (__mmask8) __U);
2924}
2925
2926static __inline__ __m128d __DEFAULT_FN_ATTRS
2927_mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) {
2928 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2929 (__v2df) __W,
2930 (__mmask8)
2931 __U);
2932}
2933
2934static __inline__ __m128d __DEFAULT_FN_ATTRS
2935_mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2936 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
2937 (__v2df)
2938 _mm_setzero_pd (),
2939 (__mmask8)
2940 __U);
2941}
2942
2943static __inline__ __m256d __DEFAULT_FN_ATTRS
2944_mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) {
2945 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2946 (__v4df) __W,
2947 (__mmask8)
2948 __U);
2949}
2950
2951static __inline__ __m256d __DEFAULT_FN_ATTRS
2952_mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
2953 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
2954 (__v4df)
2955 _mm256_setzero_pd (),
2956 (__mmask8)
2957 __U);
2958}
2959
2960static __inline__ __m128i __DEFAULT_FN_ATTRS
2961_mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) {
2962 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2963 (__v2di) __W,
2964 (__mmask8)
2965 __U);
2966}
2967
2968static __inline__ __m128i __DEFAULT_FN_ATTRS
2969_mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2970 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
2971 (__v2di)
2972 _mm_setzero_si128 (),
2973 (__mmask8)
2974 __U);
2975}
2976
2977static __inline__ __m256i __DEFAULT_FN_ATTRS
2978_mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U,
2979 void const *__P) {
2980 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2981 (__v4di) __W,
2982 (__mmask8)
2983 __U);
2984}
2985
2986static __inline__ __m256i __DEFAULT_FN_ATTRS
2987_mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
2988 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
2989 (__v4di)
2990 _mm256_setzero_si256 (),
2991 (__mmask8)
2992 __U);
2993}
2994
2995static __inline__ __m128 __DEFAULT_FN_ATTRS
2996_mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) {
2997 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
2998 (__v4sf) __W,
2999 (__mmask8) __U);
3000}
3001
3002static __inline__ __m128 __DEFAULT_FN_ATTRS
3003_mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
3004 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
3005 (__v4sf)
3006 _mm_setzero_ps (),
3007 (__mmask8)
3008 __U);
3009}
3010
3011static __inline__ __m256 __DEFAULT_FN_ATTRS
3012_mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) {
3013 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
3014 (__v8sf) __W,
3015 (__mmask8) __U);
3016}
3017
3018static __inline__ __m256 __DEFAULT_FN_ATTRS
3019_mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
3020 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
3021 (__v8sf)
3022 _mm256_setzero_ps (),
3023 (__mmask8)
3024 __U);
3025}
3026
3027static __inline__ __m128i __DEFAULT_FN_ATTRS
3028_mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) {
3029 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
3030 (__v4si) __W,
3031 (__mmask8)
3032 __U);
3033}
3034
3035static __inline__ __m128i __DEFAULT_FN_ATTRS
3036_mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
3037 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
3038 (__v4si)
3039 _mm_setzero_si128 (),
3040 (__mmask8) __U);
3041}
3042
3043static __inline__ __m256i __DEFAULT_FN_ATTRS
3044_mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U,
3045 void const *__P) {
3046 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
3047 (__v8si) __W,
3048 (__mmask8)
3049 __U);
3050}
3051
3052static __inline__ __m256i __DEFAULT_FN_ATTRS
3053_mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
3054 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
3055 (__v8si)
3056 _mm256_setzero_si256 (),
3057 (__mmask8)
3058 __U);
3059}
3060
3061static __inline__ __m128 __DEFAULT_FN_ATTRS
3062_mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) {
3063 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
3064 (__v4sf) __W,
3065 (__mmask8) __U);
3066}
3067
3068static __inline__ __m128 __DEFAULT_FN_ATTRS
3069_mm_maskz_expand_ps (__mmask8 __U, __m128 __A) {
3070 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
3071 (__v4sf)
3072 _mm_setzero_ps (),
3073 (__mmask8) __U);
3074}
3075
3076static __inline__ __m256 __DEFAULT_FN_ATTRS
3077_mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) {
3078 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
3079 (__v8sf) __W,
3080 (__mmask8) __U);
3081}
3082
3083static __inline__ __m256 __DEFAULT_FN_ATTRS
3084_mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) {
3085 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
3086 (__v8sf)
3087 _mm256_setzero_ps (),
3088 (__mmask8) __U);
3089}
3090
3091static __inline__ __m128i __DEFAULT_FN_ATTRS
3092_mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
3093 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
3094 (__v4si) __W,
3095 (__mmask8) __U);
3096}
3097
3098static __inline__ __m128i __DEFAULT_FN_ATTRS
3099_mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) {
3100 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
3101 (__v4si)
3102 _mm_setzero_si128 (),
3103 (__mmask8) __U);
3104}
3105
3106static __inline__ __m256i __DEFAULT_FN_ATTRS
3107_mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
3108 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
3109 (__v8si) __W,
3110 (__mmask8) __U);
3111}
3112
3113static __inline__ __m256i __DEFAULT_FN_ATTRS
3114_mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) {
3115 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
3116 (__v8si)
3117 _mm256_setzero_si256 (),
3118 (__mmask8) __U);
3119}
3120
3121static __inline__ __m128d __DEFAULT_FN_ATTRS
3122_mm_getexp_pd (__m128d __A) {
3123 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
3124 (__v2df)
3125 _mm_setzero_pd (),
3126 (__mmask8) -1);
3127}
3128
3129static __inline__ __m128d __DEFAULT_FN_ATTRS
3130_mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) {
3131 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
3132 (__v2df) __W,
3133 (__mmask8) __U);
3134}
3135
3136static __inline__ __m128d __DEFAULT_FN_ATTRS
3137_mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) {
3138 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
3139 (__v2df)
3140 _mm_setzero_pd (),
3141 (__mmask8) __U);
3142}
3143
3144static __inline__ __m256d __DEFAULT_FN_ATTRS
3145_mm256_getexp_pd (__m256d __A) {
3146 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3147 (__v4df)
3148 _mm256_setzero_pd (),
3149 (__mmask8) -1);
3150}
3151
3152static __inline__ __m256d __DEFAULT_FN_ATTRS
3153_mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) {
3154 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3155 (__v4df) __W,
3156 (__mmask8) __U);
3157}
3158
3159static __inline__ __m256d __DEFAULT_FN_ATTRS
3160_mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) {
3161 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
3162 (__v4df)
3163 _mm256_setzero_pd (),
3164 (__mmask8) __U);
3165}
3166
3167static __inline__ __m128 __DEFAULT_FN_ATTRS
3168_mm_getexp_ps (__m128 __A) {
3169 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3170 (__v4sf)
3171 _mm_setzero_ps (),
3172 (__mmask8) -1);
3173}
3174
3175static __inline__ __m128 __DEFAULT_FN_ATTRS
3176_mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) {
3177 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3178 (__v4sf) __W,
3179 (__mmask8) __U);
3180}
3181
3182static __inline__ __m128 __DEFAULT_FN_ATTRS
3183_mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) {
3184 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
3185 (__v4sf)
3186 _mm_setzero_ps (),
3187 (__mmask8) __U);
3188}
3189
3190static __inline__ __m256 __DEFAULT_FN_ATTRS
3191_mm256_getexp_ps (__m256 __A) {
3192 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3193 (__v8sf)
3194 _mm256_setzero_ps (),
3195 (__mmask8) -1);
3196}
3197
3198static __inline__ __m256 __DEFAULT_FN_ATTRS
3199_mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) {
3200 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3201 (__v8sf) __W,
3202 (__mmask8) __U);
3203}
3204
3205static __inline__ __m256 __DEFAULT_FN_ATTRS
3206_mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) {
3207 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
3208 (__v8sf)
3209 _mm256_setzero_ps (),
3210 (__mmask8) __U);
3211}
3212
3213static __inline__ __m128d __DEFAULT_FN_ATTRS
3214_mm_mask_max_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3215 return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A,
3216 (__v2df) __B,
3217 (__v2df) __W,
3218 (__mmask8) __U);
3219}
3220
3221static __inline__ __m128d __DEFAULT_FN_ATTRS
3222_mm_maskz_max_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3223 return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A,
3224 (__v2df) __B,
3225 (__v2df)
3226 _mm_setzero_pd (),
3227 (__mmask8) __U);
3228}
3229
3230static __inline__ __m256d __DEFAULT_FN_ATTRS
3231_mm256_mask_max_pd (__m256d __W, __mmask8 __U, __m256d __A,
3232 __m256d __B) {
3233 return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A,
3234 (__v4df) __B,
3235 (__v4df) __W,
3236 (__mmask8) __U);
3237}
3238
3239static __inline__ __m256d __DEFAULT_FN_ATTRS
3240_mm256_maskz_max_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3241 return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A,
3242 (__v4df) __B,
3243 (__v4df)
3244 _mm256_setzero_pd (),
3245 (__mmask8) __U);
3246}
3247
3248static __inline__ __m128 __DEFAULT_FN_ATTRS
3249_mm_mask_max_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3250 return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A,
3251 (__v4sf) __B,
3252 (__v4sf) __W,
3253 (__mmask8) __U);
3254}
3255
3256static __inline__ __m128 __DEFAULT_FN_ATTRS
3257_mm_maskz_max_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3258 return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A,
3259 (__v4sf) __B,
3260 (__v4sf)
3261 _mm_setzero_ps (),
3262 (__mmask8) __U);
3263}
3264
3265static __inline__ __m256 __DEFAULT_FN_ATTRS
3266_mm256_mask_max_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3267 return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A,
3268 (__v8sf) __B,
3269 (__v8sf) __W,
3270 (__mmask8) __U);
3271}
3272
3273static __inline__ __m256 __DEFAULT_FN_ATTRS
3274_mm256_maskz_max_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3275 return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A,
3276 (__v8sf) __B,
3277 (__v8sf)
3278 _mm256_setzero_ps (),
3279 (__mmask8) __U);
3280}
3281
3282static __inline__ __m128d __DEFAULT_FN_ATTRS
3283_mm_mask_min_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3284 return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A,
3285 (__v2df) __B,
3286 (__v2df) __W,
3287 (__mmask8) __U);
3288}
3289
3290static __inline__ __m128d __DEFAULT_FN_ATTRS
3291_mm_maskz_min_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3292 return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A,
3293 (__v2df) __B,
3294 (__v2df)
3295 _mm_setzero_pd (),
3296 (__mmask8) __U);
3297}
3298
3299static __inline__ __m256d __DEFAULT_FN_ATTRS
3300_mm256_mask_min_pd (__m256d __W, __mmask8 __U, __m256d __A,
3301 __m256d __B) {
3302 return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A,
3303 (__v4df) __B,
3304 (__v4df) __W,
3305 (__mmask8) __U);
3306}
3307
3308static __inline__ __m256d __DEFAULT_FN_ATTRS
3309_mm256_maskz_min_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3310 return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A,
3311 (__v4df) __B,
3312 (__v4df)
3313 _mm256_setzero_pd (),
3314 (__mmask8) __U);
3315}
3316
3317static __inline__ __m128 __DEFAULT_FN_ATTRS
3318_mm_mask_min_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3319 return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A,
3320 (__v4sf) __B,
3321 (__v4sf) __W,
3322 (__mmask8) __U);
3323}
3324
3325static __inline__ __m128 __DEFAULT_FN_ATTRS
3326_mm_maskz_min_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3327 return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A,
3328 (__v4sf) __B,
3329 (__v4sf)
3330 _mm_setzero_ps (),
3331 (__mmask8) __U);
3332}
3333
3334static __inline__ __m256 __DEFAULT_FN_ATTRS
3335_mm256_mask_min_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3336 return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A,
3337 (__v8sf) __B,
3338 (__v8sf) __W,
3339 (__mmask8) __U);
3340}
3341
3342static __inline__ __m256 __DEFAULT_FN_ATTRS
3343_mm256_maskz_min_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3344 return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A,
3345 (__v8sf) __B,
3346 (__v8sf)
3347 _mm256_setzero_ps (),
3348 (__mmask8) __U);
3349}
3350
3351static __inline__ __m128d __DEFAULT_FN_ATTRS
3352_mm_mask_mul_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
3353 return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A,
3354 (__v2df) __B,
3355 (__v2df) __W,
3356 (__mmask8) __U);
3357}
3358
3359static __inline__ __m128d __DEFAULT_FN_ATTRS
3360_mm_maskz_mul_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3361 return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A,
3362 (__v2df) __B,
3363 (__v2df)
3364 _mm_setzero_pd (),
3365 (__mmask8) __U);
3366}
3367
3368static __inline__ __m256d __DEFAULT_FN_ATTRS
3369_mm256_mask_mul_pd (__m256d __W, __mmask8 __U, __m256d __A,
3370 __m256d __B) {
3371 return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A,
3372 (__v4df) __B,
3373 (__v4df) __W,
3374 (__mmask8) __U);
3375}
3376
3377static __inline__ __m256d __DEFAULT_FN_ATTRS
3378_mm256_maskz_mul_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3379 return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A,
3380 (__v4df) __B,
3381 (__v4df)
3382 _mm256_setzero_pd (),
3383 (__mmask8) __U);
3384}
3385
3386static __inline__ __m128 __DEFAULT_FN_ATTRS
3387_mm_mask_mul_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3388 return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A,
3389 (__v4sf) __B,
3390 (__v4sf) __W,
3391 (__mmask8) __U);
3392}
3393
3394static __inline__ __m128 __DEFAULT_FN_ATTRS
3395_mm_maskz_mul_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3396 return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A,
3397 (__v4sf) __B,
3398 (__v4sf)
3399 _mm_setzero_ps (),
3400 (__mmask8) __U);
3401}
3402
3403static __inline__ __m256 __DEFAULT_FN_ATTRS
3404_mm256_mask_mul_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
3405 return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A,
3406 (__v8sf) __B,
3407 (__v8sf) __W,
3408 (__mmask8) __U);
3409}
3410
3411static __inline__ __m256 __DEFAULT_FN_ATTRS
3412_mm256_maskz_mul_ps (__mmask8 __U, __m256 __A, __m256 __B) {
3413 return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A,
3414 (__v8sf) __B,
3415 (__v8sf)
3416 _mm256_setzero_ps (),
3417 (__mmask8) __U);
3418}
3419
3420static __inline__ __m128i __DEFAULT_FN_ATTRS
3421_mm_mask_abs_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
3422 return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A,
3423 (__v4si) __W,
3424 (__mmask8) __U);
3425}
3426
3427static __inline__ __m128i __DEFAULT_FN_ATTRS
3428_mm_maskz_abs_epi32 (__mmask8 __U, __m128i __A) {
3429 return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A,
3430 (__v4si)
3431 _mm_setzero_si128 (),
3432 (__mmask8) __U);
3433}
3434
3435static __inline__ __m256i __DEFAULT_FN_ATTRS
3436_mm256_mask_abs_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
3437 return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A,
3438 (__v8si) __W,
3439 (__mmask8) __U);
3440}
3441
3442static __inline__ __m256i __DEFAULT_FN_ATTRS
3443_mm256_maskz_abs_epi32 (__mmask8 __U, __m256i __A) {
3444 return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A,
3445 (__v8si)
3446 _mm256_setzero_si256 (),
3447 (__mmask8) __U);
3448}
3449
3450static __inline__ __m128i __DEFAULT_FN_ATTRS
3451_mm_abs_epi64 (__m128i __A) {
3452 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3453 (__v2di)
3454 _mm_setzero_si128 (),
3455 (__mmask8) -1);
3456}
3457
3458static __inline__ __m128i __DEFAULT_FN_ATTRS
3459_mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
3460 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3461 (__v2di) __W,
3462 (__mmask8) __U);
3463}
3464
3465static __inline__ __m128i __DEFAULT_FN_ATTRS
3466_mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) {
3467 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
3468 (__v2di)
3469 _mm_setzero_si128 (),
3470 (__mmask8) __U);
3471}
3472
3473static __inline__ __m256i __DEFAULT_FN_ATTRS
3474_mm256_abs_epi64 (__m256i __A) {
3475 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3476 (__v4di)
3477 _mm256_setzero_si256 (),
3478 (__mmask8) -1);
3479}
3480
3481static __inline__ __m256i __DEFAULT_FN_ATTRS
3482_mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
3483 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3484 (__v4di) __W,
3485 (__mmask8) __U);
3486}
3487
3488static __inline__ __m256i __DEFAULT_FN_ATTRS
3489_mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) {
3490 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
3491 (__v4di)
3492 _mm256_setzero_si256 (),
3493 (__mmask8) __U);
3494}
3495
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003496static __inline__ __m128i __DEFAULT_FN_ATTRS
3497_mm_maskz_max_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
3498 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
3499 (__v4si) __B,
3500 (__v4si)
3501 _mm_setzero_si128 (),
3502 __M);
3503}
3504
3505static __inline__ __m128i __DEFAULT_FN_ATTRS
3506_mm_mask_max_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
3507 __m128i __B) {
3508 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
3509 (__v4si) __B,
3510 (__v4si) __W, __M);
3511}
3512
3513static __inline__ __m256i __DEFAULT_FN_ATTRS
3514_mm256_maskz_max_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
3515 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
3516 (__v8si) __B,
3517 (__v8si)
3518 _mm256_setzero_si256 (),
3519 __M);
3520}
3521
3522static __inline__ __m256i __DEFAULT_FN_ATTRS
3523_mm256_mask_max_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
3524 __m256i __B) {
3525 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
3526 (__v8si) __B,
3527 (__v8si) __W, __M);
3528}
3529
3530static __inline__ __m128i __DEFAULT_FN_ATTRS
3531_mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3532 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3533 (__v2di) __B,
3534 (__v2di)
3535 _mm_setzero_si128 (),
3536 __M);
3537}
3538
3539static __inline__ __m128i __DEFAULT_FN_ATTRS
3540_mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3541 __m128i __B) {
3542 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3543 (__v2di) __B,
3544 (__v2di) __W, __M);
3545}
3546
3547static __inline__ __m128i __DEFAULT_FN_ATTRS
3548_mm_max_epi64 (__m128i __A, __m128i __B) {
3549 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
3550 (__v2di) __B,
3551 (__v2di)
3552 _mm_setzero_si128 (),
3553 (__mmask8) -1);
3554}
3555
3556static __inline__ __m256i __DEFAULT_FN_ATTRS
3557_mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3558 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3559 (__v4di) __B,
3560 (__v4di)
3561 _mm256_setzero_si256 (),
3562 __M);
3563}
3564
3565static __inline__ __m256i __DEFAULT_FN_ATTRS
3566_mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3567 __m256i __B) {
3568 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3569 (__v4di) __B,
3570 (__v4di) __W, __M);
3571}
3572
3573static __inline__ __m256i __DEFAULT_FN_ATTRS
3574_mm256_max_epi64 (__m256i __A, __m256i __B) {
3575 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
3576 (__v4di) __B,
3577 (__v4di)
3578 _mm256_setzero_si256 (),
3579 (__mmask8) -1);
3580}
3581
3582static __inline__ __m128i __DEFAULT_FN_ATTRS
3583_mm_maskz_max_epu32 (__mmask8 __M, __m128i __A, __m128i __B) {
3584 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
3585 (__v4si) __B,
3586 (__v4si)
3587 _mm_setzero_si128 (),
3588 __M);
3589}
3590
3591static __inline__ __m128i __DEFAULT_FN_ATTRS
3592_mm_mask_max_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
3593 __m128i __B) {
3594 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
3595 (__v4si) __B,
3596 (__v4si) __W, __M);
3597}
3598
3599static __inline__ __m256i __DEFAULT_FN_ATTRS
3600_mm256_maskz_max_epu32 (__mmask8 __M, __m256i __A, __m256i __B) {
3601 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
3602 (__v8si) __B,
3603 (__v8si)
3604 _mm256_setzero_si256 (),
3605 __M);
3606}
3607
3608static __inline__ __m256i __DEFAULT_FN_ATTRS
3609_mm256_mask_max_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
3610 __m256i __B) {
3611 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
3612 (__v8si) __B,
3613 (__v8si) __W, __M);
3614}
3615
3616static __inline__ __m128i __DEFAULT_FN_ATTRS
3617_mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3618 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3619 (__v2di) __B,
3620 (__v2di)
3621 _mm_setzero_si128 (),
3622 __M);
3623}
3624
3625static __inline__ __m128i __DEFAULT_FN_ATTRS
3626_mm_max_epu64 (__m128i __A, __m128i __B) {
3627 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3628 (__v2di) __B,
3629 (__v2di)
3630 _mm_setzero_si128 (),
3631 (__mmask8) -1);
3632}
3633
3634static __inline__ __m128i __DEFAULT_FN_ATTRS
3635_mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3636 __m128i __B) {
3637 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
3638 (__v2di) __B,
3639 (__v2di) __W, __M);
3640}
3641
3642static __inline__ __m256i __DEFAULT_FN_ATTRS
3643_mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3644 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3645 (__v4di) __B,
3646 (__v4di)
3647 _mm256_setzero_si256 (),
3648 __M);
3649}
3650
3651static __inline__ __m256i __DEFAULT_FN_ATTRS
3652_mm256_max_epu64 (__m256i __A, __m256i __B) {
3653 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3654 (__v4di) __B,
3655 (__v4di)
3656 _mm256_setzero_si256 (),
3657 (__mmask8) -1);
3658}
3659
3660static __inline__ __m256i __DEFAULT_FN_ATTRS
3661_mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3662 __m256i __B) {
3663 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
3664 (__v4di) __B,
3665 (__v4di) __W, __M);
3666}
3667
3668static __inline__ __m128i __DEFAULT_FN_ATTRS
3669_mm_maskz_min_epi32 (__mmask8 __M, __m128i __A, __m128i __B) {
3670 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
3671 (__v4si) __B,
3672 (__v4si)
3673 _mm_setzero_si128 (),
3674 __M);
3675}
3676
3677static __inline__ __m128i __DEFAULT_FN_ATTRS
3678_mm_mask_min_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
3679 __m128i __B) {
3680 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
3681 (__v4si) __B,
3682 (__v4si) __W, __M);
3683}
3684
3685static __inline__ __m256i __DEFAULT_FN_ATTRS
3686_mm256_maskz_min_epi32 (__mmask8 __M, __m256i __A, __m256i __B) {
3687 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
3688 (__v8si) __B,
3689 (__v8si)
3690 _mm256_setzero_si256 (),
3691 __M);
3692}
3693
3694static __inline__ __m256i __DEFAULT_FN_ATTRS
3695_mm256_mask_min_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
3696 __m256i __B) {
3697 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
3698 (__v8si) __B,
3699 (__v8si) __W, __M);
3700}
3701
3702static __inline__ __m128i __DEFAULT_FN_ATTRS
3703_mm_min_epi64 (__m128i __A, __m128i __B) {
3704 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3705 (__v2di) __B,
3706 (__v2di)
3707 _mm_setzero_si128 (),
3708 (__mmask8) -1);
3709}
3710
3711static __inline__ __m128i __DEFAULT_FN_ATTRS
3712_mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
3713 __m128i __B) {
3714 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3715 (__v2di) __B,
3716 (__v2di) __W, __M);
3717}
3718
3719static __inline__ __m128i __DEFAULT_FN_ATTRS
3720_mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
3721 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
3722 (__v2di) __B,
3723 (__v2di)
3724 _mm_setzero_si128 (),
3725 __M);
3726}
3727
3728static __inline__ __m256i __DEFAULT_FN_ATTRS
3729_mm256_min_epi64 (__m256i __A, __m256i __B) {
3730 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3731 (__v4di) __B,
3732 (__v4di)
3733 _mm256_setzero_si256 (),
3734 (__mmask8) -1);
3735}
3736
3737static __inline__ __m256i __DEFAULT_FN_ATTRS
3738_mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
3739 __m256i __B) {
3740 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3741 (__v4di) __B,
3742 (__v4di) __W, __M);
3743}
3744
3745static __inline__ __m256i __DEFAULT_FN_ATTRS
3746_mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
3747 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
3748 (__v4di) __B,
3749 (__v4di)
3750 _mm256_setzero_si256 (),
3751 __M);
3752}
3753
3754static __inline__ __m128i __DEFAULT_FN_ATTRS
3755_mm_maskz_min_epu32 (__mmask8 __M, __m128i __A, __m128i __B) {
3756 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
3757 (__v4si) __B,
3758 (__v4si)
3759 _mm_setzero_si128 (),
3760 __M);
3761}
3762
3763static __inline__ __m128i __DEFAULT_FN_ATTRS
3764_mm_mask_min_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
3765 __m128i __B) {
3766 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
3767 (__v4si) __B,
3768 (__v4si) __W, __M);
3769}
3770
3771static __inline__ __m256i __DEFAULT_FN_ATTRS
3772_mm256_maskz_min_epu32 (__mmask8 __M, __m256i __A, __m256i __B) {
3773 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
3774 (__v8si) __B,
3775 (__v8si)
3776 _mm256_setzero_si256 (),
3777 __M);
3778}
3779
3780static __inline__ __m256i __DEFAULT_FN_ATTRS
3781_mm256_mask_min_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
3782 __m256i __B) {
3783 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
3784 (__v8si) __B,
3785 (__v8si) __W, __M);
3786}
3787
3788static __inline__ __m128i __DEFAULT_FN_ATTRS
3789_mm_min_epu64 (__m128i __A, __m128i __B) {
3790 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3791 (__v2di) __B,
3792 (__v2di)
3793 _mm_setzero_si128 (),
3794 (__mmask8) -1);
3795}
3796
3797static __inline__ __m128i __DEFAULT_FN_ATTRS
3798_mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
3799 __m128i __B) {
3800 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3801 (__v2di) __B,
3802 (__v2di) __W, __M);
3803}
3804
3805static __inline__ __m128i __DEFAULT_FN_ATTRS
3806_mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
3807 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
3808 (__v2di) __B,
3809 (__v2di)
3810 _mm_setzero_si128 (),
3811 __M);
3812}
3813
3814static __inline__ __m256i __DEFAULT_FN_ATTRS
3815_mm256_min_epu64 (__m256i __A, __m256i __B) {
3816 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3817 (__v4di) __B,
3818 (__v4di)
3819 _mm256_setzero_si256 (),
3820 (__mmask8) -1);
3821}
3822
3823static __inline__ __m256i __DEFAULT_FN_ATTRS
3824_mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
3825 __m256i __B) {
3826 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3827 (__v4di) __B,
3828 (__v4di) __W, __M);
3829}
3830
3831static __inline__ __m256i __DEFAULT_FN_ATTRS
3832_mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
3833 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
3834 (__v4di) __B,
3835 (__v4di)
3836 _mm256_setzero_si256 (),
3837 __M);
3838}
3839
Craig Topperd2661882016-05-17 04:41:48 +00003840#define _mm_roundscale_pd(A, imm) __extension__ ({ \
3841 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3842 (int)(imm), \
3843 (__v2df)_mm_setzero_pd(), \
3844 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003845
3846
Craig Topperd2661882016-05-17 04:41:48 +00003847#define _mm_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3848 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3849 (int)(imm), \
3850 (__v2df)(__m128d)(W), \
3851 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003852
3853
Craig Topperd2661882016-05-17 04:41:48 +00003854#define _mm_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3855 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
3856 (int)(imm), \
3857 (__v2df)_mm_setzero_pd(), \
3858 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003859
3860
Craig Topperd2661882016-05-17 04:41:48 +00003861#define _mm256_roundscale_pd(A, imm) __extension__ ({ \
3862 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3863 (int)(imm), \
3864 (__v4df)_mm256_setzero_pd(), \
3865 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003866
3867
Craig Topperd2661882016-05-17 04:41:48 +00003868#define _mm256_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \
3869 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3870 (int)(imm), \
3871 (__v4df)(__m256d)(W), \
3872 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003873
3874
Craig Topperd2661882016-05-17 04:41:48 +00003875#define _mm256_maskz_roundscale_pd(U, A, imm) __extension__ ({ \
3876 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
3877 (int)(imm), \
3878 (__v4df)_mm256_setzero_pd(), \
3879 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003880
Craig Topperd2661882016-05-17 04:41:48 +00003881#define _mm_roundscale_ps(A, imm) __extension__ ({ \
3882 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3883 (__v4sf)_mm_setzero_ps(), \
3884 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003885
3886
Craig Topperd2661882016-05-17 04:41:48 +00003887#define _mm_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3888 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3889 (__v4sf)(__m128)(W), \
3890 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003891
3892
Craig Topperd2661882016-05-17 04:41:48 +00003893#define _mm_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3894 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
3895 (__v4sf)_mm_setzero_ps(), \
3896 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003897
Craig Topperd2661882016-05-17 04:41:48 +00003898#define _mm256_roundscale_ps(A, imm) __extension__ ({ \
3899 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3900 (__v8sf)_mm256_setzero_ps(), \
3901 (__mmask8)-1); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003902
Craig Topperd2661882016-05-17 04:41:48 +00003903#define _mm256_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \
3904 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3905 (__v8sf)(__m256)(W), \
3906 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003907
3908
Craig Topperd2661882016-05-17 04:41:48 +00003909#define _mm256_maskz_roundscale_ps(U, A, imm) __extension__ ({ \
3910 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
3911 (__v8sf)_mm256_setzero_ps(), \
3912 (__mmask8)(U)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00003913
3914static __inline__ __m128d __DEFAULT_FN_ATTRS
3915_mm_scalef_pd (__m128d __A, __m128d __B) {
3916 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3917 (__v2df) __B,
3918 (__v2df)
3919 _mm_setzero_pd (),
3920 (__mmask8) -1);
3921}
3922
3923static __inline__ __m128d __DEFAULT_FN_ATTRS
3924_mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A,
3925 __m128d __B) {
3926 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3927 (__v2df) __B,
3928 (__v2df) __W,
3929 (__mmask8) __U);
3930}
3931
3932static __inline__ __m128d __DEFAULT_FN_ATTRS
3933_mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) {
3934 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
3935 (__v2df) __B,
3936 (__v2df)
3937 _mm_setzero_pd (),
3938 (__mmask8) __U);
3939}
3940
3941static __inline__ __m256d __DEFAULT_FN_ATTRS
3942_mm256_scalef_pd (__m256d __A, __m256d __B) {
3943 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3944 (__v4df) __B,
3945 (__v4df)
3946 _mm256_setzero_pd (),
3947 (__mmask8) -1);
3948}
3949
3950static __inline__ __m256d __DEFAULT_FN_ATTRS
3951_mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A,
3952 __m256d __B) {
3953 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3954 (__v4df) __B,
3955 (__v4df) __W,
3956 (__mmask8) __U);
3957}
3958
3959static __inline__ __m256d __DEFAULT_FN_ATTRS
3960_mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) {
3961 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
3962 (__v4df) __B,
3963 (__v4df)
3964 _mm256_setzero_pd (),
3965 (__mmask8) __U);
3966}
3967
3968static __inline__ __m128 __DEFAULT_FN_ATTRS
3969_mm_scalef_ps (__m128 __A, __m128 __B) {
3970 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3971 (__v4sf) __B,
3972 (__v4sf)
3973 _mm_setzero_ps (),
3974 (__mmask8) -1);
3975}
3976
3977static __inline__ __m128 __DEFAULT_FN_ATTRS
3978_mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
3979 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3980 (__v4sf) __B,
3981 (__v4sf) __W,
3982 (__mmask8) __U);
3983}
3984
3985static __inline__ __m128 __DEFAULT_FN_ATTRS
3986_mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) {
3987 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
3988 (__v4sf) __B,
3989 (__v4sf)
3990 _mm_setzero_ps (),
3991 (__mmask8) __U);
3992}
3993
3994static __inline__ __m256 __DEFAULT_FN_ATTRS
3995_mm256_scalef_ps (__m256 __A, __m256 __B) {
3996 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
3997 (__v8sf) __B,
3998 (__v8sf)
3999 _mm256_setzero_ps (),
4000 (__mmask8) -1);
4001}
4002
4003static __inline__ __m256 __DEFAULT_FN_ATTRS
4004_mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A,
4005 __m256 __B) {
4006 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
4007 (__v8sf) __B,
4008 (__v8sf) __W,
4009 (__mmask8) __U);
4010}
4011
4012static __inline__ __m256 __DEFAULT_FN_ATTRS
4013_mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
4014 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
4015 (__v8sf) __B,
4016 (__v8sf)
4017 _mm256_setzero_ps (),
4018 (__mmask8) __U);
4019}
4020
Craig Topperd2661882016-05-17 04:41:48 +00004021#define _mm_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
4022 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)-1, \
4023 (__v2di)(__m128i)(index), \
4024 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004025
Craig Topperd2661882016-05-17 04:41:48 +00004026#define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
4027 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)(mask), \
4028 (__v2di)(__m128i)(index), \
4029 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004030
Craig Topperd2661882016-05-17 04:41:48 +00004031#define _mm_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
4032 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)-1, \
4033 (__v2di)(__m128i)(index), \
4034 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004035
Craig Topperd2661882016-05-17 04:41:48 +00004036#define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
4037 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)(mask), \
4038 (__v2di)(__m128i)(index), \
4039 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004040
Craig Topperd2661882016-05-17 04:41:48 +00004041#define _mm256_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \
4042 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)-1, \
4043 (__v4di)(__m256i)(index), \
4044 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004045
Craig Topperd2661882016-05-17 04:41:48 +00004046#define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
4047 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)(mask), \
4048 (__v4di)(__m256i)(index), \
4049 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004050
Craig Topperd2661882016-05-17 04:41:48 +00004051#define _mm256_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \
4052 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)-1, \
4053 (__v4di)(__m256i)(index), \
4054 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004055
Craig Topperd2661882016-05-17 04:41:48 +00004056#define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
4057 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)(mask), \
4058 (__v4di)(__m256i)(index), \
4059 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004060
Craig Topperd2661882016-05-17 04:41:48 +00004061#define _mm_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
4062 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)-1, \
4063 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
4064 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004065
Craig Topperd2661882016-05-17 04:41:48 +00004066#define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4067 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)(mask), \
4068 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
4069 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004070
Craig Topperd2661882016-05-17 04:41:48 +00004071#define _mm_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4072 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)-1, \
4073 (__v2di)(__m128i)(index), \
4074 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004075
Craig Topperd2661882016-05-17 04:41:48 +00004076#define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4077 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)(mask), \
4078 (__v2di)(__m128i)(index), \
4079 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004080
Craig Topperd2661882016-05-17 04:41:48 +00004081#define _mm256_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \
4082 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)-1, \
4083 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
4084 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004085
Craig Topperd2661882016-05-17 04:41:48 +00004086#define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4087 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)(mask), \
4088 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
4089 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004090
Craig Topperd2661882016-05-17 04:41:48 +00004091#define _mm256_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4092 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)-1, \
4093 (__v4di)(__m256i)(index), \
4094 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004095
Craig Topperd2661882016-05-17 04:41:48 +00004096#define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4097 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)(mask), \
4098 (__v4di)(__m256i)(index), \
4099 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004100
Craig Topperd2661882016-05-17 04:41:48 +00004101#define _mm_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
4102 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)-1, \
4103 (__v4si)(__m128i)(index), \
4104 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004105
Craig Topperd2661882016-05-17 04:41:48 +00004106#define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
4107 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)(mask), \
4108 (__v4si)(__m128i)(index), \
4109 (__v2df)(__m128d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004110
Craig Topperd2661882016-05-17 04:41:48 +00004111#define _mm_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
4112 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)-1, \
4113 (__v4si)(__m128i)(index), \
4114 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004115
Craig Topperd2661882016-05-17 04:41:48 +00004116#define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
4117 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)(mask), \
4118 (__v4si)(__m128i)(index), \
4119 (__v2di)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004120
Craig Topperd2661882016-05-17 04:41:48 +00004121#define _mm256_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \
4122 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)-1, \
4123 (__v4si)(__m128i)(index), \
4124 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004125
Craig Topperd2661882016-05-17 04:41:48 +00004126#define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \
4127 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)(mask), \
4128 (__v4si)(__m128i)(index), \
4129 (__v4df)(__m256d)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004130
Craig Topperd2661882016-05-17 04:41:48 +00004131#define _mm256_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \
4132 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)-1, \
4133 (__v4si)(__m128i)(index), \
4134 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004135
Craig Topperd2661882016-05-17 04:41:48 +00004136#define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \
4137 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)(mask), \
4138 (__v4si)(__m128i)(index), \
4139 (__v4di)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004140
Craig Topperd2661882016-05-17 04:41:48 +00004141#define _mm_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
4142 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)-1, \
4143 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
4144 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004145
Craig Topperd2661882016-05-17 04:41:48 +00004146#define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4147 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)(mask), \
4148 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
4149 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004150
Craig Topperd2661882016-05-17 04:41:48 +00004151#define _mm_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4152 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)-1, \
4153 (__v4si)(__m128i)(index), \
4154 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004155
Craig Topperd2661882016-05-17 04:41:48 +00004156#define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4157 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)(mask), \
4158 (__v4si)(__m128i)(index), \
4159 (__v4si)(__m128i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004160
Craig Topperd2661882016-05-17 04:41:48 +00004161#define _mm256_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \
4162 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)-1, \
4163 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
4164 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004165
Craig Topperd2661882016-05-17 04:41:48 +00004166#define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \
4167 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)(mask), \
4168 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
4169 (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004170
Craig Topperd2661882016-05-17 04:41:48 +00004171#define _mm256_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \
4172 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)-1, \
4173 (__v8si)(__m256i)(index), \
4174 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004175
Craig Topperd2661882016-05-17 04:41:48 +00004176#define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \
4177 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)(mask), \
4178 (__v8si)(__m256i)(index), \
4179 (__v8si)(__m256i)(v1), (int)(scale)); })
Asaf Badouhb7cf71b2015-07-28 11:14:09 +00004180
Asaf Badouh93aa4c82015-07-28 12:04:40 +00004181static __inline__ __m128d __DEFAULT_FN_ATTRS
4182_mm_mask_sqrt_pd (__m128d __W, __mmask8 __U, __m128d __A) {
4183 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
4184 (__v2df) __W,
4185 (__mmask8) __U);
4186}
4187
4188static __inline__ __m128d __DEFAULT_FN_ATTRS
4189_mm_maskz_sqrt_pd (__mmask8 __U, __m128d __A) {
4190 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
4191 (__v2df)
4192 _mm_setzero_pd (),
4193 (__mmask8) __U);
4194}
4195
4196static __inline__ __m256d __DEFAULT_FN_ATTRS
4197_mm256_mask_sqrt_pd (__m256d __W, __mmask8 __U, __m256d __A) {
4198 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
4199 (__v4df) __W,
4200 (__mmask8) __U);
4201}
4202
4203static __inline__ __m256d __DEFAULT_FN_ATTRS
4204_mm256_maskz_sqrt_pd (__mmask8 __U, __m256d __A) {
4205 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
4206 (__v4df)
4207 _mm256_setzero_pd (),
4208 (__mmask8) __U);
4209}
4210
4211static __inline__ __m128 __DEFAULT_FN_ATTRS
4212_mm_mask_sqrt_ps (__m128 __W, __mmask8 __U, __m128 __A) {
4213 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
4214 (__v4sf) __W,
4215 (__mmask8) __U);
4216}
4217
4218static __inline__ __m128 __DEFAULT_FN_ATTRS
4219_mm_maskz_sqrt_ps (__mmask8 __U, __m128 __A) {
4220 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
4221 (__v4sf)
4222 _mm_setzero_ps (),
4223 (__mmask8) __U);
4224}
4225
4226static __inline__ __m256 __DEFAULT_FN_ATTRS
4227_mm256_mask_sqrt_ps (__m256 __W, __mmask8 __U, __m256 __A) {
4228 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4229 (__v8sf) __W,
4230 (__mmask8) __U);
4231}
4232
4233static __inline__ __m256 __DEFAULT_FN_ATTRS
4234_mm256_maskz_sqrt_ps (__mmask8 __U, __m256 __A) {
4235 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
4236 (__v8sf)
4237 _mm256_setzero_ps (),
4238 (__mmask8) __U);
4239}
4240
4241static __inline__ __m128d __DEFAULT_FN_ATTRS
4242_mm_mask_sub_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
4243 return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A,
4244 (__v2df) __B,
4245 (__v2df) __W,
4246 (__mmask8) __U);
4247}
4248
4249static __inline__ __m128d __DEFAULT_FN_ATTRS
4250_mm_maskz_sub_pd (__mmask8 __U, __m128d __A, __m128d __B) {
4251 return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A,
4252 (__v2df) __B,
4253 (__v2df)
4254 _mm_setzero_pd (),
4255 (__mmask8) __U);
4256}
4257
4258static __inline__ __m256d __DEFAULT_FN_ATTRS
4259_mm256_mask_sub_pd (__m256d __W, __mmask8 __U, __m256d __A,
4260 __m256d __B) {
4261 return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A,
4262 (__v4df) __B,
4263 (__v4df) __W,
4264 (__mmask8) __U);
4265}
4266
4267static __inline__ __m256d __DEFAULT_FN_ATTRS
4268_mm256_maskz_sub_pd (__mmask8 __U, __m256d __A, __m256d __B) {
4269 return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A,
4270 (__v4df) __B,
4271 (__v4df)
4272 _mm256_setzero_pd (),
4273 (__mmask8) __U);
4274}
4275
4276static __inline__ __m128 __DEFAULT_FN_ATTRS
4277_mm_mask_sub_ps (__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) {
4278 return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A,
4279 (__v4sf) __B,
4280 (__v4sf) __W,
4281 (__mmask8) __U);
4282}
4283
4284static __inline__ __m128 __DEFAULT_FN_ATTRS
4285_mm_maskz_sub_ps (__mmask16 __U, __m128 __A, __m128 __B) {
4286 return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A,
4287 (__v4sf) __B,
4288 (__v4sf)
4289 _mm_setzero_ps (),
4290 (__mmask8) __U);
4291}
4292
4293static __inline__ __m256 __DEFAULT_FN_ATTRS
4294_mm256_mask_sub_ps (__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) {
4295 return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A,
4296 (__v8sf) __B,
4297 (__v8sf) __W,
4298 (__mmask8) __U);
4299}
4300
4301static __inline__ __m256 __DEFAULT_FN_ATTRS
4302_mm256_maskz_sub_ps (__mmask16 __U, __m256 __A, __m256 __B) {
4303 return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A,
4304 (__v8sf) __B,
4305 (__v8sf)
4306 _mm256_setzero_ps (),
4307 (__mmask8) __U);
4308}
4309
4310static __inline__ __m128i __DEFAULT_FN_ATTRS
4311_mm_mask2_permutex2var_epi32 (__m128i __A, __m128i __I, __mmask8 __U,
4312 __m128i __B) {
4313 return (__m128i) __builtin_ia32_vpermi2vard128_mask ((__v4si) __A,
4314 (__v4si) __I
4315 /* idx */ ,
4316 (__v4si) __B,
4317 (__mmask8) __U);
4318}
4319
4320static __inline__ __m256i __DEFAULT_FN_ATTRS
4321_mm256_mask2_permutex2var_epi32 (__m256i __A, __m256i __I,
4322 __mmask8 __U, __m256i __B) {
4323 return (__m256i) __builtin_ia32_vpermi2vard256_mask ((__v8si) __A,
4324 (__v8si) __I
4325 /* idx */ ,
4326 (__v8si) __B,
4327 (__mmask8) __U);
4328}
4329
4330static __inline__ __m128d __DEFAULT_FN_ATTRS
4331_mm_mask2_permutex2var_pd (__m128d __A, __m128i __I, __mmask8 __U,
4332 __m128d __B) {
4333 return (__m128d) __builtin_ia32_vpermi2varpd128_mask ((__v2df) __A,
4334 (__v2di) __I
4335 /* idx */ ,
4336 (__v2df) __B,
4337 (__mmask8)
4338 __U);
4339}
4340
4341static __inline__ __m256d __DEFAULT_FN_ATTRS
4342_mm256_mask2_permutex2var_pd (__m256d __A, __m256i __I, __mmask8 __U,
4343 __m256d __B) {
4344 return (__m256d) __builtin_ia32_vpermi2varpd256_mask ((__v4df) __A,
4345 (__v4di) __I
4346 /* idx */ ,
4347 (__v4df) __B,
4348 (__mmask8)
4349 __U);
4350}
4351
4352static __inline__ __m128 __DEFAULT_FN_ATTRS
4353_mm_mask2_permutex2var_ps (__m128 __A, __m128i __I, __mmask8 __U,
4354 __m128 __B) {
4355 return (__m128) __builtin_ia32_vpermi2varps128_mask ((__v4sf) __A,
4356 (__v4si) __I
4357 /* idx */ ,
4358 (__v4sf) __B,
4359 (__mmask8) __U);
4360}
4361
4362static __inline__ __m256 __DEFAULT_FN_ATTRS
4363_mm256_mask2_permutex2var_ps (__m256 __A, __m256i __I, __mmask8 __U,
4364 __m256 __B) {
4365 return (__m256) __builtin_ia32_vpermi2varps256_mask ((__v8sf) __A,
4366 (__v8si) __I
4367 /* idx */ ,
4368 (__v8sf) __B,
4369 (__mmask8) __U);
4370}
4371
4372static __inline__ __m128i __DEFAULT_FN_ATTRS
4373_mm_mask2_permutex2var_epi64 (__m128i __A, __m128i __I, __mmask8 __U,
4374 __m128i __B) {
4375 return (__m128i) __builtin_ia32_vpermi2varq128_mask ((__v2di) __A,
4376 (__v2di) __I
4377 /* idx */ ,
4378 (__v2di) __B,
4379 (__mmask8) __U);
4380}
4381
4382static __inline__ __m256i __DEFAULT_FN_ATTRS
4383_mm256_mask2_permutex2var_epi64 (__m256i __A, __m256i __I,
4384 __mmask8 __U, __m256i __B) {
4385 return (__m256i) __builtin_ia32_vpermi2varq256_mask ((__v4di) __A,
4386 (__v4di) __I
4387 /* idx */ ,
4388 (__v4di) __B,
4389 (__mmask8) __U);
4390}
4391
4392static __inline__ __m128i __DEFAULT_FN_ATTRS
4393_mm_permutex2var_epi32 (__m128i __A, __m128i __I, __m128i __B) {
4394 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4395 /* idx */ ,
4396 (__v4si) __A,
4397 (__v4si) __B,
4398 (__mmask8) -1);
4399}
4400
4401static __inline__ __m128i __DEFAULT_FN_ATTRS
4402_mm_mask_permutex2var_epi32 (__m128i __A, __mmask8 __U, __m128i __I,
4403 __m128i __B) {
4404 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
4405 /* idx */ ,
4406 (__v4si) __A,
4407 (__v4si) __B,
4408 (__mmask8) __U);
4409}
4410
4411static __inline__ __m128i __DEFAULT_FN_ATTRS
4412_mm_maskz_permutex2var_epi32 (__mmask8 __U, __m128i __A, __m128i __I,
4413 __m128i __B) {
4414 return (__m128i) __builtin_ia32_vpermt2vard128_maskz ((__v4si) __I
4415 /* idx */ ,
4416 (__v4si) __A,
4417 (__v4si) __B,
4418 (__mmask8)
4419 __U);
4420}
4421
4422static __inline__ __m256i __DEFAULT_FN_ATTRS
4423_mm256_permutex2var_epi32 (__m256i __A, __m256i __I, __m256i __B) {
4424 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4425 /* idx */ ,
4426 (__v8si) __A,
4427 (__v8si) __B,
4428 (__mmask8) -1);
4429}
4430
4431static __inline__ __m256i __DEFAULT_FN_ATTRS
4432_mm256_mask_permutex2var_epi32 (__m256i __A, __mmask8 __U, __m256i __I,
4433 __m256i __B) {
4434 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
4435 /* idx */ ,
4436 (__v8si) __A,
4437 (__v8si) __B,
4438 (__mmask8) __U);
4439}
4440
4441static __inline__ __m256i __DEFAULT_FN_ATTRS
4442_mm256_maskz_permutex2var_epi32 (__mmask8 __U, __m256i __A,
4443 __m256i __I, __m256i __B) {
4444 return (__m256i) __builtin_ia32_vpermt2vard256_maskz ((__v8si) __I
4445 /* idx */ ,
4446 (__v8si) __A,
4447 (__v8si) __B,
4448 (__mmask8)
4449 __U);
4450}
4451
4452static __inline__ __m128d __DEFAULT_FN_ATTRS
4453_mm_permutex2var_pd (__m128d __A, __m128i __I, __m128d __B) {
4454 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4455 /* idx */ ,
4456 (__v2df) __A,
4457 (__v2df) __B,
4458 (__mmask8) -
4459 1);
4460}
4461
4462static __inline__ __m128d __DEFAULT_FN_ATTRS
4463_mm_mask_permutex2var_pd (__m128d __A, __mmask8 __U, __m128i __I,
4464 __m128d __B) {
4465 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
4466 /* idx */ ,
4467 (__v2df) __A,
4468 (__v2df) __B,
4469 (__mmask8)
4470 __U);
4471}
4472
4473static __inline__ __m128d __DEFAULT_FN_ATTRS
4474_mm_maskz_permutex2var_pd (__mmask8 __U, __m128d __A, __m128i __I,
4475 __m128d __B) {
4476 return (__m128d) __builtin_ia32_vpermt2varpd128_maskz ((__v2di) __I
4477 /* idx */ ,
4478 (__v2df) __A,
4479 (__v2df) __B,
4480 (__mmask8)
4481 __U);
4482}
4483
4484static __inline__ __m256d __DEFAULT_FN_ATTRS
4485_mm256_permutex2var_pd (__m256d __A, __m256i __I, __m256d __B) {
4486 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4487 /* idx */ ,
4488 (__v4df) __A,
4489 (__v4df) __B,
4490 (__mmask8) -
4491 1);
4492}
4493
4494static __inline__ __m256d __DEFAULT_FN_ATTRS
4495_mm256_mask_permutex2var_pd (__m256d __A, __mmask8 __U, __m256i __I,
4496 __m256d __B) {
4497 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
4498 /* idx */ ,
4499 (__v4df) __A,
4500 (__v4df) __B,
4501 (__mmask8)
4502 __U);
4503}
4504
4505static __inline__ __m256d __DEFAULT_FN_ATTRS
4506_mm256_maskz_permutex2var_pd (__mmask8 __U, __m256d __A, __m256i __I,
4507 __m256d __B) {
4508 return (__m256d) __builtin_ia32_vpermt2varpd256_maskz ((__v4di) __I
4509 /* idx */ ,
4510 (__v4df) __A,
4511 (__v4df) __B,
4512 (__mmask8)
4513 __U);
4514}
4515
4516static __inline__ __m128 __DEFAULT_FN_ATTRS
4517_mm_permutex2var_ps (__m128 __A, __m128i __I, __m128 __B) {
4518 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4519 /* idx */ ,
4520 (__v4sf) __A,
4521 (__v4sf) __B,
4522 (__mmask8) -1);
4523}
4524
4525static __inline__ __m128 __DEFAULT_FN_ATTRS
4526_mm_mask_permutex2var_ps (__m128 __A, __mmask8 __U, __m128i __I,
4527 __m128 __B) {
4528 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
4529 /* idx */ ,
4530 (__v4sf) __A,
4531 (__v4sf) __B,
4532 (__mmask8) __U);
4533}
4534
4535static __inline__ __m128 __DEFAULT_FN_ATTRS
4536_mm_maskz_permutex2var_ps (__mmask8 __U, __m128 __A, __m128i __I,
4537 __m128 __B) {
4538 return (__m128) __builtin_ia32_vpermt2varps128_maskz ((__v4si) __I
4539 /* idx */ ,
4540 (__v4sf) __A,
4541 (__v4sf) __B,
4542 (__mmask8)
4543 __U);
4544}
4545
4546static __inline__ __m256 __DEFAULT_FN_ATTRS
4547_mm256_permutex2var_ps (__m256 __A, __m256i __I, __m256 __B) {
4548 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4549 /* idx */ ,
4550 (__v8sf) __A,
4551 (__v8sf) __B,
4552 (__mmask8) -1);
4553}
4554
4555static __inline__ __m256 __DEFAULT_FN_ATTRS
4556_mm256_mask_permutex2var_ps (__m256 __A, __mmask8 __U, __m256i __I,
4557 __m256 __B) {
4558 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
4559 /* idx */ ,
4560 (__v8sf) __A,
4561 (__v8sf) __B,
4562 (__mmask8) __U);
4563}
4564
4565static __inline__ __m256 __DEFAULT_FN_ATTRS
4566_mm256_maskz_permutex2var_ps (__mmask8 __U, __m256 __A, __m256i __I,
4567 __m256 __B) {
4568 return (__m256) __builtin_ia32_vpermt2varps256_maskz ((__v8si) __I
4569 /* idx */ ,
4570 (__v8sf) __A,
4571 (__v8sf) __B,
4572 (__mmask8)
4573 __U);
4574}
4575
4576static __inline__ __m128i __DEFAULT_FN_ATTRS
4577_mm_permutex2var_epi64 (__m128i __A, __m128i __I, __m128i __B) {
4578 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4579 /* idx */ ,
4580 (__v2di) __A,
4581 (__v2di) __B,
4582 (__mmask8) -1);
4583}
4584
4585static __inline__ __m128i __DEFAULT_FN_ATTRS
4586_mm_mask_permutex2var_epi64 (__m128i __A, __mmask8 __U, __m128i __I,
4587 __m128i __B) {
4588 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
4589 /* idx */ ,
4590 (__v2di) __A,
4591 (__v2di) __B,
4592 (__mmask8) __U);
4593}
4594
4595static __inline__ __m128i __DEFAULT_FN_ATTRS
4596_mm_maskz_permutex2var_epi64 (__mmask8 __U, __m128i __A, __m128i __I,
4597 __m128i __B) {
4598 return (__m128i) __builtin_ia32_vpermt2varq128_maskz ((__v2di) __I
4599 /* idx */ ,
4600 (__v2di) __A,
4601 (__v2di) __B,
4602 (__mmask8)
4603 __U);
4604}
4605
4606
4607static __inline__ __m256i __DEFAULT_FN_ATTRS
4608_mm256_permutex2var_epi64 (__m256i __A, __m256i __I, __m256i __B) {
4609 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4610 /* idx */ ,
4611 (__v4di) __A,
4612 (__v4di) __B,
4613 (__mmask8) -1);
4614}
4615
4616static __inline__ __m256i __DEFAULT_FN_ATTRS
4617_mm256_mask_permutex2var_epi64 (__m256i __A, __mmask8 __U, __m256i __I,
4618 __m256i __B) {
4619 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
4620 /* idx */ ,
4621 (__v4di) __A,
4622 (__v4di) __B,
4623 (__mmask8) __U);
4624}
4625
4626static __inline__ __m256i __DEFAULT_FN_ATTRS
4627_mm256_maskz_permutex2var_epi64 (__mmask8 __U, __m256i __A,
4628 __m256i __I, __m256i __B) {
4629 return (__m256i) __builtin_ia32_vpermt2varq256_maskz ((__v4di) __I
4630 /* idx */ ,
4631 (__v4di) __A,
4632 (__v4di) __B,
4633 (__mmask8)
4634 __U);
4635}
4636
Michael Zuckerman7cdb72f2016-02-18 09:09:34 +00004637static __inline__ __m128i __DEFAULT_FN_ATTRS
4638_mm_mask_cvtepi8_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4639{
4640 return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A,
4641 (__v4si) __W,
4642 (__mmask8) __U);
4643}
4644
4645static __inline__ __m128i __DEFAULT_FN_ATTRS
4646_mm_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4647{
4648 return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A,
4649 (__v4si)
4650 _mm_setzero_si128 (),
4651 (__mmask8) __U);
4652}
4653
4654static __inline__ __m256i __DEFAULT_FN_ATTRS
4655_mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4656{
4657 return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A,
4658 (__v8si) __W,
4659 (__mmask8) __U);
4660}
4661
4662static __inline__ __m256i __DEFAULT_FN_ATTRS
4663_mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
4664{
4665 return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A,
4666 (__v8si)
4667 _mm256_setzero_si256 (),
4668 (__mmask8) __U);
4669}
4670
4671static __inline__ __m128i __DEFAULT_FN_ATTRS
4672_mm_mask_cvtepi8_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4673{
4674 return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A,
4675 (__v2di) __W,
4676 (__mmask8) __U);
4677}
4678
4679static __inline__ __m128i __DEFAULT_FN_ATTRS
4680_mm_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
4681{
4682 return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A,
4683 (__v2di)
4684 _mm_setzero_si128 (),
4685 (__mmask8) __U);
4686}
4687
4688static __inline__ __m256i __DEFAULT_FN_ATTRS
4689_mm256_mask_cvtepi8_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4690{
4691 return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A,
4692 (__v4di) __W,
4693 (__mmask8) __U);
4694}
4695
4696static __inline__ __m256i __DEFAULT_FN_ATTRS
4697_mm256_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
4698{
4699 return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A,
4700 (__v4di)
4701 _mm256_setzero_si256 (),
4702 (__mmask8) __U);
4703}
4704
4705static __inline__ __m128i __DEFAULT_FN_ATTRS
4706_mm_mask_cvtepi32_epi64 (__m128i __W, __mmask8 __U, __m128i __X)
4707{
4708 return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X,
4709 (__v2di) __W,
4710 (__mmask8) __U);
4711}
4712
4713static __inline__ __m128i __DEFAULT_FN_ATTRS
4714_mm_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X)
4715{
4716 return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X,
4717 (__v2di)
4718 _mm_setzero_si128 (),
4719 (__mmask8) __U);
4720}
4721
4722static __inline__ __m256i __DEFAULT_FN_ATTRS
4723_mm256_mask_cvtepi32_epi64 (__m256i __W, __mmask8 __U, __m128i __X)
4724{
4725 return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X,
4726 (__v4di) __W,
4727 (__mmask8) __U);
4728}
4729
4730static __inline__ __m256i __DEFAULT_FN_ATTRS
4731_mm256_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X)
4732{
4733 return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X,
4734 (__v4di)
4735 _mm256_setzero_si256 (),
4736 (__mmask8) __U);
4737}
4738
4739static __inline__ __m128i __DEFAULT_FN_ATTRS
4740_mm_mask_cvtepi16_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4741{
4742 return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A,
4743 (__v4si) __W,
4744 (__mmask8) __U);
4745}
4746
4747static __inline__ __m128i __DEFAULT_FN_ATTRS
4748_mm_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4749{
4750 return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A,
4751 (__v4si)
4752 _mm_setzero_si128 (),
4753 (__mmask8) __U);
4754}
4755
4756static __inline__ __m256i __DEFAULT_FN_ATTRS
4757_mm256_mask_cvtepi16_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4758{
4759 return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A,
4760 (__v8si) __W,
4761 (__mmask8) __U);
4762}
4763
4764static __inline__ __m256i __DEFAULT_FN_ATTRS
4765_mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
4766{
4767 return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A,
4768 (__v8si)
4769 _mm256_setzero_si256 (),
4770 (__mmask8) __U);
4771}
4772
4773static __inline__ __m128i __DEFAULT_FN_ATTRS
4774_mm_mask_cvtepi16_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4775{
4776 return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A,
4777 (__v2di) __W,
4778 (__mmask8) __U);
4779}
4780
4781static __inline__ __m128i __DEFAULT_FN_ATTRS
4782_mm_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
4783{
4784 return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A,
4785 (__v2di)
4786 _mm_setzero_si128 (),
4787 (__mmask8) __U);
4788}
4789
4790static __inline__ __m256i __DEFAULT_FN_ATTRS
4791_mm256_mask_cvtepi16_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4792{
4793 return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A,
4794 (__v4di) __W,
4795 (__mmask8) __U);
4796}
4797
4798static __inline__ __m256i __DEFAULT_FN_ATTRS
4799_mm256_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
4800{
4801 return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A,
4802 (__v4di)
4803 _mm256_setzero_si256 (),
4804 (__mmask8) __U);
4805}
4806
4807
Michael Zuckerman7a33dce2016-02-21 14:00:11 +00004808static __inline__ __m128i __DEFAULT_FN_ATTRS
4809_mm_mask_cvtepu8_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4810{
4811 return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A,
4812 (__v4si) __W,
4813 (__mmask8) __U);
4814}
4815
4816static __inline__ __m128i __DEFAULT_FN_ATTRS
4817_mm_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A)
4818{
4819 return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A,
4820 (__v4si)
4821 _mm_setzero_si128 (),
4822 (__mmask8) __U);
4823}
4824
4825static __inline__ __m256i __DEFAULT_FN_ATTRS
4826_mm256_mask_cvtepu8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4827{
4828 return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A,
4829 (__v8si) __W,
4830 (__mmask8) __U);
4831}
4832
4833static __inline__ __m256i __DEFAULT_FN_ATTRS
4834_mm256_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A)
4835{
4836 return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A,
4837 (__v8si)
4838 _mm256_setzero_si256 (),
4839 (__mmask8) __U);
4840}
4841
4842static __inline__ __m128i __DEFAULT_FN_ATTRS
4843_mm_mask_cvtepu8_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4844{
4845 return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A,
4846 (__v2di) __W,
4847 (__mmask8) __U);
4848}
4849
4850static __inline__ __m128i __DEFAULT_FN_ATTRS
4851_mm_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
4852{
4853 return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A,
4854 (__v2di)
4855 _mm_setzero_si128 (),
4856 (__mmask8) __U);
4857}
4858
4859static __inline__ __m256i __DEFAULT_FN_ATTRS
4860_mm256_mask_cvtepu8_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4861{
4862 return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A,
4863 (__v4di) __W,
4864 (__mmask8) __U);
4865}
4866
4867static __inline__ __m256i __DEFAULT_FN_ATTRS
4868_mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
4869{
4870 return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A,
4871 (__v4di)
4872 _mm256_setzero_si256 (),
4873 (__mmask8) __U);
4874}
4875
4876static __inline__ __m128i __DEFAULT_FN_ATTRS
4877_mm_mask_cvtepu32_epi64 (__m128i __W, __mmask8 __U, __m128i __X)
4878{
4879 return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X,
4880 (__v2di) __W,
4881 (__mmask8) __U);
4882}
4883
4884static __inline__ __m128i __DEFAULT_FN_ATTRS
4885_mm_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X)
4886{
4887 return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X,
4888 (__v2di)
4889 _mm_setzero_si128 (),
4890 (__mmask8) __U);
4891}
4892
4893static __inline__ __m256i __DEFAULT_FN_ATTRS
4894_mm256_mask_cvtepu32_epi64 (__m256i __W, __mmask8 __U, __m128i __X)
4895{
4896 return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X,
4897 (__v4di) __W,
4898 (__mmask8) __U);
4899}
4900
4901static __inline__ __m256i __DEFAULT_FN_ATTRS
4902_mm256_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X)
4903{
4904 return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X,
4905 (__v4di)
4906 _mm256_setzero_si256 (),
4907 (__mmask8) __U);
4908}
4909
4910static __inline__ __m128i __DEFAULT_FN_ATTRS
4911_mm_mask_cvtepu16_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
4912{
4913 return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A,
4914 (__v4si) __W,
4915 (__mmask8) __U);
4916}
4917
4918static __inline__ __m128i __DEFAULT_FN_ATTRS
4919_mm_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A)
4920{
4921 return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A,
4922 (__v4si)
4923 _mm_setzero_si128 (),
4924 (__mmask8) __U);
4925}
4926
4927static __inline__ __m256i __DEFAULT_FN_ATTRS
4928_mm256_mask_cvtepu16_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
4929{
4930 return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A,
4931 (__v8si) __W,
4932 (__mmask8) __U);
4933}
4934
4935static __inline__ __m256i __DEFAULT_FN_ATTRS
4936_mm256_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A)
4937{
4938 return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A,
4939 (__v8si)
4940 _mm256_setzero_si256 (),
4941 (__mmask8) __U);
4942}
4943
4944static __inline__ __m128i __DEFAULT_FN_ATTRS
4945_mm_mask_cvtepu16_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
4946{
4947 return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A,
4948 (__v2di) __W,
4949 (__mmask8) __U);
4950}
4951
4952static __inline__ __m128i __DEFAULT_FN_ATTRS
4953_mm_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
4954{
4955 return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A,
4956 (__v2di)
4957 _mm_setzero_si128 (),
4958 (__mmask8) __U);
4959}
4960
4961static __inline__ __m256i __DEFAULT_FN_ATTRS
4962_mm256_mask_cvtepu16_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
4963{
4964 return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A,
4965 (__v4di) __W,
4966 (__mmask8) __U);
4967}
4968
4969static __inline__ __m256i __DEFAULT_FN_ATTRS
4970_mm256_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
4971{
4972 return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A,
4973 (__v4di)
4974 _mm256_setzero_si256 (),
4975 (__mmask8) __U);
4976}
4977
4978
Michael Zuckerman38a27272016-02-22 09:05:41 +00004979#define _mm_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004980 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4981 (__v4si)_mm_setzero_si128(), \
4982 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004983
4984#define _mm_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004985 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4986 (__v4si)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004987
4988#define _mm_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004989 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \
4990 (__v4si)_mm_setzero_si128(), \
4991 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004992
4993#define _mm256_rol_epi32(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004994 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
4995 (__v8si)_mm256_setzero_si256(), \
4996 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00004997
4998#define _mm256_mask_rol_epi32(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00004999 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
5000 (__v8si)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005001
5002#define _mm256_maskz_rol_epi32(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005003 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \
5004 (__v8si)_mm256_setzero_si256(), \
5005 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005006
Michael Zuckerman477e0a32016-02-22 09:42:57 +00005007#define _mm_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005008 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
5009 (__v2di)_mm_setzero_di(), \
5010 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005011
5012#define _mm_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005013 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
5014 (__v2di)(__m128i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005015
5016#define _mm_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005017 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \
5018 (__v2di)_mm_setzero_di(), \
5019 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005020
5021#define _mm256_rol_epi64(a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005022 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
5023 (__v4di)_mm256_setzero_si256(), \
5024 (__mmask8)-1); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005025
5026#define _mm256_mask_rol_epi64(w, u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005027 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
5028 (__v4di)(__m256i)(w), (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005029
5030#define _mm256_maskz_rol_epi64(u, a, b) __extension__ ({\
Craig Topperd2661882016-05-17 04:41:48 +00005031 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \
5032 (__v4di)_mm256_setzero_si256(), \
5033 (__mmask8)(u)); })
Michael Zuckerman38a27272016-02-22 09:05:41 +00005034
Michael Zuckerman0231f162016-02-23 13:41:13 +00005035static __inline__ __m128i __DEFAULT_FN_ATTRS
5036_mm_rolv_epi32 (__m128i __A, __m128i __B)
5037{
5038 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
5039 (__v4si) __B,
5040 (__v4si)
5041 _mm_setzero_si128 (),
5042 (__mmask8) -1);
5043}
5044
5045static __inline__ __m128i __DEFAULT_FN_ATTRS
5046_mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5047 __m128i __B)
5048{
5049 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
5050 (__v4si) __B,
5051 (__v4si) __W,
5052 (__mmask8) __U);
5053}
5054
5055static __inline__ __m128i __DEFAULT_FN_ATTRS
5056_mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5057{
5058 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
5059 (__v4si) __B,
5060 (__v4si)
5061 _mm_setzero_si128 (),
5062 (__mmask8) __U);
5063}
5064
5065static __inline__ __m256i __DEFAULT_FN_ATTRS
5066_mm256_rolv_epi32 (__m256i __A, __m256i __B)
5067{
5068 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
5069 (__v8si) __B,
5070 (__v8si)
5071 _mm256_setzero_si256 (),
5072 (__mmask8) -1);
5073}
5074
5075static __inline__ __m256i __DEFAULT_FN_ATTRS
5076_mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5077 __m256i __B)
5078{
5079 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
5080 (__v8si) __B,
5081 (__v8si) __W,
5082 (__mmask8) __U);
5083}
5084
5085static __inline__ __m256i __DEFAULT_FN_ATTRS
5086_mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
5087{
5088 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
5089 (__v8si) __B,
5090 (__v8si)
5091 _mm256_setzero_si256 (),
5092 (__mmask8) __U);
5093}
5094
5095static __inline__ __m128i __DEFAULT_FN_ATTRS
5096_mm_rolv_epi64 (__m128i __A, __m128i __B)
5097{
5098 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
5099 (__v2di) __B,
5100 (__v2di)
5101 _mm_setzero_di (),
5102 (__mmask8) -1);
5103}
5104
5105static __inline__ __m128i __DEFAULT_FN_ATTRS
5106_mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5107 __m128i __B)
5108{
5109 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
5110 (__v2di) __B,
5111 (__v2di) __W,
5112 (__mmask8) __U);
5113}
5114
5115static __inline__ __m128i __DEFAULT_FN_ATTRS
5116_mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5117{
5118 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
5119 (__v2di) __B,
5120 (__v2di)
5121 _mm_setzero_di (),
5122 (__mmask8) __U);
5123}
5124
5125static __inline__ __m256i __DEFAULT_FN_ATTRS
5126_mm256_rolv_epi64 (__m256i __A, __m256i __B)
5127{
5128 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
5129 (__v4di) __B,
5130 (__v4di)
5131 _mm256_setzero_si256 (),
5132 (__mmask8) -1);
5133}
5134
5135static __inline__ __m256i __DEFAULT_FN_ATTRS
5136_mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5137 __m256i __B)
5138{
5139 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
5140 (__v4di) __B,
5141 (__v4di) __W,
5142 (__mmask8) __U);
5143}
5144
5145static __inline__ __m256i __DEFAULT_FN_ATTRS
5146_mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
5147{
5148 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
5149 (__v4di) __B,
5150 (__v4di)
5151 _mm256_setzero_si256 (),
5152 (__mmask8) __U);
5153}
5154
Craig Topperd2661882016-05-17 04:41:48 +00005155#define _mm_ror_epi32(A, B) __extension__ ({ \
5156 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
5157 (__v4si)_mm_setzero_si128(), \
5158 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005159
Craig Topperd2661882016-05-17 04:41:48 +00005160#define _mm_mask_ror_epi32(W, U, A, B) __extension__ ({ \
5161 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
5162 (__v4si)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005163
Craig Topperd2661882016-05-17 04:41:48 +00005164#define _mm_maskz_ror_epi32(U, A, B) __extension__ ({ \
5165 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \
5166 (__v4si)_mm_setzero_si128(), \
5167 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005168
Craig Topperd2661882016-05-17 04:41:48 +00005169#define _mm256_ror_epi32(A, B) __extension__ ({ \
5170 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
5171 (__v8si)_mm256_setzero_si256(), \
5172 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005173
Craig Topperd2661882016-05-17 04:41:48 +00005174#define _mm256_mask_ror_epi32(W, U, A, B) __extension__ ({ \
5175 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
5176 (__v8si)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005177
Craig Topperd2661882016-05-17 04:41:48 +00005178#define _mm256_maskz_ror_epi32(U, A, B) __extension__ ({ \
5179 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \
5180 (__v8si)_mm256_setzero_si256(), \
5181 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005182
Craig Topperd2661882016-05-17 04:41:48 +00005183#define _mm_ror_epi64(A, B) __extension__ ({ \
5184 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
5185 (__v2di)_mm_setzero_di(), \
5186 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005187
Craig Topperd2661882016-05-17 04:41:48 +00005188#define _mm_mask_ror_epi64(W, U, A, B) __extension__ ({ \
5189 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
5190 (__v2di)(__m128i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005191
Craig Topperd2661882016-05-17 04:41:48 +00005192#define _mm_maskz_ror_epi64(U, A, B) __extension__ ({ \
5193 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \
5194 (__v2di)_mm_setzero_di(), \
5195 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005196
Craig Topperd2661882016-05-17 04:41:48 +00005197#define _mm256_ror_epi64(A, B) __extension__ ({ \
5198 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5199 (__v4di)_mm256_setzero_si256(), \
5200 (__mmask8)-1); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005201
Craig Topperd2661882016-05-17 04:41:48 +00005202#define _mm256_mask_ror_epi64(W, U, A, B) __extension__ ({ \
5203 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5204 (__v4di)(__m256i)(W), (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005205
Craig Topperd2661882016-05-17 04:41:48 +00005206#define _mm256_maskz_ror_epi64(U, A, B) __extension__ ({ \
5207 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \
5208 (__v4di)_mm256_setzero_si256(), \
5209 (__mmask8)(U)); })
Michael Zuckerman0231f162016-02-23 13:41:13 +00005210
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005211static __inline__ __m128i __DEFAULT_FN_ATTRS
5212_mm_mask_sll_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5213 __m128i __B)
5214{
5215 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
5216 (__v4si) __B,
5217 (__v4si) __W,
5218 (__mmask8) __U);
5219}
5220
5221static __inline__ __m128i __DEFAULT_FN_ATTRS
5222_mm_maskz_sll_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5223{
5224 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
5225 (__v4si) __B,
5226 (__v4si)
5227 _mm_setzero_si128 (),
5228 (__mmask8) __U);
5229}
5230
5231static __inline__ __m256i __DEFAULT_FN_ATTRS
5232_mm256_mask_sll_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5233 __m128i __B)
5234{
5235 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
5236 (__v4si) __B,
5237 (__v8si) __W,
5238 (__mmask8) __U);
5239}
5240
5241static __inline__ __m256i __DEFAULT_FN_ATTRS
5242_mm256_maskz_sll_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
5243{
5244 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
5245 (__v4si) __B,
5246 (__v8si)
5247 _mm256_setzero_si256 (),
5248 (__mmask8) __U);
5249}
5250
Craig Topperd2661882016-05-17 04:41:48 +00005251#define _mm_mask_slli_epi32(W, U, A, B) __extension__ ({ \
5252 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \
5253 (__v4si)(__m128i)(W), \
5254 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005255
Craig Topperd2661882016-05-17 04:41:48 +00005256#define _mm_maskz_slli_epi32(U, A, B) __extension__ ({ \
5257 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \
5258 (__v4si)_mm_setzero_si128(), \
5259 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005260
Craig Topperd2661882016-05-17 04:41:48 +00005261#define _mm256_mask_slli_epi32(W, U, A, B) __extension__ ({ \
5262 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \
5263 (__v8si)(__m256i)(W), \
5264 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005265
Craig Topperd2661882016-05-17 04:41:48 +00005266#define _mm256_maskz_slli_epi32(U, A, B) __extension__ ({ \
5267 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \
5268 (__v8si)_mm256_setzero_si256(), \
5269 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005270
5271static __inline__ __m128i __DEFAULT_FN_ATTRS
5272_mm_mask_sll_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5273 __m128i __B)
5274{
5275 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
5276 (__v2di) __B,
5277 (__v2di) __W,
5278 (__mmask8) __U);
5279}
5280
5281static __inline__ __m128i __DEFAULT_FN_ATTRS
5282_mm_maskz_sll_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5283{
5284 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
5285 (__v2di) __B,
5286 (__v2di)
5287 _mm_setzero_di (),
5288 (__mmask8) __U);
5289}
5290
5291static __inline__ __m256i __DEFAULT_FN_ATTRS
5292_mm256_mask_sll_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5293 __m128i __B)
5294{
5295 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
5296 (__v2di) __B,
5297 (__v4di) __W,
5298 (__mmask8) __U);
5299}
5300
5301static __inline__ __m256i __DEFAULT_FN_ATTRS
5302_mm256_maskz_sll_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
5303{
5304 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
5305 (__v2di) __B,
5306 (__v4di)
5307 _mm256_setzero_si256 (),
5308 (__mmask8) __U);
5309}
5310
Craig Topperd2661882016-05-17 04:41:48 +00005311#define _mm_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5312 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \
5313 (__v2di)(__m128i)(W), \
5314 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005315
Craig Topperd2661882016-05-17 04:41:48 +00005316#define _mm_maskz_slli_epi64(U, A, B) __extension__ ({ \
5317 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \
5318 (__v2di)_mm_setzero_di(), \
5319 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005320
Craig Topperd2661882016-05-17 04:41:48 +00005321#define _mm256_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5322 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \
5323 (__v4di)(__m256i)(W), \
5324 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005325
Craig Topperd2661882016-05-17 04:41:48 +00005326#define _mm256_maskz_slli_epi64(U, A, B) __extension__ ({ \
5327 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \
5328 (__v4di)_mm256_setzero_si256(), \
5329 (__mmask8)(U)); })
Michael Zuckerman1ac360c2016-03-01 11:38:16 +00005330
Michael Zuckerman0231f162016-02-23 13:41:13 +00005331
Michael Zuckermane98cc742016-02-23 15:59:47 +00005332static __inline__ __m128i __DEFAULT_FN_ATTRS
5333_mm_rorv_epi32 (__m128i __A, __m128i __B)
5334{
5335 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5336 (__v4si) __B,
5337 (__v4si)
5338 _mm_setzero_si128 (),
5339 (__mmask8) -1);
5340}
5341
5342static __inline__ __m128i __DEFAULT_FN_ATTRS
5343_mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5344 __m128i __B)
5345{
5346 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5347 (__v4si) __B,
5348 (__v4si) __W,
5349 (__mmask8) __U);
5350}
5351
5352static __inline__ __m128i __DEFAULT_FN_ATTRS
5353_mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5354{
5355 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
5356 (__v4si) __B,
5357 (__v4si)
5358 _mm_setzero_si128 (),
5359 (__mmask8) __U);
5360}
5361
5362static __inline__ __m256i __DEFAULT_FN_ATTRS
5363_mm256_rorv_epi32 (__m256i __A, __m256i __B)
5364{
5365 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5366 (__v8si) __B,
5367 (__v8si)
5368 _mm256_setzero_si256 (),
5369 (__mmask8) -1);
5370}
5371
5372static __inline__ __m256i __DEFAULT_FN_ATTRS
5373_mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5374 __m256i __B)
5375{
5376 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5377 (__v8si) __B,
5378 (__v8si) __W,
5379 (__mmask8) __U);
5380}
5381
5382static __inline__ __m256i __DEFAULT_FN_ATTRS
5383_mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
5384{
5385 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
5386 (__v8si) __B,
5387 (__v8si)
5388 _mm256_setzero_si256 (),
5389 (__mmask8) __U);
5390}
5391
5392static __inline__ __m128i __DEFAULT_FN_ATTRS
5393_mm_rorv_epi64 (__m128i __A, __m128i __B)
5394{
5395 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5396 (__v2di) __B,
5397 (__v2di)
5398 _mm_setzero_di (),
5399 (__mmask8) -1);
5400}
5401
5402static __inline__ __m128i __DEFAULT_FN_ATTRS
5403_mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5404 __m128i __B)
5405{
5406 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5407 (__v2di) __B,
5408 (__v2di) __W,
5409 (__mmask8) __U);
5410}
5411
5412static __inline__ __m128i __DEFAULT_FN_ATTRS
5413_mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5414{
5415 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
5416 (__v2di) __B,
5417 (__v2di)
5418 _mm_setzero_di (),
5419 (__mmask8) __U);
5420}
5421
5422static __inline__ __m256i __DEFAULT_FN_ATTRS
5423_mm256_rorv_epi64 (__m256i __A, __m256i __B)
5424{
5425 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5426 (__v4di) __B,
5427 (__v4di)
5428 _mm256_setzero_si256 (),
5429 (__mmask8) -1);
5430}
5431
5432static __inline__ __m256i __DEFAULT_FN_ATTRS
5433_mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5434 __m256i __B)
5435{
5436 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5437 (__v4di) __B,
5438 (__v4di) __W,
5439 (__mmask8) __U);
5440}
5441
5442static __inline__ __m256i __DEFAULT_FN_ATTRS
5443_mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
5444{
5445 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
5446 (__v4di) __B,
5447 (__v4di)
5448 _mm256_setzero_si256 (),
5449 (__mmask8) __U);
5450}
5451
Michael Zuckerman431b0e12016-02-28 07:39:34 +00005452static __inline__ __m128i __DEFAULT_FN_ATTRS
5453_mm_mask_sllv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5454 __m128i __Y)
5455{
5456 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
5457 (__v2di) __Y,
5458 (__v2di) __W,
5459 (__mmask8) __U);
5460}
5461
5462static __inline__ __m128i __DEFAULT_FN_ATTRS
5463_mm_maskz_sllv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5464{
5465 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
5466 (__v2di) __Y,
5467 (__v2di)
5468 _mm_setzero_di (),
5469 (__mmask8) __U);
5470}
5471
5472static __inline__ __m256i __DEFAULT_FN_ATTRS
5473_mm256_mask_sllv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5474 __m256i __Y)
5475{
5476 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
5477 (__v4di) __Y,
5478 (__v4di) __W,
5479 (__mmask8) __U);
5480}
5481
5482static __inline__ __m256i __DEFAULT_FN_ATTRS
5483_mm256_maskz_sllv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5484{
5485 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
5486 (__v4di) __Y,
5487 (__v4di)
5488 _mm256_setzero_si256 (),
5489 (__mmask8) __U);
5490}
5491
5492static __inline__ __m128i __DEFAULT_FN_ATTRS
5493_mm_mask_sllv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5494 __m128i __Y)
5495{
5496 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
5497 (__v4si) __Y,
5498 (__v4si) __W,
5499 (__mmask8) __U);
5500}
5501
5502static __inline__ __m128i __DEFAULT_FN_ATTRS
5503_mm_maskz_sllv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5504{
5505 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
5506 (__v4si) __Y,
5507 (__v4si)
5508 _mm_setzero_si128 (),
5509 (__mmask8) __U);
5510}
5511
5512static __inline__ __m256i __DEFAULT_FN_ATTRS
5513_mm256_mask_sllv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5514 __m256i __Y)
5515{
5516 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
5517 (__v8si) __Y,
5518 (__v8si) __W,
5519 (__mmask8) __U);
5520}
5521
5522static __inline__ __m256i __DEFAULT_FN_ATTRS
5523_mm256_maskz_sllv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5524{
5525 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
5526 (__v8si) __Y,
5527 (__v8si)
5528 _mm256_setzero_si256 (),
5529 (__mmask8) __U);
5530}
5531
Michael Zuckerman0165e762016-03-01 13:03:45 +00005532
5533
5534static __inline__ __m128i __DEFAULT_FN_ATTRS
5535_mm_mask_srlv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5536 __m128i __Y)
5537{
5538 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
5539 (__v2di) __Y,
5540 (__v2di) __W,
5541 (__mmask8) __U);
5542}
5543
5544static __inline__ __m128i __DEFAULT_FN_ATTRS
5545_mm_maskz_srlv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5546{
5547 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
5548 (__v2di) __Y,
5549 (__v2di)
5550 _mm_setzero_di (),
5551 (__mmask8) __U);
5552}
5553
5554static __inline__ __m256i __DEFAULT_FN_ATTRS
5555_mm256_mask_srlv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5556 __m256i __Y)
5557{
5558 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
5559 (__v4di) __Y,
5560 (__v4di) __W,
5561 (__mmask8) __U);
5562}
5563
5564static __inline__ __m256i __DEFAULT_FN_ATTRS
5565_mm256_maskz_srlv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5566{
5567 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
5568 (__v4di) __Y,
5569 (__v4di)
5570 _mm256_setzero_si256 (),
5571 (__mmask8) __U);
5572}
5573
5574static __inline__ __m128i __DEFAULT_FN_ATTRS
5575_mm_mask_srlv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5576 __m128i __Y)
5577{
5578 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
5579 (__v4si) __Y,
5580 (__v4si) __W,
5581 (__mmask8) __U);
5582}
5583
5584static __inline__ __m128i __DEFAULT_FN_ATTRS
5585_mm_maskz_srlv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5586{
5587 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
5588 (__v4si) __Y,
5589 (__v4si)
5590 _mm_setzero_si128 (),
5591 (__mmask8) __U);
5592}
5593
5594static __inline__ __m256i __DEFAULT_FN_ATTRS
5595_mm256_mask_srlv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5596 __m256i __Y)
5597{
5598 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
5599 (__v8si) __Y,
5600 (__v8si) __W,
5601 (__mmask8) __U);
5602}
5603
5604static __inline__ __m256i __DEFAULT_FN_ATTRS
5605_mm256_maskz_srlv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5606{
5607 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
5608 (__v8si) __Y,
5609 (__v8si)
5610 _mm256_setzero_si256 (),
5611 (__mmask8) __U);
5612}
5613
Michael Zuckermand176d742016-03-01 17:49:03 +00005614
5615
5616static __inline__ __m128i __DEFAULT_FN_ATTRS
5617_mm_mask_srl_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
5618 __m128i __B)
5619{
5620 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
5621 (__v4si) __B,
5622 (__v4si) __W,
5623 (__mmask8) __U);
5624}
5625
5626static __inline__ __m128i __DEFAULT_FN_ATTRS
5627_mm_maskz_srl_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
5628{
5629 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
5630 (__v4si) __B,
5631 (__v4si)
5632 _mm_setzero_si128 (),
5633 (__mmask8) __U);
5634}
5635
5636static __inline__ __m256i __DEFAULT_FN_ATTRS
5637_mm256_mask_srl_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
5638 __m128i __B)
5639{
5640 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
5641 (__v4si) __B,
5642 (__v8si) __W,
5643 (__mmask8) __U);
5644}
5645
5646static __inline__ __m256i __DEFAULT_FN_ATTRS
5647_mm256_maskz_srl_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
5648{
5649 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
5650 (__v4si) __B,
5651 (__v8si)
5652 _mm256_setzero_si256 (),
5653 (__mmask8) __U);
5654}
5655
Craig Topperd2661882016-05-17 04:41:48 +00005656#define _mm_mask_srli_epi32(W, U, A, imm) __extension__ ({ \
5657 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \
5658 (__v4si)(__m128i)(W), \
5659 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005660
Craig Topperd2661882016-05-17 04:41:48 +00005661#define _mm_maskz_srli_epi32(U, A, imm) __extension__ ({ \
5662 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \
5663 (__v4si)_mm_setzero_si128(), \
5664 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005665
Craig Topperd2661882016-05-17 04:41:48 +00005666#define _mm256_mask_srli_epi32(W, U, A, imm) __extension__ ({ \
5667 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \
5668 (__v8si)(__m256i)(W), \
5669 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005670
Craig Topperd2661882016-05-17 04:41:48 +00005671#define _mm256_maskz_srli_epi32(U, A, imm) __extension__ ({ \
5672 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \
5673 (__v8si)_mm256_setzero_si256(), \
5674 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005675
5676static __inline__ __m128i __DEFAULT_FN_ATTRS
5677_mm_mask_srl_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
5678 __m128i __B)
5679{
5680 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
5681 (__v2di) __B,
5682 (__v2di) __W,
5683 (__mmask8) __U);
5684}
5685
5686static __inline__ __m128i __DEFAULT_FN_ATTRS
5687_mm_maskz_srl_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
5688{
5689 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
5690 (__v2di) __B,
5691 (__v2di)
5692 _mm_setzero_di (),
5693 (__mmask8) __U);
5694}
5695
5696static __inline__ __m256i __DEFAULT_FN_ATTRS
5697_mm256_mask_srl_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
5698 __m128i __B)
5699{
5700 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
5701 (__v2di) __B,
5702 (__v4di) __W,
5703 (__mmask8) __U);
5704}
5705
5706static __inline__ __m256i __DEFAULT_FN_ATTRS
5707_mm256_maskz_srl_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
5708{
5709 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
5710 (__v2di) __B,
5711 (__v4di)
5712 _mm256_setzero_si256 (),
5713 (__mmask8) __U);
5714}
5715
Craig Topperd2661882016-05-17 04:41:48 +00005716#define _mm_mask_srli_epi64(W, U, A, imm) __extension__ ({ \
5717 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
5718 (__v2di)(__m128i)(W), \
5719 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005720
Craig Topperd2661882016-05-17 04:41:48 +00005721#define _mm_maskz_srli_epi64(U, A, imm) __extension__ ({ \
5722 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
5723 (__v2di)_mm_setzero_si128(), \
5724 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005725
Craig Topperd2661882016-05-17 04:41:48 +00005726#define _mm256_mask_srli_epi64(W, U, A, imm) __extension__ ({ \
5727 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
5728 (__v4di)(__m256i)(W), \
5729 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005730
Craig Topperd2661882016-05-17 04:41:48 +00005731#define _mm256_maskz_srli_epi64(U, A, imm) __extension__ ({ \
5732 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
5733 (__v4di)_mm256_setzero_si256(), \
5734 (__mmask8)(U)); })
Michael Zuckermand176d742016-03-01 17:49:03 +00005735
Michael Zuckermand15c95a2016-03-02 09:05:46 +00005736static __inline__ __m128i __DEFAULT_FN_ATTRS
5737_mm_mask_srav_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
5738 __m128i __Y)
5739{
5740 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
5741 (__v4si) __Y,
5742 (__v4si) __W,
5743 (__mmask8) __U);
5744}
5745
5746static __inline__ __m128i __DEFAULT_FN_ATTRS
5747_mm_maskz_srav_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
5748{
5749 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
5750 (__v4si) __Y,
5751 (__v4si)
5752 _mm_setzero_si128 (),
5753 (__mmask8) __U);
5754}
5755
5756static __inline__ __m256i __DEFAULT_FN_ATTRS
5757_mm256_mask_srav_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
5758 __m256i __Y)
5759{
5760 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
5761 (__v8si) __Y,
5762 (__v8si) __W,
5763 (__mmask8) __U);
5764}
5765
5766static __inline__ __m256i __DEFAULT_FN_ATTRS
5767_mm256_maskz_srav_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
5768{
5769 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
5770 (__v8si) __Y,
5771 (__v8si)
5772 _mm256_setzero_si256 (),
5773 (__mmask8) __U);
5774}
5775
5776static __inline__ __m128i __DEFAULT_FN_ATTRS
5777_mm_srav_epi64 (__m128i __X, __m128i __Y)
5778{
5779 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5780 (__v2di) __Y,
5781 (__v2di)
5782 _mm_setzero_di (),
5783 (__mmask8) -1);
5784}
5785
5786static __inline__ __m128i __DEFAULT_FN_ATTRS
5787_mm_mask_srav_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
5788 __m128i __Y)
5789{
5790 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5791 (__v2di) __Y,
5792 (__v2di) __W,
5793 (__mmask8) __U);
5794}
5795
5796static __inline__ __m128i __DEFAULT_FN_ATTRS
5797_mm_maskz_srav_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
5798{
5799 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
5800 (__v2di) __Y,
5801 (__v2di)
5802 _mm_setzero_di (),
5803 (__mmask8) __U);
5804}
5805
5806static __inline__ __m256i __DEFAULT_FN_ATTRS
5807_mm256_srav_epi64 (__m256i __X, __m256i __Y)
5808{
5809 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5810 (__v4di) __Y,
5811 (__v4di)
5812 _mm256_setzero_si256 (),
5813 (__mmask8) -1);
5814}
5815
5816static __inline__ __m256i __DEFAULT_FN_ATTRS
5817_mm256_mask_srav_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
5818 __m256i __Y)
5819{
5820 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5821 (__v4di) __Y,
5822 (__v4di) __W,
5823 (__mmask8) __U);
5824}
5825
5826static __inline__ __m256i __DEFAULT_FN_ATTRS
5827_mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
5828{
5829 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
5830 (__v4di) __Y,
5831 (__v4di)
5832 _mm256_setzero_si256 (),
5833 (__mmask8) __U);
5834}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005835
Michael Zuckermane6542002016-05-23 08:01:48 +00005836static __inline__ __m128i __DEFAULT_FN_ATTRS
5837_mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
5838{
Igor Bregeraadb8762016-06-08 13:59:20 +00005839 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5840 (__v4si) __A,
5841 (__v4si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005842}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005843
Michael Zuckermane6542002016-05-23 08:01:48 +00005844static __inline__ __m128i __DEFAULT_FN_ATTRS
5845_mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A)
5846{
Igor Bregeraadb8762016-06-08 13:59:20 +00005847 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
5848 (__v4si) __A,
5849 (__v4si) _mm_setzero_si128 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005850}
5851
5852
5853static __inline__ __m256i __DEFAULT_FN_ATTRS
5854_mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
5855{
Igor Bregeraadb8762016-06-08 13:59:20 +00005856 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5857 (__v8si) __A,
5858 (__v8si) __W);
Michael Zuckermane6542002016-05-23 08:01:48 +00005859}
5860
5861static __inline__ __m256i __DEFAULT_FN_ATTRS
5862_mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A)
5863{
Igor Bregeraadb8762016-06-08 13:59:20 +00005864 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
5865 (__v8si) __A,
5866 (__v8si) _mm256_setzero_si256 ());
Michael Zuckermane6542002016-05-23 08:01:48 +00005867}
5868
5869static __inline__ __m128i __DEFAULT_FN_ATTRS
5870_mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P)
5871{
5872 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5873 (__v4si) __W,
5874 (__mmask8)
5875 __U);
5876}
5877
5878static __inline__ __m128i __DEFAULT_FN_ATTRS
5879_mm_maskz_load_epi32 (__mmask8 __U, void const *__P)
5880{
5881 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
5882 (__v4si)
5883 _mm_setzero_si128 (),
5884 (__mmask8)
5885 __U);
5886}
5887
5888static __inline__ __m256i __DEFAULT_FN_ATTRS
5889_mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P)
5890{
5891 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5892 (__v8si) __W,
5893 (__mmask8)
5894 __U);
5895}
5896
5897static __inline__ __m256i __DEFAULT_FN_ATTRS
5898_mm256_maskz_load_epi32 (__mmask8 __U, void const *__P)
5899{
5900 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
5901 (__v8si)
5902 _mm256_setzero_si256 (),
5903 (__mmask8)
5904 __U);
5905}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005906
5907static __inline__ void __DEFAULT_FN_ATTRS
5908_mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
5909{
5910 __builtin_ia32_movdqa32store128_mask ((__v4si *) __P,
5911 (__v4si) __A,
5912 (__mmask8) __U);
5913}
5914
5915static __inline__ void __DEFAULT_FN_ATTRS
5916_mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A)
5917{
5918 __builtin_ia32_movdqa32store256_mask ((__v8si *) __P,
5919 (__v8si) __A,
5920 (__mmask8) __U);
5921}
5922
5923static __inline__ __m128i __DEFAULT_FN_ATTRS
5924_mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
5925{
Igor Bregeraadb8762016-06-08 13:59:20 +00005926 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5927 (__v2di) __A,
5928 (__v2di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005929}
5930
5931static __inline__ __m128i __DEFAULT_FN_ATTRS
5932_mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A)
5933{
Igor Bregeraadb8762016-06-08 13:59:20 +00005934 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
5935 (__v2di) __A,
5936 (__v2di) _mm_setzero_di ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005937}
5938
5939static __inline__ __m256i __DEFAULT_FN_ATTRS
5940_mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
5941{
Igor Bregeraadb8762016-06-08 13:59:20 +00005942 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5943 (__v4di) __A,
5944 (__v4di) __W);
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005945}
5946
5947static __inline__ __m256i __DEFAULT_FN_ATTRS
5948_mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A)
5949{
Igor Bregeraadb8762016-06-08 13:59:20 +00005950 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
5951 (__v4di) __A,
5952 (__v4di) _mm256_setzero_si256 ());
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00005953}
5954
5955static __inline__ __m128i __DEFAULT_FN_ATTRS
5956_mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P)
5957{
5958 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5959 (__v2di) __W,
5960 (__mmask8)
5961 __U);
5962}
5963
5964static __inline__ __m128i __DEFAULT_FN_ATTRS
5965_mm_maskz_load_epi64 (__mmask8 __U, void const *__P)
5966{
5967 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
5968 (__v2di)
5969 _mm_setzero_di (),
5970 (__mmask8)
5971 __U);
5972}
5973
5974static __inline__ __m256i __DEFAULT_FN_ATTRS
5975_mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P)
5976{
5977 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5978 (__v4di) __W,
5979 (__mmask8)
5980 __U);
5981}
5982
5983static __inline__ __m256i __DEFAULT_FN_ATTRS
5984_mm256_maskz_load_epi64 (__mmask8 __U, void const *__P)
5985{
5986 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
5987 (__v4di)
5988 _mm256_setzero_si256 (),
5989 (__mmask8)
5990 __U);
5991}
5992
5993static __inline__ void __DEFAULT_FN_ATTRS
5994_mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
5995{
5996 __builtin_ia32_movdqa64store128_mask ((__v2di *) __P,
5997 (__v2di) __A,
5998 (__mmask8) __U);
5999}
6000
6001static __inline__ void __DEFAULT_FN_ATTRS
6002_mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A)
6003{
6004 __builtin_ia32_movdqa64store256_mask ((__v4di *) __P,
6005 (__v4di) __A,
6006 (__mmask8) __U);
6007}
6008
Michael Zuckerman0d67e4b2016-03-03 13:43:05 +00006009static __inline__ __m128d __DEFAULT_FN_ATTRS
6010_mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A)
6011{
6012 return (__m128d) __builtin_ia32_movddup128_mask ((__v2df) __A,
6013 (__v2df) __W,
6014 (__mmask8) __U);
6015}
6016
6017static __inline__ __m128d __DEFAULT_FN_ATTRS
6018_mm_maskz_movedup_pd (__mmask8 __U, __m128d __A)
6019{
6020 return (__m128d) __builtin_ia32_movddup128_mask ((__v2df) __A,
6021 (__v2df)
6022 _mm_setzero_pd (),
6023 (__mmask8) __U);
6024}
6025
6026static __inline__ __m256d __DEFAULT_FN_ATTRS
6027_mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A)
6028{
6029 return (__m256d) __builtin_ia32_movddup256_mask ((__v4df) __A,
6030 (__v4df) __W,
6031 (__mmask8) __U);
6032}
6033
6034static __inline__ __m256d __DEFAULT_FN_ATTRS
6035_mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A)
6036{
6037 return (__m256d) __builtin_ia32_movddup256_mask ((__v4df) __A,
6038 (__v4df)
6039 _mm256_setzero_pd (),
6040 (__mmask8) __U);
6041}
Michael Zuckermanffbb67a2016-03-03 09:26:01 +00006042
Michael Zuckerman912be162016-03-07 08:29:10 +00006043
Craig Topperd2661882016-05-17 04:41:48 +00006044#define _mm_mask_set1_epi32(O, M, A) __extension__ ({ \
6045 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
6046 (__v4si)(__m128i)(O), \
6047 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00006048
Craig Topperd2661882016-05-17 04:41:48 +00006049#define _mm_maskz_set1_epi32(M, A) __extension__ ({ \
6050 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \
6051 (__v4si)_mm_setzero_si128(), \
6052 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00006053
Craig Topperd2661882016-05-17 04:41:48 +00006054#define _mm256_mask_set1_epi32(O, M, A) __extension__ ({ \
6055 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
6056 (__v8si)(__m256i)(O), \
6057 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00006058
Craig Topperd2661882016-05-17 04:41:48 +00006059#define _mm256_maskz_set1_epi32(M, A) __extension__ ({ \
6060 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \
6061 (__v8si)_mm256_setzero_si256(), \
6062 (__mmask8)(M)); })
Michael Zuckerman912be162016-03-07 08:29:10 +00006063
6064static __inline__ __m128i __DEFAULT_FN_ATTRS
6065_mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A)
6066{
6067 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, (__v2di) __O,
6068 __M);
6069}
6070
6071static __inline__ __m128i __DEFAULT_FN_ATTRS
6072_mm_maskz_set1_epi64 (__mmask8 __M, long long __A)
6073{
6074 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A,
6075 (__v2di)
6076 _mm_setzero_si128 (),
6077 __M);
6078}
6079
6080static __inline__ __m256i __DEFAULT_FN_ATTRS
6081_mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A)
6082{
6083 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, (__v4di) __O,
6084 __M);
6085}
6086
6087static __inline__ __m256i __DEFAULT_FN_ATTRS
6088_mm256_maskz_set1_epi64 (__mmask8 __M, long long __A)
6089{
6090 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A,
6091 (__v4di)
6092 _mm256_setzero_si256 (),
6093 __M);
6094}
Michael Zuckermandef78752016-03-28 12:23:09 +00006095
Craig Topperd2661882016-05-17 04:41:48 +00006096#define _mm_fixupimm_pd(A, B, C, imm) __extension__ ({ \
6097 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
6098 (__v2df)(__m128d)(B), \
6099 (__v2di)(__m128i)(C), (int)(imm), \
6100 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006101
Craig Topperd2661882016-05-17 04:41:48 +00006102#define _mm_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
6103 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
6104 (__v2df)(__m128d)(B), \
6105 (__v2di)(__m128i)(C), (int)(imm), \
6106 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006107
Craig Topperd2661882016-05-17 04:41:48 +00006108#define _mm_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
6109 (__m128d)__builtin_ia32_fixupimmpd128_maskz((__v2df)(__m128d)(A), \
6110 (__v2df)(__m128d)(B), \
6111 (__v2di)(__m128i)(C), \
6112 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006113
Craig Topperd2661882016-05-17 04:41:48 +00006114#define _mm256_fixupimm_pd(A, B, C, imm) __extension__ ({ \
6115 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
6116 (__v4df)(__m256d)(B), \
6117 (__v4di)(__m256i)(C), (int)(imm), \
6118 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006119
Craig Topperd2661882016-05-17 04:41:48 +00006120#define _mm256_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
6121 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
6122 (__v4df)(__m256d)(B), \
6123 (__v4di)(__m256i)(C), (int)(imm), \
6124 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006125
Craig Topperd2661882016-05-17 04:41:48 +00006126#define _mm256_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
6127 (__m256d)__builtin_ia32_fixupimmpd256_maskz((__v4df)(__m256d)(A), \
6128 (__v4df)(__m256d)(B), \
6129 (__v4di)(__m256i)(C), \
6130 (int)(imm), (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006131
Craig Topperd2661882016-05-17 04:41:48 +00006132#define _mm_fixupimm_ps(A, B, C, imm) __extension__ ({ \
6133 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
6134 (__v4sf)(__m128)(B), \
6135 (__v4si)(__m128i)(C), (int)(imm), \
6136 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006137
Craig Topperd2661882016-05-17 04:41:48 +00006138#define _mm_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
6139 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
6140 (__v4sf)(__m128)(B), \
6141 (__v4si)(__m128i)(C), (int)(imm), \
6142 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006143
Craig Topperd2661882016-05-17 04:41:48 +00006144#define _mm_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
6145 (__m128)__builtin_ia32_fixupimmps128_maskz((__v4sf)(__m128)(A), \
6146 (__v4sf)(__m128)(B), \
6147 (__v4si)(__m128i)(C), (int)(imm), \
6148 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006149
Craig Topperd2661882016-05-17 04:41:48 +00006150#define _mm256_fixupimm_ps(A, B, C, imm) __extension__ ({ \
6151 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
6152 (__v8sf)(__m256)(B), \
6153 (__v8si)(__m256i)(C), (int)(imm), \
6154 (__mmask8)-1); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006155
Craig Topperd2661882016-05-17 04:41:48 +00006156#define _mm256_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
6157 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
6158 (__v8sf)(__m256)(B), \
6159 (__v8si)(__m256i)(C), (int)(imm), \
6160 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006161
Craig Topperd2661882016-05-17 04:41:48 +00006162#define _mm256_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
6163 (__m256)__builtin_ia32_fixupimmps256_maskz((__v8sf)(__m256)(A), \
6164 (__v8sf)(__m256)(B), \
6165 (__v8si)(__m256i)(C), (int)(imm), \
6166 (__mmask8)(U)); })
Michael Zuckermandef78752016-03-28 12:23:09 +00006167
6168static __inline__ __m128d __DEFAULT_FN_ATTRS
6169_mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P)
6170{
6171 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
6172 (__v2df) __W,
6173 (__mmask8) __U);
6174}
6175
6176static __inline__ __m128d __DEFAULT_FN_ATTRS
6177_mm_maskz_load_pd (__mmask8 __U, void const *__P)
6178{
6179 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
6180 (__v2df)
6181 _mm_setzero_pd (),
6182 (__mmask8) __U);
6183}
6184
6185static __inline__ __m256d __DEFAULT_FN_ATTRS
6186_mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P)
6187{
6188 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
6189 (__v4df) __W,
6190 (__mmask8) __U);
6191}
6192
6193static __inline__ __m256d __DEFAULT_FN_ATTRS
6194_mm256_maskz_load_pd (__mmask8 __U, void const *__P)
6195{
6196 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
6197 (__v4df)
6198 _mm256_setzero_pd (),
6199 (__mmask8) __U);
6200}
6201
6202static __inline__ __m128 __DEFAULT_FN_ATTRS
6203_mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P)
6204{
6205 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
6206 (__v4sf) __W,
6207 (__mmask8) __U);
6208}
6209
6210static __inline__ __m128 __DEFAULT_FN_ATTRS
6211_mm_maskz_load_ps (__mmask8 __U, void const *__P)
6212{
6213 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
6214 (__v4sf)
6215 _mm_setzero_ps (),
6216 (__mmask8) __U);
6217}
6218
6219static __inline__ __m256 __DEFAULT_FN_ATTRS
6220_mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P)
6221{
6222 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
6223 (__v8sf) __W,
6224 (__mmask8) __U);
6225}
6226
6227static __inline__ __m256 __DEFAULT_FN_ATTRS
6228_mm256_maskz_load_ps (__mmask8 __U, void const *__P)
6229{
6230 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
6231 (__v8sf)
6232 _mm256_setzero_ps (),
6233 (__mmask8) __U);
6234}
6235
6236static __inline__ __m128i __DEFAULT_FN_ATTRS
6237_mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
6238{
6239 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
6240 (__v2di) __W,
6241 (__mmask8) __U);
6242}
6243
6244static __inline__ __m128i __DEFAULT_FN_ATTRS
6245_mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6246{
6247 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P,
6248 (__v2di)
6249 _mm_setzero_si128 (),
6250 (__mmask8) __U);
6251}
6252
6253static __inline__ __m256i __DEFAULT_FN_ATTRS
6254_mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P)
6255{
6256 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
6257 (__v4di) __W,
6258 (__mmask8) __U);
6259}
6260
6261static __inline__ __m256i __DEFAULT_FN_ATTRS
6262_mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6263{
6264 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P,
6265 (__v4di)
6266 _mm256_setzero_si256 (),
6267 (__mmask8) __U);
6268}
6269
6270static __inline__ __m128i __DEFAULT_FN_ATTRS
6271_mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
6272{
6273 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
6274 (__v4si) __W,
6275 (__mmask8) __U);
6276}
6277
6278static __inline__ __m128i __DEFAULT_FN_ATTRS
6279_mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
6280{
6281 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P,
6282 (__v4si)
6283 _mm_setzero_si128 (),
6284 (__mmask8) __U);
6285}
6286
6287static __inline__ __m256i __DEFAULT_FN_ATTRS
6288_mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P)
6289{
6290 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
6291 (__v8si) __W,
6292 (__mmask8) __U);
6293}
6294
6295static __inline__ __m256i __DEFAULT_FN_ATTRS
6296_mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
6297{
6298 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P,
6299 (__v8si)
6300 _mm256_setzero_si256 (),
6301 (__mmask8) __U);
6302}
6303
6304static __inline__ __m128d __DEFAULT_FN_ATTRS
6305_mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P)
6306{
6307 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6308 (__v2df) __W,
6309 (__mmask8) __U);
6310}
6311
6312static __inline__ __m128d __DEFAULT_FN_ATTRS
6313_mm_maskz_loadu_pd (__mmask8 __U, void const *__P)
6314{
6315 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P,
6316 (__v2df)
6317 _mm_setzero_pd (),
6318 (__mmask8) __U);
6319}
6320
6321static __inline__ __m256d __DEFAULT_FN_ATTRS
6322_mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P)
6323{
6324 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6325 (__v4df) __W,
6326 (__mmask8) __U);
6327}
6328
6329static __inline__ __m256d __DEFAULT_FN_ATTRS
6330_mm256_maskz_loadu_pd (__mmask8 __U, void const *__P)
6331{
6332 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P,
6333 (__v4df)
6334 _mm256_setzero_pd (),
6335 (__mmask8) __U);
6336}
6337
6338static __inline__ __m128 __DEFAULT_FN_ATTRS
6339_mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P)
6340{
6341 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6342 (__v4sf) __W,
6343 (__mmask8) __U);
6344}
6345
6346static __inline__ __m128 __DEFAULT_FN_ATTRS
6347_mm_maskz_loadu_ps (__mmask8 __U, void const *__P)
6348{
6349 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P,
6350 (__v4sf)
6351 _mm_setzero_ps (),
6352 (__mmask8) __U);
6353}
6354
6355static __inline__ __m256 __DEFAULT_FN_ATTRS
6356_mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P)
6357{
6358 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6359 (__v8sf) __W,
6360 (__mmask8) __U);
6361}
6362
6363static __inline__ __m256 __DEFAULT_FN_ATTRS
6364_mm256_maskz_loadu_ps (__mmask8 __U, void const *__P)
6365{
6366 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P,
6367 (__v8sf)
6368 _mm256_setzero_ps (),
6369 (__mmask8) __U);
6370}
Michael Zuckermanfa7ccc52016-04-10 10:51:04 +00006371
6372static __inline__ void __DEFAULT_FN_ATTRS
6373_mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A)
6374{
6375 __builtin_ia32_storeapd128_mask ((__v2df *) __P,
6376 (__v2df) __A,
6377 (__mmask8) __U);
6378}
6379
6380static __inline__ void __DEFAULT_FN_ATTRS
6381_mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A)
6382{
6383 __builtin_ia32_storeapd256_mask ((__v4df *) __P,
6384 (__v4df) __A,
6385 (__mmask8) __U);
6386}
6387
6388static __inline__ void __DEFAULT_FN_ATTRS
6389_mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A)
6390{
6391 __builtin_ia32_storeaps128_mask ((__v4sf *) __P,
6392 (__v4sf) __A,
6393 (__mmask8) __U);
6394}
6395
6396static __inline__ void __DEFAULT_FN_ATTRS
6397_mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
6398{
6399 __builtin_ia32_storeaps256_mask ((__v8sf *) __P,
6400 (__v8sf) __A,
6401 (__mmask8) __U);
6402}
6403
6404static __inline__ void __DEFAULT_FN_ATTRS
6405_mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
6406{
6407 __builtin_ia32_storedqudi128_mask ((__v2di *) __P,
6408 (__v2di) __A,
6409 (__mmask8) __U);
6410}
6411
6412static __inline__ void __DEFAULT_FN_ATTRS
6413_mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
6414{
6415 __builtin_ia32_storedqudi256_mask ((__v4di *) __P,
6416 (__v4di) __A,
6417 (__mmask8) __U);
6418}
6419
6420static __inline__ void __DEFAULT_FN_ATTRS
6421_mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
6422{
6423 __builtin_ia32_storedqusi128_mask ((__v4si *) __P,
6424 (__v4si) __A,
6425 (__mmask8) __U);
6426}
6427
6428static __inline__ void __DEFAULT_FN_ATTRS
6429_mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
6430{
6431 __builtin_ia32_storedqusi256_mask ((__v8si *) __P,
6432 (__v8si) __A,
6433 (__mmask8) __U);
6434}
6435
6436static __inline__ void __DEFAULT_FN_ATTRS
6437_mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A)
6438{
6439 __builtin_ia32_storeupd128_mask ((__v2df *) __P,
6440 (__v2df) __A,
6441 (__mmask8) __U);
6442}
6443
6444static __inline__ void __DEFAULT_FN_ATTRS
6445_mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A)
6446{
6447 __builtin_ia32_storeupd256_mask ((__v4df *) __P,
6448 (__v4df) __A,
6449 (__mmask8) __U);
6450}
6451
6452static __inline__ void __DEFAULT_FN_ATTRS
6453_mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A)
6454{
6455 __builtin_ia32_storeups128_mask ((__v4sf *) __P,
6456 (__v4sf) __A,
6457 (__mmask8) __U);
6458}
6459
6460static __inline__ void __DEFAULT_FN_ATTRS
6461_mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A)
6462{
6463 __builtin_ia32_storeups256_mask ((__v8sf *) __P,
6464 (__v8sf) __A,
6465 (__mmask8) __U);
6466}
6467
Michael Zuckermancdd54c82016-04-10 12:54:23 +00006468
6469static __inline__ __m128d __DEFAULT_FN_ATTRS
6470_mm_mask_unpackhi_pd (__m128d __W, __mmask8 __U, __m128d __A,
6471 __m128d __B)
6472{
6473 return (__m128d) __builtin_ia32_unpckhpd128_mask ((__v2df) __A,
6474 (__v2df) __B,
6475 (__v2df) __W,
6476 (__mmask8) __U);
6477}
6478
6479static __inline__ __m128d __DEFAULT_FN_ATTRS
6480_mm_maskz_unpackhi_pd (__mmask8 __U, __m128d __A, __m128d __B)
6481{
6482 return (__m128d) __builtin_ia32_unpckhpd128_mask ((__v2df) __A,
6483 (__v2df) __B,
6484 (__v2df)
6485 _mm_setzero_pd (),
6486 (__mmask8) __U);
6487}
6488
6489static __inline__ __m256d __DEFAULT_FN_ATTRS
6490_mm256_mask_unpackhi_pd (__m256d __W, __mmask8 __U, __m256d __A,
6491 __m256d __B)
6492{
6493 return (__m256d) __builtin_ia32_unpckhpd256_mask ((__v4df) __A,
6494 (__v4df) __B,
6495 (__v4df) __W,
6496 (__mmask8) __U);
6497}
6498
6499static __inline__ __m256d __DEFAULT_FN_ATTRS
6500_mm256_maskz_unpackhi_pd (__mmask8 __U, __m256d __A, __m256d __B)
6501{
6502 return (__m256d) __builtin_ia32_unpckhpd256_mask ((__v4df) __A,
6503 (__v4df) __B,
6504 (__v4df)
6505 _mm256_setzero_pd (),
6506 (__mmask8) __U);
6507}
6508
6509static __inline__ __m128 __DEFAULT_FN_ATTRS
6510_mm_mask_unpackhi_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
6511{
6512 return (__m128) __builtin_ia32_unpckhps128_mask ((__v4sf) __A,
6513 (__v4sf) __B,
6514 (__v4sf) __W,
6515 (__mmask8) __U);
6516}
6517
6518static __inline__ __m128 __DEFAULT_FN_ATTRS
6519_mm_maskz_unpackhi_ps (__mmask8 __U, __m128 __A, __m128 __B)
6520{
6521 return (__m128) __builtin_ia32_unpckhps128_mask ((__v4sf) __A,
6522 (__v4sf) __B,
6523 (__v4sf)
6524 _mm_setzero_ps (),
6525 (__mmask8) __U);
6526}
6527
6528static __inline__ __m256 __DEFAULT_FN_ATTRS
6529_mm256_mask_unpackhi_ps (__m256 __W, __mmask8 __U, __m256 __A,
6530 __m256 __B)
6531{
6532 return (__m256) __builtin_ia32_unpckhps256_mask ((__v8sf) __A,
6533 (__v8sf) __B,
6534 (__v8sf) __W,
6535 (__mmask8) __U);
6536}
6537
6538static __inline__ __m256 __DEFAULT_FN_ATTRS
6539_mm256_maskz_unpackhi_ps (__mmask8 __U, __m256 __A, __m256 __B)
6540{
6541 return (__m256) __builtin_ia32_unpckhps256_mask ((__v8sf) __A,
6542 (__v8sf) __B,
6543 (__v8sf)
6544 _mm256_setzero_ps (),
6545 (__mmask8) __U);
6546}
6547
6548static __inline__ __m128d __DEFAULT_FN_ATTRS
6549_mm_mask_unpacklo_pd (__m128d __W, __mmask8 __U, __m128d __A,
6550 __m128d __B)
6551{
6552 return (__m128d) __builtin_ia32_unpcklpd128_mask ((__v2df) __A,
6553 (__v2df) __B,
6554 (__v2df) __W,
6555 (__mmask8) __U);
6556}
6557
6558static __inline__ __m128d __DEFAULT_FN_ATTRS
6559_mm_maskz_unpacklo_pd (__mmask8 __U, __m128d __A, __m128d __B)
6560{
6561 return (__m128d) __builtin_ia32_unpcklpd128_mask ((__v2df) __A,
6562 (__v2df) __B,
6563 (__v2df)
6564 _mm_setzero_pd (),
6565 (__mmask8) __U);
6566}
6567
6568static __inline__ __m256d __DEFAULT_FN_ATTRS
6569_mm256_mask_unpacklo_pd (__m256d __W, __mmask8 __U, __m256d __A,
6570 __m256d __B)
6571{
6572 return (__m256d) __builtin_ia32_unpcklpd256_mask ((__v4df) __A,
6573 (__v4df) __B,
6574 (__v4df) __W,
6575 (__mmask8) __U);
6576}
6577
6578static __inline__ __m256d __DEFAULT_FN_ATTRS
6579_mm256_maskz_unpacklo_pd (__mmask8 __U, __m256d __A, __m256d __B)
6580{
6581 return (__m256d) __builtin_ia32_unpcklpd256_mask ((__v4df) __A,
6582 (__v4df) __B,
6583 (__v4df)
6584 _mm256_setzero_pd (),
6585 (__mmask8) __U);
6586}
6587
6588static __inline__ __m128 __DEFAULT_FN_ATTRS
6589_mm_mask_unpacklo_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
6590{
6591 return (__m128) __builtin_ia32_unpcklps128_mask ((__v4sf) __A,
6592 (__v4sf) __B,
6593 (__v4sf) __W,
6594 (__mmask8) __U);
6595}
6596
6597static __inline__ __m128 __DEFAULT_FN_ATTRS
6598_mm_maskz_unpacklo_ps (__mmask8 __U, __m128 __A, __m128 __B)
6599{
6600 return (__m128) __builtin_ia32_unpcklps128_mask ((__v4sf) __A,
6601 (__v4sf) __B,
6602 (__v4sf)
6603 _mm_setzero_ps (),
6604 (__mmask8) __U);
6605}
6606
6607static __inline__ __m256 __DEFAULT_FN_ATTRS
6608_mm256_mask_unpacklo_ps (__m256 __W, __mmask8 __U, __m256 __A,
6609 __m256 __B)
6610{
6611 return (__m256) __builtin_ia32_unpcklps256_mask ((__v8sf) __A,
6612 (__v8sf) __B,
6613 (__v8sf) __W,
6614 (__mmask8) __U);
6615}
6616
6617static __inline__ __m256 __DEFAULT_FN_ATTRS
6618_mm256_maskz_unpacklo_ps (__mmask8 __U, __m256 __A, __m256 __B)
6619{
6620 return (__m256) __builtin_ia32_unpcklps256_mask ((__v8sf) __A,
6621 (__v8sf) __B,
6622 (__v8sf)
6623 _mm256_setzero_ps (),
6624 (__mmask8) __U);
6625}
6626
6627static __inline__ __m128d __DEFAULT_FN_ATTRS
6628_mm_rcp14_pd (__m128d __A)
6629{
6630 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6631 (__v2df)
6632 _mm_setzero_pd (),
6633 (__mmask8) -1);
6634}
6635
6636static __inline__ __m128d __DEFAULT_FN_ATTRS
6637_mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A)
6638{
6639 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6640 (__v2df) __W,
6641 (__mmask8) __U);
6642}
6643
6644static __inline__ __m128d __DEFAULT_FN_ATTRS
6645_mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A)
6646{
6647 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
6648 (__v2df)
6649 _mm_setzero_pd (),
6650 (__mmask8) __U);
6651}
6652
6653static __inline__ __m256d __DEFAULT_FN_ATTRS
6654_mm256_rcp14_pd (__m256d __A)
6655{
6656 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6657 (__v4df)
6658 _mm256_setzero_pd (),
6659 (__mmask8) -1);
6660}
6661
6662static __inline__ __m256d __DEFAULT_FN_ATTRS
6663_mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A)
6664{
6665 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6666 (__v4df) __W,
6667 (__mmask8) __U);
6668}
6669
6670static __inline__ __m256d __DEFAULT_FN_ATTRS
6671_mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A)
6672{
6673 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
6674 (__v4df)
6675 _mm256_setzero_pd (),
6676 (__mmask8) __U);
6677}
6678
6679static __inline__ __m128 __DEFAULT_FN_ATTRS
6680_mm_rcp14_ps (__m128 __A)
6681{
6682 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6683 (__v4sf)
6684 _mm_setzero_ps (),
6685 (__mmask8) -1);
6686}
6687
6688static __inline__ __m128 __DEFAULT_FN_ATTRS
6689_mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A)
6690{
6691 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6692 (__v4sf) __W,
6693 (__mmask8) __U);
6694}
6695
6696static __inline__ __m128 __DEFAULT_FN_ATTRS
6697_mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A)
6698{
6699 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
6700 (__v4sf)
6701 _mm_setzero_ps (),
6702 (__mmask8) __U);
6703}
6704
6705static __inline__ __m256 __DEFAULT_FN_ATTRS
6706_mm256_rcp14_ps (__m256 __A)
6707{
6708 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6709 (__v8sf)
6710 _mm256_setzero_ps (),
6711 (__mmask8) -1);
6712}
6713
6714static __inline__ __m256 __DEFAULT_FN_ATTRS
6715_mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A)
6716{
6717 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6718 (__v8sf) __W,
6719 (__mmask8) __U);
6720}
6721
6722static __inline__ __m256 __DEFAULT_FN_ATTRS
6723_mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A)
6724{
6725 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
6726 (__v8sf)
6727 _mm256_setzero_ps (),
6728 (__mmask8) __U);
6729}
6730
6731static __inline__ __m128i __DEFAULT_FN_ATTRS
6732_mm_lzcnt_epi32 (__m128i __A)
6733{
6734 return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
6735 (__v4si)
6736 _mm_setzero_si128 (),
6737 (__mmask8) -1);
6738}
6739
6740static __inline__ __m128i __DEFAULT_FN_ATTRS
6741_mm_mask_lzcnt_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
6742{
6743 return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
6744 (__v4si) __W,
6745 (__mmask8) __U);
6746}
6747
6748static __inline__ __m128i __DEFAULT_FN_ATTRS
6749_mm_maskz_lzcnt_epi32 (__mmask8 __U, __m128i __A)
6750{
6751 return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
6752 (__v4si)
6753 _mm_setzero_si128 (),
6754 (__mmask8) __U);
6755}
6756
6757static __inline__ __m256i __DEFAULT_FN_ATTRS
6758_mm256_lzcnt_epi32 (__m256i __A)
6759{
6760 return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
6761 (__v8si)
6762 _mm256_setzero_si256 (),
6763 (__mmask8) -1);
6764}
6765
6766static __inline__ __m256i __DEFAULT_FN_ATTRS
6767_mm256_mask_lzcnt_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
6768{
6769 return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
6770 (__v8si) __W,
6771 (__mmask8) __U);
6772}
6773
6774static __inline__ __m256i __DEFAULT_FN_ATTRS
6775_mm256_maskz_lzcnt_epi32 (__mmask8 __U, __m256i __A)
6776{
6777 return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
6778 (__v8si)
6779 _mm256_setzero_si256 (),
6780 (__mmask8) __U);
6781}
6782
6783static __inline__ __m128i __DEFAULT_FN_ATTRS
6784_mm_lzcnt_epi64 (__m128i __A)
6785{
6786 return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
6787 (__v2di)
6788 _mm_setzero_di (),
6789 (__mmask8) -1);
6790}
6791
6792static __inline__ __m128i __DEFAULT_FN_ATTRS
6793_mm_mask_lzcnt_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
6794{
6795 return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
6796 (__v2di) __W,
6797 (__mmask8) __U);
6798}
6799
6800static __inline__ __m128i __DEFAULT_FN_ATTRS
6801_mm_maskz_lzcnt_epi64 (__mmask8 __U, __m128i __A)
6802{
6803 return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
6804 (__v2di)
6805 _mm_setzero_di (),
6806 (__mmask8) __U);
6807}
6808
6809static __inline__ __m256i __DEFAULT_FN_ATTRS
6810_mm256_lzcnt_epi64 (__m256i __A)
6811{
6812 return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
6813 (__v4di)
6814 _mm256_setzero_si256 (),
6815 (__mmask8) -1);
6816}
6817
6818static __inline__ __m256i __DEFAULT_FN_ATTRS
6819_mm256_mask_lzcnt_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
6820{
6821 return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
6822 (__v4di) __W,
6823 (__mmask8) __U);
6824}
6825
6826static __inline__ __m256i __DEFAULT_FN_ATTRS
6827_mm256_maskz_lzcnt_epi64 (__mmask8 __U, __m256i __A)
6828{
6829 return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
6830 (__v4di)
6831 _mm256_setzero_si256 (),
6832 (__mmask8) __U);
6833}
6834
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006835
Craig Topperd2661882016-05-17 04:41:48 +00006836#define _mm_mask_permute_pd(W, U, X, C) __extension__ ({ \
6837 (__m128d)__builtin_ia32_vpermilpd_mask((__v2df)(__m128d)(X), (int)(C), \
6838 (__v2df)(__m128d)(W), \
6839 (__mmask8)(U)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006840
Craig Topperd2661882016-05-17 04:41:48 +00006841#define _mm_maskz_permute_pd(U, X, C) __extension__ ({ \
6842 (__m128d)__builtin_ia32_vpermilpd_mask((__v2df)(__m128d)(X), (int)(C), \
6843 (__v2df)_mm_setzero_pd(), \
6844 (__mmask8)(U)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006845
Craig Topperd2661882016-05-17 04:41:48 +00006846#define _mm256_mask_permute_pd(W, U, X, C) __extension__ ({ \
6847 (__m256d)__builtin_ia32_vpermilpd256_mask((__v4df)(__m256d)(X), (int)(C), \
6848 (__v4df)(__m256d)(W), \
6849 (__mmask8)(U)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006850
Craig Topperd2661882016-05-17 04:41:48 +00006851#define _mm256_maskz_permute_pd(U, X, C) __extension__ ({ \
6852 (__m256d)__builtin_ia32_vpermilpd256_mask((__v4df)(__m256d)(X), (int)(C), \
6853 (__v4df)_mm256_setzero_pd(), \
6854 (__mmask8)(U)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006855
Craig Topperd2661882016-05-17 04:41:48 +00006856#define _mm_mask_permute_ps(W, U, X, C) __extension__ ({ \
6857 (__m128)__builtin_ia32_vpermilps_mask((__v4sf)(__m128)(X), (int)(C), \
6858 (__v4sf)(__m128)(W), (__mmask8)(U)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006859
Craig Topperd2661882016-05-17 04:41:48 +00006860#define _mm_maskz_permute_ps(U, X, C) __extension__ ({ \
6861 (__m128)__builtin_ia32_vpermilps_mask((__v4sf)(__m128)(X), (int)(C), \
6862 (__v4sf)_mm_setzero_ps(), \
6863 (__mmask8)(U)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006864
Craig Topperd2661882016-05-17 04:41:48 +00006865#define _mm256_mask_permute_ps(W, U, X, C) __extension__ ({ \
6866 (__m256)__builtin_ia32_vpermilps256_mask((__v8sf)(__m256)(X), (int)(C), \
6867 (__v8sf)(__m256)(W), \
6868 (__mmask8)(U)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006869
Craig Topperd2661882016-05-17 04:41:48 +00006870#define _mm256_maskz_permute_ps(U, X, C) __extension__ ({ \
6871 (__m256)__builtin_ia32_vpermilps256_mask((__v8sf)(__m256)(X), (int)(C), \
6872 (__v8sf)_mm256_setzero_ps(), \
6873 (__mmask8)(U)); })
Michael Zuckermand8d2f622016-04-11 07:15:34 +00006874
6875static __inline__ __m128d __DEFAULT_FN_ATTRS
6876_mm_mask_permutevar_pd (__m128d __W, __mmask8 __U, __m128d __A,
6877 __m128i __C)
6878{
6879 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
6880 (__v2di) __C,
6881 (__v2df) __W,
6882 (__mmask8) __U);
6883}
6884
6885static __inline__ __m128d __DEFAULT_FN_ATTRS
6886_mm_maskz_permutevar_pd (__mmask8 __U, __m128d __A, __m128i __C)
6887{
6888 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
6889 (__v2di) __C,
6890 (__v2df)
6891 _mm_setzero_pd (),
6892 (__mmask8) __U);
6893}
6894
6895static __inline__ __m256d __DEFAULT_FN_ATTRS
6896_mm256_mask_permutevar_pd (__m256d __W, __mmask8 __U, __m256d __A,
6897 __m256i __C)
6898{
6899 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
6900 (__v4di) __C,
6901 (__v4df) __W,
6902 (__mmask8)
6903 __U);
6904}
6905
6906static __inline__ __m256d __DEFAULT_FN_ATTRS
6907_mm256_maskz_permutevar_pd (__mmask8 __U, __m256d __A, __m256i __C)
6908{
6909 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
6910 (__v4di) __C,
6911 (__v4df)
6912 _mm256_setzero_pd (),
6913 (__mmask8)
6914 __U);
6915}
6916
6917static __inline__ __m128 __DEFAULT_FN_ATTRS
6918_mm_mask_permutevar_ps (__m128 __W, __mmask8 __U, __m128 __A,
6919 __m128i __C)
6920{
6921 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
6922 (__v4si) __C,
6923 (__v4sf) __W,
6924 (__mmask8) __U);
6925}
6926
6927static __inline__ __m128 __DEFAULT_FN_ATTRS
6928_mm_maskz_permutevar_ps (__mmask8 __U, __m128 __A, __m128i __C)
6929{
6930 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
6931 (__v4si) __C,
6932 (__v4sf)
6933 _mm_setzero_ps (),
6934 (__mmask8) __U);
6935}
6936
6937static __inline__ __m256 __DEFAULT_FN_ATTRS
6938_mm256_mask_permutevar_ps (__m256 __W, __mmask8 __U, __m256 __A,
6939 __m256i __C)
6940{
6941 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
6942 (__v8si) __C,
6943 (__v8sf) __W,
6944 (__mmask8) __U);
6945}
6946
6947static __inline__ __m256 __DEFAULT_FN_ATTRS
6948_mm256_maskz_permutevar_ps (__mmask8 __U, __m256 __A, __m256i __C)
6949{
6950 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
6951 (__v8si) __C,
6952 (__v8sf)
6953 _mm256_setzero_ps (),
6954 (__mmask8) __U);
6955}
6956
Michael Zuckerman07525092016-04-11 10:22:07 +00006957static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6958_mm_test_epi32_mask (__m128i __A, __m128i __B)
6959{
6960 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6961 (__v4si) __B,
6962 (__mmask8) -1);
6963}
6964
6965static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6966_mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
6967{
6968 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
6969 (__v4si) __B, __U);
6970}
6971
6972static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6973_mm256_test_epi32_mask (__m256i __A, __m256i __B)
6974{
6975 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6976 (__v8si) __B,
6977 (__mmask8) -1);
6978}
6979
6980static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6981_mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
6982{
6983 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
6984 (__v8si) __B, __U);
6985}
6986
6987static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6988_mm_test_epi64_mask (__m128i __A, __m128i __B)
6989{
6990 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6991 (__v2di) __B,
6992 (__mmask8) -1);
6993}
6994
6995static __inline__ __mmask8 __DEFAULT_FN_ATTRS
6996_mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
6997{
6998 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
6999 (__v2di) __B, __U);
7000}
7001
7002static __inline__ __mmask8 __DEFAULT_FN_ATTRS
7003_mm256_test_epi64_mask (__m256i __A, __m256i __B)
7004{
7005 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
7006 (__v4di) __B,
7007 (__mmask8) -1);
7008}
7009
7010static __inline__ __mmask8 __DEFAULT_FN_ATTRS
7011_mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
7012{
7013 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
7014 (__v4di) __B, __U);
7015}
7016
7017static __inline__ __mmask8 __DEFAULT_FN_ATTRS
7018_mm_testn_epi32_mask (__m128i __A, __m128i __B)
7019{
7020 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
7021 (__v4si) __B,
7022 (__mmask8) -1);
7023}
7024
7025static __inline__ __mmask8 __DEFAULT_FN_ATTRS
7026_mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
7027{
7028 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
7029 (__v4si) __B, __U);
7030}
7031
7032static __inline__ __mmask8 __DEFAULT_FN_ATTRS
7033_mm256_testn_epi32_mask (__m256i __A, __m256i __B)
7034{
7035 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
7036 (__v8si) __B,
7037 (__mmask8) -1);
7038}
7039
7040static __inline__ __mmask8 __DEFAULT_FN_ATTRS
7041_mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
7042{
7043 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
7044 (__v8si) __B, __U);
7045}
7046
7047static __inline__ __mmask8 __DEFAULT_FN_ATTRS
7048_mm_testn_epi64_mask (__m128i __A, __m128i __B)
7049{
7050 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
7051 (__v2di) __B,
7052 (__mmask8) -1);
7053}
7054
7055static __inline__ __mmask8 __DEFAULT_FN_ATTRS
7056_mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
7057{
7058 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
7059 (__v2di) __B, __U);
7060}
7061
7062static __inline__ __mmask8 __DEFAULT_FN_ATTRS
7063_mm256_testn_epi64_mask (__m256i __A, __m256i __B)
7064{
7065 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
7066 (__v4di) __B,
7067 (__mmask8) -1);
7068}
7069
7070static __inline__ __mmask8 __DEFAULT_FN_ATTRS
7071_mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
7072{
7073 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
7074 (__v4di) __B, __U);
7075}
7076
7077
7078
Michael Zuckerman1af947a2016-04-11 12:32:31 +00007079static __inline__ __m128i __DEFAULT_FN_ATTRS
7080_mm_mask_unpackhi_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
7081 __m128i __B)
7082{
7083 return (__m128i) __builtin_ia32_punpckhdq128_mask ((__v4si) __A,
7084 (__v4si) __B,
7085 (__v4si) __W,
7086 (__mmask8) __U);
7087}
7088
7089static __inline__ __m128i __DEFAULT_FN_ATTRS
7090_mm_maskz_unpackhi_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
7091{
7092 return (__m128i) __builtin_ia32_punpckhdq128_mask ((__v4si) __A,
7093 (__v4si) __B,
7094 (__v4si)
7095 _mm_setzero_si128 (),
7096 (__mmask8) __U);
7097}
7098
7099static __inline__ __m256i __DEFAULT_FN_ATTRS
7100_mm256_mask_unpackhi_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
7101 __m256i __B)
7102{
7103 return (__m256i) __builtin_ia32_punpckhdq256_mask ((__v8si) __A,
7104 (__v8si) __B,
7105 (__v8si) __W,
7106 (__mmask8) __U);
7107}
7108
7109static __inline__ __m256i __DEFAULT_FN_ATTRS
7110_mm256_maskz_unpackhi_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
7111{
7112 return (__m256i) __builtin_ia32_punpckhdq256_mask ((__v8si) __A,
7113 (__v8si) __B,
7114 (__v8si)
7115 _mm256_setzero_si256 (),
7116 (__mmask8) __U);
7117}
7118
7119static __inline__ __m128i __DEFAULT_FN_ATTRS
7120_mm_mask_unpackhi_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
7121 __m128i __B)
7122{
7123 return (__m128i) __builtin_ia32_punpckhqdq128_mask ((__v2di) __A,
7124 (__v2di) __B,
7125 (__v2di) __W,
7126 (__mmask8) __U);
7127}
7128
7129static __inline__ __m128i __DEFAULT_FN_ATTRS
7130_mm_maskz_unpackhi_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
7131{
7132 return (__m128i) __builtin_ia32_punpckhqdq128_mask ((__v2di) __A,
7133 (__v2di) __B,
7134 (__v2di)
7135 _mm_setzero_di (),
7136 (__mmask8) __U);
7137}
7138
7139static __inline__ __m256i __DEFAULT_FN_ATTRS
7140_mm256_mask_unpackhi_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
7141 __m256i __B)
7142{
7143 return (__m256i) __builtin_ia32_punpckhqdq256_mask ((__v4di) __A,
7144 (__v4di) __B,
7145 (__v4di) __W,
7146 (__mmask8) __U);
7147}
7148
7149static __inline__ __m256i __DEFAULT_FN_ATTRS
7150_mm256_maskz_unpackhi_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
7151{
7152 return (__m256i) __builtin_ia32_punpckhqdq256_mask ((__v4di) __A,
7153 (__v4di) __B,
7154 (__v4di)
7155 _mm256_setzero_si256 (),
7156 (__mmask8) __U);
7157}
7158
7159static __inline__ __m128i __DEFAULT_FN_ATTRS
7160_mm_mask_unpacklo_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
7161 __m128i __B)
7162{
7163 return (__m128i) __builtin_ia32_punpckldq128_mask ((__v4si) __A,
7164 (__v4si) __B,
7165 (__v4si) __W,
7166 (__mmask8) __U);
7167}
7168
7169static __inline__ __m128i __DEFAULT_FN_ATTRS
7170_mm_maskz_unpacklo_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
7171{
7172 return (__m128i) __builtin_ia32_punpckldq128_mask ((__v4si) __A,
7173 (__v4si) __B,
7174 (__v4si)
7175 _mm_setzero_si128 (),
7176 (__mmask8) __U);
7177}
7178
7179static __inline__ __m256i __DEFAULT_FN_ATTRS
7180_mm256_mask_unpacklo_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
7181 __m256i __B)
7182{
7183 return (__m256i) __builtin_ia32_punpckldq256_mask ((__v8si) __A,
7184 (__v8si) __B,
7185 (__v8si) __W,
7186 (__mmask8) __U);
7187}
7188
7189static __inline__ __m256i __DEFAULT_FN_ATTRS
7190_mm256_maskz_unpacklo_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
7191{
7192 return (__m256i) __builtin_ia32_punpckldq256_mask ((__v8si) __A,
7193 (__v8si) __B,
7194 (__v8si)
7195 _mm256_setzero_si256 (),
7196 (__mmask8) __U);
7197}
7198
7199static __inline__ __m128i __DEFAULT_FN_ATTRS
7200_mm_mask_unpacklo_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
7201 __m128i __B)
7202{
7203 return (__m128i) __builtin_ia32_punpcklqdq128_mask ((__v2di) __A,
7204 (__v2di) __B,
7205 (__v2di) __W,
7206 (__mmask8) __U);
7207}
7208
7209static __inline__ __m128i __DEFAULT_FN_ATTRS
7210_mm_maskz_unpacklo_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
7211{
7212 return (__m128i) __builtin_ia32_punpcklqdq128_mask ((__v2di) __A,
7213 (__v2di) __B,
7214 (__v2di)
7215 _mm_setzero_di (),
7216 (__mmask8) __U);
7217}
7218
7219static __inline__ __m256i __DEFAULT_FN_ATTRS
7220_mm256_mask_unpacklo_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
7221 __m256i __B)
7222{
7223 return (__m256i) __builtin_ia32_punpcklqdq256_mask ((__v4di) __A,
7224 (__v4di) __B,
7225 (__v4di) __W,
7226 (__mmask8) __U);
7227}
7228
7229static __inline__ __m256i __DEFAULT_FN_ATTRS
7230_mm256_maskz_unpacklo_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
7231{
7232 return (__m256i) __builtin_ia32_punpcklqdq256_mask ((__v4di) __A,
7233 (__v4di) __B,
7234 (__v4di)
7235 _mm256_setzero_si256 (),
7236 (__mmask8) __U);
7237}
7238
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007239static __inline__ __m128i __DEFAULT_FN_ATTRS
7240_mm_mask_sra_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
7241 __m128i __B)
7242{
7243 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
7244 (__v4si) __B,
7245 (__v4si) __W,
7246 (__mmask8) __U);
7247}
7248
7249static __inline__ __m128i __DEFAULT_FN_ATTRS
7250_mm_maskz_sra_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
7251{
7252 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
7253 (__v4si) __B,
7254 (__v4si)
7255 _mm_setzero_si128 (),
7256 (__mmask8) __U);
7257}
7258
7259static __inline__ __m256i __DEFAULT_FN_ATTRS
7260_mm256_mask_sra_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
7261 __m128i __B)
7262{
7263 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
7264 (__v4si) __B,
7265 (__v8si) __W,
7266 (__mmask8) __U);
7267}
7268
7269static __inline__ __m256i __DEFAULT_FN_ATTRS
7270_mm256_maskz_sra_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
7271{
7272 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
7273 (__v4si) __B,
7274 (__v8si)
7275 _mm256_setzero_si256 (),
7276 (__mmask8) __U);
7277}
7278
Craig Topperd2661882016-05-17 04:41:48 +00007279#define _mm_mask_srai_epi32(W, U, A, imm) __extension__ ({ \
7280 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \
7281 (__v4si)(__m128i)(W), \
7282 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007283
Craig Topperd2661882016-05-17 04:41:48 +00007284#define _mm_maskz_srai_epi32(U, A, imm) __extension__ ({ \
7285 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \
7286 (__v4si)_mm_setzero_si128(), \
7287 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007288
Craig Topperd2661882016-05-17 04:41:48 +00007289#define _mm256_mask_srai_epi32(W, U, A, imm) __extension__ ({ \
7290 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \
7291 (__v8si)(__m256i)(W), \
7292 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007293
Craig Topperd2661882016-05-17 04:41:48 +00007294#define _mm256_maskz_srai_epi32(U, A, imm) __extension__ ({ \
7295 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \
7296 (__v8si)_mm256_setzero_si256(), \
7297 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007298
7299static __inline__ __m128i __DEFAULT_FN_ATTRS
7300_mm_sra_epi64 (__m128i __A, __m128i __B)
7301{
7302 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
7303 (__v2di) __B,
7304 (__v2di)
7305 _mm_setzero_di (),
7306 (__mmask8) -1);
7307}
7308
7309static __inline__ __m128i __DEFAULT_FN_ATTRS
7310_mm_mask_sra_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
7311 __m128i __B)
7312{
7313 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
7314 (__v2di) __B,
7315 (__v2di) __W,
7316 (__mmask8) __U);
7317}
7318
7319static __inline__ __m128i __DEFAULT_FN_ATTRS
7320_mm_maskz_sra_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
7321{
7322 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
7323 (__v2di) __B,
7324 (__v2di)
7325 _mm_setzero_di (),
7326 (__mmask8) __U);
7327}
7328
7329static __inline__ __m256i __DEFAULT_FN_ATTRS
7330_mm256_sra_epi64 (__m256i __A, __m128i __B)
7331{
7332 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
7333 (__v2di) __B,
7334 (__v4di)
7335 _mm256_setzero_si256 (),
7336 (__mmask8) -1);
7337}
7338
7339static __inline__ __m256i __DEFAULT_FN_ATTRS
7340_mm256_mask_sra_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
7341 __m128i __B)
7342{
7343 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
7344 (__v2di) __B,
7345 (__v4di) __W,
7346 (__mmask8) __U);
7347}
7348
7349static __inline__ __m256i __DEFAULT_FN_ATTRS
7350_mm256_maskz_sra_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
7351{
7352 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
7353 (__v2di) __B,
7354 (__v4di)
7355 _mm256_setzero_si256 (),
7356 (__mmask8) __U);
7357}
7358
Craig Topperd2661882016-05-17 04:41:48 +00007359#define _mm_srai_epi64(A, imm) __extension__ ({ \
7360 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7361 (__v2di)_mm_setzero_di(), \
7362 (__mmask8)-1); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007363
Craig Topperd2661882016-05-17 04:41:48 +00007364#define _mm_mask_srai_epi64(W, U, A, imm) __extension__ ({ \
7365 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7366 (__v2di)(__m128i)(W), \
7367 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007368
Craig Topperd2661882016-05-17 04:41:48 +00007369#define _mm_maskz_srai_epi64(U, A, imm) __extension__ ({ \
7370 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \
7371 (__v2di)_mm_setzero_si128(), \
7372 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007373
Craig Topperd2661882016-05-17 04:41:48 +00007374#define _mm256_srai_epi64(A, imm) __extension__ ({ \
7375 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7376 (__v4di)_mm256_setzero_si256(), \
7377 (__mmask8)-1); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007378
Craig Topperd2661882016-05-17 04:41:48 +00007379#define _mm256_mask_srai_epi64(W, U, A, imm) __extension__ ({ \
7380 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7381 (__v4di)(__m256i)(W), \
7382 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007383
Craig Topperd2661882016-05-17 04:41:48 +00007384#define _mm256_maskz_srai_epi64(U, A, imm) __extension__ ({ \
7385 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \
7386 (__v4di)_mm256_setzero_si256(), \
7387 (__mmask8)(U)); })
Michael Zuckerman6b5f4d82016-04-11 15:46:39 +00007388
Craig Topperd2661882016-05-17 04:41:48 +00007389#define _mm_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
7390 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
7391 (__v4si)(__m128i)(B), \
7392 (__v4si)(__m128i)(C), (int)(imm), \
7393 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007394
Craig Topperd2661882016-05-17 04:41:48 +00007395#define _mm_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
7396 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \
7397 (__v4si)(__m128i)(B), \
7398 (__v4si)(__m128i)(C), (int)(imm), \
7399 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007400
Craig Topperd2661882016-05-17 04:41:48 +00007401#define _mm_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
7402 (__m128i)__builtin_ia32_pternlogd128_maskz((__v4si)(__m128i)(A), \
7403 (__v4si)(__m128i)(B), \
7404 (__v4si)(__m128i)(C), (int)(imm), \
7405 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007406
Craig Topperd2661882016-05-17 04:41:48 +00007407#define _mm256_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
7408 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
7409 (__v8si)(__m256i)(B), \
7410 (__v8si)(__m256i)(C), (int)(imm), \
7411 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007412
Craig Topperd2661882016-05-17 04:41:48 +00007413#define _mm256_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
7414 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \
7415 (__v8si)(__m256i)(B), \
7416 (__v8si)(__m256i)(C), (int)(imm), \
7417 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007418
Craig Topperd2661882016-05-17 04:41:48 +00007419#define _mm256_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
7420 (__m256i)__builtin_ia32_pternlogd256_maskz((__v8si)(__m256i)(A), \
7421 (__v8si)(__m256i)(B), \
7422 (__v8si)(__m256i)(C), (int)(imm), \
7423 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007424
Craig Topperd2661882016-05-17 04:41:48 +00007425#define _mm_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
7426 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
7427 (__v2di)(__m128i)(B), \
7428 (__v2di)(__m128i)(C), (int)(imm), \
7429 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007430
Craig Topperd2661882016-05-17 04:41:48 +00007431#define _mm_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
7432 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
7433 (__v2di)(__m128i)(B), \
7434 (__v2di)(__m128i)(C), (int)(imm), \
7435 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007436
Craig Topperd2661882016-05-17 04:41:48 +00007437#define _mm_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
7438 (__m128i)__builtin_ia32_pternlogq128_maskz((__v2di)(__m128i)(A), \
7439 (__v2di)(__m128i)(B), \
7440 (__v2di)(__m128i)(C), (int)(imm), \
7441 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007442
Craig Topperd2661882016-05-17 04:41:48 +00007443#define _mm256_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
7444 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
7445 (__v4di)(__m256i)(B), \
7446 (__v4di)(__m256i)(C), (int)(imm), \
7447 (__mmask8)-1); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007448
Craig Topperd2661882016-05-17 04:41:48 +00007449#define _mm256_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
7450 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \
7451 (__v4di)(__m256i)(B), \
7452 (__v4di)(__m256i)(C), (int)(imm), \
7453 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007454
Craig Topperd2661882016-05-17 04:41:48 +00007455#define _mm256_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
7456 (__m256i)__builtin_ia32_pternlogq256_maskz((__v4di)(__m256i)(A), \
7457 (__v4di)(__m256i)(B), \
7458 (__v4di)(__m256i)(C), (int)(imm), \
7459 (__mmask8)(U)); })
Michael Zuckerman81f468c2016-04-11 17:04:21 +00007460
7461
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007462
Craig Topperd2661882016-05-17 04:41:48 +00007463#define _mm256_shuffle_f32x4(A, B, imm) __extension__ ({ \
7464 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7465 (__v8sf)(__m256)(B), (int)(imm), \
7466 (__v8sf)_mm256_setzero_ps(), \
7467 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007468
Craig Topperd2661882016-05-17 04:41:48 +00007469#define _mm256_mask_shuffle_f32x4(W, U, A, B, imm) __extension__ ({ \
7470 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7471 (__v8sf)(__m256)(B), (int)(imm), \
7472 (__v8sf)(__m256)(W), \
7473 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007474
Craig Topperd2661882016-05-17 04:41:48 +00007475#define _mm256_maskz_shuffle_f32x4(U, A, B, imm) __extension__ ({ \
7476 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \
7477 (__v8sf)(__m256)(B), (int)(imm), \
7478 (__v8sf)_mm256_setzero_ps(), \
7479 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007480
Craig Topperd2661882016-05-17 04:41:48 +00007481#define _mm256_shuffle_f64x2(A, B, imm) __extension__ ({ \
7482 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7483 (__v4df)(__m256d)(B), \
7484 (int)(imm), \
7485 (__v4df)_mm256_setzero_pd(), \
7486 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007487
Craig Topperd2661882016-05-17 04:41:48 +00007488#define _mm256_mask_shuffle_f64x2(W, U, A, B, imm) __extension__ ({ \
7489 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7490 (__v4df)(__m256d)(B), \
7491 (int)(imm), \
7492 (__v4df)(__m256d)(W), \
7493 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007494
Craig Topperd2661882016-05-17 04:41:48 +00007495#define _mm256_maskz_shuffle_f64x2(U, A, B, imm) __extension__ ({ \
7496 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \
7497 (__v4df)(__m256d)(B), \
7498 (int)(imm), \
7499 (__v4df)_mm256_setzero_pd(), \
7500 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007501
Craig Topperd2661882016-05-17 04:41:48 +00007502#define _mm256_shuffle_i32x4(A, B, imm) __extension__ ({ \
7503 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7504 (__v8si)(__m256i)(B), \
7505 (int)(imm), \
7506 (__v8si)_mm256_setzero_si256(), \
7507 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007508
Craig Topperd2661882016-05-17 04:41:48 +00007509#define _mm256_mask_shuffle_i32x4(W, U, A, B, imm) __extension__ ({ \
7510 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7511 (__v8si)(__m256i)(B), \
7512 (int)(imm), \
7513 (__v8si)(__m256i)(W), \
7514 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007515
Craig Topperd2661882016-05-17 04:41:48 +00007516#define _mm256_maskz_shuffle_i32x4(U, A, B, imm) __extension__ ({ \
7517 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \
7518 (__v8si)(__m256i)(B), \
7519 (int)(imm), \
7520 (__v8si)_mm256_setzero_si256(), \
7521 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007522
Craig Topperd2661882016-05-17 04:41:48 +00007523#define _mm256_shuffle_i64x2(A, B, imm) __extension__ ({ \
7524 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7525 (__v4di)(__m256i)(B), \
7526 (int)(imm), \
7527 (__v4di)_mm256_setzero_si256(), \
7528 (__mmask8)-1); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007529
Craig Topperd2661882016-05-17 04:41:48 +00007530#define _mm256_mask_shuffle_i64x2(W, U, A, B, imm) __extension__ ({ \
7531 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7532 (__v4di)(__m256i)(B), \
7533 (int)(imm), \
7534 (__v4di)(__m256i)(W), \
7535 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007536
Craig Topperd2661882016-05-17 04:41:48 +00007537#define _mm256_maskz_shuffle_i64x2(U, A, B, imm) __extension__ ({ \
7538 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \
7539 (__v4di)(__m256i)(B), \
7540 (int)(imm), \
7541 (__v4di)_mm256_setzero_si256(), \
7542 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007543
Craig Topperd2661882016-05-17 04:41:48 +00007544#define _mm_mask_shuffle_pd(W, U, A, B, imm) __extension__ ({ \
7545 (__m128d)__builtin_ia32_shufpd128_mask((__v2df)(__m128d)(A), \
7546 (__v2df)(__m128d)(B), (int)(imm), \
7547 (__v2df)(__m128d)(W), \
7548 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007549
Craig Topperd2661882016-05-17 04:41:48 +00007550#define _mm_maskz_shuffle_pd(U, A, B, imm) __extension__ ({ \
7551 (__m128d)__builtin_ia32_shufpd128_mask((__v2df)(__m128d)(A), \
7552 (__v2df)(__m128d)(B), (int)(imm), \
7553 (__v2df)_mm_setzero_pd(), \
7554 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007555
Craig Topperd2661882016-05-17 04:41:48 +00007556#define _mm256_mask_shuffle_pd(W, U, A, B, imm) __extension__ ({ \
7557 (__m256d)__builtin_ia32_shufpd256_mask((__v4df)(__m256d)(A), \
7558 (__v4df)(__m256d)(B), (int)(imm), \
7559 (__v4df)(__m256d)(W), \
7560 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007561
Craig Topperd2661882016-05-17 04:41:48 +00007562#define _mm256_maskz_shuffle_pd(U, A, B, imm) __extension__ ({ \
7563 (__m256d)__builtin_ia32_shufpd256_mask((__v4df)(__m256d)(A), \
7564 (__v4df)(__m256d)(B), (int)(imm), \
7565 (__v4df)_mm256_setzero_pd(), \
7566 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007567
Craig Topperd2661882016-05-17 04:41:48 +00007568#define _mm_mask_shuffle_ps(W, U, A, B, imm) __extension__ ({ \
7569 (__m128)__builtin_ia32_shufps128_mask((__v4sf)(__m128)(A), \
7570 (__v4sf)(__m128)(B), (int)(imm), \
7571 (__v4sf)(__m128)(W), (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007572
Craig Topperd2661882016-05-17 04:41:48 +00007573#define _mm_maskz_shuffle_ps(U, A, B, imm) __extension__ ({ \
7574 (__m128)__builtin_ia32_shufps128_mask((__v4sf)(__m128)(A), \
7575 (__v4sf)(__m128)(B), (int)(imm), \
7576 (__v4sf)_mm_setzero_ps(), \
7577 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007578
Craig Topperd2661882016-05-17 04:41:48 +00007579#define _mm256_mask_shuffle_ps(W, U, A, B, imm) __extension__ ({ \
7580 (__m256)__builtin_ia32_shufps256_mask((__v8sf)(__m256)(A), \
7581 (__v8sf)(__m256)(B), (int)(imm), \
7582 (__v8sf)(__m256)(W), (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007583
Craig Topperd2661882016-05-17 04:41:48 +00007584#define _mm256_maskz_shuffle_ps(U, A, B, imm) __extension__ ({ \
7585 (__m256)__builtin_ia32_shufps256_mask((__v8sf)(__m256)(A), \
7586 (__v8sf)(__m256)(B), (int)(imm), \
7587 (__v8sf)_mm256_setzero_ps(), \
7588 (__mmask8)(U)); })
Michael Zuckerman04fb3bc2016-04-12 07:59:39 +00007589
7590static __inline__ __m128d __DEFAULT_FN_ATTRS
7591_mm_rsqrt14_pd (__m128d __A)
7592{
7593 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7594 (__v2df)
7595 _mm_setzero_pd (),
7596 (__mmask8) -1);
7597}
7598
7599static __inline__ __m128d __DEFAULT_FN_ATTRS
7600_mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A)
7601{
7602 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7603 (__v2df) __W,
7604 (__mmask8) __U);
7605}
7606
7607static __inline__ __m128d __DEFAULT_FN_ATTRS
7608_mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A)
7609{
7610 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
7611 (__v2df)
7612 _mm_setzero_pd (),
7613 (__mmask8) __U);
7614}
7615
7616static __inline__ __m256d __DEFAULT_FN_ATTRS
7617_mm256_rsqrt14_pd (__m256d __A)
7618{
7619 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7620 (__v4df)
7621 _mm256_setzero_pd (),
7622 (__mmask8) -1);
7623}
7624
7625static __inline__ __m256d __DEFAULT_FN_ATTRS
7626_mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A)
7627{
7628 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7629 (__v4df) __W,
7630 (__mmask8) __U);
7631}
7632
7633static __inline__ __m256d __DEFAULT_FN_ATTRS
7634_mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A)
7635{
7636 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
7637 (__v4df)
7638 _mm256_setzero_pd (),
7639 (__mmask8) __U);
7640}
7641
7642static __inline__ __m128 __DEFAULT_FN_ATTRS
7643_mm_rsqrt14_ps (__m128 __A)
7644{
7645 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7646 (__v4sf)
7647 _mm_setzero_ps (),
7648 (__mmask8) -1);
7649}
7650
7651static __inline__ __m128 __DEFAULT_FN_ATTRS
7652_mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A)
7653{
7654 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7655 (__v4sf) __W,
7656 (__mmask8) __U);
7657}
7658
7659static __inline__ __m128 __DEFAULT_FN_ATTRS
7660_mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A)
7661{
7662 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
7663 (__v4sf)
7664 _mm_setzero_ps (),
7665 (__mmask8) __U);
7666}
7667
7668static __inline__ __m256 __DEFAULT_FN_ATTRS
7669_mm256_rsqrt14_ps (__m256 __A)
7670{
7671 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7672 (__v8sf)
7673 _mm256_setzero_ps (),
7674 (__mmask8) -1);
7675}
7676
7677static __inline__ __m256 __DEFAULT_FN_ATTRS
7678_mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A)
7679{
7680 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7681 (__v8sf) __W,
7682 (__mmask8) __U);
7683}
7684
7685static __inline__ __m256 __DEFAULT_FN_ATTRS
7686_mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A)
7687{
7688 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
7689 (__v8sf)
7690 _mm256_setzero_ps (),
7691 (__mmask8) __U);
7692}
7693
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007694static __inline__ __m256 __DEFAULT_FN_ATTRS
7695_mm256_broadcast_f32x4 (__m128 __A)
7696{
7697 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7698 (__v8sf)_mm256_undefined_pd (),
Craig Topper406d5cd2016-06-04 05:43:37 +00007699 (__mmask8) -1);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007700}
7701
7702static __inline__ __m256 __DEFAULT_FN_ATTRS
7703_mm256_mask_broadcast_f32x4 (__m256 __O, __mmask8 __M, __m128 __A)
7704{
7705 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7706 (__v8sf) __O,
7707 __M);
7708}
7709
7710static __inline__ __m256 __DEFAULT_FN_ATTRS
7711_mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A)
7712{
7713 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
7714 (__v8sf) _mm256_setzero_ps (),
7715 __M);
7716}
7717
7718static __inline__ __m256i __DEFAULT_FN_ATTRS
7719_mm256_broadcast_i32x4 (__m128i __A)
7720{
7721 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
7722 (__v8si)_mm256_undefined_si256 (),
Craig Topper406d5cd2016-06-04 05:43:37 +00007723 (__mmask8) -1);
Michael Zuckermanc2b61282016-04-13 12:58:01 +00007724}
7725
7726static __inline__ __m256i __DEFAULT_FN_ATTRS
7727_mm256_mask_broadcast_i32x4 (__m256i __O, __mmask8 __M, __m128i __A)
7728{
7729 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
7730 (__v8si)
7731 __O, __M);
7732}
7733
7734static __inline__ __m256i __DEFAULT_FN_ATTRS
7735_mm256_maskz_broadcast_i32x4 (__mmask8 __M, __m128i __A)
7736{
7737 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si)
7738 __A,
7739 (__v8si) _mm256_setzero_si256 (),
7740 __M);
7741}
7742
7743static __inline__ __m256d __DEFAULT_FN_ATTRS
7744_mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A)
7745{
7746 return (__m256d) __builtin_ia32_broadcastsd256_mask ((__v2df) __A,
7747 (__v4df) __O,
7748 __M);
7749}
7750
7751static __inline__ __m256d __DEFAULT_FN_ATTRS
7752_mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
7753{
7754 return (__m256d) __builtin_ia32_broadcastsd256_mask ((__v2df) __A,
7755 (__v4df) _mm256_setzero_pd (),
7756 __M);
7757}
7758
7759static __inline__ __m128 __DEFAULT_FN_ATTRS
7760_mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A)
7761{
7762 return (__m128) __builtin_ia32_broadcastss128_mask ((__v4sf) __A,
7763 (__v4sf) __O,
7764 __M);
7765}
7766
7767static __inline__ __m128 __DEFAULT_FN_ATTRS
7768_mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7769{
7770 return (__m128) __builtin_ia32_broadcastss128_mask ((__v4sf) __A,
7771 (__v4sf) _mm_setzero_ps (),
7772 __M);
7773}
7774
7775static __inline__ __m256 __DEFAULT_FN_ATTRS
7776_mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A)
7777{
7778 return (__m256) __builtin_ia32_broadcastss256_mask ((__v4sf) __A,
7779 (__v8sf) __O,
7780 __M);
7781}
7782
7783static __inline__ __m256 __DEFAULT_FN_ATTRS
7784_mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
7785{
7786 return (__m256) __builtin_ia32_broadcastss256_mask ((__v4sf) __A,
7787 (__v8sf) _mm256_setzero_ps (),
7788 __M);
7789}
7790
7791static __inline__ __m128i __DEFAULT_FN_ATTRS
7792_mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
7793{
7794 return (__m128i) __builtin_ia32_pbroadcastd128_mask ((__v4si) __A,
7795 (__v4si) __O,
7796 __M);
7797}
7798
7799static __inline__ __m128i __DEFAULT_FN_ATTRS
7800_mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7801{
7802 return (__m128i) __builtin_ia32_pbroadcastd128_mask ((__v4si) __A,
7803 (__v4si) _mm_setzero_si128 (),
7804 __M);
7805}
7806
7807static __inline__ __m256i __DEFAULT_FN_ATTRS
7808_mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A)
7809{
7810 return (__m256i) __builtin_ia32_pbroadcastd256_mask ((__v4si) __A,
7811 (__v8si) __O,
7812 __M);
7813}
7814
7815static __inline__ __m256i __DEFAULT_FN_ATTRS
7816_mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
7817{
7818 return (__m256i) __builtin_ia32_pbroadcastd256_mask ((__v4si) __A,
7819 (__v8si) _mm256_setzero_si256 (),
7820 __M);
7821}
7822
7823static __inline__ __m128i __DEFAULT_FN_ATTRS
7824_mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A)
7825{
7826 return (__m128i) __builtin_ia32_pbroadcastq128_mask ((__v2di) __A,
7827 (__v2di) __O,
7828 __M);
7829}
7830
7831static __inline__ __m128i __DEFAULT_FN_ATTRS
7832_mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7833{
7834 return (__m128i) __builtin_ia32_pbroadcastq128_mask ((__v2di) __A,
7835 (__v2di) _mm_setzero_si128 (),
7836 __M);
7837}
7838
7839static __inline__ __m256i __DEFAULT_FN_ATTRS
7840_mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A)
7841{
7842 return (__m256i) __builtin_ia32_pbroadcastq256_mask ((__v2di) __A,
7843 (__v4di) __O,
7844 __M);
7845}
7846
7847static __inline__ __m256i __DEFAULT_FN_ATTRS
7848_mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
7849{
7850 return (__m256i) __builtin_ia32_pbroadcastq256_mask ((__v2di) __A,
7851 (__v4di) _mm256_setzero_si256 (),
7852 __M);
7853}
7854
Michael Zuckermane1680612016-04-13 15:02:04 +00007855static __inline__ __m128i __DEFAULT_FN_ATTRS
7856_mm_cvtsepi32_epi8 (__m128i __A)
7857{
7858 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7859 (__v16qi)_mm_undefined_si128(),
7860 (__mmask8) -1);
7861}
7862
7863static __inline__ __m128i __DEFAULT_FN_ATTRS
7864_mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7865{
7866 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7867 (__v16qi) __O, __M);
7868}
7869
7870static __inline__ __m128i __DEFAULT_FN_ATTRS
7871_mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A)
7872{
7873 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
7874 (__v16qi) _mm_setzero_si128 (),
7875 __M);
7876}
7877
7878static __inline__ void __DEFAULT_FN_ATTRS
7879_mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7880{
7881 __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
7882}
7883
7884static __inline__ __m128i __DEFAULT_FN_ATTRS
7885_mm256_cvtsepi32_epi8 (__m256i __A)
7886{
7887 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7888 (__v16qi)_mm_undefined_si128(),
7889 (__mmask8) -1);
7890}
7891
7892static __inline__ __m128i __DEFAULT_FN_ATTRS
7893_mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
7894{
7895 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7896 (__v16qi) __O, __M);
7897}
7898
7899static __inline__ __m128i __DEFAULT_FN_ATTRS
7900_mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A)
7901{
7902 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
7903 (__v16qi) _mm_setzero_si128 (),
7904 __M);
7905}
7906
7907static __inline__ void __DEFAULT_FN_ATTRS
7908_mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
7909{
7910 __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
7911}
7912
7913static __inline__ __m128i __DEFAULT_FN_ATTRS
7914_mm_cvtsepi32_epi16 (__m128i __A)
7915{
7916 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7917 (__v8hi)_mm_setzero_si128 (),
7918 (__mmask8) -1);
7919}
7920
7921static __inline__ __m128i __DEFAULT_FN_ATTRS
7922_mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
7923{
7924 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7925 (__v8hi)__O,
7926 __M);
7927}
7928
7929static __inline__ __m128i __DEFAULT_FN_ATTRS
7930_mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A)
7931{
7932 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
7933 (__v8hi) _mm_setzero_si128 (),
7934 __M);
7935}
7936
7937static __inline__ void __DEFAULT_FN_ATTRS
7938_mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
7939{
7940 __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
7941}
7942
7943static __inline__ __m128i __DEFAULT_FN_ATTRS
7944_mm256_cvtsepi32_epi16 (__m256i __A)
7945{
7946 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7947 (__v8hi)_mm_undefined_si128(),
7948 (__mmask8) -1);
7949}
7950
7951static __inline__ __m128i __DEFAULT_FN_ATTRS
7952_mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
7953{
7954 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7955 (__v8hi) __O, __M);
7956}
7957
7958static __inline__ __m128i __DEFAULT_FN_ATTRS
7959_mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A)
7960{
7961 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
7962 (__v8hi) _mm_setzero_si128 (),
7963 __M);
7964}
7965
7966static __inline__ void __DEFAULT_FN_ATTRS
7967_mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
7968{
7969 __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
7970}
7971
7972static __inline__ __m128i __DEFAULT_FN_ATTRS
7973_mm_cvtsepi64_epi8 (__m128i __A)
7974{
7975 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7976 (__v16qi)_mm_undefined_si128(),
7977 (__mmask8) -1);
7978}
7979
7980static __inline__ __m128i __DEFAULT_FN_ATTRS
7981_mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
7982{
7983 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7984 (__v16qi) __O, __M);
7985}
7986
7987static __inline__ __m128i __DEFAULT_FN_ATTRS
7988_mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A)
7989{
7990 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
7991 (__v16qi) _mm_setzero_si128 (),
7992 __M);
7993}
7994
7995static __inline__ void __DEFAULT_FN_ATTRS
7996_mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
7997{
7998 __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
7999}
8000
8001static __inline__ __m128i __DEFAULT_FN_ATTRS
8002_mm256_cvtsepi64_epi8 (__m256i __A)
8003{
8004 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
8005 (__v16qi)_mm_undefined_si128(),
8006 (__mmask8) -1);
8007}
8008
8009static __inline__ __m128i __DEFAULT_FN_ATTRS
8010_mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8011{
8012 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
8013 (__v16qi) __O, __M);
8014}
8015
8016static __inline__ __m128i __DEFAULT_FN_ATTRS
8017_mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A)
8018{
8019 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
8020 (__v16qi) _mm_setzero_si128 (),
8021 __M);
8022}
8023
8024static __inline__ void __DEFAULT_FN_ATTRS
8025_mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8026{
8027 __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
8028}
8029
8030static __inline__ __m128i __DEFAULT_FN_ATTRS
8031_mm_cvtsepi64_epi32 (__m128i __A)
8032{
8033 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
8034 (__v4si)_mm_undefined_si128(),
8035 (__mmask8) -1);
8036}
8037
8038static __inline__ __m128i __DEFAULT_FN_ATTRS
8039_mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
8040{
8041 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
8042 (__v4si) __O, __M);
8043}
8044
8045static __inline__ __m128i __DEFAULT_FN_ATTRS
8046_mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A)
8047{
8048 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
8049 (__v4si) _mm_setzero_si128 (),
8050 __M);
8051}
8052
8053static __inline__ void __DEFAULT_FN_ATTRS
8054_mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
8055{
8056 __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
8057}
8058
8059static __inline__ __m128i __DEFAULT_FN_ATTRS
8060_mm256_cvtsepi64_epi32 (__m256i __A)
8061{
8062 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
8063 (__v4si)_mm_undefined_si128(),
8064 (__mmask8) -1);
8065}
8066
8067static __inline__ __m128i __DEFAULT_FN_ATTRS
8068_mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
8069{
8070 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
8071 (__v4si)__O,
8072 __M);
8073}
8074
8075static __inline__ __m128i __DEFAULT_FN_ATTRS
8076_mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A)
8077{
8078 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
8079 (__v4si) _mm_setzero_si128 (),
8080 __M);
8081}
8082
8083static __inline__ void __DEFAULT_FN_ATTRS
8084_mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8085{
8086 __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8087}
8088
8089static __inline__ __m128i __DEFAULT_FN_ATTRS
8090_mm_cvtsepi64_epi16 (__m128i __A)
8091{
8092 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
8093 (__v8hi)_mm_undefined_si128(),
8094 (__mmask8) -1);
8095}
8096
8097static __inline__ __m128i __DEFAULT_FN_ATTRS
8098_mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8099{
8100 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
8101 (__v8hi) __O, __M);
8102}
8103
8104static __inline__ __m128i __DEFAULT_FN_ATTRS
8105_mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A)
8106{
8107 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
8108 (__v8hi) _mm_setzero_si128 (),
8109 __M);
8110}
8111
8112static __inline__ void __DEFAULT_FN_ATTRS
8113_mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8114{
8115 __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8116}
8117
8118static __inline__ __m128i __DEFAULT_FN_ATTRS
8119_mm256_cvtsepi64_epi16 (__m256i __A)
8120{
8121 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
8122 (__v8hi)_mm_undefined_si128(),
8123 (__mmask8) -1);
8124}
8125
8126static __inline__ __m128i __DEFAULT_FN_ATTRS
8127_mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8128{
8129 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
8130 (__v8hi) __O, __M);
8131}
8132
8133static __inline__ __m128i __DEFAULT_FN_ATTRS
8134_mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A)
8135{
8136 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
8137 (__v8hi) _mm_setzero_si128 (),
8138 __M);
8139}
8140
8141static __inline__ void __DEFAULT_FN_ATTRS
8142_mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8143{
8144 __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8145}
8146
Michael Zuckermand8715312016-04-14 06:48:09 +00008147static __inline__ __m128i __DEFAULT_FN_ATTRS
8148_mm_cvtusepi32_epi8 (__m128i __A)
8149{
8150 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
8151 (__v16qi)_mm_undefined_si128(),
8152 (__mmask8) -1);
8153}
8154
8155static __inline__ __m128i __DEFAULT_FN_ATTRS
8156_mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8157{
8158 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
8159 (__v16qi) __O,
8160 __M);
8161}
8162
8163static __inline__ __m128i __DEFAULT_FN_ATTRS
8164_mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A)
8165{
8166 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
8167 (__v16qi) _mm_setzero_si128 (),
8168 __M);
8169}
8170
8171static __inline__ void __DEFAULT_FN_ATTRS
8172_mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8173{
8174 __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
8175}
8176
8177static __inline__ __m128i __DEFAULT_FN_ATTRS
8178_mm256_cvtusepi32_epi8 (__m256i __A)
8179{
8180 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
8181 (__v16qi)_mm_undefined_si128(),
8182 (__mmask8) -1);
8183}
8184
8185static __inline__ __m128i __DEFAULT_FN_ATTRS
8186_mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8187{
8188 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
8189 (__v16qi) __O,
8190 __M);
8191}
8192
8193static __inline__ __m128i __DEFAULT_FN_ATTRS
8194_mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A)
8195{
8196 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
8197 (__v16qi) _mm_setzero_si128 (),
8198 __M);
8199}
8200
8201static __inline__ void __DEFAULT_FN_ATTRS
8202_mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8203{
8204 __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M);
8205}
8206
8207static __inline__ __m128i __DEFAULT_FN_ATTRS
8208_mm_cvtusepi32_epi16 (__m128i __A)
8209{
8210 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
8211 (__v8hi)_mm_undefined_si128(),
8212 (__mmask8) -1);
8213}
8214
8215static __inline__ __m128i __DEFAULT_FN_ATTRS
8216_mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8217{
8218 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
8219 (__v8hi) __O, __M);
8220}
8221
8222static __inline__ __m128i __DEFAULT_FN_ATTRS
8223_mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A)
8224{
8225 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
8226 (__v8hi) _mm_setzero_si128 (),
8227 __M);
8228}
8229
8230static __inline__ void __DEFAULT_FN_ATTRS
8231_mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8232{
8233 __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
8234}
8235
8236static __inline__ __m128i __DEFAULT_FN_ATTRS
8237_mm256_cvtusepi32_epi16 (__m256i __A)
8238{
8239 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
8240 (__v8hi) _mm_undefined_si128(),
8241 (__mmask8) -1);
8242}
8243
8244static __inline__ __m128i __DEFAULT_FN_ATTRS
8245_mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8246{
8247 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
8248 (__v8hi) __O, __M);
8249}
8250
8251static __inline__ __m128i __DEFAULT_FN_ATTRS
8252_mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A)
8253{
8254 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
8255 (__v8hi) _mm_setzero_si128 (),
8256 __M);
8257}
8258
8259static __inline__ void __DEFAULT_FN_ATTRS
8260_mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8261{
8262 __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
8263}
8264
8265static __inline__ __m128i __DEFAULT_FN_ATTRS
8266_mm_cvtusepi64_epi8 (__m128i __A)
8267{
8268 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
8269 (__v16qi)_mm_undefined_si128(),
8270 (__mmask8) -1);
8271}
8272
8273static __inline__ __m128i __DEFAULT_FN_ATTRS
8274_mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8275{
8276 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
8277 (__v16qi) __O,
8278 __M);
8279}
8280
8281static __inline__ __m128i __DEFAULT_FN_ATTRS
8282_mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A)
8283{
8284 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
8285 (__v16qi) _mm_setzero_si128 (),
8286 __M);
8287}
8288
8289static __inline__ void __DEFAULT_FN_ATTRS
8290_mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8291{
8292 __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
8293}
8294
8295static __inline__ __m128i __DEFAULT_FN_ATTRS
8296_mm256_cvtusepi64_epi8 (__m256i __A)
8297{
8298 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
8299 (__v16qi)_mm_undefined_si128(),
8300 (__mmask8) -1);
8301}
8302
8303static __inline__ __m128i __DEFAULT_FN_ATTRS
8304_mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8305{
8306 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
8307 (__v16qi) __O,
8308 __M);
8309}
8310
8311static __inline__ __m128i __DEFAULT_FN_ATTRS
8312_mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A)
8313{
8314 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
8315 (__v16qi) _mm_setzero_si128 (),
8316 __M);
8317}
8318
8319static __inline__ void __DEFAULT_FN_ATTRS
8320_mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8321{
8322 __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
8323}
8324
8325static __inline__ __m128i __DEFAULT_FN_ATTRS
8326_mm_cvtusepi64_epi32 (__m128i __A)
8327{
8328 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
8329 (__v4si)_mm_undefined_si128(),
8330 (__mmask8) -1);
8331}
8332
8333static __inline__ __m128i __DEFAULT_FN_ATTRS
8334_mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
8335{
8336 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
8337 (__v4si) __O, __M);
8338}
8339
8340static __inline__ __m128i __DEFAULT_FN_ATTRS
8341_mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A)
8342{
8343 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
8344 (__v4si) _mm_setzero_si128 (),
8345 __M);
8346}
8347
8348static __inline__ void __DEFAULT_FN_ATTRS
8349_mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
8350{
8351 __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
8352}
8353
8354static __inline__ __m128i __DEFAULT_FN_ATTRS
8355_mm256_cvtusepi64_epi32 (__m256i __A)
8356{
8357 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8358 (__v4si)_mm_undefined_si128(),
8359 (__mmask8) -1);
8360}
8361
8362static __inline__ __m128i __DEFAULT_FN_ATTRS
8363_mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
8364{
8365 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8366 (__v4si) __O, __M);
8367}
8368
8369static __inline__ __m128i __DEFAULT_FN_ATTRS
8370_mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A)
8371{
8372 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
8373 (__v4si) _mm_setzero_si128 (),
8374 __M);
8375}
8376
8377static __inline__ void __DEFAULT_FN_ATTRS
8378_mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8379{
8380 __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8381}
8382
8383static __inline__ __m128i __DEFAULT_FN_ATTRS
8384_mm_cvtusepi64_epi16 (__m128i __A)
8385{
8386 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8387 (__v8hi)_mm_undefined_si128(),
8388 (__mmask8) -1);
8389}
8390
8391static __inline__ __m128i __DEFAULT_FN_ATTRS
8392_mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8393{
8394 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8395 (__v8hi) __O, __M);
8396}
8397
8398static __inline__ __m128i __DEFAULT_FN_ATTRS
8399_mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A)
8400{
8401 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
8402 (__v8hi) _mm_setzero_si128 (),
8403 __M);
8404}
8405
8406static __inline__ void __DEFAULT_FN_ATTRS
8407_mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8408{
8409 __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8410}
8411
8412static __inline__ __m128i __DEFAULT_FN_ATTRS
8413_mm256_cvtusepi64_epi16 (__m256i __A)
8414{
8415 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8416 (__v8hi)_mm_undefined_si128(),
8417 (__mmask8) -1);
8418}
8419
8420static __inline__ __m128i __DEFAULT_FN_ATTRS
8421_mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8422{
8423 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8424 (__v8hi) __O, __M);
8425}
8426
8427static __inline__ __m128i __DEFAULT_FN_ATTRS
8428_mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A)
8429{
8430 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
8431 (__v8hi) _mm_setzero_si128 (),
8432 __M);
8433}
8434
8435static __inline__ void __DEFAULT_FN_ATTRS
8436_mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8437{
8438 return __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8439}
8440
Michael Zuckerman0a3508a2016-04-14 07:56:51 +00008441static __inline__ __m128i __DEFAULT_FN_ATTRS
8442_mm_cvtepi32_epi8 (__m128i __A)
8443{
8444 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8445 (__v16qi)_mm_undefined_si128(),
8446 (__mmask8) -1);
8447}
8448
8449static __inline__ __m128i __DEFAULT_FN_ATTRS
8450_mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8451{
8452 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8453 (__v16qi) __O, __M);
8454}
8455
8456static __inline__ __m128i __DEFAULT_FN_ATTRS
8457_mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A)
8458{
8459 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
8460 (__v16qi)
8461 _mm_setzero_si128 (),
8462 __M);
8463}
8464
8465static __inline__ void __DEFAULT_FN_ATTRS
8466_mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8467{
8468 __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
8469}
8470
8471static __inline__ __m128i __DEFAULT_FN_ATTRS
8472_mm256_cvtepi32_epi8 (__m256i __A)
8473{
8474 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8475 (__v16qi)_mm_undefined_si128(),
8476 (__mmask8) -1);
8477}
8478
8479static __inline__ __m128i __DEFAULT_FN_ATTRS
8480_mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8481{
8482 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8483 (__v16qi) __O, __M);
8484}
8485
8486static __inline__ __m128i __DEFAULT_FN_ATTRS
8487_mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A)
8488{
8489 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
8490 (__v16qi) _mm_setzero_si128 (),
8491 __M);
8492}
8493
8494static __inline__ void __DEFAULT_FN_ATTRS
8495_mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8496{
8497 __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
8498}
8499
8500static __inline__ __m128i __DEFAULT_FN_ATTRS
8501_mm_cvtepi32_epi16 (__m128i __A)
8502{
8503 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8504 (__v8hi) _mm_setzero_si128 (),
8505 (__mmask8) -1);
8506}
8507
8508static __inline__ __m128i __DEFAULT_FN_ATTRS
8509_mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8510{
8511 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8512 (__v8hi) __O, __M);
8513}
8514
8515static __inline__ __m128i __DEFAULT_FN_ATTRS
8516_mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A)
8517{
8518 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
8519 (__v8hi) _mm_setzero_si128 (),
8520 __M);
8521}
8522
8523static __inline__ void __DEFAULT_FN_ATTRS
8524_mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8525{
8526 __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
8527}
8528
8529static __inline__ __m128i __DEFAULT_FN_ATTRS
8530_mm256_cvtepi32_epi16 (__m256i __A)
8531{
8532 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8533 (__v8hi)_mm_setzero_si128 (),
8534 (__mmask8) -1);
8535}
8536
8537static __inline__ __m128i __DEFAULT_FN_ATTRS
8538_mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8539{
8540 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8541 (__v8hi) __O, __M);
8542}
8543
8544static __inline__ __m128i __DEFAULT_FN_ATTRS
8545_mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A)
8546{
8547 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
8548 (__v8hi) _mm_setzero_si128 (),
8549 __M);
8550}
8551
8552static __inline__ void __DEFAULT_FN_ATTRS
8553_mm256_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8554{
8555 __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
8556}
8557
8558static __inline__ __m128i __DEFAULT_FN_ATTRS
8559_mm_cvtepi64_epi8 (__m128i __A)
8560{
8561 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8562 (__v16qi) _mm_undefined_si128(),
8563 (__mmask8) -1);
8564}
8565
8566static __inline__ __m128i __DEFAULT_FN_ATTRS
8567_mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
8568{
8569 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8570 (__v16qi) __O, __M);
8571}
8572
8573static __inline__ __m128i __DEFAULT_FN_ATTRS
8574_mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A)
8575{
8576 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
8577 (__v16qi) _mm_setzero_si128 (),
8578 __M);
8579}
8580
8581static __inline__ void __DEFAULT_FN_ATTRS
8582_mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
8583{
8584 __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
8585}
8586
8587static __inline__ __m128i __DEFAULT_FN_ATTRS
8588_mm256_cvtepi64_epi8 (__m256i __A)
8589{
8590 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8591 (__v16qi) _mm_undefined_si128(),
8592 (__mmask8) -1);
8593}
8594
8595static __inline__ __m128i __DEFAULT_FN_ATTRS
8596_mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
8597{
8598 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8599 (__v16qi) __O, __M);
8600}
8601
8602static __inline__ __m128i __DEFAULT_FN_ATTRS
8603_mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A)
8604{
8605 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
8606 (__v16qi) _mm_setzero_si128 (),
8607 __M);
8608}
8609
8610static __inline__ void __DEFAULT_FN_ATTRS
8611_mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
8612{
8613 __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
8614}
8615
8616static __inline__ __m128i __DEFAULT_FN_ATTRS
8617_mm_cvtepi64_epi32 (__m128i __A)
8618{
8619 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8620 (__v4si)_mm_undefined_si128(),
8621 (__mmask8) -1);
8622}
8623
8624static __inline__ __m128i __DEFAULT_FN_ATTRS
8625_mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
8626{
8627 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8628 (__v4si) __O, __M);
8629}
8630
8631static __inline__ __m128i __DEFAULT_FN_ATTRS
8632_mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A)
8633{
8634 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
8635 (__v4si) _mm_setzero_si128 (),
8636 __M);
8637}
8638
8639static __inline__ void __DEFAULT_FN_ATTRS
8640_mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
8641{
8642 __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
8643}
8644
8645static __inline__ __m128i __DEFAULT_FN_ATTRS
8646_mm256_cvtepi64_epi32 (__m256i __A)
8647{
8648 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8649 (__v4si) _mm_undefined_si128(),
8650 (__mmask8) -1);
8651}
8652
8653static __inline__ __m128i __DEFAULT_FN_ATTRS
8654_mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
8655{
8656 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8657 (__v4si) __O, __M);
8658}
8659
8660static __inline__ __m128i __DEFAULT_FN_ATTRS
8661_mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A)
8662{
8663 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
8664 (__v4si) _mm_setzero_si128 (),
8665 __M);
8666}
8667
8668static __inline__ void __DEFAULT_FN_ATTRS
8669_mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
8670{
8671 __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
8672}
8673
8674static __inline__ __m128i __DEFAULT_FN_ATTRS
8675_mm_cvtepi64_epi16 (__m128i __A)
8676{
8677 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8678 (__v8hi) _mm_undefined_si128(),
8679 (__mmask8) -1);
8680}
8681
8682static __inline__ __m128i __DEFAULT_FN_ATTRS
8683_mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
8684{
8685 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8686 (__v8hi)__O,
8687 __M);
8688}
8689
8690static __inline__ __m128i __DEFAULT_FN_ATTRS
8691_mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A)
8692{
8693 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
8694 (__v8hi) _mm_setzero_si128 (),
8695 __M);
8696}
8697
8698static __inline__ void __DEFAULT_FN_ATTRS
8699_mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
8700{
8701 __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
8702}
8703
8704static __inline__ __m128i __DEFAULT_FN_ATTRS
8705_mm256_cvtepi64_epi16 (__m256i __A)
8706{
8707 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8708 (__v8hi)_mm_undefined_si128(),
8709 (__mmask8) -1);
8710}
8711
8712static __inline__ __m128i __DEFAULT_FN_ATTRS
8713_mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
8714{
8715 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8716 (__v8hi) __O, __M);
8717}
8718
8719static __inline__ __m128i __DEFAULT_FN_ATTRS
8720_mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A)
8721{
8722 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
8723 (__v8hi) _mm_setzero_si128 (),
8724 __M);
8725}
8726
8727static __inline__ void __DEFAULT_FN_ATTRS
8728_mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
8729{
8730 __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
8731}
8732
Craig Topperd2661882016-05-17 04:41:48 +00008733#define _mm256_extractf32x4_ps(A, imm) __extension__ ({ \
8734 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8735 (int)(imm), \
8736 (__v4sf)_mm_setzero_ps(), \
8737 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008738
Craig Topperd2661882016-05-17 04:41:48 +00008739#define _mm256_mask_extractf32x4_ps(W, U, A, imm) __extension__ ({ \
8740 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8741 (int)(imm), \
8742 (__v4sf)(__m128)(W), \
8743 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008744
Craig Topperd2661882016-05-17 04:41:48 +00008745#define _mm256_maskz_extractf32x4_ps(U, A, imm) __extension__ ({ \
8746 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
8747 (int)(imm), \
8748 (__v4sf)_mm_setzero_ps(), \
8749 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008750
Craig Topperd2661882016-05-17 04:41:48 +00008751#define _mm256_extracti32x4_epi32(A, imm) __extension__ ({ \
8752 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8753 (int)(imm), \
8754 (__v4si)_mm_setzero_si128(), \
8755 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008756
Craig Topperd2661882016-05-17 04:41:48 +00008757#define _mm256_mask_extracti32x4_epi32(W, U, A, imm) __extension__ ({ \
8758 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8759 (int)(imm), \
8760 (__v4si)(__m128i)(W), \
8761 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008762
Craig Topperd2661882016-05-17 04:41:48 +00008763#define _mm256_maskz_extracti32x4_epi32(U, A, imm) __extension__ ({ \
8764 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
8765 (int)(imm), \
8766 (__v4si)_mm_setzero_si128(), \
8767 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008768
Craig Topperd2661882016-05-17 04:41:48 +00008769#define _mm256_insertf32x4(A, B, imm) __extension__ ({ \
8770 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8771 (__v4sf)(__m128)(B), (int)(imm), \
8772 (__v8sf)_mm256_setzero_ps(), \
8773 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008774
Craig Topperd2661882016-05-17 04:41:48 +00008775#define _mm256_mask_insertf32x4(W, U, A, B, imm) __extension__ ({ \
8776 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8777 (__v4sf)(__m128)(B), (int)(imm), \
8778 (__v8sf)(__m256)(W), \
8779 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008780
Craig Topperd2661882016-05-17 04:41:48 +00008781#define _mm256_maskz_insertf32x4(U, A, B, imm) __extension__ ({ \
8782 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \
8783 (__v4sf)(__m128)(B), (int)(imm), \
8784 (__v8sf)_mm256_setzero_ps(), \
8785 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008786
Craig Topperd2661882016-05-17 04:41:48 +00008787#define _mm256_inserti32x4(A, B, imm) __extension__ ({ \
8788 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8789 (__v4si)(__m128i)(B), \
8790 (int)(imm), \
8791 (__v8si)_mm256_setzero_si256(), \
8792 (__mmask8)-1); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008793
Craig Topperd2661882016-05-17 04:41:48 +00008794#define _mm256_mask_inserti32x4(W, U, A, B, imm) __extension__ ({ \
8795 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8796 (__v4si)(__m128i)(B), \
8797 (int)(imm), \
8798 (__v8si)(__m256i)(W), \
8799 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008800
Craig Topperd2661882016-05-17 04:41:48 +00008801#define _mm256_maskz_inserti32x4(U, A, B, imm) __extension__ ({ \
8802 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \
8803 (__v4si)(__m128i)(B), \
8804 (int)(imm), \
8805 (__v8si)_mm256_setzero_si256(), \
8806 (__mmask8)(U)); })
Michael Zuckermanef2979a2016-04-19 15:18:23 +00008807
Craig Topperd2661882016-05-17 04:41:48 +00008808#define _mm_getmant_pd(A, B, C) __extension__({\
8809 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8810 (int)(((C)<<2) | (B)), \
8811 (__v2df)_mm_setzero_pd(), \
8812 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008813
Craig Topperd2661882016-05-17 04:41:48 +00008814#define _mm_mask_getmant_pd(W, U, A, B, C) __extension__({\
8815 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8816 (int)(((C)<<2) | (B)), \
8817 (__v2df)(__m128d)(W), \
8818 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008819
Craig Topperd2661882016-05-17 04:41:48 +00008820#define _mm_maskz_getmant_pd(U, A, B, C) __extension__({\
8821 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
8822 (int)(((C)<<2) | (B)), \
8823 (__v2df)_mm_setzero_pd(), \
8824 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008825
Craig Topperd2661882016-05-17 04:41:48 +00008826#define _mm256_getmant_pd(A, B, C) __extension__ ({ \
8827 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8828 (int)(((C)<<2) | (B)), \
8829 (__v4df)_mm256_setzero_pd(), \
8830 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008831
Craig Topperd2661882016-05-17 04:41:48 +00008832#define _mm256_mask_getmant_pd(W, U, A, B, C) __extension__ ({ \
8833 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8834 (int)(((C)<<2) | (B)), \
8835 (__v4df)(__m256d)(W), \
8836 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008837
Craig Topperd2661882016-05-17 04:41:48 +00008838#define _mm256_maskz_getmant_pd(U, A, B, C) __extension__ ({ \
8839 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
8840 (int)(((C)<<2) | (B)), \
8841 (__v4df)_mm256_setzero_pd(), \
8842 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008843
Craig Topperd2661882016-05-17 04:41:48 +00008844#define _mm_getmant_ps(A, B, C) __extension__ ({ \
8845 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8846 (int)(((C)<<2) | (B)), \
8847 (__v4sf)_mm_setzero_ps(), \
8848 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008849
Craig Topperd2661882016-05-17 04:41:48 +00008850#define _mm_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8851 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8852 (int)(((C)<<2) | (B)), \
8853 (__v4sf)(__m128)(W), \
8854 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008855
Craig Topperd2661882016-05-17 04:41:48 +00008856#define _mm_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8857 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
8858 (int)(((C)<<2) | (B)), \
8859 (__v4sf)_mm_setzero_ps(), \
8860 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008861
Craig Topperd2661882016-05-17 04:41:48 +00008862#define _mm256_getmant_ps(A, B, C) __extension__ ({ \
8863 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8864 (int)(((C)<<2) | (B)), \
8865 (__v8sf)_mm256_setzero_ps(), \
8866 (__mmask8)-1); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008867
Craig Topperd2661882016-05-17 04:41:48 +00008868#define _mm256_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8869 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8870 (int)(((C)<<2) | (B)), \
8871 (__v8sf)(__m256)(W), \
8872 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008873
Craig Topperd2661882016-05-17 04:41:48 +00008874#define _mm256_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8875 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
8876 (int)(((C)<<2) | (B)), \
8877 (__v8sf)_mm256_setzero_ps(), \
8878 (__mmask8)(U)); })
Michael Zuckerman6fa512c2016-04-19 17:10:29 +00008879
Craig Topperd2661882016-05-17 04:41:48 +00008880#define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8881 (__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \
8882 (double const *)(addr), \
8883 (__v2di)(__m128i)(index), \
8884 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008885
Craig Topperd2661882016-05-17 04:41:48 +00008886#define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8887 (__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \
8888 (long long const *)(addr), \
8889 (__v2di)(__m128i)(index), \
8890 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008891
Craig Topperd2661882016-05-17 04:41:48 +00008892#define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8893 (__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \
8894 (double const *)(addr), \
8895 (__v4di)(__m256i)(index), \
8896 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008897
Craig Topperd2661882016-05-17 04:41:48 +00008898#define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8899 (__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \
8900 (long long const *)(addr), \
8901 (__v4di)(__m256i)(index), \
8902 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008903
Craig Topperd2661882016-05-17 04:41:48 +00008904#define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8905 (__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \
8906 (float const *)(addr), \
8907 (__v2di)(__m128i)(index), \
8908 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008909
Craig Topperd2661882016-05-17 04:41:48 +00008910#define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8911 (__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \
8912 (int const *)(addr), \
8913 (__v2di)(__m128i)(index), \
8914 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008915
Craig Topperd2661882016-05-17 04:41:48 +00008916#define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8917 (__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \
8918 (float const *)(addr), \
8919 (__v4di)(__m256i)(index), \
8920 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008921
Craig Topperd2661882016-05-17 04:41:48 +00008922#define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8923 (__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \
8924 (int const *)(addr), \
8925 (__v4di)(__m256i)(index), \
8926 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008927
Craig Topperd2661882016-05-17 04:41:48 +00008928#define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8929 (__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \
8930 (double const *)(addr), \
8931 (__v4si)(__m128i)(index), \
8932 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008933
Craig Topperd2661882016-05-17 04:41:48 +00008934#define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8935 (__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \
8936 (long long const *)(addr), \
8937 (__v4si)(__m128i)(index), \
8938 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008939
Craig Topperd2661882016-05-17 04:41:48 +00008940#define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8941 (__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \
8942 (double const *)(addr), \
8943 (__v4si)(__m128i)(index), \
8944 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008945
Craig Topperd2661882016-05-17 04:41:48 +00008946#define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8947 (__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \
8948 (long long const *)(addr), \
8949 (__v4si)(__m128i)(index), \
8950 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008951
Craig Topperd2661882016-05-17 04:41:48 +00008952#define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8953 (__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \
8954 (float const *)(addr), \
8955 (__v4si)(__m128i)(index), \
8956 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008957
Craig Topperd2661882016-05-17 04:41:48 +00008958#define _mm_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8959 (__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \
8960 (int const *)(addr), \
8961 (__v4si)(__m128i)(index), \
8962 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008963
Craig Topperd2661882016-05-17 04:41:48 +00008964#define _mm256_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8965 (__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \
8966 (float const *)(addr), \
8967 (__v8si)(__m256i)(index), \
8968 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008969
Craig Topperd2661882016-05-17 04:41:48 +00008970#define _mm256_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8971 (__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \
8972 (int const *)(addr), \
8973 (__v8si)(__m256i)(index), \
8974 (__mmask8)(mask), (int)(scale)); })
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00008975
Craig Topperd2661882016-05-17 04:41:48 +00008976#define _mm256_mask_permutex_pd(W, U, X, imm) __extension__ ({ \
8977 (__m256d)__builtin_ia32_permdf256_mask((__v4df)(__m256d)(X), (int)(imm), \
8978 (__v4df)(__m256d)(W), \
8979 (__mmask8)(U)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008980
Craig Topperd2661882016-05-17 04:41:48 +00008981#define _mm256_maskz_permutex_pd(U, X, imm) __extension__ ({ \
8982 (__m256d)__builtin_ia32_permdf256_mask((__v4df)(__m256d)(X), (int)(imm), \
8983 (__v4df)_mm256_setzero_pd(), \
8984 (__mmask8)(U)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008985
Craig Topperd2661882016-05-17 04:41:48 +00008986#define _mm256_permutex_pd(X, M) __extension__ ({ \
8987 (__m256d)__builtin_ia32_permdf256_mask((__v4df)(__m256d)(X), (int)(M), \
8988 (__v4df)_mm256_undefined_pd(), \
8989 (__mmask8)-1); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008990
Craig Topperd2661882016-05-17 04:41:48 +00008991#define _mm256_mask_permutex_epi64(W, M, X, I) __extension__ ({ \
8992 (__m256i)__builtin_ia32_permdi256_mask((__v4di)(__m256i)(X), (int)(I), \
8993 (__v4di)(__m256i)(W), \
8994 (__mmask8)(M)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00008995
Craig Topperd2661882016-05-17 04:41:48 +00008996#define _mm256_maskz_permutex_epi64(M, X, I) __extension__ ({ \
8997 (__m256i)__builtin_ia32_permdi256_mask((__v4di)(__m256i)(X), (int)(I), \
8998 (__v4di)_mm256_setzero_si256(), \
8999 (__mmask8)(M)); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00009000
Craig Topperd2661882016-05-17 04:41:48 +00009001#define _mm256_permutex_epi64(X, I) __extension__ ({ \
9002 (__m256i)__builtin_ia32_permdi256_mask((__v4di)(__m256i)(X), (int)(I), \
9003 (__v4di)_mm256_undefined_si256(), \
9004 (__mmask8)-1); })
Michael Zuckerman8938e832016-04-25 05:32:35 +00009005
9006static __inline__ __m256d __DEFAULT_FN_ATTRS
9007_mm256_permutexvar_pd (__m256i __X, __m256d __Y)
9008{
9009 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
9010 (__v4di) __X,
9011 (__v4df) _mm256_undefined_si256 (),
9012 (__mmask8) -1);
9013}
9014
9015static __inline__ __m256d __DEFAULT_FN_ATTRS
9016_mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X,
9017 __m256d __Y)
9018{
9019 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
9020 (__v4di) __X,
9021 (__v4df) __W,
9022 (__mmask8) __U);
9023}
9024
9025static __inline__ __m256d __DEFAULT_FN_ATTRS
9026_mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y)
9027{
9028 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
9029 (__v4di) __X,
9030 (__v4df) _mm256_setzero_pd (),
9031 (__mmask8) __U);
9032}
9033
9034static __inline__ __m256i __DEFAULT_FN_ATTRS
9035_mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
9036{
9037 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
9038 (__v4di) __X,
9039 (__v4di) _mm256_setzero_si256 (),
9040 (__mmask8) __M);
9041}
9042
9043static __inline__ __m256i __DEFAULT_FN_ATTRS
9044_mm256_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
9045{
9046 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
9047 (__v4di) __X,
9048 (__v4di) _mm256_undefined_si256 (),
9049 (__mmask8) -1);
9050}
9051
9052static __inline__ __m256i __DEFAULT_FN_ATTRS
9053_mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X,
9054 __m256i __Y)
9055{
9056 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
9057 (__v4di) __X,
9058 (__v4di) __W,
9059 __M);
9060}
9061
9062static __inline__ __m256 __DEFAULT_FN_ATTRS
9063_mm256_mask_permutexvar_ps (__m256 __W, __mmask8 __U, __m256i __X,
9064 __m256 __Y)
9065{
9066 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
9067 (__v8si) __X,
9068 (__v8sf) __W,
9069 (__mmask8) __U);
9070}
9071
9072static __inline__ __m256 __DEFAULT_FN_ATTRS
9073_mm256_maskz_permutexvar_ps (__mmask8 __U, __m256i __X, __m256 __Y)
9074{
9075 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
9076 (__v8si) __X,
9077 (__v8sf) _mm256_setzero_ps (),
9078 (__mmask8) __U);
9079}
9080
9081static __inline__ __m256 __DEFAULT_FN_ATTRS
9082_mm256_permutexvar_ps (__m256i __X, __m256 __Y)
9083{
9084 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
9085 (__v8si) __X,
9086 (__v8sf) _mm256_undefined_si256 (),
9087 (__mmask8) -1);
9088}
9089
9090static __inline__ __m256i __DEFAULT_FN_ATTRS
9091_mm256_maskz_permutexvar_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
9092{
9093 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
9094 (__v8si) __X,
9095 (__v8si) _mm256_setzero_si256 (),
9096 __M);
9097}
9098
9099static __inline__ __m256i __DEFAULT_FN_ATTRS
9100_mm256_mask_permutexvar_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
9101 __m256i __Y)
9102{
9103 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
9104 (__v8si) __X,
9105 (__v8si) __W,
9106 (__mmask8) __M);
9107}
9108
9109static __inline__ __m256i __DEFAULT_FN_ATTRS
9110_mm256_permutexvar_epi32 (__m256i __X, __m256i __Y)
9111{
9112 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
9113 (__v8si) __X,
9114 (__v8si) _mm256_undefined_si256(),
9115 (__mmask8) -1);
9116}
9117
Craig Topperd2661882016-05-17 04:41:48 +00009118#define _mm_alignr_epi32(A, B, imm) __extension__ ({ \
9119 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
9120 (__v4si)(__m128i)(B), (int)(imm), \
9121 (__v4si)_mm_undefined_si128(), \
9122 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009123
Craig Topperd2661882016-05-17 04:41:48 +00009124#define _mm_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
9125 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
9126 (__v4si)(__m128i)(B), (int)(imm), \
9127 (__v4si)(__m128i)(W), \
9128 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009129
Craig Topperd2661882016-05-17 04:41:48 +00009130#define _mm_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
9131 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \
9132 (__v4si)(__m128i)(B), (int)(imm), \
9133 (__v4si)_mm_setzero_si128(), \
9134 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009135
Craig Topperd2661882016-05-17 04:41:48 +00009136#define _mm256_alignr_epi32(A, B, imm) __extension__ ({ \
9137 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
9138 (__v8si)(__m256i)(B), (int)(imm), \
9139 (__v8si)_mm256_undefined_si256(), \
9140 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009141
Craig Topperd2661882016-05-17 04:41:48 +00009142#define _mm256_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \
9143 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
9144 (__v8si)(__m256i)(B), (int)(imm), \
9145 (__v8si)(__m256i)(W), \
9146 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009147
Craig Topperd2661882016-05-17 04:41:48 +00009148#define _mm256_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \
9149 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \
9150 (__v8si)(__m256i)(B), (int)(imm), \
9151 (__v8si)_mm256_setzero_si256(), \
9152 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009153
Craig Topperd2661882016-05-17 04:41:48 +00009154#define _mm_alignr_epi64(A, B, imm) __extension__ ({ \
9155 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
9156 (__v2di)(__m128i)(B), (int)(imm), \
9157 (__v2di)_mm_setzero_di(), \
9158 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009159
Craig Topperd2661882016-05-17 04:41:48 +00009160#define _mm_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
9161 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
9162 (__v2di)(__m128i)(B), (int)(imm), \
9163 (__v2di)(__m128i)(W), \
9164 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009165
Craig Topperd2661882016-05-17 04:41:48 +00009166#define _mm_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
9167 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \
9168 (__v2di)(__m128i)(B), (int)(imm), \
9169 (__v2di)_mm_setzero_di(), \
9170 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009171
Craig Topperd2661882016-05-17 04:41:48 +00009172#define _mm256_alignr_epi64(A, B, imm) __extension__ ({ \
9173 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
9174 (__v4di)(__m256i)(B), (int)(imm), \
9175 (__v4di)_mm256_undefined_pd(), \
9176 (__mmask8)-1); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009177
Craig Topperd2661882016-05-17 04:41:48 +00009178#define _mm256_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \
9179 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
9180 (__v4di)(__m256i)(B), (int)(imm), \
9181 (__v4di)(__m256i)(W), \
9182 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009183
Craig Topperd2661882016-05-17 04:41:48 +00009184#define _mm256_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \
9185 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \
9186 (__v4di)(__m256i)(B), (int)(imm), \
9187 (__v4di)_mm256_setzero_si256(), \
9188 (__mmask8)(U)); })
Michael Zuckerman533e0652016-04-28 12:47:30 +00009189
Michael Zuckermanac1e5192016-05-01 14:43:43 +00009190static __inline__ __m128 __DEFAULT_FN_ATTRS
9191_mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A)
9192{
9193 return (__m128) __builtin_ia32_movshdup128_mask ((__v4sf) __A,
9194 (__v4sf) __W,
9195 (__mmask8) __U);
9196}
9197
9198static __inline__ __m128 __DEFAULT_FN_ATTRS
9199_mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A)
9200{
9201 return (__m128) __builtin_ia32_movshdup128_mask ((__v4sf) __A,
9202 (__v4sf)
9203 _mm_setzero_ps (),
9204 (__mmask8) __U);
9205}
9206
9207static __inline__ __m256 __DEFAULT_FN_ATTRS
9208_mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A)
9209{
9210 return (__m256) __builtin_ia32_movshdup256_mask ((__v8sf) __A,
9211 (__v8sf) __W,
9212 (__mmask8) __U);
9213}
9214
9215static __inline__ __m256 __DEFAULT_FN_ATTRS
9216_mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A)
9217{
9218 return (__m256) __builtin_ia32_movshdup256_mask ((__v8sf) __A,
9219 (__v8sf)
9220 _mm256_setzero_ps (),
9221 (__mmask8) __U);
9222}
9223
9224static __inline__ __m128 __DEFAULT_FN_ATTRS
9225_mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A)
9226{
9227 return (__m128) __builtin_ia32_movsldup128_mask ((__v4sf) __A,
9228 (__v4sf) __W,
9229 (__mmask8) __U);
9230}
9231
9232static __inline__ __m128 __DEFAULT_FN_ATTRS
9233_mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A)
9234{
9235 return (__m128) __builtin_ia32_movsldup128_mask ((__v4sf) __A,
9236 (__v4sf)
9237 _mm_setzero_ps (),
9238 (__mmask8) __U);
9239}
9240
9241static __inline__ __m256 __DEFAULT_FN_ATTRS
9242_mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A)
9243{
9244 return (__m256) __builtin_ia32_movsldup256_mask ((__v8sf) __A,
9245 (__v8sf) __W,
9246 (__mmask8) __U);
9247}
9248
9249static __inline__ __m256 __DEFAULT_FN_ATTRS
9250_mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A)
9251{
9252 return (__m256) __builtin_ia32_movsldup256_mask ((__v8sf) __A,
9253 (__v8sf)
9254 _mm256_setzero_ps (),
9255 (__mmask8) __U);
9256}
9257
Craig Topperd2661882016-05-17 04:41:48 +00009258#define _mm256_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00009259 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
9260 (__v8si)_mm256_shuffle_epi32((A), (I)), \
9261 (__v8si)(__m256i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00009262
Craig Topperd2661882016-05-17 04:41:48 +00009263#define _mm256_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00009264 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
9265 (__v8si)_mm256_shuffle_epi32((A), (I)), \
9266 (__v8si)_mm256_setzero_si256()); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00009267
Craig Topperd2661882016-05-17 04:41:48 +00009268#define _mm_mask_shuffle_epi32(W, U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00009269 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
9270 (__v4si)_mm_shuffle_epi32((A), (I)), \
9271 (__v4si)(__m128i)(W)); })
Michael Zuckermanc62f27e2016-05-02 07:35:27 +00009272
Craig Topperd2661882016-05-17 04:41:48 +00009273#define _mm_maskz_shuffle_epi32(U, A, I) __extension__({\
Craig Topper7cc92632016-06-11 12:50:19 +00009274 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
9275 (__v4si)_mm_shuffle_epi32((A), (I)), \
9276 (__v4si)_mm_setzero_si128()); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009277
9278static __inline__ __m128d __DEFAULT_FN_ATTRS
9279_mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A)
9280{
Igor Bregeraadb8762016-06-08 13:59:20 +00009281 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
9282 (__v2df) __A,
9283 (__v2df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009284}
9285
9286static __inline__ __m128d __DEFAULT_FN_ATTRS
9287_mm_maskz_mov_pd (__mmask8 __U, __m128d __A)
9288{
Igor Bregeraadb8762016-06-08 13:59:20 +00009289 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
9290 (__v2df) __A,
9291 (__v2df) _mm_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009292}
9293
9294static __inline__ __m256d __DEFAULT_FN_ATTRS
9295_mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A)
9296{
Igor Bregeraadb8762016-06-08 13:59:20 +00009297 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
9298 (__v4df) __A,
9299 (__v4df) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009300}
9301
9302static __inline__ __m256d __DEFAULT_FN_ATTRS
9303_mm256_maskz_mov_pd (__mmask8 __U, __m256d __A)
9304{
Igor Bregeraadb8762016-06-08 13:59:20 +00009305 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
9306 (__v4df) __A,
9307 (__v4df) _mm256_setzero_pd ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009308}
9309
9310static __inline__ __m128 __DEFAULT_FN_ATTRS
9311_mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A)
9312{
Igor Bregeraadb8762016-06-08 13:59:20 +00009313 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
9314 (__v4sf) __A,
9315 (__v4sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009316}
9317
9318static __inline__ __m128 __DEFAULT_FN_ATTRS
9319_mm_maskz_mov_ps (__mmask8 __U, __m128 __A)
9320{
Igor Bregeraadb8762016-06-08 13:59:20 +00009321 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
9322 (__v4sf) __A,
9323 (__v4sf) _mm_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009324}
9325
9326static __inline__ __m256 __DEFAULT_FN_ATTRS
9327_mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A)
9328{
Igor Bregeraadb8762016-06-08 13:59:20 +00009329 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
9330 (__v8sf) __A,
9331 (__v8sf) __W);
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009332}
9333
9334static __inline__ __m256 __DEFAULT_FN_ATTRS
9335_mm256_maskz_mov_ps (__mmask8 __U, __m256 __A)
9336{
Igor Bregeraadb8762016-06-08 13:59:20 +00009337 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
9338 (__v8sf) __A,
9339 (__v8sf) _mm256_setzero_ps ());
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009340}
9341
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009342static __inline__ __m128 __DEFAULT_FN_ATTRS
9343_mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A)
9344{
9345 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
9346 (__v4sf) __W,
9347 (__mmask8) __U);
9348}
9349
9350static __inline__ __m128 __DEFAULT_FN_ATTRS
9351_mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
9352{
9353 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
9354 (__v4sf)
9355 _mm_setzero_ps (),
9356 (__mmask8) __U);
9357}
9358
9359static __inline__ __m256 __DEFAULT_FN_ATTRS
9360_mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A)
9361{
9362 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
9363 (__v8sf) __W,
9364 (__mmask8) __U);
9365}
9366
9367static __inline__ __m256 __DEFAULT_FN_ATTRS
9368_mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
9369{
9370 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
9371 (__v8sf)
9372 _mm256_setzero_ps (),
9373 (__mmask8) __U);
9374}
9375
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009376static __inline __m128i __DEFAULT_FN_ATTRS
9377_mm_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m128 __A)
9378{
9379 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
9380 (__v8hi) __W,
9381 (__mmask8) __U);
9382}
9383
9384static __inline __m128i __DEFAULT_FN_ATTRS
9385_mm_maskz_cvtps_ph (__mmask8 __U, __m128 __A)
9386{
9387 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION,
9388 (__v8hi) _mm_setzero_si128 (),
9389 (__mmask8) __U);
9390}
9391
9392#define _mm_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009393 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
9394 (__v8hi)(__m128i)(W), \
9395 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009396
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009397#define _mm_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009398 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
9399 (__v8hi)_mm_setzero_si128(), \
9400 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009401
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009402static __inline __m128i __DEFAULT_FN_ATTRS
9403_mm256_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m256 __A)
9404{
9405 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
9406 (__v8hi) __W,
9407 (__mmask8) __U);
9408}
9409
9410static __inline __m128i __DEFAULT_FN_ATTRS
9411_mm256_maskz_cvtps_ph ( __mmask8 __U, __m256 __A)
9412{
9413 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION,
9414 (__v8hi) _mm_setzero_si128(),
9415 (__mmask8) __U);
9416}
9417#define _mm256_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009418 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
9419 (__v8hi)(__m128i)(W), \
9420 (__mmask8)(U)); })
Michael Zuckerman8bfb7772016-05-03 12:45:04 +00009421
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009422#define _mm256_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \
Craig Topperd2661882016-05-17 04:41:48 +00009423 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
9424 (__v8hi)_mm_setzero_si128(), \
9425 (__mmask8)(U)); })
Michael Zuckerman5f0e96e2016-05-02 14:02:01 +00009426
Michael Zuckerman9e7d0a92016-06-02 07:44:08 +00009427
Michael Kupersteine45af542015-06-30 13:36:19 +00009428#undef __DEFAULT_FN_ATTRS
Eric Christopher4d1851682015-06-17 07:09:20 +00009429
Robert Khasanovb9f3a912014-10-08 17:18:13 +00009430#endif /* __AVX512VLINTRIN_H */