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