• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 static  __inline __m128i __DEFAULT_FN_ATTRS
_mm_setzero_hi(void)35 _mm_setzero_hi(void){
36     return (__m128i)(__v8hi){ 0, 0, 0, 0, 0, 0, 0, 0 };
37 }
38 
39 /* Integer compare */
40 
41 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpeq_epi8_mask(__m128i __a,__m128i __b)42 _mm_cmpeq_epi8_mask(__m128i __a, __m128i __b) {
43   return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b,
44                                                    (__mmask16)-1);
45 }
46 
47 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpeq_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)48 _mm_mask_cmpeq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
49   return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b,
50                                                    __u);
51 }
52 
53 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpeq_epu8_mask(__m128i __a,__m128i __b)54 _mm_cmpeq_epu8_mask(__m128i __a, __m128i __b) {
55   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0,
56                                                  (__mmask16)-1);
57 }
58 
59 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpeq_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)60 _mm_mask_cmpeq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
61   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0,
62                                                  __u);
63 }
64 
65 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpeq_epi8_mask(__m256i __a,__m256i __b)66 _mm256_cmpeq_epi8_mask(__m256i __a, __m256i __b) {
67   return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b,
68                                                    (__mmask32)-1);
69 }
70 
71 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpeq_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)72 _mm256_mask_cmpeq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
73   return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b,
74                                                    __u);
75 }
76 
77 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpeq_epu8_mask(__m256i __a,__m256i __b)78 _mm256_cmpeq_epu8_mask(__m256i __a, __m256i __b) {
79   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0,
80                                                  (__mmask32)-1);
81 }
82 
83 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpeq_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)84 _mm256_mask_cmpeq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
85   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0,
86                                                  __u);
87 }
88 
89 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpeq_epi16_mask(__m128i __a,__m128i __b)90 _mm_cmpeq_epi16_mask(__m128i __a, __m128i __b) {
91   return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b,
92                                                   (__mmask8)-1);
93 }
94 
95 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpeq_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)96 _mm_mask_cmpeq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
97   return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b,
98                                                   __u);
99 }
100 
101 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpeq_epu16_mask(__m128i __a,__m128i __b)102 _mm_cmpeq_epu16_mask(__m128i __a, __m128i __b) {
103   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0,
104                                                 (__mmask8)-1);
105 }
106 
107 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpeq_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)108 _mm_mask_cmpeq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
109   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0,
110                                                 __u);
111 }
112 
113 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpeq_epi16_mask(__m256i __a,__m256i __b)114 _mm256_cmpeq_epi16_mask(__m256i __a, __m256i __b) {
115   return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b,
116                                                    (__mmask16)-1);
117 }
118 
119 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpeq_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)120 _mm256_mask_cmpeq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
121   return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b,
122                                                    __u);
123 }
124 
125 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpeq_epu16_mask(__m256i __a,__m256i __b)126 _mm256_cmpeq_epu16_mask(__m256i __a, __m256i __b) {
127   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0,
128                                                  (__mmask16)-1);
129 }
130 
131 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpeq_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)132 _mm256_mask_cmpeq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
133   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0,
134                                                  __u);
135 }
136 
137 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpge_epi8_mask(__m128i __a,__m128i __b)138 _mm_cmpge_epi8_mask(__m128i __a, __m128i __b) {
139   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
140                                                 (__mmask16)-1);
141 }
142 
143 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpge_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)144 _mm_mask_cmpge_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
145   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
146                                                 __u);
147 }
148 
149 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpge_epu8_mask(__m128i __a,__m128i __b)150 _mm_cmpge_epu8_mask(__m128i __a, __m128i __b) {
151   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
152                                                  (__mmask16)-1);
153 }
154 
155 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpge_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)156 _mm_mask_cmpge_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
157   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5,
158                                                  __u);
159 }
160 
161 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpge_epi8_mask(__m256i __a,__m256i __b)162 _mm256_cmpge_epi8_mask(__m256i __a, __m256i __b) {
163   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
164                                                 (__mmask32)-1);
165 }
166 
167 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpge_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)168 _mm256_mask_cmpge_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
169   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
170                                                 __u);
171 }
172 
173 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpge_epu8_mask(__m256i __a,__m256i __b)174 _mm256_cmpge_epu8_mask(__m256i __a, __m256i __b) {
175   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
176                                                  (__mmask32)-1);
177 }
178 
179 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpge_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)180 _mm256_mask_cmpge_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
181   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5,
182                                                  __u);
183 }
184 
185 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpge_epi16_mask(__m128i __a,__m128i __b)186 _mm_cmpge_epi16_mask(__m128i __a, __m128i __b) {
187   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
188                                                (__mmask8)-1);
189 }
190 
191 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpge_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)192 _mm_mask_cmpge_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
193   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
194                                                __u);
195 }
196 
197 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpge_epu16_mask(__m128i __a,__m128i __b)198 _mm_cmpge_epu16_mask(__m128i __a, __m128i __b) {
199   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
200                                                 (__mmask8)-1);
201 }
202 
203 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpge_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)204 _mm_mask_cmpge_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
205   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5,
206                                                 __u);
207 }
208 
209 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpge_epi16_mask(__m256i __a,__m256i __b)210 _mm256_cmpge_epi16_mask(__m256i __a, __m256i __b) {
211   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
212                                                 (__mmask16)-1);
213 }
214 
215 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpge_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)216 _mm256_mask_cmpge_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
217   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
218                                                 __u);
219 }
220 
221 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpge_epu16_mask(__m256i __a,__m256i __b)222 _mm256_cmpge_epu16_mask(__m256i __a, __m256i __b) {
223   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
224                                                  (__mmask16)-1);
225 }
226 
227 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpge_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)228 _mm256_mask_cmpge_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
229   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5,
230                                                  __u);
231 }
232 
233 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpgt_epi8_mask(__m128i __a,__m128i __b)234 _mm_cmpgt_epi8_mask(__m128i __a, __m128i __b) {
235   return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b,
236                                                    (__mmask16)-1);
237 }
238 
239 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpgt_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)240 _mm_mask_cmpgt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
241   return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b,
242                                                    __u);
243 }
244 
245 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpgt_epu8_mask(__m128i __a,__m128i __b)246 _mm_cmpgt_epu8_mask(__m128i __a, __m128i __b) {
247   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6,
248                                                  (__mmask16)-1);
249 }
250 
251 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpgt_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)252 _mm_mask_cmpgt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
253   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6,
254                                                  __u);
255 }
256 
257 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpgt_epi8_mask(__m256i __a,__m256i __b)258 _mm256_cmpgt_epi8_mask(__m256i __a, __m256i __b) {
259   return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b,
260                                                    (__mmask32)-1);
261 }
262 
263 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpgt_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)264 _mm256_mask_cmpgt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
265   return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b,
266                                                    __u);
267 }
268 
269 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpgt_epu8_mask(__m256i __a,__m256i __b)270 _mm256_cmpgt_epu8_mask(__m256i __a, __m256i __b) {
271   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6,
272                                                  (__mmask32)-1);
273 }
274 
275 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpgt_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)276 _mm256_mask_cmpgt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
277   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6,
278                                                  __u);
279 }
280 
281 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpgt_epi16_mask(__m128i __a,__m128i __b)282 _mm_cmpgt_epi16_mask(__m128i __a, __m128i __b) {
283   return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b,
284                                                   (__mmask8)-1);
285 }
286 
287 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpgt_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)288 _mm_mask_cmpgt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
289   return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b,
290                                                   __u);
291 }
292 
293 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpgt_epu16_mask(__m128i __a,__m128i __b)294 _mm_cmpgt_epu16_mask(__m128i __a, __m128i __b) {
295   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6,
296                                                 (__mmask8)-1);
297 }
298 
299 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpgt_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)300 _mm_mask_cmpgt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
301   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6,
302                                                 __u);
303 }
304 
305 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpgt_epi16_mask(__m256i __a,__m256i __b)306 _mm256_cmpgt_epi16_mask(__m256i __a, __m256i __b) {
307   return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b,
308                                                    (__mmask16)-1);
309 }
310 
311 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpgt_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)312 _mm256_mask_cmpgt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
313   return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b,
314                                                    __u);
315 }
316 
317 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpgt_epu16_mask(__m256i __a,__m256i __b)318 _mm256_cmpgt_epu16_mask(__m256i __a, __m256i __b) {
319   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6,
320                                                  (__mmask16)-1);
321 }
322 
323 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpgt_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)324 _mm256_mask_cmpgt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
325   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6,
326                                                  __u);
327 }
328 
329 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmple_epi8_mask(__m128i __a,__m128i __b)330 _mm_cmple_epi8_mask(__m128i __a, __m128i __b) {
331   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
332                                                 (__mmask16)-1);
333 }
334 
335 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmple_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)336 _mm_mask_cmple_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
337   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
338                                                 __u);
339 }
340 
341 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmple_epu8_mask(__m128i __a,__m128i __b)342 _mm_cmple_epu8_mask(__m128i __a, __m128i __b) {
343   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
344                                                  (__mmask16)-1);
345 }
346 
347 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmple_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)348 _mm_mask_cmple_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
349   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2,
350                                                  __u);
351 }
352 
353 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmple_epi8_mask(__m256i __a,__m256i __b)354 _mm256_cmple_epi8_mask(__m256i __a, __m256i __b) {
355   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
356                                                 (__mmask32)-1);
357 }
358 
359 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmple_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)360 _mm256_mask_cmple_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
361   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
362                                                 __u);
363 }
364 
365 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmple_epu8_mask(__m256i __a,__m256i __b)366 _mm256_cmple_epu8_mask(__m256i __a, __m256i __b) {
367   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
368                                                  (__mmask32)-1);
369 }
370 
371 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmple_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)372 _mm256_mask_cmple_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
373   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2,
374                                                  __u);
375 }
376 
377 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmple_epi16_mask(__m128i __a,__m128i __b)378 _mm_cmple_epi16_mask(__m128i __a, __m128i __b) {
379   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
380                                                (__mmask8)-1);
381 }
382 
383 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmple_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)384 _mm_mask_cmple_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
385   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
386                                                __u);
387 }
388 
389 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmple_epu16_mask(__m128i __a,__m128i __b)390 _mm_cmple_epu16_mask(__m128i __a, __m128i __b) {
391   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
392                                                 (__mmask8)-1);
393 }
394 
395 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmple_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)396 _mm_mask_cmple_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
397   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2,
398                                                 __u);
399 }
400 
401 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmple_epi16_mask(__m256i __a,__m256i __b)402 _mm256_cmple_epi16_mask(__m256i __a, __m256i __b) {
403   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
404                                                 (__mmask16)-1);
405 }
406 
407 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmple_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)408 _mm256_mask_cmple_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
409   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
410                                                 __u);
411 }
412 
413 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmple_epu16_mask(__m256i __a,__m256i __b)414 _mm256_cmple_epu16_mask(__m256i __a, __m256i __b) {
415   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
416                                                  (__mmask16)-1);
417 }
418 
419 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmple_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)420 _mm256_mask_cmple_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
421   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2,
422                                                  __u);
423 }
424 
425 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmplt_epi8_mask(__m128i __a,__m128i __b)426 _mm_cmplt_epi8_mask(__m128i __a, __m128i __b) {
427   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
428                                                 (__mmask16)-1);
429 }
430 
431 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmplt_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)432 _mm_mask_cmplt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
433   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
434                                                 __u);
435 }
436 
437 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmplt_epu8_mask(__m128i __a,__m128i __b)438 _mm_cmplt_epu8_mask(__m128i __a, __m128i __b) {
439   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
440                                                  (__mmask16)-1);
441 }
442 
443 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmplt_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)444 _mm_mask_cmplt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
445   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1,
446                                                  __u);
447 }
448 
449 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmplt_epi8_mask(__m256i __a,__m256i __b)450 _mm256_cmplt_epi8_mask(__m256i __a, __m256i __b) {
451   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
452                                                 (__mmask32)-1);
453 }
454 
455 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmplt_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)456 _mm256_mask_cmplt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
457   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
458                                                 __u);
459 }
460 
461 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmplt_epu8_mask(__m256i __a,__m256i __b)462 _mm256_cmplt_epu8_mask(__m256i __a, __m256i __b) {
463   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
464                                                  (__mmask32)-1);
465 }
466 
467 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmplt_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)468 _mm256_mask_cmplt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
469   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1,
470                                                  __u);
471 }
472 
473 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmplt_epi16_mask(__m128i __a,__m128i __b)474 _mm_cmplt_epi16_mask(__m128i __a, __m128i __b) {
475   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
476                                                (__mmask8)-1);
477 }
478 
479 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmplt_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)480 _mm_mask_cmplt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
481   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
482                                                __u);
483 }
484 
485 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmplt_epu16_mask(__m128i __a,__m128i __b)486 _mm_cmplt_epu16_mask(__m128i __a, __m128i __b) {
487   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
488                                                 (__mmask8)-1);
489 }
490 
491 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmplt_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)492 _mm_mask_cmplt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
493   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1,
494                                                 __u);
495 }
496 
497 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmplt_epi16_mask(__m256i __a,__m256i __b)498 _mm256_cmplt_epi16_mask(__m256i __a, __m256i __b) {
499   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
500                                                 (__mmask16)-1);
501 }
502 
503 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmplt_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)504 _mm256_mask_cmplt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
505   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
506                                                 __u);
507 }
508 
509 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmplt_epu16_mask(__m256i __a,__m256i __b)510 _mm256_cmplt_epu16_mask(__m256i __a, __m256i __b) {
511   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
512                                                  (__mmask16)-1);
513 }
514 
515 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmplt_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)516 _mm256_mask_cmplt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
517   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1,
518                                                  __u);
519 }
520 
521 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpneq_epi8_mask(__m128i __a,__m128i __b)522 _mm_cmpneq_epi8_mask(__m128i __a, __m128i __b) {
523   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
524                                                 (__mmask16)-1);
525 }
526 
527 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpneq_epi8_mask(__mmask16 __u,__m128i __a,__m128i __b)528 _mm_mask_cmpneq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
529   return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
530                                                 __u);
531 }
532 
533 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_cmpneq_epu8_mask(__m128i __a,__m128i __b)534 _mm_cmpneq_epu8_mask(__m128i __a, __m128i __b) {
535   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
536                                                  (__mmask16)-1);
537 }
538 
539 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_cmpneq_epu8_mask(__mmask16 __u,__m128i __a,__m128i __b)540 _mm_mask_cmpneq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) {
541   return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4,
542                                                  __u);
543 }
544 
545 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpneq_epi8_mask(__m256i __a,__m256i __b)546 _mm256_cmpneq_epi8_mask(__m256i __a, __m256i __b) {
547   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
548                                                 (__mmask32)-1);
549 }
550 
551 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpneq_epi8_mask(__mmask32 __u,__m256i __a,__m256i __b)552 _mm256_mask_cmpneq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
553   return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
554                                                 __u);
555 }
556 
557 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_cmpneq_epu8_mask(__m256i __a,__m256i __b)558 _mm256_cmpneq_epu8_mask(__m256i __a, __m256i __b) {
559   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
560                                                  (__mmask32)-1);
561 }
562 
563 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_cmpneq_epu8_mask(__mmask32 __u,__m256i __a,__m256i __b)564 _mm256_mask_cmpneq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) {
565   return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4,
566                                                  __u);
567 }
568 
569 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpneq_epi16_mask(__m128i __a,__m128i __b)570 _mm_cmpneq_epi16_mask(__m128i __a, __m128i __b) {
571   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
572                                                (__mmask8)-1);
573 }
574 
575 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpneq_epi16_mask(__mmask8 __u,__m128i __a,__m128i __b)576 _mm_mask_cmpneq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
577   return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
578                                                __u);
579 }
580 
581 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_cmpneq_epu16_mask(__m128i __a,__m128i __b)582 _mm_cmpneq_epu16_mask(__m128i __a, __m128i __b) {
583   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
584                                                 (__mmask8)-1);
585 }
586 
587 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_cmpneq_epu16_mask(__mmask8 __u,__m128i __a,__m128i __b)588 _mm_mask_cmpneq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) {
589   return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4,
590                                                 __u);
591 }
592 
593 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpneq_epi16_mask(__m256i __a,__m256i __b)594 _mm256_cmpneq_epi16_mask(__m256i __a, __m256i __b) {
595   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
596                                                 (__mmask16)-1);
597 }
598 
599 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpneq_epi16_mask(__mmask16 __u,__m256i __a,__m256i __b)600 _mm256_mask_cmpneq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
601   return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
602                                                 __u);
603 }
604 
605 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_cmpneq_epu16_mask(__m256i __a,__m256i __b)606 _mm256_cmpneq_epu16_mask(__m256i __a, __m256i __b) {
607   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
608                                                  (__mmask16)-1);
609 }
610 
611 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_cmpneq_epu16_mask(__mmask16 __u,__m256i __a,__m256i __b)612 _mm256_mask_cmpneq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) {
613   return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4,
614                                                  __u);
615 }
616 
617 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_add_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)618 _mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){
619   return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
620              (__v32qi) __B,
621              (__v32qi) __W,
622              (__mmask32) __U);
623 }
624 
625 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_add_epi8(__mmask32 __U,__m256i __A,__m256i __B)626 _mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
627   return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A,
628              (__v32qi) __B,
629              (__v32qi)
630              _mm256_setzero_si256 (),
631              (__mmask32) __U);
632 }
633 
634 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_add_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)635 _mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
636   return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
637              (__v16hi) __B,
638              (__v16hi) __W,
639              (__mmask16) __U);
640 }
641 
642 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_add_epi16(__mmask16 __U,__m256i __A,__m256i __B)643 _mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
644   return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A,
645              (__v16hi) __B,
646              (__v16hi)
647              _mm256_setzero_si256 (),
648              (__mmask16) __U);
649 }
650 
651 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_sub_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)652 _mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
653   return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
654              (__v32qi) __B,
655              (__v32qi) __W,
656              (__mmask32) __U);
657 }
658 
659 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_sub_epi8(__mmask32 __U,__m256i __A,__m256i __B)660 _mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B) {
661   return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A,
662              (__v32qi) __B,
663              (__v32qi)
664              _mm256_setzero_si256 (),
665              (__mmask32) __U);
666 }
667 
668 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_sub_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)669 _mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
670   return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
671              (__v16hi) __B,
672              (__v16hi) __W,
673              (__mmask16) __U);
674 }
675 
676 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_sub_epi16(__mmask16 __U,__m256i __A,__m256i __B)677 _mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
678   return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A,
679              (__v16hi) __B,
680              (__v16hi)
681              _mm256_setzero_si256 (),
682              (__mmask16) __U);
683 }
684 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_add_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)685 _mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
686   return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
687              (__v16qi) __B,
688              (__v16qi) __W,
689              (__mmask16) __U);
690 }
691 
692 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_add_epi8(__mmask16 __U,__m128i __A,__m128i __B)693 _mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
694   return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A,
695              (__v16qi) __B,
696              (__v16qi)
697              _mm_setzero_si128 (),
698              (__mmask16) __U);
699 }
700 
701 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_add_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)702 _mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
703   return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
704              (__v8hi) __B,
705              (__v8hi) __W,
706              (__mmask8) __U);
707 }
708 
709 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_add_epi16(__mmask8 __U,__m128i __A,__m128i __B)710 _mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
711   return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A,
712              (__v8hi) __B,
713              (__v8hi)
714              _mm_setzero_si128 (),
715              (__mmask8) __U);
716 }
717 
718 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_sub_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)719 _mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
720   return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
721              (__v16qi) __B,
722              (__v16qi) __W,
723              (__mmask16) __U);
724 }
725 
726 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_sub_epi8(__mmask16 __U,__m128i __A,__m128i __B)727 _mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B) {
728   return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A,
729              (__v16qi) __B,
730              (__v16qi)
731              _mm_setzero_si128 (),
732              (__mmask16) __U);
733 }
734 
735 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_sub_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)736 _mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
737   return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
738              (__v8hi) __B,
739              (__v8hi) __W,
740              (__mmask8) __U);
741 }
742 
743 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_sub_epi16(__mmask8 __U,__m128i __A,__m128i __B)744 _mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
745   return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A,
746              (__v8hi) __B,
747              (__v8hi)
748              _mm_setzero_si128 (),
749              (__mmask8) __U);
750 }
751 
752 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mullo_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)753 _mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
754   return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
755               (__v16hi) __B,
756               (__v16hi) __W,
757               (__mmask16) __U);
758 }
759 
760 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mullo_epi16(__mmask16 __U,__m256i __A,__m256i __B)761 _mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
762   return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A,
763               (__v16hi) __B,
764               (__v16hi)
765               _mm256_setzero_si256 (),
766               (__mmask16) __U);
767 }
768 
769 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mullo_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)770 _mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
771   return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
772               (__v8hi) __B,
773               (__v8hi) __W,
774               (__mmask8) __U);
775 }
776 
777 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mullo_epi16(__mmask8 __U,__m128i __A,__m128i __B)778 _mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
779   return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A,
780               (__v8hi) __B,
781               (__v8hi)
782               _mm_setzero_si128 (),
783               (__mmask8) __U);
784 }
785 
786 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_blend_epi8(__mmask16 __U,__m128i __A,__m128i __W)787 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
788 {
789   return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
790               (__v16qi) __W,
791               (__v16qi) __A);
792 }
793 
794 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_blend_epi8(__mmask32 __U,__m256i __A,__m256i __W)795 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
796 {
797   return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
798                (__v32qi) __W,
799                (__v32qi) __A);
800 }
801 
802 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_blend_epi16(__mmask8 __U,__m128i __A,__m128i __W)803 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
804 {
805   return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
806                (__v8hi) __W,
807                (__v8hi) __A);
808 }
809 
810 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_blend_epi16(__mmask16 __U,__m256i __A,__m256i __W)811 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
812 {
813   return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
814                (__v16hi) __W,
815                (__v16hi) __A);
816 }
817 
818 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_abs_epi8(__m128i __W,__mmask16 __U,__m128i __A)819 _mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
820 {
821   return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
822                (__v16qi) __W,
823                (__mmask16) __U);
824 }
825 
826 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_abs_epi8(__mmask16 __U,__m128i __A)827 _mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A)
828 {
829   return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A,
830                (__v16qi) _mm_setzero_si128 (),
831                (__mmask16) __U);
832 }
833 
834 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_abs_epi8(__m256i __W,__mmask32 __U,__m256i __A)835 _mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
836 {
837   return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
838                (__v32qi) __W,
839                (__mmask32) __U);
840 }
841 
842 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_abs_epi8(__mmask32 __U,__m256i __A)843 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
844 {
845   return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A,
846                (__v32qi) _mm256_setzero_si256 (),
847                (__mmask32) __U);
848 }
849 
850 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_abs_epi16(__m128i __W,__mmask8 __U,__m128i __A)851 _mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
852 {
853   return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
854                (__v8hi) __W,
855                (__mmask8) __U);
856 }
857 
858 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_abs_epi16(__mmask8 __U,__m128i __A)859 _mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A)
860 {
861   return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A,
862                (__v8hi) _mm_setzero_si128 (),
863                (__mmask8) __U);
864 }
865 
866 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_abs_epi16(__m256i __W,__mmask16 __U,__m256i __A)867 _mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
868 {
869   return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
870                (__v16hi) __W,
871                (__mmask16) __U);
872 }
873 
874 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_abs_epi16(__mmask16 __U,__m256i __A)875 _mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A)
876 {
877   return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A,
878                (__v16hi) _mm256_setzero_si256 (),
879                (__mmask16) __U);
880 }
881 
882 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_packs_epi32(__mmask8 __M,__m128i __A,__m128i __B)883 _mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
884 {
885   return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
886                (__v4si) __B,
887                (__v8hi) _mm_setzero_si128 (), __M);
888 }
889 
890 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_packs_epi32(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)891 _mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
892           __m128i __B)
893 {
894   return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A,
895                (__v4si) __B,
896                (__v8hi) __W, __M);
897 }
898 
899 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_packs_epi32(__mmask16 __M,__m256i __A,__m256i __B)900 _mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
901 {
902   return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
903                (__v8si) __B,
904                (__v16hi) _mm256_setzero_si256 (),
905                __M);
906 }
907 
908 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_packs_epi32(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)909 _mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
910        __m256i __B)
911 {
912   return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A,
913                (__v8si) __B,
914                (__v16hi) __W, __M);
915 }
916 
917 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_packs_epi16(__mmask16 __M,__m128i __A,__m128i __B)918 _mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
919 {
920   return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
921                (__v8hi) __B,
922                (__v16qi) _mm_setzero_si128 (),
923                __M);
924 }
925 
926 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_packs_epi16(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)927 _mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
928           __m128i __B)
929 {
930   return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A,
931                (__v8hi) __B,
932                (__v16qi) __W,
933                __M);
934 }
935 
936 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_packs_epi16(__mmask32 __M,__m256i __A,__m256i __B)937 _mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
938 {
939   return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
940                (__v16hi) __B,
941                (__v32qi) _mm256_setzero_si256 (),
942                __M);
943 }
944 
945 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_packs_epi16(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)946 _mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
947        __m256i __B)
948 {
949   return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A,
950                (__v16hi) __B,
951                (__v32qi) __W,
952                __M);
953 }
954 
955 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_packus_epi32(__mmask8 __M,__m128i __A,__m128i __B)956 _mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
957 {
958   return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
959                (__v4si) __B,
960                (__v8hi) _mm_setzero_si128 (),
961                __M);
962 }
963 
964 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_packus_epi32(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)965 _mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
966            __m128i __B)
967 {
968   return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A,
969                (__v4si) __B,
970                (__v8hi) __W, __M);
971 }
972 
973 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_packus_epi32(__mmask16 __M,__m256i __A,__m256i __B)974 _mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B)
975 {
976   return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
977                (__v8si) __B,
978                (__v16hi) _mm256_setzero_si256 (),
979                __M);
980 }
981 
982 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_packus_epi32(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)983 _mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A,
984         __m256i __B)
985 {
986   return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A,
987                (__v8si) __B,
988                (__v16hi) __W,
989                __M);
990 }
991 
992 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_packus_epi16(__mmask16 __M,__m128i __A,__m128i __B)993 _mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B)
994 {
995   return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
996                (__v8hi) __B,
997                (__v16qi) _mm_setzero_si128 (),
998                __M);
999 }
1000 
1001 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_packus_epi16(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1002 _mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A,
1003            __m128i __B)
1004 {
1005   return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A,
1006                (__v8hi) __B,
1007                (__v16qi) __W,
1008                __M);
1009 }
1010 
1011 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_packus_epi16(__mmask32 __M,__m256i __A,__m256i __B)1012 _mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B)
1013 {
1014   return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
1015                (__v16hi) __B,
1016                (__v32qi) _mm256_setzero_si256 (),
1017                __M);
1018 }
1019 
1020 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_packus_epi16(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1021 _mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A,
1022         __m256i __B)
1023 {
1024   return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A,
1025                (__v16hi) __B,
1026                (__v32qi) __W,
1027                __M);
1028 }
1029 
1030 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_adds_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1031 _mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1032         __m128i __B)
1033 {
1034   return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
1035                (__v16qi) __B,
1036                (__v16qi) __W,
1037                (__mmask16) __U);
1038 }
1039 
1040 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_adds_epi8(__mmask16 __U,__m128i __A,__m128i __B)1041 _mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
1042 {
1043   return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A,
1044                (__v16qi) __B,
1045                (__v16qi) _mm_setzero_si128 (),
1046                (__mmask16) __U);
1047 }
1048 
1049 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_adds_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1050 _mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1051            __m256i __B)
1052 {
1053   return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
1054                (__v32qi) __B,
1055                (__v32qi) __W,
1056                (__mmask32) __U);
1057 }
1058 
1059 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_adds_epi8(__mmask32 __U,__m256i __A,__m256i __B)1060 _mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
1061 {
1062   return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A,
1063                (__v32qi) __B,
1064                (__v32qi) _mm256_setzero_si256 (),
1065                (__mmask32) __U);
1066 }
1067 
1068 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_adds_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1069 _mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1070          __m128i __B)
1071 {
1072   return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
1073                (__v8hi) __B,
1074                (__v8hi) __W,
1075                (__mmask8) __U);
1076 }
1077 
1078 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_adds_epi16(__mmask8 __U,__m128i __A,__m128i __B)1079 _mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
1080 {
1081   return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A,
1082                (__v8hi) __B,
1083                (__v8hi) _mm_setzero_si128 (),
1084                (__mmask8) __U);
1085 }
1086 
1087 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_adds_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1088 _mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1089       __m256i __B)
1090 {
1091   return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
1092                (__v16hi) __B,
1093                (__v16hi) __W,
1094                (__mmask16) __U);
1095 }
1096 
1097 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_adds_epi16(__mmask16 __U,__m256i __A,__m256i __B)1098 _mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
1099 {
1100   return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A,
1101                (__v16hi) __B,
1102                (__v16hi) _mm256_setzero_si256 (),
1103                (__mmask16) __U);
1104 }
1105 
1106 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_adds_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1107 _mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
1108         __m128i __B)
1109 {
1110   return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
1111                (__v16qi) __B,
1112                (__v16qi) __W,
1113                (__mmask16) __U);
1114 }
1115 
1116 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_adds_epu8(__mmask16 __U,__m128i __A,__m128i __B)1117 _mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
1118 {
1119   return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A,
1120                (__v16qi) __B,
1121                (__v16qi) _mm_setzero_si128 (),
1122                (__mmask16) __U);
1123 }
1124 
1125 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_adds_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1126 _mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
1127            __m256i __B)
1128 {
1129   return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
1130                (__v32qi) __B,
1131                (__v32qi) __W,
1132                (__mmask32) __U);
1133 }
1134 
1135 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_adds_epu8(__mmask32 __U,__m256i __A,__m256i __B)1136 _mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
1137 {
1138   return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A,
1139                (__v32qi) __B,
1140                (__v32qi) _mm256_setzero_si256 (),
1141                (__mmask32) __U);
1142 }
1143 
1144 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_adds_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1145 _mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
1146          __m128i __B)
1147 {
1148   return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
1149                (__v8hi) __B,
1150                (__v8hi) __W,
1151                (__mmask8) __U);
1152 }
1153 
1154 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_adds_epu16(__mmask8 __U,__m128i __A,__m128i __B)1155 _mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
1156 {
1157   return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A,
1158                (__v8hi) __B,
1159                (__v8hi) _mm_setzero_si128 (),
1160                (__mmask8) __U);
1161 }
1162 
1163 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_adds_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1164 _mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
1165       __m256i __B)
1166 {
1167   return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
1168                (__v16hi) __B,
1169                (__v16hi) __W,
1170                (__mmask16) __U);
1171 }
1172 
1173 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_adds_epu16(__mmask16 __U,__m256i __A,__m256i __B)1174 _mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
1175 {
1176   return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A,
1177                (__v16hi) __B,
1178                (__v16hi) _mm256_setzero_si256 (),
1179                (__mmask16) __U);
1180 }
1181 
1182 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_avg_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1183 _mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
1184        __m128i __B)
1185 {
1186   return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
1187                (__v16qi) __B,
1188                (__v16qi) __W,
1189                (__mmask16) __U);
1190 }
1191 
1192 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_avg_epu8(__mmask16 __U,__m128i __A,__m128i __B)1193 _mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
1194 {
1195   return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A,
1196                (__v16qi) __B,
1197                (__v16qi) _mm_setzero_si128 (),
1198                (__mmask16) __U);
1199 }
1200 
1201 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_avg_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1202 _mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
1203           __m256i __B)
1204 {
1205   return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
1206                (__v32qi) __B,
1207                (__v32qi) __W,
1208                (__mmask32) __U);
1209 }
1210 
1211 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_avg_epu8(__mmask32 __U,__m256i __A,__m256i __B)1212 _mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
1213 {
1214   return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A,
1215                (__v32qi) __B,
1216                (__v32qi) _mm256_setzero_si256 (),
1217                (__mmask32) __U);
1218 }
1219 
1220 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_avg_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1221 _mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
1222         __m128i __B)
1223 {
1224   return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
1225                (__v8hi) __B,
1226                (__v8hi) __W,
1227                (__mmask8) __U);
1228 }
1229 
1230 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_avg_epu16(__mmask8 __U,__m128i __A,__m128i __B)1231 _mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
1232 {
1233   return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A,
1234                (__v8hi) __B,
1235                (__v8hi) _mm_setzero_si128 (),
1236                (__mmask8) __U);
1237 }
1238 
1239 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_avg_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1240 _mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
1241            __m256i __B)
1242 {
1243   return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
1244                (__v16hi) __B,
1245                (__v16hi) __W,
1246                (__mmask16) __U);
1247 }
1248 
1249 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_avg_epu16(__mmask16 __U,__m256i __A,__m256i __B)1250 _mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
1251 {
1252   return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A,
1253                (__v16hi) __B,
1254                (__v16hi) _mm256_setzero_si256 (),
1255                (__mmask16) __U);
1256 }
1257 
1258 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_max_epi8(__mmask16 __M,__m128i __A,__m128i __B)1259 _mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1260 {
1261   return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1262                (__v16qi) __B,
1263                (__v16qi) _mm_setzero_si128 (),
1264                (__mmask16) __M);
1265 }
1266 
1267 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_max_epi8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1268 _mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1269        __m128i __B)
1270 {
1271   return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A,
1272                (__v16qi) __B,
1273                (__v16qi) __W,
1274                (__mmask16) __M);
1275 }
1276 
1277 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_max_epi8(__mmask32 __M,__m256i __A,__m256i __B)1278 _mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1279 {
1280   return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1281                (__v32qi) __B,
1282                (__v32qi) _mm256_setzero_si256 (),
1283                (__mmask32) __M);
1284 }
1285 
1286 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_max_epi8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1287 _mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1288           __m256i __B)
1289 {
1290   return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A,
1291                (__v32qi) __B,
1292                (__v32qi) __W,
1293                (__mmask32) __M);
1294 }
1295 
1296 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_max_epi16(__mmask8 __M,__m128i __A,__m128i __B)1297 _mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1298 {
1299   return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1300                (__v8hi) __B,
1301                (__v8hi) _mm_setzero_si128 (),
1302                (__mmask8) __M);
1303 }
1304 
1305 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_max_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1306 _mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1307         __m128i __B)
1308 {
1309   return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A,
1310                (__v8hi) __B,
1311                (__v8hi) __W,
1312                (__mmask8) __M);
1313 }
1314 
1315 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_max_epi16(__mmask16 __M,__m256i __A,__m256i __B)1316 _mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1317 {
1318   return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1319                (__v16hi) __B,
1320                (__v16hi) _mm256_setzero_si256 (),
1321                (__mmask16) __M);
1322 }
1323 
1324 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_max_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1325 _mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1326            __m256i __B)
1327 {
1328   return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A,
1329                (__v16hi) __B,
1330                (__v16hi) __W,
1331                (__mmask16) __M);
1332 }
1333 
1334 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_max_epu8(__mmask16 __M,__m128i __A,__m128i __B)1335 _mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1336 {
1337   return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
1338                (__v16qi) __B,
1339                (__v16qi) _mm_setzero_si128 (),
1340                (__mmask16) __M);
1341 }
1342 
1343 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_max_epu8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1344 _mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1345        __m128i __B)
1346 {
1347   return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A,
1348                (__v16qi) __B,
1349                (__v16qi) __W,
1350                (__mmask16) __M);
1351 }
1352 
1353 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_max_epu8(__mmask32 __M,__m256i __A,__m256i __B)1354 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1355 {
1356   return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
1357                (__v32qi) __B,
1358                (__v32qi) _mm256_setzero_si256 (),
1359                (__mmask32) __M);
1360 }
1361 
1362 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_max_epu8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1363 _mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1364           __m256i __B)
1365 {
1366   return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A,
1367                (__v32qi) __B,
1368                (__v32qi) __W,
1369                (__mmask32) __M);
1370 }
1371 
1372 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_max_epu16(__mmask8 __M,__m128i __A,__m128i __B)1373 _mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
1374 {
1375   return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1376                (__v8hi) __B,
1377                (__v8hi) _mm_setzero_si128 (),
1378                (__mmask8) __M);
1379 }
1380 
1381 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_max_epu16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1382 _mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1383         __m128i __B)
1384 {
1385   return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A,
1386                (__v8hi) __B,
1387                (__v8hi) __W,
1388                (__mmask8) __M);
1389 }
1390 
1391 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_max_epu16(__mmask16 __M,__m256i __A,__m256i __B)1392 _mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
1393 {
1394   return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1395                (__v16hi) __B,
1396                (__v16hi) _mm256_setzero_si256 (),
1397                (__mmask16) __M);
1398 }
1399 
1400 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_max_epu16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1401 _mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
1402            __m256i __B)
1403 {
1404   return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A,
1405                (__v16hi) __B,
1406                (__v16hi) __W,
1407                (__mmask16) __M);
1408 }
1409 
1410 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_min_epi8(__mmask16 __M,__m128i __A,__m128i __B)1411 _mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
1412 {
1413   return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1414                (__v16qi) __B,
1415                (__v16qi) _mm_setzero_si128 (),
1416                (__mmask16) __M);
1417 }
1418 
1419 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_min_epi8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1420 _mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
1421        __m128i __B)
1422 {
1423   return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A,
1424                (__v16qi) __B,
1425                (__v16qi) __W,
1426                (__mmask16) __M);
1427 }
1428 
1429 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_min_epi8(__mmask32 __M,__m256i __A,__m256i __B)1430 _mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B)
1431 {
1432   return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1433                (__v32qi) __B,
1434                (__v32qi) _mm256_setzero_si256 (),
1435                (__mmask32) __M);
1436 }
1437 
1438 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_min_epi8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1439 _mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
1440           __m256i __B)
1441 {
1442   return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A,
1443                (__v32qi) __B,
1444                (__v32qi) __W,
1445                (__mmask32) __M);
1446 }
1447 
1448 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_min_epi16(__mmask8 __M,__m128i __A,__m128i __B)1449 _mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
1450 {
1451   return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1452                (__v8hi) __B,
1453                (__v8hi) _mm_setzero_si128 (),
1454                (__mmask8) __M);
1455 }
1456 
1457 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_min_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1458 _mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
1459         __m128i __B)
1460 {
1461   return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A,
1462                (__v8hi) __B,
1463                (__v8hi) __W,
1464                (__mmask8) __M);
1465 }
1466 
1467 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_min_epi16(__mmask16 __M,__m256i __A,__m256i __B)1468 _mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B)
1469 {
1470   return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
1471                (__v16hi) __B,
1472                (__v16hi) _mm256_setzero_si256 (),
1473                (__mmask16) __M);
1474 }
1475 
1476 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_min_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1477 _mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
1478            __m256i __B)
1479 {
1480   return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A,
1481                (__v16hi) __B,
1482                (__v16hi) __W,
1483                (__mmask16) __M);
1484 }
1485 
1486 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_min_epu8(__mmask16 __M,__m128i __A,__m128i __B)1487 _mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B)
1488 {
1489   return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1490                (__v16qi) __B,
1491                (__v16qi) _mm_setzero_si128 (),
1492                (__mmask16) __M);
1493 }
1494 
1495 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_min_epu8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)1496 _mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A,
1497        __m128i __B)
1498 {
1499   return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A,
1500                (__v16qi) __B,
1501                (__v16qi) __W,
1502                (__mmask16) __M);
1503 }
1504 
1505 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_min_epu8(__mmask32 __M,__m256i __A,__m256i __B)1506 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1507 {
1508   return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1509                (__v32qi) __B,
1510                (__v32qi) _mm256_setzero_si256 (),
1511                (__mmask32) __M);
1512 }
1513 
1514 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_min_epu8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)1515 _mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A,
1516           __m256i __B)
1517 {
1518   return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A,
1519                (__v32qi) __B,
1520                (__v32qi) __W,
1521                (__mmask32) __M);
1522 }
1523 
1524 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_min_epu16(__mmask8 __M,__m128i __A,__m128i __B)1525 _mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B)
1526 {
1527   return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
1528                (__v8hi) __B,
1529                (__v8hi) _mm_setzero_si128 (),
1530                (__mmask8) __M);
1531 }
1532 
1533 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_min_epu16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)1534 _mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A,
1535         __m128i __B)
1536 {
1537   return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A,
1538                (__v8hi) __B,
1539                (__v8hi) __W,
1540                (__mmask8) __M);
1541 }
1542 
1543 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_min_epu16(__mmask16 __M,__m256i __A,__m256i __B)1544 _mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B)
1545 {
1546   return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
1547                (__v16hi) __B,
1548                (__v16hi) _mm256_setzero_si256 (),
1549                (__mmask16) __M);
1550 }
1551 
1552 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_min_epu16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)1553 _mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A,
1554            __m256i __B)
1555 {
1556   return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A,
1557                (__v16hi) __B,
1558                (__v16hi) __W,
1559                (__mmask16) __M);
1560 }
1561 
1562 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_shuffle_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1563 _mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1564            __m128i __B)
1565 {
1566   return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
1567                (__v16qi) __B,
1568                (__v16qi) __W,
1569                (__mmask16) __U);
1570 }
1571 
1572 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_shuffle_epi8(__mmask16 __U,__m128i __A,__m128i __B)1573 _mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
1574 {
1575   return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A,
1576                (__v16qi) __B,
1577                (__v16qi) _mm_setzero_si128 (),
1578                (__mmask16) __U);
1579 }
1580 
1581 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_shuffle_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1582 _mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1583         __m256i __B)
1584 {
1585   return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
1586                (__v32qi) __B,
1587                (__v32qi) __W,
1588                (__mmask32) __U);
1589 }
1590 
1591 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_shuffle_epi8(__mmask32 __U,__m256i __A,__m256i __B)1592 _mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
1593 {
1594   return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A,
1595                (__v32qi) __B,
1596                (__v32qi) _mm256_setzero_si256 (),
1597                (__mmask32) __U);
1598 }
1599 
1600 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_subs_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1601 _mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A,
1602         __m128i __B)
1603 {
1604   return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
1605                (__v16qi) __B,
1606                (__v16qi) __W,
1607                (__mmask16) __U);
1608 }
1609 
1610 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_subs_epi8(__mmask16 __U,__m128i __A,__m128i __B)1611 _mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B)
1612 {
1613   return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A,
1614                (__v16qi) __B,
1615                (__v16qi) _mm_setzero_si128 (),
1616                (__mmask16) __U);
1617 }
1618 
1619 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_subs_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1620 _mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A,
1621            __m256i __B)
1622 {
1623   return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
1624                (__v32qi) __B,
1625                (__v32qi) __W,
1626                (__mmask32) __U);
1627 }
1628 
1629 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_subs_epi8(__mmask32 __U,__m256i __A,__m256i __B)1630 _mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B)
1631 {
1632   return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A,
1633                (__v32qi) __B,
1634                (__v32qi) _mm256_setzero_si256 (),
1635                (__mmask32) __U);
1636 }
1637 
1638 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_subs_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1639 _mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1640          __m128i __B)
1641 {
1642   return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
1643                (__v8hi) __B,
1644                (__v8hi) __W,
1645                (__mmask8) __U);
1646 }
1647 
1648 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_subs_epi16(__mmask8 __U,__m128i __A,__m128i __B)1649 _mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
1650 {
1651   return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A,
1652                (__v8hi) __B,
1653                (__v8hi) _mm_setzero_si128 (),
1654                (__mmask8) __U);
1655 }
1656 
1657 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_subs_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1658 _mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
1659       __m256i __B)
1660 {
1661   return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
1662                (__v16hi) __B,
1663                (__v16hi) __W,
1664                (__mmask16) __U);
1665 }
1666 
1667 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_subs_epi16(__mmask16 __U,__m256i __A,__m256i __B)1668 _mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
1669 {
1670   return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A,
1671                (__v16hi) __B,
1672                (__v16hi) _mm256_setzero_si256 (),
1673                (__mmask16) __U);
1674 }
1675 
1676 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_subs_epu8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)1677 _mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A,
1678         __m128i __B)
1679 {
1680   return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
1681                (__v16qi) __B,
1682                (__v16qi) __W,
1683                (__mmask16) __U);
1684 }
1685 
1686 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_subs_epu8(__mmask16 __U,__m128i __A,__m128i __B)1687 _mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B)
1688 {
1689   return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A,
1690                (__v16qi) __B,
1691                (__v16qi) _mm_setzero_si128 (),
1692                (__mmask16) __U);
1693 }
1694 
1695 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_subs_epu8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)1696 _mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A,
1697            __m256i __B)
1698 {
1699   return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
1700                (__v32qi) __B,
1701                (__v32qi) __W,
1702                (__mmask32) __U);
1703 }
1704 
1705 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_subs_epu8(__mmask32 __U,__m256i __A,__m256i __B)1706 _mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B)
1707 {
1708   return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A,
1709                (__v32qi) __B,
1710                (__v32qi) _mm256_setzero_si256 (),
1711                (__mmask32) __U);
1712 }
1713 
1714 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_subs_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1715 _mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
1716          __m128i __B)
1717 {
1718   return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
1719                (__v8hi) __B,
1720                (__v8hi) __W,
1721                (__mmask8) __U);
1722 }
1723 
1724 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_subs_epu16(__mmask8 __U,__m128i __A,__m128i __B)1725 _mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B)
1726 {
1727   return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A,
1728                (__v8hi) __B,
1729                (__v8hi) _mm_setzero_si128 (),
1730                (__mmask8) __U);
1731 }
1732 
1733 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_subs_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)1734 _mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
1735       __m256i __B)
1736 {
1737   return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
1738                (__v16hi) __B,
1739                (__v16hi) __W,
1740                (__mmask16) __U);
1741 }
1742 
1743 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_subs_epu16(__mmask16 __U,__m256i __A,__m256i __B)1744 _mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B)
1745 {
1746   return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A,
1747                (__v16hi) __B,
1748                (__v16hi) _mm256_setzero_si256 (),
1749                (__mmask16) __U);
1750 }
1751 
1752 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask2_permutex2var_epi16(__m128i __A,__m128i __I,__mmask8 __U,__m128i __B)1753 _mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
1754             __m128i __B)
1755 {
1756   return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
1757                (__v8hi) __I /* idx */ ,
1758                (__v8hi) __B,
1759                (__mmask8) __U);
1760 }
1761 
1762 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask2_permutex2var_epi16(__m256i __A,__m256i __I,__mmask16 __U,__m256i __B)1763 _mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
1764          __mmask16 __U, __m256i __B)
1765 {
1766   return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
1767                (__v16hi) __I /* idx */ ,
1768                (__v16hi) __B,
1769                (__mmask16) __U);
1770 }
1771 
1772 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_permutex2var_epi16(__m128i __A,__m128i __I,__m128i __B)1773 _mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
1774 {
1775   return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
1776                (__v8hi) __A,
1777                (__v8hi) __B,
1778                (__mmask8) -1);
1779 }
1780 
1781 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_permutex2var_epi16(__m128i __A,__mmask8 __U,__m128i __I,__m128i __B)1782 _mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
1783            __m128i __B)
1784 {
1785   return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
1786                (__v8hi) __A,
1787                (__v8hi) __B,
1788                (__mmask8) __U);
1789 }
1790 
1791 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_permutex2var_epi16(__mmask8 __U,__m128i __A,__m128i __I,__m128i __B)1792 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
1793             __m128i __B)
1794 {
1795   return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I/* idx */,
1796                (__v8hi) __A,
1797                (__v8hi) __B,
1798                (__mmask8) __U);
1799 }
1800 
1801 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_permutex2var_epi16(__m256i __A,__m256i __I,__m256i __B)1802 _mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B)
1803 {
1804   return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
1805                (__v16hi) __A,
1806                (__v16hi) __B,
1807                (__mmask16) -1);
1808 }
1809 
1810 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_permutex2var_epi16(__m256i __A,__mmask16 __U,__m256i __I,__m256i __B)1811 _mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
1812         __m256i __I, __m256i __B)
1813 {
1814   return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
1815                (__v16hi) __A,
1816                (__v16hi) __B,
1817                (__mmask16) __U);
1818 }
1819 
1820 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_permutex2var_epi16(__mmask16 __U,__m256i __A,__m256i __I,__m256i __B)1821 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
1822          __m256i __I, __m256i __B)
1823 {
1824   return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I/* idx */,
1825                (__v16hi) __A,
1826                (__v16hi) __B,
1827                (__mmask16) __U);
1828 }
1829 
1830 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_maddubs_epi16(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)1831 _mm_mask_maddubs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1832   return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
1833                (__v16qi) __Y,
1834                (__v8hi) __W,
1835                (__mmask8) __U);
1836 }
1837 
1838 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_maddubs_epi16(__mmask8 __U,__m128i __X,__m128i __Y)1839 _mm_maskz_maddubs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) {
1840   return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X,
1841                (__v16qi) __Y,
1842               (__v8hi) _mm_setzero_si128(),
1843                (__mmask8) __U);
1844 }
1845 
1846 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_maddubs_epi16(__m256i __W,__mmask16 __U,__m256i __X,__m256i __Y)1847 _mm256_mask_maddubs_epi16 (__m256i __W, __mmask16 __U, __m256i __X,
1848          __m256i __Y) {
1849   return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
1850                (__v32qi) __Y,
1851                (__v16hi) __W,
1852                (__mmask16) __U);
1853 }
1854 
1855 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_maddubs_epi16(__mmask16 __U,__m256i __X,__m256i __Y)1856 _mm256_maskz_maddubs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) {
1857   return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X,
1858                (__v32qi) __Y,
1859                (__v16hi) _mm256_setzero_si256(),
1860                (__mmask16) __U);
1861 }
1862 
1863 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_madd_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)1864 _mm_mask_madd_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
1865          __m128i __B) {
1866   return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
1867                (__v8hi) __B,
1868                (__v4si) __W,
1869                (__mmask8) __U);
1870 }
1871 
1872 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_madd_epi16(__mmask8 __U,__m128i __A,__m128i __B)1873 _mm_maskz_madd_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
1874   return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A,
1875                (__v8hi) __B,
1876                (__v4si) _mm_setzero_si128(),
1877                (__mmask8) __U);
1878 }
1879 
1880 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_madd_epi16(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)1881 _mm256_mask_madd_epi16 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1882   return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
1883                (__v16hi) __B,
1884                (__v8si) __W,
1885                (__mmask8) __U);
1886 }
1887 
1888 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_madd_epi16(__mmask8 __U,__m256i __A,__m256i __B)1889 _mm256_maskz_madd_epi16 (__mmask8 __U, __m256i __A, __m256i __B) {
1890   return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A,
1891                (__v16hi) __B,
1892                (__v8si) _mm256_setzero_si256(),
1893                (__mmask8) __U);
1894 }
1895 
1896 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_cvtsepi16_epi8(__m128i __A)1897 _mm_cvtsepi16_epi8 (__m128i __A) {
1898   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1899                (__v16qi) _mm_setzero_si128(),
1900                (__mmask8) -1);
1901 }
1902 
1903 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_cvtsepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)1904 _mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1905   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1906                (__v16qi) __O,
1907                 __M);
1908 }
1909 
1910 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_cvtsepi16_epi8(__mmask8 __M,__m128i __A)1911 _mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) {
1912   return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1913                (__v16qi) _mm_setzero_si128(),
1914                __M);
1915 }
1916 
1917 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_cvtsepi16_epi8(__m256i __A)1918 _mm256_cvtsepi16_epi8 (__m256i __A) {
1919   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1920                (__v16qi) _mm_setzero_si128(),
1921                (__mmask16) -1);
1922 }
1923 
1924 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_mask_cvtsepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)1925 _mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1926   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1927                (__v16qi) __O,
1928                 __M);
1929 }
1930 
1931 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_maskz_cvtsepi16_epi8(__mmask16 __M,__m256i __A)1932 _mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) {
1933   return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1934                (__v16qi) _mm_setzero_si128(),
1935                __M);
1936 }
1937 
1938 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_cvtusepi16_epi8(__m128i __A)1939 _mm_cvtusepi16_epi8 (__m128i __A) {
1940   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1941                 (__v16qi) _mm_setzero_si128(),
1942                 (__mmask8) -1);
1943 }
1944 
1945 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_cvtusepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)1946 _mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1947   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1948                 (__v16qi) __O,
1949                 __M);
1950 }
1951 
1952 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_cvtusepi16_epi8(__mmask8 __M,__m128i __A)1953 _mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) {
1954   return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1955                 (__v16qi) _mm_setzero_si128(),
1956                 __M);
1957 }
1958 
1959 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_cvtusepi16_epi8(__m256i __A)1960 _mm256_cvtusepi16_epi8 (__m256i __A) {
1961   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1962                 (__v16qi) _mm_setzero_si128(),
1963                 (__mmask16) -1);
1964 }
1965 
1966 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_mask_cvtusepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)1967 _mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1968   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1969                 (__v16qi) __O,
1970                 __M);
1971 }
1972 
1973 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_maskz_cvtusepi16_epi8(__mmask16 __M,__m256i __A)1974 _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) {
1975   return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1976                 (__v16qi) _mm_setzero_si128(),
1977                 __M);
1978 }
1979 
1980 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_cvtepi16_epi8(__m128i __A)1981 _mm_cvtepi16_epi8 (__m128i __A) {
1982 
1983   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1984                (__v16qi) _mm_setzero_si128(),
1985                (__mmask8) -1);
1986 }
1987 
1988 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_cvtepi16_epi8(__m128i __O,__mmask8 __M,__m128i __A)1989 _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1990   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1991                (__v16qi) __O,
1992                __M);
1993 }
1994 
1995 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_cvtepi16_epi8(__mmask8 __M,__m128i __A)1996 _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) {
1997   return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1998                (__v16qi) _mm_setzero_si128(),
1999                __M);
2000 }
2001 
2002 static __inline__ void __DEFAULT_FN_ATTRS
_mm_mask_cvtepi16_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)2003 _mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
2004 {
2005   __builtin_ia32_pmovwb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
2006 }
2007 
2008 
2009 static __inline__ void __DEFAULT_FN_ATTRS
_mm_mask_cvtsepi16_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)2010 _mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
2011 {
2012   __builtin_ia32_pmovswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
2013 }
2014 
2015 static __inline__ void __DEFAULT_FN_ATTRS
_mm_mask_cvtusepi16_storeu_epi8(void * __P,__mmask8 __M,__m128i __A)2016 _mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
2017 {
2018   __builtin_ia32_pmovuswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
2019 }
2020 
2021 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_cvtepi16_epi8(__m256i __A)2022 _mm256_cvtepi16_epi8 (__m256i __A) {
2023   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
2024                (__v16qi) _mm_setzero_si128(),
2025                (__mmask16) -1);
2026 }
2027 
2028 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_mask_cvtepi16_epi8(__m128i __O,__mmask16 __M,__m256i __A)2029 _mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
2030   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
2031                (__v16qi) __O,
2032                __M);
2033 }
2034 
2035 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm256_maskz_cvtepi16_epi8(__mmask16 __M,__m256i __A)2036 _mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) {
2037   return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
2038                (__v16qi) _mm_setzero_si128(),
2039                __M);
2040 }
2041 
2042 static __inline__ void __DEFAULT_FN_ATTRS
_mm256_mask_cvtepi16_storeu_epi8(void * __P,__mmask16 __M,__m256i __A)2043 _mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
2044 {
2045   __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
2046 }
2047 
2048 static __inline__ void __DEFAULT_FN_ATTRS
_mm256_mask_cvtsepi16_storeu_epi8(void * __P,__mmask16 __M,__m256i __A)2049 _mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
2050 {
2051   __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
2052 }
2053 
2054 static __inline__ void __DEFAULT_FN_ATTRS
_mm256_mask_cvtusepi16_storeu_epi8(void * __P,__mmask8 __M,__m256i __A)2055 _mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
2056 {
2057   __builtin_ia32_pmovuswb256mem_mask ((__v16qi*) __P, (__v16hi) __A, __M);
2058 }
2059 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mulhrs_epi16(__m128i __W,__mmask8 __U,__m128i __X,__m128i __Y)2060 _mm_mask_mulhrs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
2061   return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2062                (__v8hi) __Y,
2063                (__v8hi) __W,
2064                (__mmask8) __U);
2065 }
2066 
2067 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mulhrs_epi16(__mmask8 __U,__m128i __X,__m128i __Y)2068 _mm_maskz_mulhrs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) {
2069   return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X,
2070                (__v8hi) __Y,
2071               (__v8hi) _mm_setzero_si128(),
2072                (__mmask8) __U);
2073 }
2074 
2075 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mulhrs_epi16(__m256i __W,__mmask16 __U,__m256i __X,__m256i __Y)2076 _mm256_mask_mulhrs_epi16 (__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
2077   return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2078                (__v16hi) __Y,
2079                (__v16hi) __W,
2080                (__mmask16) __U);
2081 }
2082 
2083 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mulhrs_epi16(__mmask16 __U,__m256i __X,__m256i __Y)2084 _mm256_maskz_mulhrs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) {
2085   return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X,
2086                (__v16hi) __Y,
2087                (__v16hi) _mm256_setzero_si256(),
2088                (__mmask16) __U);
2089 }
2090 
2091 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mulhi_epu16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2092 _mm_mask_mulhi_epu16 (__m128i __W, __mmask8 __U, __m128i __A,
2093           __m128i __B) {
2094   return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2095                (__v8hi) __B,
2096                (__v8hi) __W,
2097                (__mmask8) __U);
2098 }
2099 
2100 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mulhi_epu16(__mmask8 __U,__m128i __A,__m128i __B)2101 _mm_maskz_mulhi_epu16 (__mmask8 __U, __m128i __A, __m128i __B) {
2102   return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A,
2103                (__v8hi) __B,
2104               (__v8hi) _mm_setzero_si128(),
2105                (__mmask8) __U);
2106 }
2107 
2108 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mulhi_epu16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2109 _mm256_mask_mulhi_epu16 (__m256i __W, __mmask16 __U, __m256i __A,
2110        __m256i __B) {
2111   return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2112                (__v16hi) __B,
2113                (__v16hi) __W,
2114                (__mmask16) __U);
2115 }
2116 
2117 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mulhi_epu16(__mmask16 __U,__m256i __A,__m256i __B)2118 _mm256_maskz_mulhi_epu16 (__mmask16 __U, __m256i __A, __m256i __B) {
2119   return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A,
2120                (__v16hi) __B,
2121                (__v16hi) _mm256_setzero_si256(),
2122                (__mmask16) __U);
2123 }
2124 
2125 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mulhi_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2126 _mm_mask_mulhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2127           __m128i __B) {
2128   return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2129                (__v8hi) __B,
2130                (__v8hi) __W,
2131                (__mmask8) __U);
2132 }
2133 
2134 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mulhi_epi16(__mmask8 __U,__m128i __A,__m128i __B)2135 _mm_maskz_mulhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) {
2136   return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A,
2137                (__v8hi) __B,
2138               (__v8hi) _mm_setzero_si128(),
2139                (__mmask8) __U);
2140 }
2141 
2142 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mulhi_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2143 _mm256_mask_mulhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2144        __m256i __B) {
2145   return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2146                (__v16hi) __B,
2147                (__v16hi) __W,
2148                (__mmask16) __U);
2149 }
2150 
2151 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mulhi_epi16(__mmask16 __U,__m256i __A,__m256i __B)2152 _mm256_maskz_mulhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) {
2153   return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A,
2154                (__v16hi) __B,
2155                (__v16hi) _mm256_setzero_si256(),
2156                (__mmask16) __U);
2157 }
2158 
2159 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_unpackhi_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)2160 _mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
2161   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
2162                                            (__v16qi)_mm_unpackhi_epi8(__A, __B),
2163                                            (__v16qi)__W);
2164 }
2165 
2166 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_unpackhi_epi8(__mmask16 __U,__m128i __A,__m128i __B)2167 _mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
2168   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
2169                                            (__v16qi)_mm_unpackhi_epi8(__A, __B),
2170                                            (__v16qi)_mm_setzero_si128());
2171 }
2172 
2173 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_unpackhi_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)2174 _mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
2175   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
2176                                         (__v32qi)_mm256_unpackhi_epi8(__A, __B),
2177                                         (__v32qi)__W);
2178 }
2179 
2180 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_unpackhi_epi8(__mmask32 __U,__m256i __A,__m256i __B)2181 _mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
2182   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
2183                                         (__v32qi)_mm256_unpackhi_epi8(__A, __B),
2184                                         (__v32qi)_mm256_setzero_si256());
2185 }
2186 
2187 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_unpackhi_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2188 _mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2189   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2190                                            (__v8hi)_mm_unpackhi_epi16(__A, __B),
2191                                            (__v8hi)__W);
2192 }
2193 
2194 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_unpackhi_epi16(__mmask8 __U,__m128i __A,__m128i __B)2195 _mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2196   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2197                                            (__v8hi)_mm_unpackhi_epi16(__A, __B),
2198                                            (__v8hi) _mm_setzero_si128());
2199 }
2200 
2201 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_unpackhi_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2202 _mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2203   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2204                                        (__v16hi)_mm256_unpackhi_epi16(__A, __B),
2205                                        (__v16hi)__W);
2206 }
2207 
2208 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_unpackhi_epi16(__mmask16 __U,__m256i __A,__m256i __B)2209 _mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2210   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2211                                        (__v16hi)_mm256_unpackhi_epi16(__A, __B),
2212                                        (__v16hi)_mm256_setzero_si256());
2213 }
2214 
2215 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_unpacklo_epi8(__m128i __W,__mmask16 __U,__m128i __A,__m128i __B)2216 _mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
2217   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
2218                                            (__v16qi)_mm_unpacklo_epi8(__A, __B),
2219                                            (__v16qi)__W);
2220 }
2221 
2222 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_unpacklo_epi8(__mmask16 __U,__m128i __A,__m128i __B)2223 _mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
2224   return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
2225                                            (__v16qi)_mm_unpacklo_epi8(__A, __B),
2226                                            (__v16qi)_mm_setzero_si128());
2227 }
2228 
2229 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_unpacklo_epi8(__m256i __W,__mmask32 __U,__m256i __A,__m256i __B)2230 _mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
2231   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
2232                                         (__v32qi)_mm256_unpacklo_epi8(__A, __B),
2233                                         (__v32qi)__W);
2234 }
2235 
2236 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_unpacklo_epi8(__mmask32 __U,__m256i __A,__m256i __B)2237 _mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
2238   return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
2239                                         (__v32qi)_mm256_unpacklo_epi8(__A, __B),
2240                                         (__v32qi)_mm256_setzero_si256());
2241 }
2242 
2243 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_unpacklo_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2244 _mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
2245   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2246                                            (__v8hi)_mm_unpacklo_epi16(__A, __B),
2247                                            (__v8hi)__W);
2248 }
2249 
2250 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_unpacklo_epi16(__mmask8 __U,__m128i __A,__m128i __B)2251 _mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
2252   return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2253                                            (__v8hi)_mm_unpacklo_epi16(__A, __B),
2254                                            (__v8hi) _mm_setzero_si128());
2255 }
2256 
2257 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_unpacklo_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2258 _mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
2259   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2260                                        (__v16hi)_mm256_unpacklo_epi16(__A, __B),
2261                                        (__v16hi)__W);
2262 }
2263 
2264 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_unpacklo_epi16(__mmask16 __U,__m256i __A,__m256i __B)2265 _mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
2266   return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2267                                        (__v16hi)_mm256_unpacklo_epi16(__A, __B),
2268                                        (__v16hi)_mm256_setzero_si256());
2269 }
2270 
2271 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_cvtepi8_epi16(__m128i __W,__mmask32 __U,__m128i __A)2272 _mm_mask_cvtepi8_epi16 (__m128i __W, __mmask32 __U, __m128i __A)
2273 {
2274   return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A,
2275                 (__v8hi) __W,
2276                 (__mmask8) __U);
2277 }
2278 
2279 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_cvtepi8_epi16(__mmask8 __U,__m128i __A)2280 _mm_maskz_cvtepi8_epi16 (__mmask8 __U, __m128i __A)
2281 {
2282   return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A,
2283                 (__v8hi)
2284                 _mm_setzero_si128 (),
2285                 (__mmask8) __U);
2286 }
2287 
2288 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_cvtepi8_epi16(__m256i __W,__mmask32 __U,__m128i __A)2289 _mm256_mask_cvtepi8_epi16 (__m256i __W, __mmask32 __U, __m128i __A)
2290 {
2291   return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A,
2292                 (__v16hi) __W,
2293                 (__mmask16) __U);
2294 }
2295 
2296 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_cvtepi8_epi16(__mmask16 __U,__m128i __A)2297 _mm256_maskz_cvtepi8_epi16 (__mmask16 __U, __m128i __A)
2298 {
2299   return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A,
2300                 (__v16hi)
2301                 _mm256_setzero_si256 (),
2302                 (__mmask16) __U);
2303 }
2304 
2305 
2306 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_cvtepu8_epi16(__m128i __W,__mmask32 __U,__m128i __A)2307 _mm_mask_cvtepu8_epi16 (__m128i __W, __mmask32 __U, __m128i __A)
2308 {
2309   return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A,
2310                 (__v8hi) __W,
2311                 (__mmask8) __U);
2312 }
2313 
2314 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_cvtepu8_epi16(__mmask8 __U,__m128i __A)2315 _mm_maskz_cvtepu8_epi16 (__mmask8 __U, __m128i __A)
2316 {
2317   return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A,
2318                 (__v8hi)
2319                 _mm_setzero_si128 (),
2320                 (__mmask8) __U);
2321 }
2322 
2323 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_cvtepu8_epi16(__m256i __W,__mmask32 __U,__m128i __A)2324 _mm256_mask_cvtepu8_epi16 (__m256i __W, __mmask32 __U, __m128i __A)
2325 {
2326   return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A,
2327                 (__v16hi) __W,
2328                 (__mmask16) __U);
2329 }
2330 
2331 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_cvtepu8_epi16(__mmask16 __U,__m128i __A)2332 _mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A)
2333 {
2334   return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A,
2335                 (__v16hi)
2336                 _mm256_setzero_si256 (),
2337                 (__mmask16) __U);
2338 }
2339 
2340 
2341 #define _mm_cmp_epi8_mask(a, b, p) __extension__ ({ \
2342   (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
2343                                          (__v16qi)(__m128i)(b), (int)(p), \
2344                                          (__mmask16)-1); })
2345 
2346 #define _mm_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
2347   (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
2348                                          (__v16qi)(__m128i)(b), (int)(p), \
2349                                          (__mmask16)(m)); })
2350 
2351 #define _mm_cmp_epu8_mask(a, b, p) __extension__ ({ \
2352   (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
2353                                           (__v16qi)(__m128i)(b), (int)(p), \
2354                                           (__mmask16)-1); })
2355 
2356 #define _mm_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
2357   (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
2358                                           (__v16qi)(__m128i)(b), (int)(p), \
2359                                           (__mmask16)(m)); })
2360 
2361 #define _mm256_cmp_epi8_mask(a, b, p) __extension__ ({ \
2362   (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
2363                                          (__v32qi)(__m256i)(b), (int)(p), \
2364                                          (__mmask32)-1); })
2365 
2366 #define _mm256_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
2367   (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
2368                                          (__v32qi)(__m256i)(b), (int)(p), \
2369                                          (__mmask32)(m)); })
2370 
2371 #define _mm256_cmp_epu8_mask(a, b, p) __extension__ ({ \
2372   (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
2373                                           (__v32qi)(__m256i)(b), (int)(p), \
2374                                           (__mmask32)-1); })
2375 
2376 #define _mm256_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
2377   (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
2378                                           (__v32qi)(__m256i)(b), (int)(p), \
2379                                           (__mmask32)(m)); })
2380 
2381 #define _mm_cmp_epi16_mask(a, b, p) __extension__ ({ \
2382   (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
2383                                         (__v8hi)(__m128i)(b), (int)(p), \
2384                                         (__mmask8)-1); })
2385 
2386 #define _mm_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
2387   (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
2388                                         (__v8hi)(__m128i)(b), (int)(p), \
2389                                         (__mmask8)(m)); })
2390 
2391 #define _mm_cmp_epu16_mask(a, b, p) __extension__ ({ \
2392   (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
2393                                          (__v8hi)(__m128i)(b), (int)(p), \
2394                                          (__mmask8)-1); })
2395 
2396 #define _mm_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
2397   (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
2398                                          (__v8hi)(__m128i)(b), (int)(p), \
2399                                          (__mmask8)(m)); })
2400 
2401 #define _mm256_cmp_epi16_mask(a, b, p) __extension__ ({ \
2402   (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
2403                                          (__v16hi)(__m256i)(b), (int)(p), \
2404                                          (__mmask16)-1); })
2405 
2406 #define _mm256_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
2407   (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
2408                                          (__v16hi)(__m256i)(b), (int)(p), \
2409                                          (__mmask16)(m)); })
2410 
2411 #define _mm256_cmp_epu16_mask(a, b, p) __extension__ ({ \
2412   (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
2413                                           (__v16hi)(__m256i)(b), (int)(p), \
2414                                           (__mmask16)-1); })
2415 
2416 #define _mm256_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
2417   (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
2418                                           (__v16hi)(__m256i)(b), (int)(p), \
2419                                           (__mmask16)(m)); })
2420 
2421 #define _mm_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \
2422   (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
2423                                       (__v8hi)_mm_shufflehi_epi16((A), (imm)), \
2424                                       (__v8hi)(__m128i)(W)); })
2425 
2426 #define _mm_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \
2427   (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
2428                                       (__v8hi)_mm_shufflehi_epi16((A), (imm)), \
2429                                       (__v8hi)_mm_setzero_hi()); })
2430 
2431 #define _mm256_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \
2432   (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
2433                                       (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \
2434                                       (__v16hi)(__m256i)(W)); })
2435 
2436 #define _mm256_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \
2437   (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
2438                                       (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \
2439                                       (__v16hi)_mm256_setzero_si256()); })
2440 
2441 #define _mm_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \
2442   (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
2443                                       (__v8hi)_mm_shufflelo_epi16((A), (imm)), \
2444                                       (__v8hi)(__m128i)(W)); })
2445 
2446 #define _mm_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \
2447   (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
2448                                       (__v8hi)_mm_shufflelo_epi16((A), (imm)), \
2449                                       (__v8hi)_mm_setzero_hi()); })
2450 
2451 #define _mm256_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \
2452   (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
2453                                       (__v16hi)_mm256_shufflelo_epi16((A), \
2454                                                                       (imm)), \
2455                                       (__v16hi)(__m256i)(W)); })
2456 
2457 #define _mm256_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \
2458   (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
2459                                       (__v16hi)_mm256_shufflelo_epi16((A), \
2460                                                                       (imm)), \
2461                                       (__v16hi)_mm256_setzero_si256()); })
2462 
2463 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_sllv_epi16(__m256i __A,__m256i __B)2464 _mm256_sllv_epi16 (__m256i __A, __m256i __B)
2465 {
2466   return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
2467               (__v16hi) __B,
2468               (__v16hi)
2469               _mm256_setzero_si256 (),
2470               (__mmask16) -1);
2471 }
2472 
2473 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_sllv_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2474 _mm256_mask_sllv_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2475       __m256i __B)
2476 {
2477   return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
2478               (__v16hi) __B,
2479               (__v16hi) __W,
2480               (__mmask16) __U);
2481 }
2482 
2483 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_sllv_epi16(__mmask16 __U,__m256i __A,__m256i __B)2484 _mm256_maskz_sllv_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2485 {
2486   return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A,
2487               (__v16hi) __B,
2488               (__v16hi)
2489               _mm256_setzero_si256 (),
2490               (__mmask16) __U);
2491 }
2492 
2493 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_sllv_epi16(__m128i __A,__m128i __B)2494 _mm_sllv_epi16 (__m128i __A, __m128i __B)
2495 {
2496   return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
2497              (__v8hi) __B,
2498              (__v8hi)
2499              _mm_setzero_hi (),
2500              (__mmask8) -1);
2501 }
2502 
2503 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_sllv_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2504 _mm_mask_sllv_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2505          __m128i __B)
2506 {
2507   return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
2508              (__v8hi) __B,
2509              (__v8hi) __W,
2510              (__mmask8) __U);
2511 }
2512 
2513 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_sllv_epi16(__mmask8 __U,__m128i __A,__m128i __B)2514 _mm_maskz_sllv_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2515 {
2516   return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A,
2517              (__v8hi) __B,
2518              (__v8hi)
2519              _mm_setzero_si128 (),
2520              (__mmask8) __U);
2521 }
2522 
2523 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_sll_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2524 _mm_mask_sll_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2525         __m128i __B)
2526 {
2527   return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A,
2528              (__v8hi) __B,
2529              (__v8hi) __W,
2530              (__mmask8) __U);
2531 }
2532 
2533 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_sll_epi16(__mmask8 __U,__m128i __A,__m128i __B)2534 _mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2535 {
2536   return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A,
2537              (__v8hi) __B,
2538              (__v8hi)
2539              _mm_setzero_si128 (),
2540              (__mmask8) __U);
2541 }
2542 
2543 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_sll_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m128i __B)2544 _mm256_mask_sll_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2545            __m128i __B)
2546 {
2547   return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A,
2548              (__v8hi) __B,
2549              (__v16hi) __W,
2550              (__mmask16) __U);
2551 }
2552 
2553 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_sll_epi16(__mmask16 __U,__m256i __A,__m128i __B)2554 _mm256_maskz_sll_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
2555 {
2556   return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A,
2557              (__v8hi) __B,
2558              (__v16hi)
2559              _mm256_setzero_si256 (),
2560              (__mmask16) __U);
2561 }
2562 
2563 #define _mm_mask_slli_epi16(W, U, A, B) __extension__ ({ \
2564   (__m128i)__builtin_ia32_psllwi128_mask((__v8hi)(__m128i)(A), (int)(B), \
2565                                          (__v8hi)(__m128i)(W), \
2566                                          (__mmask8)(U)); })
2567 
2568 #define _mm_maskz_slli_epi16(U, A, B) __extension__ ({ \
2569   (__m128i)__builtin_ia32_psllwi128_mask((__v8hi)(__m128i)(A), (int)(B), \
2570                                          (__v8hi)_mm_setzero_si128(), \
2571                                          (__mmask8)(U)); })
2572 
2573 #define _mm256_mask_slli_epi16(W, U, A, B) __extension__ ({ \
2574   (__m256i)__builtin_ia32_psllwi256_mask((__v16hi)(__m256i)(A), (int)(B), \
2575                                          (__v16hi)(__m256i)(W), \
2576                                          (__mmask16)(U)); })
2577 
2578 #define _mm256_maskz_slli_epi16(U, A, B) __extension__ ({ \
2579   (__m256i)__builtin_ia32_psllwi256_mask((__v16hi)(__m256i)(A), (int)(B), \
2580                                          (__v16hi)_mm256_setzero_si256(), \
2581                                          (__mmask16)(U)); })
2582 
2583 
2584 
2585 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_srlv_epi16(__m256i __A,__m256i __B)2586 _mm256_srlv_epi16 (__m256i __A, __m256i __B)
2587 {
2588   return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
2589               (__v16hi) __B,
2590               (__v16hi)
2591               _mm256_setzero_si256 (),
2592               (__mmask16) -1);
2593 }
2594 
2595 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_srlv_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2596 _mm256_mask_srlv_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2597       __m256i __B)
2598 {
2599   return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
2600               (__v16hi) __B,
2601               (__v16hi) __W,
2602               (__mmask16) __U);
2603 }
2604 
2605 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_srlv_epi16(__mmask16 __U,__m256i __A,__m256i __B)2606 _mm256_maskz_srlv_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2607 {
2608   return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A,
2609               (__v16hi) __B,
2610               (__v16hi)
2611               _mm256_setzero_si256 (),
2612               (__mmask16) __U);
2613 }
2614 
2615 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_srlv_epi16(__m128i __A,__m128i __B)2616 _mm_srlv_epi16 (__m128i __A, __m128i __B)
2617 {
2618   return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
2619              (__v8hi) __B,
2620              (__v8hi)
2621              _mm_setzero_hi (),
2622              (__mmask8) -1);
2623 }
2624 
2625 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_srlv_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2626 _mm_mask_srlv_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2627          __m128i __B)
2628 {
2629   return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
2630              (__v8hi) __B,
2631              (__v8hi) __W,
2632              (__mmask8) __U);
2633 }
2634 
2635 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_srlv_epi16(__mmask8 __U,__m128i __A,__m128i __B)2636 _mm_maskz_srlv_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2637 {
2638   return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A,
2639              (__v8hi) __B,
2640              (__v8hi)
2641              _mm_setzero_si128 (),
2642              (__mmask8) __U);
2643 }
2644 
2645 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_srav_epi16(__m256i __A,__m256i __B)2646 _mm256_srav_epi16 (__m256i __A, __m256i __B)
2647 {
2648   return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
2649               (__v16hi) __B,
2650               (__v16hi)
2651               _mm256_setzero_si256 (),
2652               (__mmask16) -1);
2653 }
2654 
2655 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_srav_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m256i __B)2656 _mm256_mask_srav_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2657       __m256i __B)
2658 {
2659   return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
2660               (__v16hi) __B,
2661               (__v16hi) __W,
2662               (__mmask16) __U);
2663 }
2664 
2665 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_srav_epi16(__mmask16 __U,__m256i __A,__m256i __B)2666 _mm256_maskz_srav_epi16 (__mmask16 __U, __m256i __A, __m256i __B)
2667 {
2668   return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A,
2669               (__v16hi) __B,
2670               (__v16hi)
2671               _mm256_setzero_si256 (),
2672               (__mmask16) __U);
2673 }
2674 
2675 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_srav_epi16(__m128i __A,__m128i __B)2676 _mm_srav_epi16 (__m128i __A, __m128i __B)
2677 {
2678   return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
2679              (__v8hi) __B,
2680              (__v8hi)
2681              _mm_setzero_hi (),
2682              (__mmask8) -1);
2683 }
2684 
2685 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_srav_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2686 _mm_mask_srav_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2687          __m128i __B)
2688 {
2689   return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
2690              (__v8hi) __B,
2691              (__v8hi) __W,
2692              (__mmask8) __U);
2693 }
2694 
2695 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_srav_epi16(__mmask8 __U,__m128i __A,__m128i __B)2696 _mm_maskz_srav_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2697 {
2698   return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A,
2699              (__v8hi) __B,
2700              (__v8hi)
2701              _mm_setzero_si128 (),
2702              (__mmask8) __U);
2703 }
2704 
2705 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_sra_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2706 _mm_mask_sra_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2707         __m128i __B)
2708 {
2709   return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A,
2710              (__v8hi) __B,
2711              (__v8hi) __W,
2712              (__mmask8) __U);
2713 }
2714 
2715 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_sra_epi16(__mmask8 __U,__m128i __A,__m128i __B)2716 _mm_maskz_sra_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2717 {
2718   return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A,
2719              (__v8hi) __B,
2720              (__v8hi)
2721              _mm_setzero_si128 (),
2722              (__mmask8) __U);
2723 }
2724 
2725 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_sra_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m128i __B)2726 _mm256_mask_sra_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2727            __m128i __B)
2728 {
2729   return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A,
2730              (__v8hi) __B,
2731              (__v16hi) __W,
2732              (__mmask16) __U);
2733 }
2734 
2735 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_sra_epi16(__mmask16 __U,__m256i __A,__m128i __B)2736 _mm256_maskz_sra_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
2737 {
2738   return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A,
2739              (__v8hi) __B,
2740              (__v16hi)
2741              _mm256_setzero_si256 (),
2742              (__mmask16) __U);
2743 }
2744 
2745 #define _mm_mask_srai_epi16(W, U, A, imm) __extension__ ({ \
2746   (__m128i)__builtin_ia32_psrawi128_mask((__v8hi)(__m128i)(A), (int)(imm), \
2747                                          (__v8hi)(__m128i)(W), \
2748                                          (__mmask8)(U)); })
2749 
2750 #define _mm_maskz_srai_epi16(U, A, imm) __extension__ ({ \
2751   (__m128i)__builtin_ia32_psrawi128_mask((__v8hi)(__m128i)(A), (int)(imm), \
2752                                          (__v8hi)_mm_setzero_si128(), \
2753                                          (__mmask8)(U)); })
2754 
2755 #define _mm256_mask_srai_epi16(W, U, A, imm) __extension__ ({ \
2756   (__m256i)__builtin_ia32_psrawi256_mask((__v16hi)(__m256i)(A), (int)(imm), \
2757                                          (__v16hi)(__m256i)(W), \
2758                                          (__mmask16)(U)); })
2759 
2760 #define _mm256_maskz_srai_epi16(U, A, imm) __extension__ ({ \
2761   (__m256i)__builtin_ia32_psrawi256_mask((__v16hi)(__m256i)(A), (int)(imm), \
2762                                          (__v16hi)_mm256_setzero_si256(), \
2763                                          (__mmask16)(U)); })
2764 
2765 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_srl_epi16(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)2766 _mm_mask_srl_epi16 (__m128i __W, __mmask8 __U, __m128i __A,
2767         __m128i __B)
2768 {
2769   return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A,
2770              (__v8hi) __B,
2771              (__v8hi) __W,
2772              (__mmask8) __U);
2773 }
2774 
2775 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_srl_epi16(__mmask8 __U,__m128i __A,__m128i __B)2776 _mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2777 {
2778   return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A,
2779              (__v8hi) __B,
2780              (__v8hi)
2781              _mm_setzero_si128 (),
2782              (__mmask8) __U);
2783 }
2784 
2785 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_srl_epi16(__m256i __W,__mmask16 __U,__m256i __A,__m128i __B)2786 _mm256_mask_srl_epi16 (__m256i __W, __mmask16 __U, __m256i __A,
2787            __m128i __B)
2788 {
2789   return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A,
2790              (__v8hi) __B,
2791              (__v16hi) __W,
2792              (__mmask16) __U);
2793 }
2794 
2795 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_srl_epi16(__mmask16 __U,__m256i __A,__m128i __B)2796 _mm256_maskz_srl_epi16 (__mmask16 __U, __m256i __A, __m128i __B)
2797 {
2798   return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A,
2799              (__v8hi) __B,
2800              (__v16hi)
2801              _mm256_setzero_si256 (),
2802              (__mmask16) __U);
2803 }
2804 
2805 #define _mm_mask_srli_epi16(W, U, A, imm) __extension__ ({ \
2806   (__m128i)__builtin_ia32_psrlwi128_mask((__v8hi)(__m128i)(A), (int)(imm), \
2807                                          (__v8hi)(__m128i)(W), \
2808                                          (__mmask8)(U)); })
2809 
2810 #define _mm_maskz_srli_epi16(U, A, imm) __extension__ ({ \
2811   (__m128i)__builtin_ia32_psrlwi128_mask((__v8hi)(__m128i)(A), (int)(imm), \
2812                                          (__v8hi)_mm_setzero_si128(), \
2813                                          (__mmask8)(U)); })
2814 
2815 #define _mm256_mask_srli_epi16(W, U, A, imm) __extension__ ({ \
2816   (__m256i)__builtin_ia32_psrlwi256_mask((__v16hi)(__m256i)(A), (int)(imm), \
2817                                          (__v16hi)(__m256i)(W), \
2818                                          (__mmask16)(U)); })
2819 
2820 #define _mm256_maskz_srli_epi16(U, A, imm) __extension__ ({ \
2821   (__m256i)__builtin_ia32_psrlwi256_mask((__v16hi)(__m256i)(A), (int)(imm), \
2822                                          (__v16hi)_mm256_setzero_si256(), \
2823                                          (__mmask16)(U)); })
2824 
2825 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mov_epi16(__m128i __W,__mmask8 __U,__m128i __A)2826 _mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
2827 {
2828   return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
2829                 (__v8hi) __A,
2830                 (__v8hi) __W);
2831 }
2832 
2833 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mov_epi16(__mmask8 __U,__m128i __A)2834 _mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A)
2835 {
2836   return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
2837                 (__v8hi) __A,
2838                 (__v8hi) _mm_setzero_hi ());
2839 }
2840 
2841 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mov_epi16(__m256i __W,__mmask16 __U,__m256i __A)2842 _mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
2843 {
2844   return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
2845                 (__v16hi) __A,
2846                 (__v16hi) __W);
2847 }
2848 
2849 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mov_epi16(__mmask16 __U,__m256i __A)2850 _mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A)
2851 {
2852   return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
2853                 (__v16hi) __A,
2854                 (__v16hi) _mm256_setzero_si256 ());
2855 }
2856 
2857 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_mov_epi8(__m128i __W,__mmask16 __U,__m128i __A)2858 _mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
2859 {
2860   return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
2861                 (__v16qi) __A,
2862                 (__v16qi) __W);
2863 }
2864 
2865 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_mov_epi8(__mmask16 __U,__m128i __A)2866 _mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A)
2867 {
2868   return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
2869                 (__v16qi) __A,
2870                 (__v16qi) _mm_setzero_hi ());
2871 }
2872 
2873 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_mov_epi8(__m256i __W,__mmask32 __U,__m256i __A)2874 _mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
2875 {
2876   return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
2877                 (__v32qi) __A,
2878                 (__v32qi) __W);
2879 }
2880 
2881 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_mov_epi8(__mmask32 __U,__m256i __A)2882 _mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A)
2883 {
2884   return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
2885                 (__v32qi) __A,
2886                 (__v32qi) _mm256_setzero_si256 ());
2887 }
2888 
2889 
2890 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_set1_epi8(__m128i __O,__mmask16 __M,char __A)2891 _mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A)
2892 {
2893   return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
2894                  (__v16qi) __O,
2895                  __M);
2896 }
2897 
2898 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_set1_epi8(__mmask16 __M,char __A)2899 _mm_maskz_set1_epi8 (__mmask16 __M, char __A)
2900 {
2901   return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A,
2902                  (__v16qi)
2903                  _mm_setzero_si128 (),
2904                  __M);
2905 }
2906 
2907 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_set1_epi8(__m256i __O,__mmask32 __M,char __A)2908 _mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A)
2909 {
2910   return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
2911                  (__v32qi) __O,
2912                  __M);
2913 }
2914 
2915 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_set1_epi8(__mmask32 __M,char __A)2916 _mm256_maskz_set1_epi8 (__mmask32 __M, char __A)
2917 {
2918   return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A,
2919                  (__v32qi)
2920                  _mm256_setzero_si256 (),
2921                  __M);
2922 }
2923 
2924 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_loadu_epi16(__m128i __W,__mmask8 __U,void const * __P)2925 _mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P)
2926 {
2927   return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P,
2928                  (__v8hi) __W,
2929                  (__mmask8) __U);
2930 }
2931 
2932 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_loadu_epi16(__mmask8 __U,void const * __P)2933 _mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P)
2934 {
2935   return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P,
2936                  (__v8hi)
2937                  _mm_setzero_hi (),
2938                  (__mmask8) __U);
2939 }
2940 
2941 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_loadu_epi16(__m256i __W,__mmask16 __U,void const * __P)2942 _mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P)
2943 {
2944   return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P,
2945                  (__v16hi) __W,
2946                  (__mmask16) __U);
2947 }
2948 
2949 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_loadu_epi16(__mmask16 __U,void const * __P)2950 _mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P)
2951 {
2952   return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P,
2953                  (__v16hi)
2954                  _mm256_setzero_si256 (),
2955                  (__mmask16) __U);
2956 }
2957 
2958 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_loadu_epi8(__m128i __W,__mmask16 __U,void const * __P)2959 _mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P)
2960 {
2961   return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P,
2962                  (__v16qi) __W,
2963                  (__mmask16) __U);
2964 }
2965 
2966 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_loadu_epi8(__mmask16 __U,void const * __P)2967 _mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P)
2968 {
2969   return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P,
2970                  (__v16qi)
2971                  _mm_setzero_si128 (),
2972                  (__mmask16) __U);
2973 }
2974 
2975 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_loadu_epi8(__m256i __W,__mmask32 __U,void const * __P)2976 _mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P)
2977 {
2978   return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P,
2979                  (__v32qi) __W,
2980                  (__mmask32) __U);
2981 }
2982 
2983 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_loadu_epi8(__mmask32 __U,void const * __P)2984 _mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P)
2985 {
2986   return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P,
2987                  (__v32qi)
2988                  _mm256_setzero_si256 (),
2989                  (__mmask32) __U);
2990 }
2991 static __inline__ void __DEFAULT_FN_ATTRS
_mm_mask_storeu_epi16(void * __P,__mmask8 __U,__m128i __A)2992 _mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
2993 {
2994   __builtin_ia32_storedquhi128_mask ((__v8hi *) __P,
2995              (__v8hi) __A,
2996              (__mmask8) __U);
2997 }
2998 
2999 static __inline__ void __DEFAULT_FN_ATTRS
_mm256_mask_storeu_epi16(void * __P,__mmask16 __U,__m256i __A)3000 _mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
3001 {
3002   __builtin_ia32_storedquhi256_mask ((__v16hi *) __P,
3003              (__v16hi) __A,
3004              (__mmask16) __U);
3005 }
3006 
3007 static __inline__ void __DEFAULT_FN_ATTRS
_mm_mask_storeu_epi8(void * __P,__mmask16 __U,__m128i __A)3008 _mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A)
3009 {
3010   __builtin_ia32_storedquqi128_mask ((__v16qi *) __P,
3011              (__v16qi) __A,
3012              (__mmask16) __U);
3013 }
3014 
3015 static __inline__ void __DEFAULT_FN_ATTRS
_mm256_mask_storeu_epi8(void * __P,__mmask32 __U,__m256i __A)3016 _mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A)
3017 {
3018   __builtin_ia32_storedquqi256_mask ((__v32qi *) __P,
3019              (__v32qi) __A,
3020              (__mmask32) __U);
3021 }
3022 
3023 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_test_epi8_mask(__m128i __A,__m128i __B)3024 _mm_test_epi8_mask (__m128i __A, __m128i __B)
3025 {
3026   return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
3027             (__v16qi) __B,
3028             (__mmask16) -1);
3029 }
3030 
3031 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_test_epi8_mask(__mmask16 __U,__m128i __A,__m128i __B)3032 _mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3033 {
3034   return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
3035             (__v16qi) __B, __U);
3036 }
3037 
3038 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_test_epi8_mask(__m256i __A,__m256i __B)3039 _mm256_test_epi8_mask (__m256i __A, __m256i __B)
3040 {
3041   return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
3042             (__v32qi) __B,
3043             (__mmask32) -1);
3044 }
3045 
3046 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_test_epi8_mask(__mmask32 __U,__m256i __A,__m256i __B)3047 _mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3048 {
3049   return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
3050             (__v32qi) __B, __U);
3051 }
3052 
3053 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_test_epi16_mask(__m128i __A,__m128i __B)3054 _mm_test_epi16_mask (__m128i __A, __m128i __B)
3055 {
3056   return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
3057                  (__v8hi) __B,
3058                  (__mmask8) -1);
3059 }
3060 
3061 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_test_epi16_mask(__mmask8 __U,__m128i __A,__m128i __B)3062 _mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3063 {
3064   return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
3065                  (__v8hi) __B, __U);
3066 }
3067 
3068 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_test_epi16_mask(__m256i __A,__m256i __B)3069 _mm256_test_epi16_mask (__m256i __A, __m256i __B)
3070 {
3071   return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
3072             (__v16hi) __B,
3073             (__mmask16) -1);
3074 }
3075 
3076 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_test_epi16_mask(__mmask16 __U,__m256i __A,__m256i __B)3077 _mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3078 {
3079   return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
3080             (__v16hi) __B, __U);
3081 }
3082 
3083 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_testn_epi8_mask(__m128i __A,__m128i __B)3084 _mm_testn_epi8_mask (__m128i __A, __m128i __B)
3085 {
3086   return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
3087              (__v16qi) __B,
3088              (__mmask16) -1);
3089 }
3090 
3091 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_mask_testn_epi8_mask(__mmask16 __U,__m128i __A,__m128i __B)3092 _mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
3093 {
3094   return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
3095              (__v16qi) __B, __U);
3096 }
3097 
3098 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_testn_epi8_mask(__m256i __A,__m256i __B)3099 _mm256_testn_epi8_mask (__m256i __A, __m256i __B)
3100 {
3101   return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
3102              (__v32qi) __B,
3103              (__mmask32) -1);
3104 }
3105 
3106 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_mask_testn_epi8_mask(__mmask32 __U,__m256i __A,__m256i __B)3107 _mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
3108 {
3109   return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
3110              (__v32qi) __B, __U);
3111 }
3112 
3113 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_testn_epi16_mask(__m128i __A,__m128i __B)3114 _mm_testn_epi16_mask (__m128i __A, __m128i __B)
3115 {
3116   return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
3117             (__v8hi) __B,
3118             (__mmask8) -1);
3119 }
3120 
3121 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_mask_testn_epi16_mask(__mmask8 __U,__m128i __A,__m128i __B)3122 _mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
3123 {
3124   return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
3125             (__v8hi) __B, __U);
3126 }
3127 
3128 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_testn_epi16_mask(__m256i __A,__m256i __B)3129 _mm256_testn_epi16_mask (__m256i __A, __m256i __B)
3130 {
3131   return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
3132              (__v16hi) __B,
3133              (__mmask16) -1);
3134 }
3135 
3136 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_mask_testn_epi16_mask(__mmask16 __U,__m256i __A,__m256i __B)3137 _mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
3138 {
3139   return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
3140              (__v16hi) __B, __U);
3141 }
3142 
3143 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm_movepi8_mask(__m128i __A)3144 _mm_movepi8_mask (__m128i __A)
3145 {
3146   return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A);
3147 }
3148 
3149 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm256_movepi8_mask(__m256i __A)3150 _mm256_movepi8_mask (__m256i __A)
3151 {
3152   return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A);
3153 }
3154 
3155 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm_movepi16_mask(__m128i __A)3156 _mm_movepi16_mask (__m128i __A)
3157 {
3158   return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A);
3159 }
3160 
3161 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm256_movepi16_mask(__m256i __A)3162 _mm256_movepi16_mask (__m256i __A)
3163 {
3164   return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A);
3165 }
3166 
3167 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_movm_epi8(__mmask16 __A)3168 _mm_movm_epi8 (__mmask16 __A)
3169 {
3170   return (__m128i) __builtin_ia32_cvtmask2b128 (__A);
3171 }
3172 
3173 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_movm_epi8(__mmask32 __A)3174 _mm256_movm_epi8 (__mmask32 __A)
3175 {
3176   return (__m256i) __builtin_ia32_cvtmask2b256 (__A);
3177 }
3178 
3179 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_movm_epi16(__mmask8 __A)3180 _mm_movm_epi16 (__mmask8 __A)
3181 {
3182   return (__m128i) __builtin_ia32_cvtmask2w128 (__A);
3183 }
3184 
3185 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_movm_epi16(__mmask16 __A)3186 _mm256_movm_epi16 (__mmask16 __A)
3187 {
3188   return (__m256i) __builtin_ia32_cvtmask2w256 (__A);
3189 }
3190 
3191 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_broadcastb_epi8(__m128i __O,__mmask16 __M,__m128i __A)3192 _mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A)
3193 {
3194   return (__m128i)__builtin_ia32_selectb_128(__M,
3195                                              (__v16qi) _mm_broadcastb_epi8(__A),
3196                                              (__v16qi) __O);
3197 }
3198 
3199 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_broadcastb_epi8(__mmask16 __M,__m128i __A)3200 _mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A)
3201 {
3202   return (__m128i)__builtin_ia32_selectb_128(__M,
3203                                              (__v16qi) _mm_broadcastb_epi8(__A),
3204                                              (__v16qi) _mm_setzero_si128());
3205 }
3206 
3207 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_broadcastb_epi8(__m256i __O,__mmask32 __M,__m128i __A)3208 _mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A)
3209 {
3210   return (__m256i)__builtin_ia32_selectb_256(__M,
3211                                              (__v32qi) _mm256_broadcastb_epi8(__A),
3212                                              (__v32qi) __O);
3213 }
3214 
3215 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_broadcastb_epi8(__mmask32 __M,__m128i __A)3216 _mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A)
3217 {
3218   return (__m256i)__builtin_ia32_selectb_256(__M,
3219                                              (__v32qi) _mm256_broadcastb_epi8(__A),
3220                                              (__v32qi) _mm256_setzero_si256());
3221 }
3222 
3223 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_broadcastw_epi16(__m128i __O,__mmask8 __M,__m128i __A)3224 _mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
3225 {
3226   return (__m128i)__builtin_ia32_selectw_128(__M,
3227                                              (__v8hi) _mm_broadcastw_epi16(__A),
3228                                              (__v8hi) __O);
3229 }
3230 
3231 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_broadcastw_epi16(__mmask8 __M,__m128i __A)3232 _mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A)
3233 {
3234   return (__m128i)__builtin_ia32_selectw_128(__M,
3235                                              (__v8hi) _mm_broadcastw_epi16(__A),
3236                                              (__v8hi) _mm_setzero_si128());
3237 }
3238 
3239 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_broadcastw_epi16(__m256i __O,__mmask16 __M,__m128i __A)3240 _mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A)
3241 {
3242   return (__m256i)__builtin_ia32_selectw_256(__M,
3243                                              (__v16hi) _mm256_broadcastw_epi16(__A),
3244                                              (__v16hi) __O);
3245 }
3246 
3247 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_broadcastw_epi16(__mmask16 __M,__m128i __A)3248 _mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A)
3249 {
3250   return (__m256i)__builtin_ia32_selectw_256(__M,
3251                                              (__v16hi) _mm256_broadcastw_epi16(__A),
3252                                              (__v16hi) _mm256_setzero_si256());
3253 }
3254 
3255 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_set1_epi16(__m256i __O,__mmask16 __M,short __A)3256 _mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A)
3257 {
3258   return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
3259                  (__v16hi) __O,
3260                  __M);
3261 }
3262 
3263 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_set1_epi16(__mmask16 __M,short __A)3264 _mm256_maskz_set1_epi16 (__mmask16 __M, short __A)
3265 {
3266   return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
3267                  (__v16hi) _mm256_setzero_si256 (),
3268                  __M);
3269 }
3270 
3271 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_set1_epi16(__m128i __O,__mmask8 __M,short __A)3272 _mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A)
3273 {
3274   return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
3275                  (__v8hi) __O,
3276                  __M);
3277 }
3278 
3279 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_set1_epi16(__mmask8 __M,short __A)3280 _mm_maskz_set1_epi16 (__mmask8 __M, short __A)
3281 {
3282   return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
3283                  (__v8hi) _mm_setzero_si128 (),
3284                  __M);
3285 }
3286 
3287 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_permutexvar_epi16(__m128i __A,__m128i __B)3288 _mm_permutexvar_epi16 (__m128i __A, __m128i __B)
3289 {
3290   return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
3291                  (__v8hi) __A,
3292                  (__v8hi) _mm_undefined_si128 (),
3293                  (__mmask8) -1);
3294 }
3295 
3296 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maskz_permutexvar_epi16(__mmask8 __M,__m128i __A,__m128i __B)3297 _mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
3298 {
3299   return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
3300                  (__v8hi) __A,
3301                  (__v8hi) _mm_setzero_si128 (),
3302                  (__mmask8) __M);
3303 }
3304 
3305 static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_mask_permutexvar_epi16(__m128i __W,__mmask8 __M,__m128i __A,__m128i __B)3306 _mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
3307           __m128i __B)
3308 {
3309   return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
3310                  (__v8hi) __A,
3311                  (__v8hi) __W,
3312                  (__mmask8) __M);
3313 }
3314 
3315 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_permutexvar_epi16(__m256i __A,__m256i __B)3316 _mm256_permutexvar_epi16 (__m256i __A, __m256i __B)
3317 {
3318   return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
3319                  (__v16hi) __A,
3320                  (__v16hi) _mm256_undefined_si256 (),
3321                  (__mmask16) -1);
3322 }
3323 
3324 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_maskz_permutexvar_epi16(__mmask16 __M,__m256i __A,__m256i __B)3325 _mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A,
3326         __m256i __B)
3327 {
3328   return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
3329                  (__v16hi) __A,
3330                  (__v16hi) _mm256_setzero_si256 (),
3331                  (__mmask16) __M);
3332 }
3333 
3334 static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_mask_permutexvar_epi16(__m256i __W,__mmask16 __M,__m256i __A,__m256i __B)3335 _mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
3336              __m256i __B)
3337 {
3338   return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
3339                  (__v16hi) __A,
3340                  (__v16hi) __W,
3341                  (__mmask16) __M);
3342 }
3343 
3344 #define _mm_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \
3345   (__m128i)__builtin_ia32_palignr128_mask((__v16qi)(__m128i)(A), \
3346                                           (__v16qi)(__m128i)(B), (int)(N), \
3347                                           (__v16qi)(__m128i)(W), \
3348                                           (__mmask16)(U)); })
3349 
3350 #define _mm_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \
3351   (__m128i)__builtin_ia32_palignr128_mask((__v16qi)(__m128i)(A), \
3352                                           (__v16qi)(__m128i)(B), (int)(N), \
3353                                           (__v16qi)_mm_setzero_si128(), \
3354                                           (__mmask16)(U)); })
3355 
3356 #define _mm256_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \
3357   (__m256i)__builtin_ia32_palignr256_mask((__v32qi)(__m256i)(A), \
3358                                           (__v32qi)(__m256i)(B), (int)(N), \
3359                                           (__v32qi)(__m256i)(W), \
3360                                           (__mmask32)(U)); })
3361 
3362 #define _mm256_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \
3363   (__m256i)__builtin_ia32_palignr256_mask((__v32qi)(__m256i)(A), \
3364                                           (__v32qi)(__m256i)(B), (int)(N), \
3365                                           (__v32qi)_mm256_setzero_si256(), \
3366                                           (__mmask32)(U)); })
3367 
3368 #define _mm_dbsad_epu8(A, B, imm) __extension__ ({ \
3369   (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
3370                                            (__v16qi)(__m128i)(B), (int)(imm), \
3371                                            (__v8hi)_mm_setzero_hi(), \
3372                                            (__mmask8)-1); })
3373 
3374 #define _mm_mask_dbsad_epu8(W, U, A, B, imm) __extension__ ({ \
3375   (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
3376                                            (__v16qi)(__m128i)(B), (int)(imm), \
3377                                            (__v8hi)(__m128i)(W), \
3378                                            (__mmask8)(U)); })
3379 
3380 #define _mm_maskz_dbsad_epu8(U, A, B, imm) __extension__ ({ \
3381   (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
3382                                            (__v16qi)(__m128i)(B), (int)(imm), \
3383                                            (__v8hi)_mm_setzero_si128(), \
3384                                            (__mmask8)(U)); })
3385 
3386 #define _mm256_dbsad_epu8(A, B, imm) __extension__ ({ \
3387   (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
3388                                            (__v32qi)(__m256i)(B), (int)(imm), \
3389                                            (__v16hi)_mm256_setzero_si256(), \
3390                                            (__mmask16)-1); })
3391 
3392 #define _mm256_mask_dbsad_epu8(W, U, A, B, imm) __extension__ ({ \
3393   (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
3394                                            (__v32qi)(__m256i)(B), (int)(imm), \
3395                                            (__v16hi)(__m256i)(W), \
3396                                            (__mmask16)(U)); })
3397 
3398 #define _mm256_maskz_dbsad_epu8(U, A, B, imm) __extension__ ({ \
3399   (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
3400                                            (__v32qi)(__m256i)(B), (int)(imm), \
3401                                            (__v16hi)_mm256_setzero_si256(), \
3402                                            (__mmask16)(U)); })
3403 
3404 #undef __DEFAULT_FN_ATTRS
3405 
3406 #endif /* __AVX512VLBWINTRIN_H */
3407