1 /*===---- avx512vlbwintrin.h - AVX512VL and AVX512BW 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 <avx512vlbwintrin.h> directly; include <immintrin.h> instead."
26 #endif
27 
28 #ifndef __AVX512VLBWINTRIN_H
29 #define __AVX512VLBWINTRIN_H
30 
31 /* Define the default attributes for the functions in this file. */
32 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw")))
33 
34 /* Integer compare */
35 
36 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpeq_epi8_mask(__m128i __a,__m128i __b)37 _mm_cmpeq_epi8_mask(__m128i __a, __m128i __b) {
38   return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b,
39                                                    (__mmask16)-1);
40 }
41 
42 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpeq_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)43 _mm_mask_cmpeq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
44   return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b,
45                                                    __u);
46 }
47 
48 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpeq_epu8_mask(__m128i __a,__m128i __b)49 _mm_cmpeq_epu8_mask(__m128i __a, __m128i __b) {
50   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0,
51                                                  (__mmask16)-1);
52 }
53 
54 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpeq_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)55 _mm_mask_cmpeq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
56   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0,
57                                                  __u);
58 }
59 
60 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpeq_epi8_mask(__m256i __a,__m256i __b)61 _mm256_cmpeq_epi8_mask(__m256i __a, __m256i __b) {
62   return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b,
63                                                    (__mmask32)-1);
64 }
65 
66 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpeq_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)67 _mm256_mask_cmpeq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
68   return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b,
69                                                    __u);
70 }
71 
72 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpeq_epu8_mask(__m256i __a,__m256i __b)73 _mm256_cmpeq_epu8_mask(__m256i __a, __m256i __b) {
74   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0,
75                                                  (__mmask32)-1);
76 }
77 
78 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpeq_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)79 _mm256_mask_cmpeq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
80   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0,
81                                                  __u);
82 }
83 
84 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpeq_epi16_mask(__m128i __a,__m128i __b)85 _mm_cmpeq_epi16_mask(__m128i __a, __m128i __b) {
86   return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b,
87                                                   (__mmask8)-1);
88 }
89 
90 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpeq_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)91 _mm_mask_cmpeq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
92   return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b,
93                                                   __u);
94 }
95 
96 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpeq_epu16_mask(__m128i __a,__m128i __b)97 _mm_cmpeq_epu16_mask(__m128i __a, __m128i __b) {
98   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0,
99                                                 (__mmask8)-1);
100 }
101 
102 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpeq_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)103 _mm_mask_cmpeq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
104   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0,
105                                                 __u);
106 }
107 
108 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpeq_epi16_mask(__m256i __a,__m256i __b)109 _mm256_cmpeq_epi16_mask(__m256i __a, __m256i __b) {
110   return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b,
111                                                    (__mmask16)-1);
112 }
113 
114 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpeq_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)115 _mm256_mask_cmpeq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
116   return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b,
117                                                    __u);
118 }
119 
120 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpeq_epu16_mask(__m256i __a,__m256i __b)121 _mm256_cmpeq_epu16_mask(__m256i __a, __m256i __b) {
122   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0,
123                                                  (__mmask16)-1);
124 }
125 
126 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpeq_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)127 _mm256_mask_cmpeq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
128   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0,
129                                                  __u);
130 }
131 
132 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpge_epi8_mask(__m128i __a,__m128i __b)133 _mm_cmpge_epi8_mask(__m128i __a, __m128i __b) {
134   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
135                                                 (__mmask16)-1);
136 }
137 
138 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpge_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)139 _mm_mask_cmpge_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
140   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
141                                                 __u);
142 }
143 
144 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpge_epu8_mask(__m128i __a,__m128i __b)145 _mm_cmpge_epu8_mask(__m128i __a, __m128i __b) {
146   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
147                                                  (__mmask16)-1);
148 }
149 
150 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpge_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)151 _mm_mask_cmpge_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
152   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
153                                                  __u);
154 }
155 
156 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpge_epi8_mask(__m256i __a,__m256i __b)157 _mm256_cmpge_epi8_mask(__m256i __a, __m256i __b) {
158   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
159                                                 (__mmask32)-1);
160 }
161 
162 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpge_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)163 _mm256_mask_cmpge_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
164   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
165                                                 __u);
166 }
167 
168 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpge_epu8_mask(__m256i __a,__m256i __b)169 _mm256_cmpge_epu8_mask(__m256i __a, __m256i __b) {
170   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
171                                                  (__mmask32)-1);
172 }
173 
174 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpge_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)175 _mm256_mask_cmpge_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
176   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
177                                                  __u);
178 }
179 
180 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpge_epi16_mask(__m128i __a,__m128i __b)181 _mm_cmpge_epi16_mask(__m128i __a, __m128i __b) {
182   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
183                                                (__mmask8)-1);
184 }
185 
186 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpge_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)187 _mm_mask_cmpge_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
188   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
189                                                __u);
190 }
191 
192 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpge_epu16_mask(__m128i __a,__m128i __b)193 _mm_cmpge_epu16_mask(__m128i __a, __m128i __b) {
194   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
195                                                 (__mmask8)-1);
196 }
197 
198 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpge_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)199 _mm_mask_cmpge_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
200   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
201                                                 __u);
202 }
203 
204 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpge_epi16_mask(__m256i __a,__m256i __b)205 _mm256_cmpge_epi16_mask(__m256i __a, __m256i __b) {
206   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
207                                                 (__mmask16)-1);
208 }
209 
210 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpge_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)211 _mm256_mask_cmpge_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
212   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
213                                                 __u);
214 }
215 
216 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpge_epu16_mask(__m256i __a,__m256i __b)217 _mm256_cmpge_epu16_mask(__m256i __a, __m256i __b) {
218   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
219                                                  (__mmask16)-1);
220 }
221 
222 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpge_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)223 _mm256_mask_cmpge_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
224   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
225                                                  __u);
226 }
227 
228 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpgt_epi8_mask(__m128i __a,__m128i __b)229 _mm_cmpgt_epi8_mask(__m128i __a, __m128i __b) {
230   return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b,
231                                                    (__mmask16)-1);
232 }
233 
234 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpgt_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)235 _mm_mask_cmpgt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
236   return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b,
237                                                    __u);
238 }
239 
240 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpgt_epu8_mask(__m128i __a,__m128i __b)241 _mm_cmpgt_epu8_mask(__m128i __a, __m128i __b) {
242   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6,
243                                                  (__mmask16)-1);
244 }
245 
246 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpgt_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)247 _mm_mask_cmpgt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
248   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6,
249                                                  __u);
250 }
251 
252 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpgt_epi8_mask(__m256i __a,__m256i __b)253 _mm256_cmpgt_epi8_mask(__m256i __a, __m256i __b) {
254   return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b,
255                                                    (__mmask32)-1);
256 }
257 
258 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpgt_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)259 _mm256_mask_cmpgt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
260   return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b,
261                                                    __u);
262 }
263 
264 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpgt_epu8_mask(__m256i __a,__m256i __b)265 _mm256_cmpgt_epu8_mask(__m256i __a, __m256i __b) {
266   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6,
267                                                  (__mmask32)-1);
268 }
269 
270 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpgt_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)271 _mm256_mask_cmpgt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
272   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6,
273                                                  __u);
274 }
275 
276 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpgt_epi16_mask(__m128i __a,__m128i __b)277 _mm_cmpgt_epi16_mask(__m128i __a, __m128i __b) {
278   return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b,
279                                                   (__mmask8)-1);
280 }
281 
282 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpgt_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)283 _mm_mask_cmpgt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
284   return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b,
285                                                   __u);
286 }
287 
288 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpgt_epu16_mask(__m128i __a,__m128i __b)289 _mm_cmpgt_epu16_mask(__m128i __a, __m128i __b) {
290   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6,
291                                                 (__mmask8)-1);
292 }
293 
294 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpgt_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)295 _mm_mask_cmpgt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
296   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6,
297                                                 __u);
298 }
299 
300 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpgt_epi16_mask(__m256i __a,__m256i __b)301 _mm256_cmpgt_epi16_mask(__m256i __a, __m256i __b) {
302   return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b,
303                                                    (__mmask16)-1);
304 }
305 
306 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpgt_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)307 _mm256_mask_cmpgt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
308   return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b,
309                                                    __u);
310 }
311 
312 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpgt_epu16_mask(__m256i __a,__m256i __b)313 _mm256_cmpgt_epu16_mask(__m256i __a, __m256i __b) {
314   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6,
315                                                  (__mmask16)-1);
316 }
317 
318 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpgt_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)319 _mm256_mask_cmpgt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
320   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6,
321                                                  __u);
322 }
323 
324 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmple_epi8_mask(__m128i __a,__m128i __b)325 _mm_cmple_epi8_mask(__m128i __a, __m128i __b) {
326   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
327                                                 (__mmask16)-1);
328 }
329 
330 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmple_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)331 _mm_mask_cmple_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
332   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
333                                                 __u);
334 }
335 
336 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmple_epu8_mask(__m128i __a,__m128i __b)337 _mm_cmple_epu8_mask(__m128i __a, __m128i __b) {
338   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
339                                                  (__mmask16)-1);
340 }
341 
342 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmple_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)343 _mm_mask_cmple_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
344   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
345                                                  __u);
346 }
347 
348 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmple_epi8_mask(__m256i __a,__m256i __b)349 _mm256_cmple_epi8_mask(__m256i __a, __m256i __b) {
350   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
351                                                 (__mmask32)-1);
352 }
353 
354 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmple_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)355 _mm256_mask_cmple_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
356   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
357                                                 __u);
358 }
359 
360 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmple_epu8_mask(__m256i __a,__m256i __b)361 _mm256_cmple_epu8_mask(__m256i __a, __m256i __b) {
362   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
363                                                  (__mmask32)-1);
364 }
365 
366 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmple_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)367 _mm256_mask_cmple_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
368   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
369                                                  __u);
370 }
371 
372 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmple_epi16_mask(__m128i __a,__m128i __b)373 _mm_cmple_epi16_mask(__m128i __a, __m128i __b) {
374   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
375                                                (__mmask8)-1);
376 }
377 
378 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmple_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)379 _mm_mask_cmple_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
380   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
381                                                __u);
382 }
383 
384 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmple_epu16_mask(__m128i __a,__m128i __b)385 _mm_cmple_epu16_mask(__m128i __a, __m128i __b) {
386   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
387                                                 (__mmask8)-1);
388 }
389 
390 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmple_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)391 _mm_mask_cmple_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
392   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
393                                                 __u);
394 }
395 
396 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmple_epi16_mask(__m256i __a,__m256i __b)397 _mm256_cmple_epi16_mask(__m256i __a, __m256i __b) {
398   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
399                                                 (__mmask16)-1);
400 }
401 
402 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmple_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)403 _mm256_mask_cmple_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
404   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
405                                                 __u);
406 }
407 
408 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmple_epu16_mask(__m256i __a,__m256i __b)409 _mm256_cmple_epu16_mask(__m256i __a, __m256i __b) {
410   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
411                                                  (__mmask16)-1);
412 }
413 
414 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmple_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)415 _mm256_mask_cmple_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
416   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
417                                                  __u);
418 }
419 
420 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmplt_epi8_mask(__m128i __a,__m128i __b)421 _mm_cmplt_epi8_mask(__m128i __a, __m128i __b) {
422   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
423                                                 (__mmask16)-1);
424 }
425 
426 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmplt_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)427 _mm_mask_cmplt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
428   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
429                                                 __u);
430 }
431 
432 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmplt_epu8_mask(__m128i __a,__m128i __b)433 _mm_cmplt_epu8_mask(__m128i __a, __m128i __b) {
434   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
435                                                  (__mmask16)-1);
436 }
437 
438 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmplt_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)439 _mm_mask_cmplt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
440   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
441                                                  __u);
442 }
443 
444 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmplt_epi8_mask(__m256i __a,__m256i __b)445 _mm256_cmplt_epi8_mask(__m256i __a, __m256i __b) {
446   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
447                                                 (__mmask32)-1);
448 }
449 
450 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmplt_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)451 _mm256_mask_cmplt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
452   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
453                                                 __u);
454 }
455 
456 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmplt_epu8_mask(__m256i __a,__m256i __b)457 _mm256_cmplt_epu8_mask(__m256i __a, __m256i __b) {
458   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
459                                                  (__mmask32)-1);
460 }
461 
462 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmplt_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)463 _mm256_mask_cmplt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
464   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
465                                                  __u);
466 }
467 
468 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmplt_epi16_mask(__m128i __a,__m128i __b)469 _mm_cmplt_epi16_mask(__m128i __a, __m128i __b) {
470   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
471                                                (__mmask8)-1);
472 }
473 
474 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmplt_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)475 _mm_mask_cmplt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
476   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
477                                                __u);
478 }
479 
480 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmplt_epu16_mask(__m128i __a,__m128i __b)481 _mm_cmplt_epu16_mask(__m128i __a, __m128i __b) {
482   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
483                                                 (__mmask8)-1);
484 }
485 
486 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmplt_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)487 _mm_mask_cmplt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
488   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
489                                                 __u);
490 }
491 
492 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmplt_epi16_mask(__m256i __a,__m256i __b)493 _mm256_cmplt_epi16_mask(__m256i __a, __m256i __b) {
494   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
495                                                 (__mmask16)-1);
496 }
497 
498 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmplt_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)499 _mm256_mask_cmplt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
500   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
501                                                 __u);
502 }
503 
504 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmplt_epu16_mask(__m256i __a,__m256i __b)505 _mm256_cmplt_epu16_mask(__m256i __a, __m256i __b) {
506   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
507                                                  (__mmask16)-1);
508 }
509 
510 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmplt_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)511 _mm256_mask_cmplt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
512   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
513                                                  __u);
514 }
515 
516 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpneq_epi8_mask(__m128i __a,__m128i __b)517 _mm_cmpneq_epi8_mask(__m128i __a, __m128i __b) {
518   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
519                                                 (__mmask16)-1);
520 }
521 
522 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpneq_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)523 _mm_mask_cmpneq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
524   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
525                                                 __u);
526 }
527 
528 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpneq_epu8_mask(__m128i __a,__m128i __b)529 _mm_cmpneq_epu8_mask(__m128i __a, __m128i __b) {
530   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
531                                                  (__mmask16)-1);
532 }
533 
534 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpneq_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)535 _mm_mask_cmpneq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
536   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
537                                                  __u);
538 }
539 
540 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpneq_epi8_mask(__m256i __a,__m256i __b)541 _mm256_cmpneq_epi8_mask(__m256i __a, __m256i __b) {
542   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
543                                                 (__mmask32)-1);
544 }
545 
546 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpneq_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)547 _mm256_mask_cmpneq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
548   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
549                                                 __u);
550 }
551 
552 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpneq_epu8_mask(__m256i __a,__m256i __b)553 _mm256_cmpneq_epu8_mask(__m256i __a, __m256i __b) {
554   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
555                                                  (__mmask32)-1);
556 }
557 
558 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpneq_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)559 _mm256_mask_cmpneq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
560   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
561                                                  __u);
562 }
563 
564 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpneq_epi16_mask(__m128i __a,__m128i __b)565 _mm_cmpneq_epi16_mask(__m128i __a, __m128i __b) {
566   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
567                                                (__mmask8)-1);
568 }
569 
570 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpneq_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)571 _mm_mask_cmpneq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
572   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
573                                                __u);
574 }
575 
576 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpneq_epu16_mask(__m128i __a,__m128i __b)577 _mm_cmpneq_epu16_mask(__m128i __a, __m128i __b) {
578   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
579                                                 (__mmask8)-1);
580 }
581 
582 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpneq_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)583 _mm_mask_cmpneq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
584   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
585                                                 __u);
586 }
587 
588 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpneq_epi16_mask(__m256i __a,__m256i __b)589 _mm256_cmpneq_epi16_mask(__m256i __a, __m256i __b) {
590   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
591                                                 (__mmask16)-1);
592 }
593 
594 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpneq_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)595 _mm256_mask_cmpneq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
596   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
597                                                 __u);
598 }
599 
600 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpneq_epu16_mask(__m256i __a,__m256i __b)601 _mm256_cmpneq_epu16_mask(__m256i __a, __m256i __b) {
602   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
603                                                  (__mmask16)-1);
604 }
605 
606 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpneq_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)607 _mm256_mask_cmpneq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
608   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
609                                                  __u);
610 }
611 
612 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_add_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)613 _mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){
614   return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
615              (__v32qi) __B,
616              (__v32qi) __W,
617              (__mmask32) __U);
618 }
619 
620 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_add_epi8(__mmask32 __U,__m256i __A,__m256i __B)621 _mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
622   return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
623              (__v32qi) __B,
624              (__v32qi)
625              _mm256_setzero_si256 (),
626              (__mmask32) __U);
627 }
628 
629 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_add_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)630 _mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
631   return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
632              (__v16hi) __B,
633              (__v16hi) __W,
634              (__mmask16) __U);
635 }
636 
637 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_add_epi16(__mmask16 __U,__m256i __A,__m256i __B)638 _mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
639   return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
640              (__v16hi) __B,
641              (__v16hi)
642              _mm256_setzero_si256 (),
643              (__mmask16) __U);
644 }
645 
646 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_sub_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)647 _mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
648   return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
649              (__v32qi) __B,
650              (__v32qi) __W,
651              (__mmask32) __U);
652 }
653 
654 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_sub_epi8(__mmask32 __U,__m256i __A,__m256i __B)655 _mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
656   return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
657              (__v32qi) __B,
658              (__v32qi)
659              _mm256_setzero_si256 (),
660              (__mmask32) __U);
661 }
662 
663 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_sub_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)664 _mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
665   return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
666              (__v16hi) __B,
667              (__v16hi) __W,
668              (__mmask16) __U);
669 }
670 
671 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_sub_epi16(__mmask16 __U,__m256i __A,__m256i __B)672 _mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
673   return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
674              (__v16hi) __B,
675              (__v16hi)
676              _mm256_setzero_si256 (),
677              (__mmask16) __U);
678 }
679 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_add_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)680 _mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
681   return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
682              (__v16qi) __B,
683              (__v16qi) __W,
684              (__mmask16) __U);
685 }
686 
687 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_add_epi8(__mmask16 __U,__m128i __A,__m128i __B)688 _mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
689   return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
690              (__v16qi) __B,
691              (__v16qi)
692              _mm_setzero_si128 (),
693              (__mmask16) __U);
694 }
695 
696 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_add_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)697 _mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
698   return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
699              (__v8hi) __B,
700              (__v8hi) __W,
701              (__mmask8) __U);
702 }
703 
704 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_add_epi16(__mmask8 __U,__m128i __A,__m128i __B)705 _mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
706   return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
707              (__v8hi) __B,
708              (__v8hi)
709              _mm_setzero_si128 (),
710              (__mmask8) __U);
711 }
712 
713 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_sub_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)714 _mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
715   return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
716              (__v16qi) __B,
717              (__v16qi) __W,
718              (__mmask16) __U);
719 }
720 
721 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_sub_epi8(__mmask16 __U,__m128i __A,__m128i __B)722 _mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
723   return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
724              (__v16qi) __B,
725              (__v16qi)
726              _mm_setzero_si128 (),
727              (__mmask16) __U);
728 }
729 
730 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_sub_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)731 _mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
732   return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
733              (__v8hi) __B,
734              (__v8hi) __W,
735              (__mmask8) __U);
736 }
737 
738 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_sub_epi16(__mmask8 __U,__m128i __A,__m128i __B)739 _mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
740   return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
741              (__v8hi) __B,
742              (__v8hi)
743              _mm_setzero_si128 (),
744              (__mmask8) __U);
745 }
746 
747 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mullo_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)748 _mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
749   return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
750               (__v16hi) __B,
751               (__v16hi) __W,
752               (__mmask16) __U);
753 }
754 
755 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mullo_epi16(__mmask16 __U,__m256i __A,__m256i __B)756 _mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
757   return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
758               (__v16hi) __B,
759               (__v16hi)
760               _mm256_setzero_si256 (),
761               (__mmask16) __U);
762 }
763 
764 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mullo_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)765 _mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
766   return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
767               (__v8hi) __B,
768               (__v8hi) __W,
769               (__mmask8) __U);
770 }
771 
772 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mullo_epi16(__mmask8 __U,__m128i __A,__m128i __B)773 _mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
774   return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
775               (__v8hi) __B,
776               (__v8hi)
777               _mm_setzero_si128 (),
778               (__mmask8) __U);
779 }
780 
781 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_blend_epi8(__mmask16 __U,__m128i __A,__m128i __W)782 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
783 {
784   return (__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) __A,
785                (__v16qi) __W,
786                (__mmask16) __U);
787 }
788 
789 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_blend_epi8(__mmask32 __U,__m256i __A,__m256i __W)790 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
791 {
792   return (__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) __A,
793                (__v32qi) __W,
794                (__mmask32) __U);
795 }
796 
797 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_blend_epi16(__mmask8 __U,__m128i __A,__m128i __W)798 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
799 {
800   return (__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) __A,
801                (__v8hi) __W,
802                (__mmask8) __U);
803 }
804 
805 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_blend_epi16(__mmask16 __U,__m256i __A,__m256i __W)806 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
807 {
808   return (__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) __A,
809                (__v16hi) __W,
810                (__mmask16) __U);
811 }
812 
813 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_abs_epi8(__m128i __W,__mmask16 __U,__m128i __A)814 _mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
815 {
816   return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
817                (__v16qi) __W,
818                (__mmask16) __U);
819 }
820 
821 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_abs_epi8(__mmask16 __U,__m128i __A)822 _mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A)
823 {
824   return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
825                (__v16qi) _mm_setzero_si128 (),
826                (__mmask16) __U);
827 }
828 
829 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_abs_epi8(__m256i __W,__mmask32 __U,__m256i __A)830 _mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
831 {
832   return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
833                (__v32qi) __W,
834                (__mmask32) __U);
835 }
836 
837 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_abs_epi8(__mmask32 __U,__m256i __A)838 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
839 {
840   return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
841                (__v32qi) _mm256_setzero_si256 (),
842                (__mmask32) __U);
843 }
844 
845 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_abs_epi16(__m128i __W,__mmask8 __U,__m128i __A)846 _mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
847 {
848   return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
849                (__v8hi) __W,
850                (__mmask8) __U);
851 }
852 
853 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_abs_epi16(__mmask8 __U,__m128i __A)854 _mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A)
855 {
856   return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
857                (__v8hi) _mm_setzero_si128 (),
858                (__mmask8) __U);
859 }
860 
861 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_abs_epi16(__m256i __W,__mmask16 __U,__m256i __A)862 _mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
863 {
864   return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
865                (__v16hi) __W,
866                (__mmask16) __U);
867 }
868 
869 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_abs_epi16(__mmask16 __U,__m256i __A)870 _mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A)
871 {
872   return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
873                (__v16hi) _mm256_setzero_si256 (),
874                (__mmask16) __U);
875 }
876 
877 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_packs_epi32(__mmask8 __M,__m128i __A,__m128i __B)878 _mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
879 {
880   return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
881                (__v4si) __B,
882                (__v8hi) _mm_setzero_si128 (), __M);
883 }
884 
885 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_packs_epi32(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)886 _mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
887           __m128i __B)
888 {
889   return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
890                (__v4si) __B,
891                (__v8hi) __W, __M);
892 }
893 
894 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_packs_epi32(__mmask16 __M,__m256i __A,__m256i __B)895 _mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
896 {
897   return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
898                (__v8si) __B,
899                (__v16hi) _mm256_setzero_si256 (),
900                __M);
901 }
902 
903 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_packs_epi32(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)904 _mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
905        __m256i __B)
906 {
907   return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
908                (__v8si) __B,
909                (__v16hi) __W, __M);
910 }
911 
912 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_packs_epi16(__mmask16 __M,__m128i __A,__m128i __B)913 _mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
914 {
915   return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
916                (__v8hi) __B,
917                (__v16qi) _mm_setzero_si128 (),
918                __M);
919 }
920 
921 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_packs_epi16(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)922 _mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
923           __m128i __B)
924 {
925   return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
926                (__v8hi) __B,
927                (__v16qi) __W,
928                __M);
929 }
930 
931 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_packs_epi16(__mmask32 __M,__m256i __A,__m256i __B)932 _mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
933 {
934   return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
935                (__v16hi) __B,
936                (__v32qi) _mm256_setzero_si256 (),
937                __M);
938 }
939 
940 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_packs_epi16(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)941 _mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
942        __m256i __B)
943 {
944   return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
945                (__v16hi) __B,
946                (__v32qi) __W,
947                __M);
948 }
949 
950 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_packus_epi32(__mmask8 __M,__m128i __A,__m128i __B)951 _mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
952 {
953   return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
954                (__v4si) __B,
955                (__v8hi) _mm_setzero_si128 (),
956                __M);
957 }
958 
959 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_packus_epi32(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)960 _mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
961            __m128i __B)
962 {
963   return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
964                (__v4si) __B,
965                (__v8hi) __W, __M);
966 }
967 
968 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_packus_epi32(__mmask16 __M,__m256i __A,__m256i __B)969 _mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
970 {
971   return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
972                (__v8si) __B,
973                (__v16hi) _mm256_setzero_si256 (),
974                __M);
975 }
976 
977 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_packus_epi32(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)978 _mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
979         __m256i __B)
980 {
981   return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
982                (__v8si) __B,
983                (__v16hi) __W,
984                __M);
985 }
986 
987 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_packus_epi16(__mmask16 __M,__m128i __A,__m128i __B)988 _mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
989 {
990   return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
991                (__v8hi) __B,
992                (__v16qi) _mm_setzero_si128 (),
993                __M);
994 }
995 
996 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_packus_epi16(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)997 _mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
998            __m128i __B)
999 {
1000   return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
1001                (__v8hi) __B,
1002                (__v16qi) __W,
1003                __M);
1004 }
1005 
1006 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_packus_epi16(__mmask32 __M,__m256i __A,__m256i __B)1007 _mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
1008 {
1009   return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
1010                (__v16hi) __B,
1011                (__v32qi) _mm256_setzero_si256 (),
1012                __M);
1013 }
1014 
1015 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_packus_epi16(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1016 _mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
1017         __m256i __B)
1018 {
1019   return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
1020                (__v16hi) __B,
1021                (__v32qi) __W,
1022                __M);
1023 }
1024 
1025 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_adds_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1026 _mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1027         __m128i __B)
1028 {
1029   return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
1030                (__v16qi) __B,
1031                (__v16qi) __W,
1032                (__mmask16) __U);
1033 }
1034 
1035 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_adds_epi8(__mmask16 __U,__m128i __A,__m128i __B)1036 _mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
1037 {
1038   return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
1039                (__v16qi) __B,
1040                (__v16qi) _mm_setzero_si128 (),
1041                (__mmask16) __U);
1042 }
1043 
1044 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_adds_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1045 _mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1046            __m256i __B)
1047 {
1048   return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
1049                (__v32qi) __B,
1050                (__v32qi) __W,
1051                (__mmask32) __U);
1052 }
1053 
1054 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_adds_epi8(__mmask32 __U,__m256i __A,__m256i __B)1055 _mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
1056 {
1057   return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
1058                (__v32qi) __B,
1059                (__v32qi) _mm256_setzero_si256 (),
1060                (__mmask32) __U);
1061 }
1062 
1063 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_adds_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1064 _mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1065          __m128i __B)
1066 {
1067   return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
1068                (__v8hi) __B,
1069                (__v8hi) __W,
1070                (__mmask8) __U);
1071 }
1072 
1073 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_adds_epi16(__mmask8 __U,__m128i __A,__m128i __B)1074 _mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
1075 {
1076   return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
1077                (__v8hi) __B,
1078                (__v8hi) _mm_setzero_si128 (),
1079                (__mmask8) __U);
1080 }
1081 
1082 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_adds_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1083 _mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1084       __m256i __B)
1085 {
1086   return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
1087                (__v16hi) __B,
1088                (__v16hi) __W,
1089                (__mmask16) __U);
1090 }
1091 
1092 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_adds_epi16(__mmask16 __U,__m256i __A,__m256i __B)1093 _mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
1094 {
1095   return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
1096                (__v16hi) __B,
1097                (__v16hi) _mm256_setzero_si256 (),
1098                (__mmask16) __U);
1099 }
1100 
1101 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_adds_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1102 _mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
1103         __m128i __B)
1104 {
1105   return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
1106                (__v16qi) __B,
1107                (__v16qi) __W,
1108                (__mmask16) __U);
1109 }
1110 
1111 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_adds_epu8(__mmask16 __U,__m128i __A,__m128i __B)1112 _mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
1113 {
1114   return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
1115                (__v16qi) __B,
1116                (__v16qi) _mm_setzero_si128 (),
1117                (__mmask16) __U);
1118 }
1119 
1120 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_adds_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1121 _mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
1122            __m256i __B)
1123 {
1124   return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
1125                (__v32qi) __B,
1126                (__v32qi) __W,
1127                (__mmask32) __U);
1128 }
1129 
1130 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_adds_epu8(__mmask32 __U,__m256i __A,__m256i __B)1131 _mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
1132 {
1133   return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
1134                (__v32qi) __B,
1135                (__v32qi) _mm256_setzero_si256 (),
1136                (__mmask32) __U);
1137 }
1138 
1139 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_adds_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1140 _mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
1141          __m128i __B)
1142 {
1143   return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
1144                (__v8hi) __B,
1145                (__v8hi) __W,
1146                (__mmask8) __U);
1147 }
1148 
1149 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_adds_epu16(__mmask8 __U,__m128i __A,__m128i __B)1150 _mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
1151 {
1152   return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
1153                (__v8hi) __B,
1154                (__v8hi) _mm_setzero_si128 (),
1155                (__mmask8) __U);
1156 }
1157 
1158 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_adds_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1159 _mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
1160       __m256i __B)
1161 {
1162   return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
1163                (__v16hi) __B,
1164                (__v16hi) __W,
1165                (__mmask16) __U);
1166 }
1167 
1168 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_adds_epu16(__mmask16 __U,__m256i __A,__m256i __B)1169 _mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
1170 {
1171   return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
1172                (__v16hi) __B,
1173                (__v16hi) _mm256_setzero_si256 (),
1174                (__mmask16) __U);
1175 }
1176 
1177 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_avg_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1178 _mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
1179        __m128i __B)
1180 {
1181   return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
1182                (__v16qi) __B,
1183                (__v16qi) __W,
1184                (__mmask16) __U);
1185 }
1186 
1187 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_avg_epu8(__mmask16 __U,__m128i __A,__m128i __B)1188 _mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
1189 {
1190   return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
1191                (__v16qi) __B,
1192                (__v16qi) _mm_setzero_si128 (),
1193                (__mmask16) __U);
1194 }
1195 
1196 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_avg_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1197 _mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
1198           __m256i __B)
1199 {
1200   return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
1201                (__v32qi) __B,
1202                (__v32qi) __W,
1203                (__mmask32) __U);
1204 }
1205 
1206 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_avg_epu8(__mmask32 __U,__m256i __A,__m256i __B)1207 _mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
1208 {
1209   return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
1210                (__v32qi) __B,
1211                (__v32qi) _mm256_setzero_si256 (),
1212                (__mmask32) __U);
1213 }
1214 
1215 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_avg_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1216 _mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
1217         __m128i __B)
1218 {
1219   return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
1220                (__v8hi) __B,
1221                (__v8hi) __W,
1222                (__mmask8) __U);
1223 }
1224 
1225 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_avg_epu16(__mmask8 __U,__m128i __A,__m128i __B)1226 _mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
1227 {
1228   return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
1229                (__v8hi) __B,
1230                (__v8hi) _mm_setzero_si128 (),
1231                (__mmask8) __U);
1232 }
1233 
1234 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_avg_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1235 _mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
1236            __m256i __B)
1237 {
1238   return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
1239                (__v16hi) __B,
1240                (__v16hi) __W,
1241                (__mmask16) __U);
1242 }
1243 
1244 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_avg_epu16(__mmask16 __U,__m256i __A,__m256i __B)1245 _mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
1246 {
1247   return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
1248                (__v16hi) __B,
1249                (__v16hi) _mm256_setzero_si256 (),
1250                (__mmask16) __U);
1251 }
1252 
1253 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_max_epi8(__mmask16 __M,__m128i __A,__m128i __B)1254 _mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1255 {
1256   return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1257                (__v16qi) __B,
1258                (__v16qi) _mm_setzero_si128 (),
1259                (__mmask16) __M);
1260 }
1261 
1262 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_max_epi8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1263 _mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1264        __m128i __B)
1265 {
1266   return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1267                (__v16qi) __B,
1268                (__v16qi) __W,
1269                (__mmask16) __M);
1270 }
1271 
1272 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_max_epi8(__mmask32 __M,__m256i __A,__m256i __B)1273 _mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1274 {
1275   return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1276                (__v32qi) __B,
1277                (__v32qi) _mm256_setzero_si256 (),
1278                (__mmask32) __M);
1279 }
1280 
1281 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_max_epi8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1282 _mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1283           __m256i __B)
1284 {
1285   return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1286                (__v32qi) __B,
1287                (__v32qi) __W,
1288                (__mmask32) __M);
1289 }
1290 
1291 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_max_epi16(__mmask8 __M,__m128i __A,__m128i __B)1292 _mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1293 {
1294   return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1295                (__v8hi) __B,
1296                (__v8hi) _mm_setzero_si128 (),
1297                (__mmask8) __M);
1298 }
1299 
1300 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_max_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1301 _mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1302         __m128i __B)
1303 {
1304   return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1305                (__v8hi) __B,
1306                (__v8hi) __W,
1307                (__mmask8) __M);
1308 }
1309 
1310 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_max_epi16(__mmask16 __M,__m256i __A,__m256i __B)1311 _mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1312 {
1313   return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1314                (__v16hi) __B,
1315                (__v16hi) _mm256_setzero_si256 (),
1316                (__mmask16) __M);
1317 }
1318 
1319 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_max_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1320 _mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1321            __m256i __B)
1322 {
1323   return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1324                (__v16hi) __B,
1325                (__v16hi) __W,
1326                (__mmask16) __M);
1327 }
1328 
1329 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_max_epu8(__mmask16 __M,__m128i __A,__m128i __B)1330 _mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1331 {
1332   return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
1333                (__v16qi) __B,
1334                (__v16qi) _mm_setzero_si128 (),
1335                (__mmask16) __M);
1336 }
1337 
1338 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_max_epu8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1339 _mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1340        __m128i __B)
1341 {
1342   return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
1343                (__v16qi) __B,
1344                (__v16qi) __W,
1345                (__mmask16) __M);
1346 }
1347 
1348 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_max_epu8(__mmask32 __M,__m256i __A,__m256i __B)1349 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1350 {
1351   return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
1352                (__v32qi) __B,
1353                (__v32qi) _mm256_setzero_si256 (),
1354                (__mmask32) __M);
1355 }
1356 
1357 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_max_epu8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1358 _mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1359           __m256i __B)
1360 {
1361   return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
1362                (__v32qi) __B,
1363                (__v32qi) __W,
1364                (__mmask32) __M);
1365 }
1366 
1367 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_max_epu16(__mmask8 __M,__m128i __A,__m128i __B)1368 _mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
1369 {
1370   return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1371                (__v8hi) __B,
1372                (__v8hi) _mm_setzero_si128 (),
1373                (__mmask8) __M);
1374 }
1375 
1376 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_max_epu16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1377 _mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1378         __m128i __B)
1379 {
1380   return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1381                (__v8hi) __B,
1382                (__v8hi) __W,
1383                (__mmask8) __M);
1384 }
1385 
1386 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_max_epu16(__mmask16 __M,__m256i __A,__m256i __B)1387 _mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
1388 {
1389   return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1390                (__v16hi) __B,
1391                (__v16hi) _mm256_setzero_si256 (),
1392                (__mmask16) __M);
1393 }
1394 
1395 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_max_epu16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1396 _mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
1397            __m256i __B)
1398 {
1399   return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1400                (__v16hi) __B,
1401                (__v16hi) __W,
1402                (__mmask16) __M);
1403 }
1404 
1405 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_min_epi8(__mmask16 __M,__m128i __A,__m128i __B)1406 _mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1407 {
1408   return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1409                (__v16qi) __B,
1410                (__v16qi) _mm_setzero_si128 (),
1411                (__mmask16) __M);
1412 }
1413 
1414 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_min_epi8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1415 _mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1416        __m128i __B)
1417 {
1418   return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1419                (__v16qi) __B,
1420                (__v16qi) __W,
1421                (__mmask16) __M);
1422 }
1423 
1424 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_min_epi8(__mmask32 __M,__m256i __A,__m256i __B)1425 _mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1426 {
1427   return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1428                (__v32qi) __B,
1429                (__v32qi) _mm256_setzero_si256 (),
1430                (__mmask32) __M);
1431 }
1432 
1433 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_min_epi8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1434 _mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1435           __m256i __B)
1436 {
1437   return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1438                (__v32qi) __B,
1439                (__v32qi) __W,
1440                (__mmask32) __M);
1441 }
1442 
1443 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_min_epi16(__mmask8 __M,__m128i __A,__m128i __B)1444 _mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1445 {
1446   return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1447                (__v8hi) __B,
1448                (__v8hi) _mm_setzero_si128 (),
1449                (__mmask8) __M);
1450 }
1451 
1452 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_min_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1453 _mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1454         __m128i __B)
1455 {
1456   return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1457                (__v8hi) __B,
1458                (__v8hi) __W,
1459                (__mmask8) __M);
1460 }
1461 
1462 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_min_epi16(__mmask16 __M,__m256i __A,__m256i __B)1463 _mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1464 {
1465   return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
1466                (__v16hi) __B,
1467                (__v16hi) _mm256_setzero_si256 (),
1468                (__mmask16) __M);
1469 }
1470 
1471 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_min_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1472 _mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1473            __m256i __B)
1474 {
1475   return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
1476                (__v16hi) __B,
1477                (__v16hi) __W,
1478                (__mmask16) __M);
1479 }
1480 
1481 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_min_epu8(__mmask16 __M,__m128i __A,__m128i __B)1482 _mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1483 {
1484   return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1485                (__v16qi) __B,
1486                (__v16qi) _mm_setzero_si128 (),
1487                (__mmask16) __M);
1488 }
1489 
1490 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_min_epu8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1491 _mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1492        __m128i __B)
1493 {
1494   return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1495                (__v16qi) __B,
1496                (__v16qi) __W,
1497                (__mmask16) __M);
1498 }
1499 
1500 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_min_epu8(__mmask32 __M,__m256i __A,__m256i __B)1501 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1502 {
1503   return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1504                (__v32qi) __B,
1505                (__v32qi) _mm256_setzero_si256 (),
1506                (__mmask32) __M);
1507 }
1508 
1509 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_min_epu8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1510 _mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1511           __m256i __B)
1512 {
1513   return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1514                (__v32qi) __B,
1515                (__v32qi) __W,
1516                (__mmask32) __M);
1517 }
1518 
1519 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_min_epu16(__mmask8 __M,__m128i __A,__m128i __B)1520 _mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
1521 {
1522   return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
1523                (__v8hi) __B,
1524                (__v8hi) _mm_setzero_si128 (),
1525                (__mmask8) __M);
1526 }
1527 
1528 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_min_epu16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1529 _mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1530         __m128i __B)
1531 {
1532   return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
1533                (__v8hi) __B,
1534                (__v8hi) __W,
1535                (__mmask8) __M);
1536 }
1537 
1538 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_min_epu16(__mmask16 __M,__m256i __A,__m256i __B)1539 _mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
1540 {
1541   return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
1542                (__v16hi) __B,
1543                (__v16hi) _mm256_setzero_si256 (),
1544                (__mmask16) __M);
1545 }
1546 
1547 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_min_epu16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1548 _mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
1549            __m256i __B)
1550 {
1551   return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
1552                (__v16hi) __B,
1553                (__v16hi) __W,
1554                (__mmask16) __M);
1555 }
1556 
1557 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_shuffle_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1558 _mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1559            __m128i __B)
1560 {
1561   return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
1562                (__v16qi) __B,
1563                (__v16qi) __W,
1564                (__mmask16) __U);
1565 }
1566 
1567 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_shuffle_epi8(__mmask16 __U,__m128i __A,__m128i __B)1568 _mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
1569 {
1570   return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
1571                (__v16qi) __B,
1572                (__v16qi) _mm_setzero_si128 (),
1573                (__mmask16) __U);
1574 }
1575 
1576 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_shuffle_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1577 _mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1578         __m256i __B)
1579 {
1580   return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
1581                (__v32qi) __B,
1582                (__v32qi) __W,
1583                (__mmask32) __U);
1584 }
1585 
1586 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_shuffle_epi8(__mmask32 __U,__m256i __A,__m256i __B)1587 _mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
1588 {
1589   return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
1590                (__v32qi) __B,
1591                (__v32qi) _mm256_setzero_si256 (),
1592                (__mmask32) __U);
1593 }
1594 
1595 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_subs_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1596 _mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1597         __m128i __B)
1598 {
1599   return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
1600                (__v16qi) __B,
1601                (__v16qi) __W,
1602                (__mmask16) __U);
1603 }
1604 
1605 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_subs_epi8(__mmask16 __U,__m128i __A,__m128i __B)1606 _mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
1607 {
1608   return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
1609                (__v16qi) __B,
1610                (__v16qi) _mm_setzero_si128 (),
1611                (__mmask16) __U);
1612 }
1613 
1614 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_subs_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1615 _mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1616            __m256i __B)
1617 {
1618   return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
1619                (__v32qi) __B,
1620                (__v32qi) __W,
1621                (__mmask32) __U);
1622 }
1623 
1624 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_subs_epi8(__mmask32 __U,__m256i __A,__m256i __B)1625 _mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
1626 {
1627   return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
1628                (__v32qi) __B,
1629                (__v32qi) _mm256_setzero_si256 (),
1630                (__mmask32) __U);
1631 }
1632 
1633 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_subs_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1634 _mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1635          __m128i __B)
1636 {
1637   return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
1638                (__v8hi) __B,
1639                (__v8hi) __W,
1640                (__mmask8) __U);
1641 }
1642 
1643 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_subs_epi16(__mmask8 __U,__m128i __A,__m128i __B)1644 _mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
1645 {
1646   return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
1647                (__v8hi) __B,
1648                (__v8hi) _mm_setzero_si128 (),
1649                (__mmask8) __U);
1650 }
1651 
1652 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_subs_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1653 _mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1654       __m256i __B)
1655 {
1656   return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
1657                (__v16hi) __B,
1658                (__v16hi) __W,
1659                (__mmask16) __U);
1660 }
1661 
1662 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_subs_epi16(__mmask16 __U,__m256i __A,__m256i __B)1663 _mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
1664 {
1665   return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
1666                (__v16hi) __B,
1667                (__v16hi) _mm256_setzero_si256 (),
1668                (__mmask16) __U);
1669 }
1670 
1671 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_subs_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1672 _mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
1673         __m128i __B)
1674 {
1675   return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
1676                (__v16qi) __B,
1677                (__v16qi) __W,
1678                (__mmask16) __U);
1679 }
1680 
1681 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_subs_epu8(__mmask16 __U,__m128i __A,__m128i __B)1682 _mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
1683 {
1684   return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
1685                (__v16qi) __B,
1686                (__v16qi) _mm_setzero_si128 (),
1687                (__mmask16) __U);
1688 }
1689 
1690 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_subs_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1691 _mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
1692            __m256i __B)
1693 {
1694   return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
1695                (__v32qi) __B,
1696                (__v32qi) __W,
1697                (__mmask32) __U);
1698 }
1699 
1700 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_subs_epu8(__mmask32 __U,__m256i __A,__m256i __B)1701 _mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
1702 {
1703   return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
1704                (__v32qi) __B,
1705                (__v32qi) _mm256_setzero_si256 (),
1706                (__mmask32) __U);
1707 }
1708 
1709 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_subs_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1710 _mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
1711          __m128i __B)
1712 {
1713   return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
1714                (__v8hi) __B,
1715                (__v8hi) __W,
1716                (__mmask8) __U);
1717 }
1718 
1719 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_subs_epu16(__mmask8 __U,__m128i __A,__m128i __B)1720 _mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
1721 {
1722   return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
1723                (__v8hi) __B,
1724                (__v8hi) _mm_setzero_si128 (),
1725                (__mmask8) __U);
1726 }
1727 
1728 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_subs_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1729 _mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
1730       __m256i __B)
1731 {
1732   return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
1733                (__v16hi) __B,
1734                (__v16hi) __W,
1735                (__mmask16) __U);
1736 }
1737 
1738 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_subs_epu16(__mmask16 __U,__m256i __A,__m256i __B)1739 _mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
1740 {
1741   return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
1742                (__v16hi) __B,
1743                (__v16hi) _mm256_setzero_si256 (),
1744                (__mmask16) __U);
1745 }
1746 
1747 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask2_permutex2var_epi16(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)1748 _mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
1749             __m128i __B)
1750 {
1751   return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
1752                (__v8hi) __I /* idx */ ,
1753                (__v8hi) __B,
1754                (__mmask8) __U);
1755 }
1756 
1757 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask2_permutex2var_epi16(__m256i __A,__m256i __I,__mmask16 __U,__m256i __B)1758 _mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
1759          __mmask16 __U, __m256i __B)
1760 {
1761   return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
1762                (__v16hi) __I /* idx */ ,
1763                (__v16hi) __B,
1764                (__mmask16) __U);
1765 }
1766 
1767 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_permutex2var_epi16(__m128i __A,__m128i __I,__m128i __B)1768 _mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
1769 {
1770   return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
1771                (__v8hi) __A,
1772                (__v8hi) __B,
1773                (__mmask8) -1);
1774 }
1775 
1776 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_permutex2var_epi16(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)1777 _mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
1778            __m128i __B)
1779 {
1780   return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
1781                (__v8hi) __A,
1782                (__v8hi) __B,
1783                (__mmask8) __U);
1784 }
1785 
1786 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_permutex2var_epi16(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)1787 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
1788             __m128i __B)
1789 {
1790   return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I/* idx */,
1791                (__v8hi) __A,
1792                (__v8hi) __B,
1793                (__mmask8) __U);
1794 }
1795 
1796 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_permutex2var_epi16(__m256i __A,__m256i __I,__m256i __B)1797 _mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B)
1798 {
1799   return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
1800                (__v16hi) __A,
1801                (__v16hi) __B,
1802                (__mmask16) -1);
1803 }
1804 
1805 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_permutex2var_epi16(__m256i __A,__mmask16 __U,__m256i __I,__m256i __B)1806 _mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
1807         __m256i __I, __m256i __B)
1808 {
1809   return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
1810                (__v16hi) __A,
1811                (__v16hi) __B,
1812                (__mmask16) __U);
1813 }
1814 
1815 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_permutex2var_epi16(__mmask16 __U,__m256i __A,__m256i __I,__m256i __B)1816 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
1817          __m256i __I, __m256i __B)
1818 {
1819   return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I/* idx */,
1820                (__v16hi) __A,
1821                (__v16hi) __B,
1822                (__mmask16) __U);
1823 }
1824 
1825 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_maddubs_epi16(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)1826 _mm_mask_maddubs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1827   return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
1828                (__v16qi) __Y,
1829                (__v8hi) __W,
1830                (__mmask8) __U);
1831 }
1832 
1833 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_maddubs_epi16(__mmask8 __U,__m128i __X,__m128i __Y)1834 _mm_maskz_maddubs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) {
1835   return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
1836                (__v16qi) __Y,
1837               (__v8hi) _mm_setzero_si128(),
1838                (__mmask8) __U);
1839 }
1840 
1841 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_maddubs_epi16(__m256i __W,__mmask16 __U,__m256i __X,__m256i __Y)1842 _mm256_mask_maddubs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
1843          __m256i __Y) {
1844   return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
1845                (__v32qi) __Y,
1846                (__v16hi) __W,
1847                (__mmask16) __U);
1848 }
1849 
1850 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_maddubs_epi16(__mmask16 __U,__m256i __X,__m256i __Y)1851 _mm256_maskz_maddubs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) {
1852   return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
1853                (__v32qi) __Y,
1854                (__v16hi) _mm256_setzero_si256(),
1855                (__mmask16) __U);
1856 }
1857 
1858 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_madd_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1859 _mm_mask_madd_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1860          __m128i __B) {
1861   return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
1862                (__v8hi) __B,
1863                (__v4si) __W,
1864                (__mmask8) __U);
1865 }
1866 
1867 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_madd_epi16(__mmask8 __U,__m128i __A,__m128i __B)1868 _mm_maskz_madd_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
1869   return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
1870                (__v8hi) __B,
1871                (__v4si) _mm_setzero_si128(),
1872                (__mmask8) __U);
1873 }
1874 
1875 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_madd_epi16(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1876 _mm256_mask_madd_epi16 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1877   return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
1878                (__v16hi) __B,
1879                (__v8si) __W,
1880                (__mmask8) __U);
1881 }
1882 
1883 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_madd_epi16(__mmask8 __U,__m256i __A,__m256i __B)1884 _mm256_maskz_madd_epi16 (__mmask8 __U, __m256i __A, __m256i __B) {
1885   return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
1886                (__v16hi) __B,
1887                (__v8si) _mm256_setzero_si256(),
1888                (__mmask8) __U);
1889 }
1890 
1891 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_cvtsepi16_epi8(__m128i __A)1892 _mm_cvtsepi16_epi8 (__m128i __A) {
1893   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1894                (__v16qi) _mm_setzero_si128(),
1895                (__mmask8) -1);
1896 }
1897 
1898 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_cvtsepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)1899 _mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1900   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1901                (__v16qi) __O,
1902                 __M);
1903 }
1904 
1905 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_cvtsepi16_epi8(__mmask8 __M,__m128i __A)1906 _mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) {
1907   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1908                (__v16qi) _mm_setzero_si128(),
1909                __M);
1910 }
1911 
1912 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_cvtsepi16_epi8(__m256i __A)1913 _mm256_cvtsepi16_epi8 (__m256i __A) {
1914   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1915                (__v16qi) _mm_setzero_si128(),
1916                (__mmask16) -1);
1917 }
1918 
1919 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_mask_cvtsepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)1920 _mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1921   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1922                (__v16qi) __O,
1923                 __M);
1924 }
1925 
1926 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_maskz_cvtsepi16_epi8(__mmask16 __M,__m256i __A)1927 _mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) {
1928   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1929                (__v16qi) _mm_setzero_si128(),
1930                __M);
1931 }
1932 
1933 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_cvtusepi16_epi8(__m128i __A)1934 _mm_cvtusepi16_epi8 (__m128i __A) {
1935   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1936                 (__v16qi) _mm_setzero_si128(),
1937                 (__mmask8) -1);
1938 }
1939 
1940 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_cvtusepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)1941 _mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1942   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1943                 (__v16qi) __O,
1944                 __M);
1945 }
1946 
1947 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_cvtusepi16_epi8(__mmask8 __M,__m128i __A)1948 _mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) {
1949   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1950                 (__v16qi) _mm_setzero_si128(),
1951                 __M);
1952 }
1953 
1954 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_cvtusepi16_epi8(__m256i __A)1955 _mm256_cvtusepi16_epi8 (__m256i __A) {
1956   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1957                 (__v16qi) _mm_setzero_si128(),
1958                 (__mmask16) -1);
1959 }
1960 
1961 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_mask_cvtusepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)1962 _mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1963   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1964                 (__v16qi) __O,
1965                 __M);
1966 }
1967 
1968 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_maskz_cvtusepi16_epi8(__mmask16 __M,__m256i __A)1969 _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) {
1970   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1971                 (__v16qi) _mm_setzero_si128(),
1972                 __M);
1973 }
1974 
1975 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_cvtepi16_epi8(__m128i __A)1976 _mm_cvtepi16_epi8 (__m128i __A) {
1977 
1978   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1979                (__v16qi) _mm_setzero_si128(),
1980                (__mmask8) -1);
1981 }
1982 
1983 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_cvtepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)1984 _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1985   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1986                (__v16qi) __O,
1987                __M);
1988 }
1989 
1990 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_cvtepi16_epi8(__mmask8 __M,__m128i __A)1991 _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) {
1992   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1993                (__v16qi) _mm_setzero_si128(),
1994                __M);
1995 }
1996 
1997 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_cvtepi16_epi8(__m256i __A)1998 _mm256_cvtepi16_epi8 (__m256i __A) {
1999   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
2000                (__v16qi) _mm_setzero_si128(),
2001                (__mmask16) -1);
2002 }
2003 
2004 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_mask_cvtepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)2005 _mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
2006   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
2007                (__v16qi) __O,
2008                __M);
2009 }
2010 
2011 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_maskz_cvtepi16_epi8(__mmask16 __M,__m256i __A)2012 _mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) {
2013   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
2014                (__v16qi) _mm_setzero_si128(),
2015                __M);
2016 }
2017 
2018 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mulhrs_epi16(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)2019 _mm_mask_mulhrs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
2020   return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2021                (__v8hi) __Y,
2022                (__v8hi) __W,
2023                (__mmask8) __U);
2024 }
2025 
2026 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mulhrs_epi16(__mmask8 __U,__m128i __X,__m128i __Y)2027 _mm_maskz_mulhrs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) {
2028   return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2029                (__v8hi) __Y,
2030               (__v8hi) _mm_setzero_si128(),
2031                (__mmask8) __U);
2032 }
2033 
2034 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mulhrs_epi16(__m256i __W,__mmask16 __U,__m256i __X,__m256i __Y)2035 _mm256_mask_mulhrs_epi16 (__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
2036   return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2037                (__v16hi) __Y,
2038                (__v16hi) __W,
2039                (__mmask16) __U);
2040 }
2041 
2042 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mulhrs_epi16(__mmask16 __U,__m256i __X,__m256i __Y)2043 _mm256_maskz_mulhrs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) {
2044   return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2045                (__v16hi) __Y,
2046                (__v16hi) _mm256_setzero_si256(),
2047                (__mmask16) __U);
2048 }
2049 
2050 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mulhi_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2051 _mm_mask_mulhi_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
2052           __m128i __B) {
2053   return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2054                (__v8hi) __B,
2055                (__v8hi) __W,
2056                (__mmask8) __U);
2057 }
2058 
2059 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mulhi_epu16(__mmask8 __U,__m128i __A,__m128i __B)2060 _mm_maskz_mulhi_epu16 (__mmask8 __U, __m128i __A, __m128i __B) {
2061   return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2062                (__v8hi) __B,
2063               (__v8hi) _mm_setzero_si128(),
2064                (__mmask8) __U);
2065 }
2066 
2067 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mulhi_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2068 _mm256_mask_mulhi_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2069        __m256i __B) {
2070   return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2071                (__v16hi) __B,
2072                (__v16hi) __W,
2073                (__mmask16) __U);
2074 }
2075 
2076 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mulhi_epu16(__mmask16 __U,__m256i __A,__m256i __B)2077 _mm256_maskz_mulhi_epu16 (__mmask16 __U, __m256i __A, __m256i __B) {
2078   return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2079                (__v16hi) __B,
2080                (__v16hi) _mm256_setzero_si256(),
2081                (__mmask16) __U);
2082 }
2083 
2084 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mulhi_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2085 _mm_mask_mulhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2086           __m128i __B) {
2087   return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2088                (__v8hi) __B,
2089                (__v8hi) __W,
2090                (__mmask8) __U);
2091 }
2092 
2093 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mulhi_epi16(__mmask8 __U,__m128i __A,__m128i __B)2094 _mm_maskz_mulhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
2095   return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2096                (__v8hi) __B,
2097               (__v8hi) _mm_setzero_si128(),
2098                (__mmask8) __U);
2099 }
2100 
2101 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mulhi_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2102 _mm256_mask_mulhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2103        __m256i __B) {
2104   return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2105                (__v16hi) __B,
2106                (__v16hi) __W,
2107                (__mmask16) __U);
2108 }
2109 
2110 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mulhi_epi16(__mmask16 __U,__m256i __A,__m256i __B)2111 _mm256_maskz_mulhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
2112   return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2113                (__v16hi) __B,
2114                (__v16hi) _mm256_setzero_si256(),
2115                (__mmask16) __U);
2116 }
2117 
2118 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_unpackhi_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)2119 _mm_mask_unpackhi_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2120       __m128i __B) {
2121   return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
2122                (__v16qi) __B,
2123                (__v16qi) __W,
2124                (__mmask16) __U);
2125 }
2126 
2127 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_unpackhi_epi8(__mmask16 __U,__m128i __A,__m128i __B)2128 _mm_maskz_unpackhi_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
2129   return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A,
2130                (__v16qi) __B,
2131                (__v16qi) _mm_setzero_si128(),
2132                (__mmask16) __U);
2133 }
2134 
2135 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_unpackhi_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)2136 _mm256_mask_unpackhi_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2137          __m256i __B) {
2138   return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
2139                (__v32qi) __B,
2140                (__v32qi) __W,
2141                (__mmask32) __U);
2142 }
2143 
2144 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_unpackhi_epi8(__mmask32 __U,__m256i __A,__m256i __B)2145 _mm256_maskz_unpackhi_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
2146   return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A,
2147                (__v32qi) __B,
2148                (__v32qi) _mm256_setzero_si256(),
2149                (__mmask32) __U);
2150 }
2151 
2152 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_unpackhi_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2153 _mm_mask_unpackhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2154        __m128i __B) {
2155   return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
2156                (__v8hi) __B,
2157                (__v8hi) __W,
2158                (__mmask8) __U);
2159 }
2160 
2161 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_unpackhi_epi16(__mmask8 __U,__m128i __A,__m128i __B)2162 _mm_maskz_unpackhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
2163   return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A,
2164                (__v8hi) __B,
2165                (__v8hi) _mm_setzero_si128(),
2166                (__mmask8) __U);
2167 }
2168 
2169 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_unpackhi_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2170 _mm256_mask_unpackhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2171           __m256i __B) {
2172   return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
2173                (__v16hi) __B,
2174                (__v16hi) __W,
2175                (__mmask16) __U);
2176 }
2177 
2178 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_unpackhi_epi16(__mmask16 __U,__m256i __A,__m256i __B)2179 _mm256_maskz_unpackhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
2180   return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A,
2181                (__v16hi) __B,
2182                (__v16hi) _mm256_setzero_si256(),
2183                (__mmask16) __U);
2184 }
2185 
2186 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_unpacklo_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)2187 _mm_mask_unpacklo_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
2188       __m128i __B) {
2189   return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
2190                (__v16qi) __B,
2191                (__v16qi) __W,
2192                (__mmask16) __U);
2193 }
2194 
2195 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_unpacklo_epi8(__mmask16 __U,__m128i __A,__m128i __B)2196 _mm_maskz_unpacklo_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
2197   return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A,
2198                (__v16qi) __B,
2199                (__v16qi) _mm_setzero_si128(),
2200                (__mmask16) __U);
2201 }
2202 
2203 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_unpacklo_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)2204 _mm256_mask_unpacklo_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
2205          __m256i __B) {
2206   return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
2207                (__v32qi) __B,
2208                (__v32qi) __W,
2209                (__mmask32) __U);
2210 }
2211 
2212 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_unpacklo_epi8(__mmask32 __U,__m256i __A,__m256i __B)2213 _mm256_maskz_unpacklo_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
2214   return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A,
2215                (__v32qi) __B,
2216                (__v32qi) _mm256_setzero_si256(),
2217                (__mmask32) __U);
2218 }
2219 
2220 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_unpacklo_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2221 _mm_mask_unpacklo_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2222        __m128i __B) {
2223   return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
2224                (__v8hi) __B,
2225                (__v8hi) __W,
2226                (__mmask8) __U);
2227 }
2228 
2229 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_unpacklo_epi16(__mmask8 __U,__m128i __A,__m128i __B)2230 _mm_maskz_unpacklo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
2231   return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A,
2232                (__v8hi) __B,
2233                (__v8hi) _mm_setzero_si128(),
2234                (__mmask8) __U);
2235 }
2236 
2237 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_unpacklo_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2238 _mm256_mask_unpacklo_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2239           __m256i __B) {
2240   return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
2241                (__v16hi) __B,
2242                (__v16hi) __W,
2243                (__mmask16) __U);
2244 }
2245 
2246 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_unpacklo_epi16(__mmask16 __U,__m256i __A,__m256i __B)2247 _mm256_maskz_unpacklo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
2248   return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A,
2249                (__v16hi) __B,
2250                (__v16hi) _mm256_setzero_si256(),
2251                (__mmask16) __U);
2252 }
2253 
2254 #define _mm_cmp_epi8_mask(a, b, p) __extension__ ({ \
2255   (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
2256                                          (__v16qi)(__m128i)(b), \
2257                                          (p), (__mmask16)-1); })
2258 
2259 #define _mm_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
2260   (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
2261                                          (__v16qi)(__m128i)(b), \
2262                                          (p), (__mmask16)(m)); })
2263 
2264 #define _mm_cmp_epu8_mask(a, b, p) __extension__ ({ \
2265   (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
2266                                           (__v16qi)(__m128i)(b), \
2267                                           (p), (__mmask16)-1); })
2268 
2269 #define _mm_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
2270   (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
2271                                           (__v16qi)(__m128i)(b), \
2272                                           (p), (__mmask16)(m)); })
2273 
2274 #define _mm256_cmp_epi8_mask(a, b, p) __extension__ ({ \
2275   (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
2276                                          (__v32qi)(__m256i)(b), \
2277                                          (p), (__mmask32)-1); })
2278 
2279 #define _mm256_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
2280   (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
2281                                          (__v32qi)(__m256i)(b), \
2282                                          (p), (__mmask32)(m)); })
2283 
2284 #define _mm256_cmp_epu8_mask(a, b, p) __extension__ ({ \
2285   (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
2286                                           (__v32qi)(__m256i)(b), \
2287                                           (p), (__mmask32)-1); })
2288 
2289 #define _mm256_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
2290   (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
2291                                           (__v32qi)(__m256i)(b), \
2292                                           (p), (__mmask32)(m)); })
2293 
2294 #define _mm_cmp_epi16_mask(a, b, p) __extension__ ({ \
2295   (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
2296                                         (__v8hi)(__m128i)(b), \
2297                                         (p), (__mmask8)-1); })
2298 
2299 #define _mm_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
2300   (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
2301                                         (__v8hi)(__m128i)(b), \
2302                                         (p), (__mmask8)(m)); })
2303 
2304 #define _mm_cmp_epu16_mask(a, b, p) __extension__ ({ \
2305   (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
2306                                          (__v8hi)(__m128i)(b), \
2307                                          (p), (__mmask8)-1); })
2308 
2309 #define _mm_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
2310   (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
2311                                          (__v8hi)(__m128i)(b), \
2312                                          (p), (__mmask8)(m)); })
2313 
2314 #define _mm256_cmp_epi16_mask(a, b, p) __extension__ ({ \
2315   (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
2316                                          (__v16hi)(__m256i)(b), \
2317                                          (p), (__mmask16)-1); })
2318 
2319 #define _mm256_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
2320   (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
2321                                          (__v16hi)(__m256i)(b), \
2322                                          (p), (__mmask16)(m)); })
2323 
2324 #define _mm256_cmp_epu16_mask(a, b, p) __extension__ ({ \
2325   (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
2326                                           (__v16hi)(__m256i)(b), \
2327                                           (p), (__mmask16)-1); })
2328 
2329 #define _mm256_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
2330   (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
2331                                           (__v16hi)(__m256i)(b), \
2332                                           (p), (__mmask16)(m)); })
2333 
2334 #undef __DEFAULT_FN_ATTRS
2335 
2336 #endif /* __AVX512VLBWINTRIN_H */
2337