1 /*===---- avx512vlbwintrin.h - AVX512VL and AVX512BW intrinsics ------------===
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:
10 * The above copyright notice and this permission notice shall be included in
11 * all copies or substantial portions of the Software.
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
21 *===-----------------------------------------------------------------------===
25 #error "Never use <avx512vlbwintrin.h> directly; include <immintrin.h> instead."
28 #ifndef __AVX512VLBWINTRIN_H
29 #define __AVX512VLBWINTRIN_H
31 /* Define the default attributes for the functions in this file. */
32 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw")))
34 static __inline __m128i __DEFAULT_FN_ATTRS
36 return (__m128i)(__v8hi){ 0, 0, 0, 0, 0, 0, 0, 0 };
41 #define _mm_cmp_epi8_mask(a, b, p) __extension__ ({ \
42 (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
43 (__v16qi)(__m128i)(b), (int)(p), \
46 #define _mm_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
47 (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
48 (__v16qi)(__m128i)(b), (int)(p), \
51 #define _mm_cmp_epu8_mask(a, b, p) __extension__ ({ \
52 (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
53 (__v16qi)(__m128i)(b), (int)(p), \
56 #define _mm_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
57 (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
58 (__v16qi)(__m128i)(b), (int)(p), \
61 #define _mm256_cmp_epi8_mask(a, b, p) __extension__ ({ \
62 (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
63 (__v32qi)(__m256i)(b), (int)(p), \
66 #define _mm256_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
67 (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
68 (__v32qi)(__m256i)(b), (int)(p), \
71 #define _mm256_cmp_epu8_mask(a, b, p) __extension__ ({ \
72 (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
73 (__v32qi)(__m256i)(b), (int)(p), \
76 #define _mm256_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
77 (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
78 (__v32qi)(__m256i)(b), (int)(p), \
81 #define _mm_cmp_epi16_mask(a, b, p) __extension__ ({ \
82 (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
83 (__v8hi)(__m128i)(b), (int)(p), \
86 #define _mm_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
87 (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
88 (__v8hi)(__m128i)(b), (int)(p), \
91 #define _mm_cmp_epu16_mask(a, b, p) __extension__ ({ \
92 (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
93 (__v8hi)(__m128i)(b), (int)(p), \
96 #define _mm_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
97 (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
98 (__v8hi)(__m128i)(b), (int)(p), \
101 #define _mm256_cmp_epi16_mask(a, b, p) __extension__ ({ \
102 (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
103 (__v16hi)(__m256i)(b), (int)(p), \
106 #define _mm256_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
107 (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
108 (__v16hi)(__m256i)(b), (int)(p), \
111 #define _mm256_cmp_epu16_mask(a, b, p) __extension__ ({ \
112 (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
113 (__v16hi)(__m256i)(b), (int)(p), \
116 #define _mm256_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
117 (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
118 (__v16hi)(__m256i)(b), (int)(p), \
121 #define _mm_cmpeq_epi8_mask(A, B) \
122 _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_EQ)
123 #define _mm_mask_cmpeq_epi8_mask(k, A, B) \
124 _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_EQ)
125 #define _mm_cmpge_epi8_mask(A, B) \
126 _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_GE)
127 #define _mm_mask_cmpge_epi8_mask(k, A, B) \
128 _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GE)
129 #define _mm_cmpgt_epi8_mask(A, B) \
130 _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_GT)
131 #define _mm_mask_cmpgt_epi8_mask(k, A, B) \
132 _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GT)
133 #define _mm_cmple_epi8_mask(A, B) \
134 _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_LE)
135 #define _mm_mask_cmple_epi8_mask(k, A, B) \
136 _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LE)
137 #define _mm_cmplt_epi8_mask(A, B) \
138 _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_LT)
139 #define _mm_mask_cmplt_epi8_mask(k, A, B) \
140 _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LT)
141 #define _mm_cmpneq_epi8_mask(A, B) \
142 _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_NE)
143 #define _mm_mask_cmpneq_epi8_mask(k, A, B) \
144 _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_NE)
146 #define _mm256_cmpeq_epi8_mask(A, B) \
147 _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_EQ)
148 #define _mm256_mask_cmpeq_epi8_mask(k, A, B) \
149 _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_EQ)
150 #define _mm256_cmpge_epi8_mask(A, B) \
151 _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_GE)
152 #define _mm256_mask_cmpge_epi8_mask(k, A, B) \
153 _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GE)
154 #define _mm256_cmpgt_epi8_mask(A, B) \
155 _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_GT)
156 #define _mm256_mask_cmpgt_epi8_mask(k, A, B) \
157 _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GT)
158 #define _mm256_cmple_epi8_mask(A, B) \
159 _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_LE)
160 #define _mm256_mask_cmple_epi8_mask(k, A, B) \
161 _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LE)
162 #define _mm256_cmplt_epi8_mask(A, B) \
163 _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_LT)
164 #define _mm256_mask_cmplt_epi8_mask(k, A, B) \
165 _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LT)
166 #define _mm256_cmpneq_epi8_mask(A, B) \
167 _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_NE)
168 #define _mm256_mask_cmpneq_epi8_mask(k, A, B) \
169 _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_NE)
171 #define _mm_cmpeq_epu8_mask(A, B) \
172 _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_EQ)
173 #define _mm_mask_cmpeq_epu8_mask(k, A, B) \
174 _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_EQ)
175 #define _mm_cmpge_epu8_mask(A, B) \
176 _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_GE)
177 #define _mm_mask_cmpge_epu8_mask(k, A, B) \
178 _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GE)
179 #define _mm_cmpgt_epu8_mask(A, B) \
180 _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_GT)
181 #define _mm_mask_cmpgt_epu8_mask(k, A, B) \
182 _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GT)
183 #define _mm_cmple_epu8_mask(A, B) \
184 _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_LE)
185 #define _mm_mask_cmple_epu8_mask(k, A, B) \
186 _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LE)
187 #define _mm_cmplt_epu8_mask(A, B) \
188 _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_LT)
189 #define _mm_mask_cmplt_epu8_mask(k, A, B) \
190 _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LT)
191 #define _mm_cmpneq_epu8_mask(A, B) \
192 _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_NE)
193 #define _mm_mask_cmpneq_epu8_mask(k, A, B) \
194 _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_NE)
196 #define _mm256_cmpeq_epu8_mask(A, B) \
197 _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_EQ)
198 #define _mm256_mask_cmpeq_epu8_mask(k, A, B) \
199 _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_EQ)
200 #define _mm256_cmpge_epu8_mask(A, B) \
201 _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_GE)
202 #define _mm256_mask_cmpge_epu8_mask(k, A, B) \
203 _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GE)
204 #define _mm256_cmpgt_epu8_mask(A, B) \
205 _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_GT)
206 #define _mm256_mask_cmpgt_epu8_mask(k, A, B) \
207 _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GT)
208 #define _mm256_cmple_epu8_mask(A, B) \
209 _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_LE)
210 #define _mm256_mask_cmple_epu8_mask(k, A, B) \
211 _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LE)
212 #define _mm256_cmplt_epu8_mask(A, B) \
213 _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_LT)
214 #define _mm256_mask_cmplt_epu8_mask(k, A, B) \
215 _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LT)
216 #define _mm256_cmpneq_epu8_mask(A, B) \
217 _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_NE)
218 #define _mm256_mask_cmpneq_epu8_mask(k, A, B) \
219 _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_NE)
221 #define _mm_cmpeq_epi16_mask(A, B) \
222 _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_EQ)
223 #define _mm_mask_cmpeq_epi16_mask(k, A, B) \
224 _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_EQ)
225 #define _mm_cmpge_epi16_mask(A, B) \
226 _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_GE)
227 #define _mm_mask_cmpge_epi16_mask(k, A, B) \
228 _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GE)
229 #define _mm_cmpgt_epi16_mask(A, B) \
230 _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_GT)
231 #define _mm_mask_cmpgt_epi16_mask(k, A, B) \
232 _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GT)
233 #define _mm_cmple_epi16_mask(A, B) \
234 _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_LE)
235 #define _mm_mask_cmple_epi16_mask(k, A, B) \
236 _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LE)
237 #define _mm_cmplt_epi16_mask(A, B) \
238 _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_LT)
239 #define _mm_mask_cmplt_epi16_mask(k, A, B) \
240 _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LT)
241 #define _mm_cmpneq_epi16_mask(A, B) \
242 _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_NE)
243 #define _mm_mask_cmpneq_epi16_mask(k, A, B) \
244 _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_NE)
246 #define _mm256_cmpeq_epi16_mask(A, B) \
247 _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_EQ)
248 #define _mm256_mask_cmpeq_epi16_mask(k, A, B) \
249 _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_EQ)
250 #define _mm256_cmpge_epi16_mask(A, B) \
251 _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_GE)
252 #define _mm256_mask_cmpge_epi16_mask(k, A, B) \
253 _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GE)
254 #define _mm256_cmpgt_epi16_mask(A, B) \
255 _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_GT)
256 #define _mm256_mask_cmpgt_epi16_mask(k, A, B) \
257 _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GT)
258 #define _mm256_cmple_epi16_mask(A, B) \
259 _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_LE)
260 #define _mm256_mask_cmple_epi16_mask(k, A, B) \
261 _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LE)
262 #define _mm256_cmplt_epi16_mask(A, B) \
263 _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_LT)
264 #define _mm256_mask_cmplt_epi16_mask(k, A, B) \
265 _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LT)
266 #define _mm256_cmpneq_epi16_mask(A, B) \
267 _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_NE)
268 #define _mm256_mask_cmpneq_epi16_mask(k, A, B) \
269 _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_NE)
271 #define _mm_cmpeq_epu16_mask(A, B) \
272 _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_EQ)
273 #define _mm_mask_cmpeq_epu16_mask(k, A, B) \
274 _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_EQ)
275 #define _mm_cmpge_epu16_mask(A, B) \
276 _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_GE)
277 #define _mm_mask_cmpge_epu16_mask(k, A, B) \
278 _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GE)
279 #define _mm_cmpgt_epu16_mask(A, B) \
280 _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_GT)
281 #define _mm_mask_cmpgt_epu16_mask(k, A, B) \
282 _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GT)
283 #define _mm_cmple_epu16_mask(A, B) \
284 _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_LE)
285 #define _mm_mask_cmple_epu16_mask(k, A, B) \
286 _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LE)
287 #define _mm_cmplt_epu16_mask(A, B) \
288 _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_LT)
289 #define _mm_mask_cmplt_epu16_mask(k, A, B) \
290 _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LT)
291 #define _mm_cmpneq_epu16_mask(A, B) \
292 _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_NE)
293 #define _mm_mask_cmpneq_epu16_mask(k, A, B) \
294 _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_NE)
296 #define _mm256_cmpeq_epu16_mask(A, B) \
297 _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_EQ)
298 #define _mm256_mask_cmpeq_epu16_mask(k, A, B) \
299 _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_EQ)
300 #define _mm256_cmpge_epu16_mask(A, B) \
301 _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_GE)
302 #define _mm256_mask_cmpge_epu16_mask(k, A, B) \
303 _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GE)
304 #define _mm256_cmpgt_epu16_mask(A, B) \
305 _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_GT)
306 #define _mm256_mask_cmpgt_epu16_mask(k, A, B) \
307 _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GT)
308 #define _mm256_cmple_epu16_mask(A, B) \
309 _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_LE)
310 #define _mm256_mask_cmple_epu16_mask(k, A, B) \
311 _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LE)
312 #define _mm256_cmplt_epu16_mask(A, B) \
313 _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_LT)
314 #define _mm256_mask_cmplt_epu16_mask(k, A, B) \
315 _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LT)
316 #define _mm256_cmpneq_epu16_mask(A, B) \
317 _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_NE)
318 #define _mm256_mask_cmpneq_epu16_mask(k, A, B) \
319 _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_NE)
321 static __inline__ __m256i __DEFAULT_FN_ATTRS
322 _mm256_mask_add_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){
323 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
324 (__v32qi)_mm256_add_epi8(__A, __B),
328 static __inline__ __m256i __DEFAULT_FN_ATTRS
329 _mm256_maskz_add_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
330 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
331 (__v32qi)_mm256_add_epi8(__A, __B),
332 (__v32qi)_mm256_setzero_si256());
335 static __inline__ __m256i __DEFAULT_FN_ATTRS
336 _mm256_mask_add_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
337 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
338 (__v16hi)_mm256_add_epi16(__A, __B),
342 static __inline__ __m256i __DEFAULT_FN_ATTRS
343 _mm256_maskz_add_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
344 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
345 (__v16hi)_mm256_add_epi16(__A, __B),
346 (__v16hi)_mm256_setzero_si256());
349 static __inline__ __m256i __DEFAULT_FN_ATTRS
350 _mm256_mask_sub_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
351 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
352 (__v32qi)_mm256_sub_epi8(__A, __B),
356 static __inline__ __m256i __DEFAULT_FN_ATTRS
357 _mm256_maskz_sub_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
358 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
359 (__v32qi)_mm256_sub_epi8(__A, __B),
360 (__v32qi)_mm256_setzero_si256());
363 static __inline__ __m256i __DEFAULT_FN_ATTRS
364 _mm256_mask_sub_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
365 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
366 (__v16hi)_mm256_sub_epi16(__A, __B),
370 static __inline__ __m256i __DEFAULT_FN_ATTRS
371 _mm256_maskz_sub_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
372 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
373 (__v16hi)_mm256_sub_epi16(__A, __B),
374 (__v16hi)_mm256_setzero_si256());
377 static __inline__ __m128i __DEFAULT_FN_ATTRS
378 _mm_mask_add_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
379 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
380 (__v16qi)_mm_add_epi8(__A, __B),
384 static __inline__ __m128i __DEFAULT_FN_ATTRS
385 _mm_maskz_add_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
386 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
387 (__v16qi)_mm_add_epi8(__A, __B),
388 (__v16qi)_mm_setzero_si128());
391 static __inline__ __m128i __DEFAULT_FN_ATTRS
392 _mm_mask_add_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
393 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
394 (__v8hi)_mm_add_epi16(__A, __B),
398 static __inline__ __m128i __DEFAULT_FN_ATTRS
399 _mm_maskz_add_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
400 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
401 (__v8hi)_mm_add_epi16(__A, __B),
402 (__v8hi)_mm_setzero_si128());
405 static __inline__ __m128i __DEFAULT_FN_ATTRS
406 _mm_mask_sub_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
407 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
408 (__v16qi)_mm_sub_epi8(__A, __B),
412 static __inline__ __m128i __DEFAULT_FN_ATTRS
413 _mm_maskz_sub_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
414 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
415 (__v16qi)_mm_sub_epi8(__A, __B),
416 (__v16qi)_mm_setzero_si128());
419 static __inline__ __m128i __DEFAULT_FN_ATTRS
420 _mm_mask_sub_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
421 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
422 (__v8hi)_mm_sub_epi16(__A, __B),
426 static __inline__ __m128i __DEFAULT_FN_ATTRS
427 _mm_maskz_sub_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
428 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
429 (__v8hi)_mm_sub_epi16(__A, __B),
430 (__v8hi)_mm_setzero_si128());
433 static __inline__ __m256i __DEFAULT_FN_ATTRS
434 _mm256_mask_mullo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
435 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
436 (__v16hi)_mm256_mullo_epi16(__A, __B),
440 static __inline__ __m256i __DEFAULT_FN_ATTRS
441 _mm256_maskz_mullo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
442 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
443 (__v16hi)_mm256_mullo_epi16(__A, __B),
444 (__v16hi)_mm256_setzero_si256());
447 static __inline__ __m128i __DEFAULT_FN_ATTRS
448 _mm_mask_mullo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
449 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
450 (__v8hi)_mm_mullo_epi16(__A, __B),
454 static __inline__ __m128i __DEFAULT_FN_ATTRS
455 _mm_maskz_mullo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
456 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
457 (__v8hi)_mm_mullo_epi16(__A, __B),
458 (__v8hi)_mm_setzero_si128());
461 static __inline__ __m128i __DEFAULT_FN_ATTRS
462 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
464 return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
469 static __inline__ __m256i __DEFAULT_FN_ATTRS
470 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
472 return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
477 static __inline__ __m128i __DEFAULT_FN_ATTRS
478 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
480 return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
485 static __inline__ __m256i __DEFAULT_FN_ATTRS
486 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
488 return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
493 static __inline__ __m128i __DEFAULT_FN_ATTRS
494 _mm_mask_abs_epi8(__m128i __W, __mmask16 __U, __m128i __A)
496 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
497 (__v16qi)_mm_abs_epi8(__A),
501 static __inline__ __m128i __DEFAULT_FN_ATTRS
502 _mm_maskz_abs_epi8(__mmask16 __U, __m128i __A)
504 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
505 (__v16qi)_mm_abs_epi8(__A),
506 (__v16qi)_mm_setzero_si128());
509 static __inline__ __m256i __DEFAULT_FN_ATTRS
510 _mm256_mask_abs_epi8(__m256i __W, __mmask32 __U, __m256i __A)
512 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
513 (__v32qi)_mm256_abs_epi8(__A),
517 static __inline__ __m256i __DEFAULT_FN_ATTRS
518 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
520 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
521 (__v32qi)_mm256_abs_epi8(__A),
522 (__v32qi)_mm256_setzero_si256());
525 static __inline__ __m128i __DEFAULT_FN_ATTRS
526 _mm_mask_abs_epi16(__m128i __W, __mmask8 __U, __m128i __A)
528 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
529 (__v8hi)_mm_abs_epi16(__A),
533 static __inline__ __m128i __DEFAULT_FN_ATTRS
534 _mm_maskz_abs_epi16(__mmask8 __U, __m128i __A)
536 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
537 (__v8hi)_mm_abs_epi16(__A),
538 (__v8hi)_mm_setzero_si128());
541 static __inline__ __m256i __DEFAULT_FN_ATTRS
542 _mm256_mask_abs_epi16(__m256i __W, __mmask16 __U, __m256i __A)
544 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
545 (__v16hi)_mm256_abs_epi16(__A),
549 static __inline__ __m256i __DEFAULT_FN_ATTRS
550 _mm256_maskz_abs_epi16(__mmask16 __U, __m256i __A)
552 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
553 (__v16hi)_mm256_abs_epi16(__A),
554 (__v16hi)_mm256_setzero_si256());
557 static __inline__ __m128i __DEFAULT_FN_ATTRS
558 _mm_maskz_packs_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
559 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
560 (__v8hi)_mm_packs_epi32(__A, __B),
561 (__v8hi)_mm_setzero_si128());
564 static __inline__ __m128i __DEFAULT_FN_ATTRS
565 _mm_mask_packs_epi32(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
567 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
568 (__v8hi)_mm_packs_epi32(__A, __B),
572 static __inline__ __m256i __DEFAULT_FN_ATTRS
573 _mm256_maskz_packs_epi32(__mmask16 __M, __m256i __A, __m256i __B)
575 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
576 (__v16hi)_mm256_packs_epi32(__A, __B),
577 (__v16hi)_mm256_setzero_si256());
580 static __inline__ __m256i __DEFAULT_FN_ATTRS
581 _mm256_mask_packs_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
583 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
584 (__v16hi)_mm256_packs_epi32(__A, __B),
588 static __inline__ __m128i __DEFAULT_FN_ATTRS
589 _mm_maskz_packs_epi16(__mmask16 __M, __m128i __A, __m128i __B)
591 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
592 (__v16qi)_mm_packs_epi16(__A, __B),
593 (__v16qi)_mm_setzero_si128());
596 static __inline__ __m128i __DEFAULT_FN_ATTRS
597 _mm_mask_packs_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
599 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
600 (__v16qi)_mm_packs_epi16(__A, __B),
604 static __inline__ __m256i __DEFAULT_FN_ATTRS
605 _mm256_maskz_packs_epi16(__mmask32 __M, __m256i __A, __m256i __B)
607 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
608 (__v32qi)_mm256_packs_epi16(__A, __B),
609 (__v32qi)_mm256_setzero_si256());
612 static __inline__ __m256i __DEFAULT_FN_ATTRS
613 _mm256_mask_packs_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
615 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
616 (__v32qi)_mm256_packs_epi16(__A, __B),
620 static __inline__ __m128i __DEFAULT_FN_ATTRS
621 _mm_maskz_packus_epi32(__mmask8 __M, __m128i __A, __m128i __B)
623 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
624 (__v8hi)_mm_packus_epi32(__A, __B),
625 (__v8hi)_mm_setzero_si128());
628 static __inline__ __m128i __DEFAULT_FN_ATTRS
629 _mm_mask_packus_epi32(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
631 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
632 (__v8hi)_mm_packus_epi32(__A, __B),
636 static __inline__ __m256i __DEFAULT_FN_ATTRS
637 _mm256_maskz_packus_epi32(__mmask16 __M, __m256i __A, __m256i __B)
639 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
640 (__v16hi)_mm256_packus_epi32(__A, __B),
641 (__v16hi)_mm256_setzero_si256());
644 static __inline__ __m256i __DEFAULT_FN_ATTRS
645 _mm256_mask_packus_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
647 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
648 (__v16hi)_mm256_packus_epi32(__A, __B),
652 static __inline__ __m128i __DEFAULT_FN_ATTRS
653 _mm_maskz_packus_epi16(__mmask16 __M, __m128i __A, __m128i __B)
655 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
656 (__v16qi)_mm_packus_epi16(__A, __B),
657 (__v16qi)_mm_setzero_si128());
660 static __inline__ __m128i __DEFAULT_FN_ATTRS
661 _mm_mask_packus_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
663 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
664 (__v16qi)_mm_packus_epi16(__A, __B),
668 static __inline__ __m256i __DEFAULT_FN_ATTRS
669 _mm256_maskz_packus_epi16(__mmask32 __M, __m256i __A, __m256i __B)
671 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
672 (__v32qi)_mm256_packus_epi16(__A, __B),
673 (__v32qi)_mm256_setzero_si256());
676 static __inline__ __m256i __DEFAULT_FN_ATTRS
677 _mm256_mask_packus_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
679 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
680 (__v32qi)_mm256_packus_epi16(__A, __B),
684 static __inline__ __m128i __DEFAULT_FN_ATTRS
685 _mm_mask_adds_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
687 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
688 (__v16qi)_mm_adds_epi8(__A, __B),
692 static __inline__ __m128i __DEFAULT_FN_ATTRS
693 _mm_maskz_adds_epi8(__mmask16 __U, __m128i __A, __m128i __B)
695 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
696 (__v16qi)_mm_adds_epi8(__A, __B),
697 (__v16qi)_mm_setzero_si128());
700 static __inline__ __m256i __DEFAULT_FN_ATTRS
701 _mm256_mask_adds_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
703 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
704 (__v32qi)_mm256_adds_epi8(__A, __B),
708 static __inline__ __m256i __DEFAULT_FN_ATTRS
709 _mm256_maskz_adds_epi8(__mmask32 __U, __m256i __A, __m256i __B)
711 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
712 (__v32qi)_mm256_adds_epi8(__A, __B),
713 (__v32qi)_mm256_setzero_si256());
716 static __inline__ __m128i __DEFAULT_FN_ATTRS
717 _mm_mask_adds_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
719 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
720 (__v8hi)_mm_adds_epi16(__A, __B),
724 static __inline__ __m128i __DEFAULT_FN_ATTRS
725 _mm_maskz_adds_epi16(__mmask8 __U, __m128i __A, __m128i __B)
727 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
728 (__v8hi)_mm_adds_epi16(__A, __B),
729 (__v8hi)_mm_setzero_si128());
732 static __inline__ __m256i __DEFAULT_FN_ATTRS
733 _mm256_mask_adds_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
735 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
736 (__v16hi)_mm256_adds_epi16(__A, __B),
740 static __inline__ __m256i __DEFAULT_FN_ATTRS
741 _mm256_maskz_adds_epi16(__mmask16 __U, __m256i __A, __m256i __B)
743 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
744 (__v16hi)_mm256_adds_epi16(__A, __B),
745 (__v16hi)_mm256_setzero_si256());
748 static __inline__ __m128i __DEFAULT_FN_ATTRS
749 _mm_mask_adds_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
751 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
752 (__v16qi)_mm_adds_epu8(__A, __B),
756 static __inline__ __m128i __DEFAULT_FN_ATTRS
757 _mm_maskz_adds_epu8(__mmask16 __U, __m128i __A, __m128i __B)
759 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
760 (__v16qi)_mm_adds_epu8(__A, __B),
761 (__v16qi)_mm_setzero_si128());
764 static __inline__ __m256i __DEFAULT_FN_ATTRS
765 _mm256_mask_adds_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
767 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
768 (__v32qi)_mm256_adds_epu8(__A, __B),
772 static __inline__ __m256i __DEFAULT_FN_ATTRS
773 _mm256_maskz_adds_epu8(__mmask32 __U, __m256i __A, __m256i __B)
775 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
776 (__v32qi)_mm256_adds_epu8(__A, __B),
777 (__v32qi)_mm256_setzero_si256());
780 static __inline__ __m128i __DEFAULT_FN_ATTRS
781 _mm_mask_adds_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
783 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
784 (__v8hi)_mm_adds_epu16(__A, __B),
788 static __inline__ __m128i __DEFAULT_FN_ATTRS
789 _mm_maskz_adds_epu16(__mmask8 __U, __m128i __A, __m128i __B)
791 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
792 (__v8hi)_mm_adds_epu16(__A, __B),
793 (__v8hi)_mm_setzero_si128());
796 static __inline__ __m256i __DEFAULT_FN_ATTRS
797 _mm256_mask_adds_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
799 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
800 (__v16hi)_mm256_adds_epu16(__A, __B),
804 static __inline__ __m256i __DEFAULT_FN_ATTRS
805 _mm256_maskz_adds_epu16(__mmask16 __U, __m256i __A, __m256i __B)
807 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
808 (__v16hi)_mm256_adds_epu16(__A, __B),
809 (__v16hi)_mm256_setzero_si256());
812 static __inline__ __m128i __DEFAULT_FN_ATTRS
813 _mm_mask_avg_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
815 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
816 (__v16qi)_mm_avg_epu8(__A, __B),
820 static __inline__ __m128i __DEFAULT_FN_ATTRS
821 _mm_maskz_avg_epu8(__mmask16 __U, __m128i __A, __m128i __B)
823 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
824 (__v16qi)_mm_avg_epu8(__A, __B),
825 (__v16qi)_mm_setzero_si128());
828 static __inline__ __m256i __DEFAULT_FN_ATTRS
829 _mm256_mask_avg_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
831 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
832 (__v32qi)_mm256_avg_epu8(__A, __B),
836 static __inline__ __m256i __DEFAULT_FN_ATTRS
837 _mm256_maskz_avg_epu8(__mmask32 __U, __m256i __A, __m256i __B)
839 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
840 (__v32qi)_mm256_avg_epu8(__A, __B),
841 (__v32qi)_mm256_setzero_si256());
844 static __inline__ __m128i __DEFAULT_FN_ATTRS
845 _mm_mask_avg_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
847 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
848 (__v8hi)_mm_avg_epu16(__A, __B),
852 static __inline__ __m128i __DEFAULT_FN_ATTRS
853 _mm_maskz_avg_epu16(__mmask8 __U, __m128i __A, __m128i __B)
855 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
856 (__v8hi)_mm_avg_epu16(__A, __B),
857 (__v8hi)_mm_setzero_si128());
860 static __inline__ __m256i __DEFAULT_FN_ATTRS
861 _mm256_mask_avg_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
863 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
864 (__v16hi)_mm256_avg_epu16(__A, __B),
868 static __inline__ __m256i __DEFAULT_FN_ATTRS
869 _mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B)
871 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
872 (__v16hi)_mm256_avg_epu16(__A, __B),
873 (__v16hi)_mm256_setzero_si256());
876 static __inline__ __m128i __DEFAULT_FN_ATTRS
877 _mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B)
879 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
880 (__v16qi)_mm_max_epi8(__A, __B),
881 (__v16qi)_mm_setzero_si128());
884 static __inline__ __m128i __DEFAULT_FN_ATTRS
885 _mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
887 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
888 (__v16qi)_mm_max_epi8(__A, __B),
892 static __inline__ __m256i __DEFAULT_FN_ATTRS
893 _mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B)
895 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
896 (__v32qi)_mm256_max_epi8(__A, __B),
897 (__v32qi)_mm256_setzero_si256());
900 static __inline__ __m256i __DEFAULT_FN_ATTRS
901 _mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
903 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
904 (__v32qi)_mm256_max_epi8(__A, __B),
908 static __inline__ __m128i __DEFAULT_FN_ATTRS
909 _mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B)
911 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
912 (__v8hi)_mm_max_epi16(__A, __B),
913 (__v8hi)_mm_setzero_si128());
916 static __inline__ __m128i __DEFAULT_FN_ATTRS
917 _mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
919 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
920 (__v8hi)_mm_max_epi16(__A, __B),
924 static __inline__ __m256i __DEFAULT_FN_ATTRS
925 _mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B)
927 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
928 (__v16hi)_mm256_max_epi16(__A, __B),
929 (__v16hi)_mm256_setzero_si256());
932 static __inline__ __m256i __DEFAULT_FN_ATTRS
933 _mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
935 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
936 (__v16hi)_mm256_max_epi16(__A, __B),
940 static __inline__ __m128i __DEFAULT_FN_ATTRS
941 _mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B)
943 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
944 (__v16qi)_mm_max_epu8(__A, __B),
945 (__v16qi)_mm_setzero_si128());
948 static __inline__ __m128i __DEFAULT_FN_ATTRS
949 _mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
951 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
952 (__v16qi)_mm_max_epu8(__A, __B),
956 static __inline__ __m256i __DEFAULT_FN_ATTRS
957 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
959 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
960 (__v32qi)_mm256_max_epu8(__A, __B),
961 (__v32qi)_mm256_setzero_si256());
964 static __inline__ __m256i __DEFAULT_FN_ATTRS
965 _mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
967 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
968 (__v32qi)_mm256_max_epu8(__A, __B),
972 static __inline__ __m128i __DEFAULT_FN_ATTRS
973 _mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B)
975 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
976 (__v8hi)_mm_max_epu16(__A, __B),
977 (__v8hi)_mm_setzero_si128());
980 static __inline__ __m128i __DEFAULT_FN_ATTRS
981 _mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
983 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
984 (__v8hi)_mm_max_epu16(__A, __B),
988 static __inline__ __m256i __DEFAULT_FN_ATTRS
989 _mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B)
991 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
992 (__v16hi)_mm256_max_epu16(__A, __B),
993 (__v16hi)_mm256_setzero_si256());
996 static __inline__ __m256i __DEFAULT_FN_ATTRS
997 _mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
999 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1000 (__v16hi)_mm256_max_epu16(__A, __B),
1004 static __inline__ __m128i __DEFAULT_FN_ATTRS
1005 _mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B)
1007 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1008 (__v16qi)_mm_min_epi8(__A, __B),
1009 (__v16qi)_mm_setzero_si128());
1012 static __inline__ __m128i __DEFAULT_FN_ATTRS
1013 _mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
1015 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1016 (__v16qi)_mm_min_epi8(__A, __B),
1020 static __inline__ __m256i __DEFAULT_FN_ATTRS
1021 _mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B)
1023 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1024 (__v32qi)_mm256_min_epi8(__A, __B),
1025 (__v32qi)_mm256_setzero_si256());
1028 static __inline__ __m256i __DEFAULT_FN_ATTRS
1029 _mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
1031 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1032 (__v32qi)_mm256_min_epi8(__A, __B),
1036 static __inline__ __m128i __DEFAULT_FN_ATTRS
1037 _mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B)
1039 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1040 (__v8hi)_mm_min_epi16(__A, __B),
1041 (__v8hi)_mm_setzero_si128());
1044 static __inline__ __m128i __DEFAULT_FN_ATTRS
1045 _mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
1047 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1048 (__v8hi)_mm_min_epi16(__A, __B),
1052 static __inline__ __m256i __DEFAULT_FN_ATTRS
1053 _mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B)
1055 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1056 (__v16hi)_mm256_min_epi16(__A, __B),
1057 (__v16hi)_mm256_setzero_si256());
1060 static __inline__ __m256i __DEFAULT_FN_ATTRS
1061 _mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
1063 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1064 (__v16hi)_mm256_min_epi16(__A, __B),
1068 static __inline__ __m128i __DEFAULT_FN_ATTRS
1069 _mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B)
1071 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1072 (__v16qi)_mm_min_epu8(__A, __B),
1073 (__v16qi)_mm_setzero_si128());
1076 static __inline__ __m128i __DEFAULT_FN_ATTRS
1077 _mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
1079 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1080 (__v16qi)_mm_min_epu8(__A, __B),
1084 static __inline__ __m256i __DEFAULT_FN_ATTRS
1085 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1087 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1088 (__v32qi)_mm256_min_epu8(__A, __B),
1089 (__v32qi)_mm256_setzero_si256());
1092 static __inline__ __m256i __DEFAULT_FN_ATTRS
1093 _mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
1095 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1096 (__v32qi)_mm256_min_epu8(__A, __B),
1100 static __inline__ __m128i __DEFAULT_FN_ATTRS
1101 _mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B)
1103 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1104 (__v8hi)_mm_min_epu16(__A, __B),
1105 (__v8hi)_mm_setzero_si128());
1108 static __inline__ __m128i __DEFAULT_FN_ATTRS
1109 _mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
1111 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1112 (__v8hi)_mm_min_epu16(__A, __B),
1116 static __inline__ __m256i __DEFAULT_FN_ATTRS
1117 _mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B)
1119 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1120 (__v16hi)_mm256_min_epu16(__A, __B),
1121 (__v16hi)_mm256_setzero_si256());
1124 static __inline__ __m256i __DEFAULT_FN_ATTRS
1125 _mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
1127 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1128 (__v16hi)_mm256_min_epu16(__A, __B),
1132 static __inline__ __m128i __DEFAULT_FN_ATTRS
1133 _mm_mask_shuffle_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1135 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1136 (__v16qi)_mm_shuffle_epi8(__A, __B),
1140 static __inline__ __m128i __DEFAULT_FN_ATTRS
1141 _mm_maskz_shuffle_epi8(__mmask16 __U, __m128i __A, __m128i __B)
1143 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1144 (__v16qi)_mm_shuffle_epi8(__A, __B),
1145 (__v16qi)_mm_setzero_si128());
1148 static __inline__ __m256i __DEFAULT_FN_ATTRS
1149 _mm256_mask_shuffle_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1151 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1152 (__v32qi)_mm256_shuffle_epi8(__A, __B),
1156 static __inline__ __m256i __DEFAULT_FN_ATTRS
1157 _mm256_maskz_shuffle_epi8(__mmask32 __U, __m256i __A, __m256i __B)
1159 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1160 (__v32qi)_mm256_shuffle_epi8(__A, __B),
1161 (__v32qi)_mm256_setzero_si256());
1164 static __inline__ __m128i __DEFAULT_FN_ATTRS
1165 _mm_mask_subs_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1167 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1168 (__v16qi)_mm_subs_epi8(__A, __B),
1172 static __inline__ __m128i __DEFAULT_FN_ATTRS
1173 _mm_maskz_subs_epi8(__mmask16 __U, __m128i __A, __m128i __B)
1175 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1176 (__v16qi)_mm_subs_epi8(__A, __B),
1177 (__v16qi)_mm_setzero_si128());
1180 static __inline__ __m256i __DEFAULT_FN_ATTRS
1181 _mm256_mask_subs_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1183 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1184 (__v32qi)_mm256_subs_epi8(__A, __B),
1188 static __inline__ __m256i __DEFAULT_FN_ATTRS
1189 _mm256_maskz_subs_epi8(__mmask32 __U, __m256i __A, __m256i __B)
1191 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1192 (__v32qi)_mm256_subs_epi8(__A, __B),
1193 (__v32qi)_mm256_setzero_si256());
1196 static __inline__ __m128i __DEFAULT_FN_ATTRS
1197 _mm_mask_subs_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1199 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1200 (__v8hi)_mm_subs_epi16(__A, __B),
1204 static __inline__ __m128i __DEFAULT_FN_ATTRS
1205 _mm_maskz_subs_epi16(__mmask8 __U, __m128i __A, __m128i __B)
1207 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1208 (__v8hi)_mm_subs_epi16(__A, __B),
1209 (__v8hi)_mm_setzero_si128());
1212 static __inline__ __m256i __DEFAULT_FN_ATTRS
1213 _mm256_mask_subs_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
1215 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1216 (__v16hi)_mm256_subs_epi16(__A, __B),
1220 static __inline__ __m256i __DEFAULT_FN_ATTRS
1221 _mm256_maskz_subs_epi16(__mmask16 __U, __m256i __A, __m256i __B)
1223 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1224 (__v16hi)_mm256_subs_epi16(__A, __B),
1225 (__v16hi)_mm256_setzero_si256());
1228 static __inline__ __m128i __DEFAULT_FN_ATTRS
1229 _mm_mask_subs_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1231 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1232 (__v16qi)_mm_subs_epu8(__A, __B),
1236 static __inline__ __m128i __DEFAULT_FN_ATTRS
1237 _mm_maskz_subs_epu8(__mmask16 __U, __m128i __A, __m128i __B)
1239 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1240 (__v16qi)_mm_subs_epu8(__A, __B),
1241 (__v16qi)_mm_setzero_si128());
1244 static __inline__ __m256i __DEFAULT_FN_ATTRS
1245 _mm256_mask_subs_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1247 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1248 (__v32qi)_mm256_subs_epu8(__A, __B),
1252 static __inline__ __m256i __DEFAULT_FN_ATTRS
1253 _mm256_maskz_subs_epu8(__mmask32 __U, __m256i __A, __m256i __B)
1255 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1256 (__v32qi)_mm256_subs_epu8(__A, __B),
1257 (__v32qi)_mm256_setzero_si256());
1260 static __inline__ __m128i __DEFAULT_FN_ATTRS
1261 _mm_mask_subs_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1263 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1264 (__v8hi)_mm_subs_epu16(__A, __B),
1268 static __inline__ __m128i __DEFAULT_FN_ATTRS
1269 _mm_maskz_subs_epu16(__mmask8 __U, __m128i __A, __m128i __B)
1271 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1272 (__v8hi)_mm_subs_epu16(__A, __B),
1273 (__v8hi)_mm_setzero_si128());
1276 static __inline__ __m256i __DEFAULT_FN_ATTRS
1277 _mm256_mask_subs_epu16(__m256i __W, __mmask16 __U, __m256i __A,
1279 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1280 (__v16hi)_mm256_subs_epu16(__A, __B),
1284 static __inline__ __m256i __DEFAULT_FN_ATTRS
1285 _mm256_maskz_subs_epu16(__mmask16 __U, __m256i __A, __m256i __B)
1287 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1288 (__v16hi)_mm256_subs_epu16(__A, __B),
1289 (__v16hi)_mm256_setzero_si256());
1292 static __inline__ __m128i __DEFAULT_FN_ATTRS
1293 _mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U,
1296 return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A,
1297 (__v8hi) __I /* idx */ ,
1302 static __inline__ __m256i __DEFAULT_FN_ATTRS
1303 _mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I,
1304 __mmask16 __U, __m256i __B)
1306 return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A,
1307 (__v16hi) __I /* idx */ ,
1312 static __inline__ __m128i __DEFAULT_FN_ATTRS
1313 _mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B)
1315 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
1321 static __inline__ __m128i __DEFAULT_FN_ATTRS
1322 _mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I,
1325 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */,
1331 static __inline__ __m128i __DEFAULT_FN_ATTRS
1332 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
1335 return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I/* idx */,
1341 static __inline__ __m256i __DEFAULT_FN_ATTRS
1342 _mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B)
1344 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
1350 static __inline__ __m256i __DEFAULT_FN_ATTRS
1351 _mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U,
1352 __m256i __I, __m256i __B)
1354 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */,
1360 static __inline__ __m256i __DEFAULT_FN_ATTRS
1361 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A,
1362 __m256i __I, __m256i __B)
1364 return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I/* idx */,
1370 static __inline__ __m128i __DEFAULT_FN_ATTRS
1371 _mm_mask_maddubs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1372 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1373 (__v8hi)_mm_maddubs_epi16(__X, __Y),
1377 static __inline__ __m128i __DEFAULT_FN_ATTRS
1378 _mm_maskz_maddubs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
1379 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1380 (__v8hi)_mm_maddubs_epi16(__X, __Y),
1381 (__v8hi)_mm_setzero_si128());
1384 static __inline__ __m256i __DEFAULT_FN_ATTRS
1385 _mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X,
1387 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1388 (__v16hi)_mm256_maddubs_epi16(__X, __Y),
1392 static __inline__ __m256i __DEFAULT_FN_ATTRS
1393 _mm256_maskz_maddubs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
1394 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1395 (__v16hi)_mm256_maddubs_epi16(__X, __Y),
1396 (__v16hi)_mm256_setzero_si256());
1399 static __inline__ __m128i __DEFAULT_FN_ATTRS
1400 _mm_mask_madd_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1401 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
1402 (__v4si)_mm_madd_epi16(__A, __B),
1406 static __inline__ __m128i __DEFAULT_FN_ATTRS
1407 _mm_maskz_madd_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1408 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
1409 (__v4si)_mm_madd_epi16(__A, __B),
1410 (__v4si)_mm_setzero_si128());
1413 static __inline__ __m256i __DEFAULT_FN_ATTRS
1414 _mm256_mask_madd_epi16(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1415 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
1416 (__v8si)_mm256_madd_epi16(__A, __B),
1420 static __inline__ __m256i __DEFAULT_FN_ATTRS
1421 _mm256_maskz_madd_epi16(__mmask8 __U, __m256i __A, __m256i __B) {
1422 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
1423 (__v8si)_mm256_madd_epi16(__A, __B),
1424 (__v8si)_mm256_setzero_si256());
1427 static __inline__ __m128i __DEFAULT_FN_ATTRS
1428 _mm_cvtsepi16_epi8 (__m128i __A) {
1429 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1430 (__v16qi) _mm_setzero_si128(),
1434 static __inline__ __m128i __DEFAULT_FN_ATTRS
1435 _mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1436 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1441 static __inline__ __m128i __DEFAULT_FN_ATTRS
1442 _mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) {
1443 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1444 (__v16qi) _mm_setzero_si128(),
1448 static __inline__ __m128i __DEFAULT_FN_ATTRS
1449 _mm256_cvtsepi16_epi8 (__m256i __A) {
1450 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1451 (__v16qi) _mm_setzero_si128(),
1455 static __inline__ __m128i __DEFAULT_FN_ATTRS
1456 _mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1457 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1462 static __inline__ __m128i __DEFAULT_FN_ATTRS
1463 _mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) {
1464 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1465 (__v16qi) _mm_setzero_si128(),
1469 static __inline__ __m128i __DEFAULT_FN_ATTRS
1470 _mm_cvtusepi16_epi8 (__m128i __A) {
1471 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1472 (__v16qi) _mm_setzero_si128(),
1476 static __inline__ __m128i __DEFAULT_FN_ATTRS
1477 _mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1478 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1483 static __inline__ __m128i __DEFAULT_FN_ATTRS
1484 _mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) {
1485 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1486 (__v16qi) _mm_setzero_si128(),
1490 static __inline__ __m128i __DEFAULT_FN_ATTRS
1491 _mm256_cvtusepi16_epi8 (__m256i __A) {
1492 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1493 (__v16qi) _mm_setzero_si128(),
1497 static __inline__ __m128i __DEFAULT_FN_ATTRS
1498 _mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1499 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1504 static __inline__ __m128i __DEFAULT_FN_ATTRS
1505 _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) {
1506 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1507 (__v16qi) _mm_setzero_si128(),
1511 static __inline__ __m128i __DEFAULT_FN_ATTRS
1512 _mm_cvtepi16_epi8 (__m128i __A) {
1514 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1515 (__v16qi) _mm_setzero_si128(),
1519 static __inline__ __m128i __DEFAULT_FN_ATTRS
1520 _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1521 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1526 static __inline__ __m128i __DEFAULT_FN_ATTRS
1527 _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) {
1528 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1529 (__v16qi) _mm_setzero_si128(),
1533 static __inline__ void __DEFAULT_FN_ATTRS
1534 _mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
1536 __builtin_ia32_pmovwb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
1540 static __inline__ void __DEFAULT_FN_ATTRS
1541 _mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
1543 __builtin_ia32_pmovswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
1546 static __inline__ void __DEFAULT_FN_ATTRS
1547 _mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
1549 __builtin_ia32_pmovuswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
1552 static __inline__ __m128i __DEFAULT_FN_ATTRS
1553 _mm256_cvtepi16_epi8 (__m256i __A) {
1554 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
1555 (__v16qi) _mm_setzero_si128(),
1559 static __inline__ __m128i __DEFAULT_FN_ATTRS
1560 _mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1561 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
1566 static __inline__ __m128i __DEFAULT_FN_ATTRS
1567 _mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) {
1568 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A,
1569 (__v16qi) _mm_setzero_si128(),
1573 static __inline__ void __DEFAULT_FN_ATTRS
1574 _mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
1576 __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
1579 static __inline__ void __DEFAULT_FN_ATTRS
1580 _mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
1582 __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
1585 static __inline__ void __DEFAULT_FN_ATTRS
1586 _mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
1588 __builtin_ia32_pmovuswb256mem_mask ((__v16qi*) __P, (__v16hi) __A, __M);
1591 static __inline__ __m128i __DEFAULT_FN_ATTRS
1592 _mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1593 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1594 (__v8hi)_mm_mulhrs_epi16(__X, __Y),
1598 static __inline__ __m128i __DEFAULT_FN_ATTRS
1599 _mm_maskz_mulhrs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
1600 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1601 (__v8hi)_mm_mulhrs_epi16(__X, __Y),
1602 (__v8hi)_mm_setzero_si128());
1605 static __inline__ __m256i __DEFAULT_FN_ATTRS
1606 _mm256_mask_mulhrs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
1607 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1608 (__v16hi)_mm256_mulhrs_epi16(__X, __Y),
1612 static __inline__ __m256i __DEFAULT_FN_ATTRS
1613 _mm256_maskz_mulhrs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
1614 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1615 (__v16hi)_mm256_mulhrs_epi16(__X, __Y),
1616 (__v16hi)_mm256_setzero_si256());
1619 static __inline__ __m128i __DEFAULT_FN_ATTRS
1620 _mm_mask_mulhi_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1621 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1622 (__v8hi)_mm_mulhi_epu16(__A, __B),
1626 static __inline__ __m128i __DEFAULT_FN_ATTRS
1627 _mm_maskz_mulhi_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
1628 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1629 (__v8hi)_mm_mulhi_epu16(__A, __B),
1630 (__v8hi)_mm_setzero_si128());
1633 static __inline__ __m256i __DEFAULT_FN_ATTRS
1634 _mm256_mask_mulhi_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1635 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1636 (__v16hi)_mm256_mulhi_epu16(__A, __B),
1640 static __inline__ __m256i __DEFAULT_FN_ATTRS
1641 _mm256_maskz_mulhi_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
1642 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1643 (__v16hi)_mm256_mulhi_epu16(__A, __B),
1644 (__v16hi)_mm256_setzero_si256());
1647 static __inline__ __m128i __DEFAULT_FN_ATTRS
1648 _mm_mask_mulhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1649 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1650 (__v8hi)_mm_mulhi_epi16(__A, __B),
1654 static __inline__ __m128i __DEFAULT_FN_ATTRS
1655 _mm_maskz_mulhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1656 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1657 (__v8hi)_mm_mulhi_epi16(__A, __B),
1658 (__v8hi)_mm_setzero_si128());
1661 static __inline__ __m256i __DEFAULT_FN_ATTRS
1662 _mm256_mask_mulhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1663 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1664 (__v16hi)_mm256_mulhi_epi16(__A, __B),
1668 static __inline__ __m256i __DEFAULT_FN_ATTRS
1669 _mm256_maskz_mulhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1670 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1671 (__v16hi)_mm256_mulhi_epi16(__A, __B),
1672 (__v16hi)_mm256_setzero_si256());
1675 static __inline__ __m128i __DEFAULT_FN_ATTRS
1676 _mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1677 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1678 (__v16qi)_mm_unpackhi_epi8(__A, __B),
1682 static __inline__ __m128i __DEFAULT_FN_ATTRS
1683 _mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1684 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1685 (__v16qi)_mm_unpackhi_epi8(__A, __B),
1686 (__v16qi)_mm_setzero_si128());
1689 static __inline__ __m256i __DEFAULT_FN_ATTRS
1690 _mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1691 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1692 (__v32qi)_mm256_unpackhi_epi8(__A, __B),
1696 static __inline__ __m256i __DEFAULT_FN_ATTRS
1697 _mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1698 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1699 (__v32qi)_mm256_unpackhi_epi8(__A, __B),
1700 (__v32qi)_mm256_setzero_si256());
1703 static __inline__ __m128i __DEFAULT_FN_ATTRS
1704 _mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1705 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1706 (__v8hi)_mm_unpackhi_epi16(__A, __B),
1710 static __inline__ __m128i __DEFAULT_FN_ATTRS
1711 _mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1712 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1713 (__v8hi)_mm_unpackhi_epi16(__A, __B),
1714 (__v8hi) _mm_setzero_si128());
1717 static __inline__ __m256i __DEFAULT_FN_ATTRS
1718 _mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1719 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1720 (__v16hi)_mm256_unpackhi_epi16(__A, __B),
1724 static __inline__ __m256i __DEFAULT_FN_ATTRS
1725 _mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1726 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1727 (__v16hi)_mm256_unpackhi_epi16(__A, __B),
1728 (__v16hi)_mm256_setzero_si256());
1731 static __inline__ __m128i __DEFAULT_FN_ATTRS
1732 _mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1733 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1734 (__v16qi)_mm_unpacklo_epi8(__A, __B),
1738 static __inline__ __m128i __DEFAULT_FN_ATTRS
1739 _mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1740 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1741 (__v16qi)_mm_unpacklo_epi8(__A, __B),
1742 (__v16qi)_mm_setzero_si128());
1745 static __inline__ __m256i __DEFAULT_FN_ATTRS
1746 _mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1747 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1748 (__v32qi)_mm256_unpacklo_epi8(__A, __B),
1752 static __inline__ __m256i __DEFAULT_FN_ATTRS
1753 _mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1754 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1755 (__v32qi)_mm256_unpacklo_epi8(__A, __B),
1756 (__v32qi)_mm256_setzero_si256());
1759 static __inline__ __m128i __DEFAULT_FN_ATTRS
1760 _mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1761 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1762 (__v8hi)_mm_unpacklo_epi16(__A, __B),
1766 static __inline__ __m128i __DEFAULT_FN_ATTRS
1767 _mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1768 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1769 (__v8hi)_mm_unpacklo_epi16(__A, __B),
1770 (__v8hi) _mm_setzero_si128());
1773 static __inline__ __m256i __DEFAULT_FN_ATTRS
1774 _mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1775 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1776 (__v16hi)_mm256_unpacklo_epi16(__A, __B),
1780 static __inline__ __m256i __DEFAULT_FN_ATTRS
1781 _mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1782 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1783 (__v16hi)_mm256_unpacklo_epi16(__A, __B),
1784 (__v16hi)_mm256_setzero_si256());
1787 static __inline__ __m128i __DEFAULT_FN_ATTRS
1788 _mm_mask_cvtepi8_epi16(__m128i __W, __mmask8 __U, __m128i __A)
1790 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1791 (__v8hi)_mm_cvtepi8_epi16(__A),
1795 static __inline__ __m128i __DEFAULT_FN_ATTRS
1796 _mm_maskz_cvtepi8_epi16(__mmask8 __U, __m128i __A)
1798 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1799 (__v8hi)_mm_cvtepi8_epi16(__A),
1800 (__v8hi)_mm_setzero_si128());
1803 static __inline__ __m256i __DEFAULT_FN_ATTRS
1804 _mm256_mask_cvtepi8_epi16(__m256i __W, __mmask16 __U, __m128i __A)
1806 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1807 (__v16hi)_mm256_cvtepi8_epi16(__A),
1811 static __inline__ __m256i __DEFAULT_FN_ATTRS
1812 _mm256_maskz_cvtepi8_epi16(__mmask16 __U, __m128i __A)
1814 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1815 (__v16hi)_mm256_cvtepi8_epi16(__A),
1816 (__v16hi)_mm256_setzero_si256());
1820 static __inline__ __m128i __DEFAULT_FN_ATTRS
1821 _mm_mask_cvtepu8_epi16(__m128i __W, __mmask8 __U, __m128i __A)
1823 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1824 (__v8hi)_mm_cvtepu8_epi16(__A),
1828 static __inline__ __m128i __DEFAULT_FN_ATTRS
1829 _mm_maskz_cvtepu8_epi16(__mmask8 __U, __m128i __A)
1831 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1832 (__v8hi)_mm_cvtepu8_epi16(__A),
1833 (__v8hi)_mm_setzero_si128());
1836 static __inline__ __m256i __DEFAULT_FN_ATTRS
1837 _mm256_mask_cvtepu8_epi16(__m256i __W, __mmask16 __U, __m128i __A)
1839 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1840 (__v16hi)_mm256_cvtepu8_epi16(__A),
1844 static __inline__ __m256i __DEFAULT_FN_ATTRS
1845 _mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A)
1847 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1848 (__v16hi)_mm256_cvtepu8_epi16(__A),
1849 (__v16hi)_mm256_setzero_si256());
1853 #define _mm_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \
1854 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
1855 (__v8hi)_mm_shufflehi_epi16((A), (imm)), \
1856 (__v8hi)(__m128i)(W)); })
1858 #define _mm_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \
1859 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
1860 (__v8hi)_mm_shufflehi_epi16((A), (imm)), \
1861 (__v8hi)_mm_setzero_hi()); })
1863 #define _mm256_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \
1864 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
1865 (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \
1866 (__v16hi)(__m256i)(W)); })
1868 #define _mm256_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \
1869 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
1870 (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \
1871 (__v16hi)_mm256_setzero_si256()); })
1873 #define _mm_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \
1874 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
1875 (__v8hi)_mm_shufflelo_epi16((A), (imm)), \
1876 (__v8hi)(__m128i)(W)); })
1878 #define _mm_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \
1879 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
1880 (__v8hi)_mm_shufflelo_epi16((A), (imm)), \
1881 (__v8hi)_mm_setzero_hi()); })
1883 #define _mm256_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \
1884 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
1885 (__v16hi)_mm256_shufflelo_epi16((A), \
1887 (__v16hi)(__m256i)(W)); })
1889 #define _mm256_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \
1890 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
1891 (__v16hi)_mm256_shufflelo_epi16((A), \
1893 (__v16hi)_mm256_setzero_si256()); })
1895 static __inline__ __m256i __DEFAULT_FN_ATTRS
1896 _mm256_sllv_epi16(__m256i __A, __m256i __B)
1898 return (__m256i)__builtin_ia32_psllv16hi((__v16hi)__A, (__v16hi)__B);
1901 static __inline__ __m256i __DEFAULT_FN_ATTRS
1902 _mm256_mask_sllv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
1904 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1905 (__v16hi)_mm256_sllv_epi16(__A, __B),
1909 static __inline__ __m256i __DEFAULT_FN_ATTRS
1910 _mm256_maskz_sllv_epi16(__mmask16 __U, __m256i __A, __m256i __B)
1912 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1913 (__v16hi)_mm256_sllv_epi16(__A, __B),
1914 (__v16hi)_mm256_setzero_si256());
1917 static __inline__ __m128i __DEFAULT_FN_ATTRS
1918 _mm_sllv_epi16(__m128i __A, __m128i __B)
1920 return (__m128i)__builtin_ia32_psllv8hi((__v8hi)__A, (__v8hi)__B);
1923 static __inline__ __m128i __DEFAULT_FN_ATTRS
1924 _mm_mask_sllv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1926 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1927 (__v8hi)_mm_sllv_epi16(__A, __B),
1931 static __inline__ __m128i __DEFAULT_FN_ATTRS
1932 _mm_maskz_sllv_epi16(__mmask8 __U, __m128i __A, __m128i __B)
1934 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1935 (__v8hi)_mm_sllv_epi16(__A, __B),
1936 (__v8hi)_mm_setzero_si128());
1939 static __inline__ __m128i __DEFAULT_FN_ATTRS
1940 _mm_mask_sll_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1942 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1943 (__v8hi)_mm_sll_epi16(__A, __B),
1947 static __inline__ __m128i __DEFAULT_FN_ATTRS
1948 _mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
1950 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1951 (__v8hi)_mm_sll_epi16(__A, __B),
1952 (__v8hi)_mm_setzero_si128());
1955 static __inline__ __m256i __DEFAULT_FN_ATTRS
1956 _mm256_mask_sll_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
1958 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1959 (__v16hi)_mm256_sll_epi16(__A, __B),
1963 static __inline__ __m256i __DEFAULT_FN_ATTRS
1964 _mm256_maskz_sll_epi16(__mmask16 __U, __m256i __A, __m128i __B)
1966 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1967 (__v16hi)_mm256_sll_epi16(__A, __B),
1968 (__v16hi)_mm256_setzero_si256());
1971 static __inline__ __m128i __DEFAULT_FN_ATTRS
1972 _mm_mask_slli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
1974 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1975 (__v8hi)_mm_slli_epi16(__A, __B),
1979 static __inline__ __m128i __DEFAULT_FN_ATTRS
1980 _mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B)
1982 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1983 (__v8hi)_mm_slli_epi16(__A, __B),
1984 (__v8hi)_mm_setzero_si128());
1987 static __inline__ __m256i __DEFAULT_FN_ATTRS
1988 _mm256_mask_slli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
1990 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1991 (__v16hi)_mm256_slli_epi16(__A, __B),
1995 static __inline__ __m256i __DEFAULT_FN_ATTRS
1996 _mm256_maskz_slli_epi16(__mmask16 __U, __m256i __A, int __B)
1998 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1999 (__v16hi)_mm256_slli_epi16(__A, __B),
2000 (__v16hi)_mm256_setzero_si256());
2003 static __inline__ __m256i __DEFAULT_FN_ATTRS
2004 _mm256_srlv_epi16(__m256i __A, __m256i __B)
2006 return (__m256i)__builtin_ia32_psrlv16hi((__v16hi)__A, (__v16hi)__B);
2009 static __inline__ __m256i __DEFAULT_FN_ATTRS
2010 _mm256_mask_srlv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
2012 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2013 (__v16hi)_mm256_srlv_epi16(__A, __B),
2017 static __inline__ __m256i __DEFAULT_FN_ATTRS
2018 _mm256_maskz_srlv_epi16(__mmask16 __U, __m256i __A, __m256i __B)
2020 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2021 (__v16hi)_mm256_srlv_epi16(__A, __B),
2022 (__v16hi)_mm256_setzero_si256());
2025 static __inline__ __m128i __DEFAULT_FN_ATTRS
2026 _mm_srlv_epi16(__m128i __A, __m128i __B)
2028 return (__m128i)__builtin_ia32_psrlv8hi((__v8hi)__A, (__v8hi)__B);
2031 static __inline__ __m128i __DEFAULT_FN_ATTRS
2032 _mm_mask_srlv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2034 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2035 (__v8hi)_mm_srlv_epi16(__A, __B),
2039 static __inline__ __m128i __DEFAULT_FN_ATTRS
2040 _mm_maskz_srlv_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2042 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2043 (__v8hi)_mm_srlv_epi16(__A, __B),
2044 (__v8hi)_mm_setzero_si128());
2047 static __inline__ __m256i __DEFAULT_FN_ATTRS
2048 _mm256_srav_epi16(__m256i __A, __m256i __B)
2050 return (__m256i)__builtin_ia32_psrav16hi((__v16hi)__A, (__v16hi)__B);
2053 static __inline__ __m256i __DEFAULT_FN_ATTRS
2054 _mm256_mask_srav_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
2056 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2057 (__v16hi)_mm256_srav_epi16(__A, __B),
2061 static __inline__ __m256i __DEFAULT_FN_ATTRS
2062 _mm256_maskz_srav_epi16(__mmask16 __U, __m256i __A, __m256i __B)
2064 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2065 (__v16hi)_mm256_srav_epi16(__A, __B),
2066 (__v16hi)_mm256_setzero_si256());
2069 static __inline__ __m128i __DEFAULT_FN_ATTRS
2070 _mm_srav_epi16(__m128i __A, __m128i __B)
2072 return (__m128i)__builtin_ia32_psrav8hi((__v8hi)__A, (__v8hi)__B);
2075 static __inline__ __m128i __DEFAULT_FN_ATTRS
2076 _mm_mask_srav_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2078 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2079 (__v8hi)_mm_srav_epi16(__A, __B),
2083 static __inline__ __m128i __DEFAULT_FN_ATTRS
2084 _mm_maskz_srav_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2086 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2087 (__v8hi)_mm_srav_epi16(__A, __B),
2088 (__v8hi)_mm_setzero_si128());
2091 static __inline__ __m128i __DEFAULT_FN_ATTRS
2092 _mm_mask_sra_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2094 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2095 (__v8hi)_mm_sra_epi16(__A, __B),
2099 static __inline__ __m128i __DEFAULT_FN_ATTRS
2100 _mm_maskz_sra_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2102 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2103 (__v8hi)_mm_sra_epi16(__A, __B),
2104 (__v8hi)_mm_setzero_si128());
2107 static __inline__ __m256i __DEFAULT_FN_ATTRS
2108 _mm256_mask_sra_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
2110 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2111 (__v16hi)_mm256_sra_epi16(__A, __B),
2115 static __inline__ __m256i __DEFAULT_FN_ATTRS
2116 _mm256_maskz_sra_epi16(__mmask16 __U, __m256i __A, __m128i __B)
2118 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2119 (__v16hi)_mm256_sra_epi16(__A, __B),
2120 (__v16hi)_mm256_setzero_si256());
2123 static __inline__ __m128i __DEFAULT_FN_ATTRS
2124 _mm_mask_srai_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
2126 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2127 (__v8hi)_mm_srai_epi16(__A, __B),
2131 static __inline__ __m128i __DEFAULT_FN_ATTRS
2132 _mm_maskz_srai_epi16(__mmask8 __U, __m128i __A, int __B)
2134 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2135 (__v8hi)_mm_srai_epi16(__A, __B),
2136 (__v8hi)_mm_setzero_si128());
2139 static __inline__ __m256i __DEFAULT_FN_ATTRS
2140 _mm256_mask_srai_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
2142 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2143 (__v16hi)_mm256_srai_epi16(__A, __B),
2147 static __inline__ __m256i __DEFAULT_FN_ATTRS
2148 _mm256_maskz_srai_epi16(__mmask16 __U, __m256i __A, int __B)
2150 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2151 (__v16hi)_mm256_srai_epi16(__A, __B),
2152 (__v16hi)_mm256_setzero_si256());
2155 static __inline__ __m128i __DEFAULT_FN_ATTRS
2156 _mm_mask_srl_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2158 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2159 (__v8hi)_mm_srl_epi16(__A, __B),
2163 static __inline__ __m128i __DEFAULT_FN_ATTRS
2164 _mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2166 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2167 (__v8hi)_mm_srl_epi16(__A, __B),
2168 (__v8hi)_mm_setzero_si128());
2171 static __inline__ __m256i __DEFAULT_FN_ATTRS
2172 _mm256_mask_srl_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
2174 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2175 (__v16hi)_mm256_srl_epi16(__A, __B),
2179 static __inline__ __m256i __DEFAULT_FN_ATTRS
2180 _mm256_maskz_srl_epi16(__mmask16 __U, __m256i __A, __m128i __B)
2182 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2183 (__v16hi)_mm256_srl_epi16(__A, __B),
2184 (__v16hi)_mm256_setzero_si256());
2187 static __inline__ __m128i __DEFAULT_FN_ATTRS
2188 _mm_mask_srli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
2190 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2191 (__v8hi)_mm_srli_epi16(__A, __B),
2195 static __inline__ __m128i __DEFAULT_FN_ATTRS
2196 _mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, int __B)
2198 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2199 (__v8hi)_mm_srli_epi16(__A, __B),
2200 (__v8hi)_mm_setzero_si128());
2203 static __inline__ __m256i __DEFAULT_FN_ATTRS
2204 _mm256_mask_srli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
2206 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2207 (__v16hi)_mm256_srli_epi16(__A, __B),
2211 static __inline__ __m256i __DEFAULT_FN_ATTRS
2212 _mm256_maskz_srli_epi16(__mmask16 __U, __m256i __A, int __B)
2214 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2215 (__v16hi)_mm256_srli_epi16(__A, __B),
2216 (__v16hi)_mm256_setzero_si256());
2219 static __inline__ __m128i __DEFAULT_FN_ATTRS
2220 _mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
2222 return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
2227 static __inline__ __m128i __DEFAULT_FN_ATTRS
2228 _mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A)
2230 return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
2232 (__v8hi) _mm_setzero_hi ());
2235 static __inline__ __m256i __DEFAULT_FN_ATTRS
2236 _mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
2238 return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
2243 static __inline__ __m256i __DEFAULT_FN_ATTRS
2244 _mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A)
2246 return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
2248 (__v16hi) _mm256_setzero_si256 ());
2251 static __inline__ __m128i __DEFAULT_FN_ATTRS
2252 _mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
2254 return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
2259 static __inline__ __m128i __DEFAULT_FN_ATTRS
2260 _mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A)
2262 return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
2264 (__v16qi) _mm_setzero_hi ());
2267 static __inline__ __m256i __DEFAULT_FN_ATTRS
2268 _mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
2270 return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
2275 static __inline__ __m256i __DEFAULT_FN_ATTRS
2276 _mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A)
2278 return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
2280 (__v32qi) _mm256_setzero_si256 ());
2284 static __inline__ __m128i __DEFAULT_FN_ATTRS
2285 _mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A)
2287 return (__m128i) __builtin_ia32_selectb_128(__M,
2288 (__v16qi) _mm_set1_epi8(__A),
2292 static __inline__ __m128i __DEFAULT_FN_ATTRS
2293 _mm_maskz_set1_epi8 (__mmask16 __M, char __A)
2295 return (__m128i) __builtin_ia32_selectb_128(__M,
2296 (__v16qi) _mm_set1_epi8(__A),
2297 (__v16qi) _mm_setzero_si128());
2300 static __inline__ __m256i __DEFAULT_FN_ATTRS
2301 _mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A)
2303 return (__m256i) __builtin_ia32_selectb_256(__M,
2304 (__v32qi) _mm256_set1_epi8(__A),
2308 static __inline__ __m256i __DEFAULT_FN_ATTRS
2309 _mm256_maskz_set1_epi8 (__mmask32 __M, char __A)
2311 return (__m256i) __builtin_ia32_selectb_256(__M,
2312 (__v32qi) _mm256_set1_epi8(__A),
2313 (__v32qi) _mm256_setzero_si256());
2316 static __inline__ __m128i __DEFAULT_FN_ATTRS
2317 _mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P)
2319 return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P,
2324 static __inline__ __m128i __DEFAULT_FN_ATTRS
2325 _mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P)
2327 return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P,
2333 static __inline__ __m256i __DEFAULT_FN_ATTRS
2334 _mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P)
2336 return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P,
2341 static __inline__ __m256i __DEFAULT_FN_ATTRS
2342 _mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P)
2344 return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P,
2346 _mm256_setzero_si256 (),
2350 static __inline__ __m128i __DEFAULT_FN_ATTRS
2351 _mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P)
2353 return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P,
2358 static __inline__ __m128i __DEFAULT_FN_ATTRS
2359 _mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P)
2361 return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P,
2363 _mm_setzero_si128 (),
2367 static __inline__ __m256i __DEFAULT_FN_ATTRS
2368 _mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P)
2370 return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P,
2375 static __inline__ __m256i __DEFAULT_FN_ATTRS
2376 _mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P)
2378 return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P,
2380 _mm256_setzero_si256 (),
2383 static __inline__ void __DEFAULT_FN_ATTRS
2384 _mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
2386 __builtin_ia32_storedquhi128_mask ((__v8hi *) __P,
2391 static __inline__ void __DEFAULT_FN_ATTRS
2392 _mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
2394 __builtin_ia32_storedquhi256_mask ((__v16hi *) __P,
2399 static __inline__ void __DEFAULT_FN_ATTRS
2400 _mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A)
2402 __builtin_ia32_storedquqi128_mask ((__v16qi *) __P,
2407 static __inline__ void __DEFAULT_FN_ATTRS
2408 _mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A)
2410 __builtin_ia32_storedquqi256_mask ((__v32qi *) __P,
2415 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2416 _mm_test_epi8_mask (__m128i __A, __m128i __B)
2418 return _mm_cmpneq_epi8_mask (_mm_and_si128(__A, __B), _mm_setzero_hi());
2421 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2422 _mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
2424 return _mm_mask_cmpneq_epi8_mask (__U, _mm_and_si128 (__A, __B),
2428 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
2429 _mm256_test_epi8_mask (__m256i __A, __m256i __B)
2431 return _mm256_cmpneq_epi8_mask (_mm256_and_si256(__A, __B),
2432 _mm256_setzero_si256());
2435 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
2436 _mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
2438 return _mm256_mask_cmpneq_epi8_mask (__U, _mm256_and_si256(__A, __B),
2439 _mm256_setzero_si256());
2442 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
2443 _mm_test_epi16_mask (__m128i __A, __m128i __B)
2445 return _mm_cmpneq_epi16_mask (_mm_and_si128 (__A, __B), _mm_setzero_hi());
2448 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
2449 _mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
2451 return _mm_mask_cmpneq_epi16_mask (__U, _mm_and_si128 (__A, __B),
2455 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2456 _mm256_test_epi16_mask (__m256i __A, __m256i __B)
2458 return _mm256_cmpneq_epi16_mask (_mm256_and_si256 (__A, __B),
2459 _mm256_setzero_si256 ());
2462 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2463 _mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
2465 return _mm256_mask_cmpneq_epi16_mask (__U, _mm256_and_si256(__A, __B),
2466 _mm256_setzero_si256());
2469 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2470 _mm_testn_epi8_mask (__m128i __A, __m128i __B)
2472 return _mm_cmpeq_epi8_mask (_mm_and_si128 (__A, __B), _mm_setzero_hi());
2475 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2476 _mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
2478 return _mm_mask_cmpeq_epi8_mask (__U, _mm_and_si128 (__A, __B),
2482 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
2483 _mm256_testn_epi8_mask (__m256i __A, __m256i __B)
2485 return _mm256_cmpeq_epi8_mask (_mm256_and_si256 (__A, __B),
2486 _mm256_setzero_si256());
2489 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
2490 _mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
2492 return _mm256_mask_cmpeq_epi8_mask (__U, _mm256_and_si256 (__A, __B),
2493 _mm256_setzero_si256());
2496 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
2497 _mm_testn_epi16_mask (__m128i __A, __m128i __B)
2499 return _mm_cmpeq_epi16_mask (_mm_and_si128 (__A, __B), _mm_setzero_hi());
2502 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
2503 _mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
2505 return _mm_mask_cmpeq_epi16_mask (__U, _mm_and_si128(__A, __B), _mm_setzero_hi());
2508 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2509 _mm256_testn_epi16_mask (__m256i __A, __m256i __B)
2511 return _mm256_cmpeq_epi16_mask (_mm256_and_si256(__A, __B),
2512 _mm256_setzero_si256());
2515 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2516 _mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
2518 return _mm256_mask_cmpeq_epi16_mask (__U, _mm256_and_si256 (__A, __B),
2519 _mm256_setzero_si256());
2522 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2523 _mm_movepi8_mask (__m128i __A)
2525 return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A);
2528 static __inline__ __mmask32 __DEFAULT_FN_ATTRS
2529 _mm256_movepi8_mask (__m256i __A)
2531 return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A);
2534 static __inline__ __mmask8 __DEFAULT_FN_ATTRS
2535 _mm_movepi16_mask (__m128i __A)
2537 return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A);
2540 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
2541 _mm256_movepi16_mask (__m256i __A)
2543 return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A);
2546 static __inline__ __m128i __DEFAULT_FN_ATTRS
2547 _mm_movm_epi8 (__mmask16 __A)
2549 return (__m128i) __builtin_ia32_cvtmask2b128 (__A);
2552 static __inline__ __m256i __DEFAULT_FN_ATTRS
2553 _mm256_movm_epi8 (__mmask32 __A)
2555 return (__m256i) __builtin_ia32_cvtmask2b256 (__A);
2558 static __inline__ __m128i __DEFAULT_FN_ATTRS
2559 _mm_movm_epi16 (__mmask8 __A)
2561 return (__m128i) __builtin_ia32_cvtmask2w128 (__A);
2564 static __inline__ __m256i __DEFAULT_FN_ATTRS
2565 _mm256_movm_epi16 (__mmask16 __A)
2567 return (__m256i) __builtin_ia32_cvtmask2w256 (__A);
2570 static __inline__ __m128i __DEFAULT_FN_ATTRS
2571 _mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A)
2573 return (__m128i)__builtin_ia32_selectb_128(__M,
2574 (__v16qi) _mm_broadcastb_epi8(__A),
2578 static __inline__ __m128i __DEFAULT_FN_ATTRS
2579 _mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A)
2581 return (__m128i)__builtin_ia32_selectb_128(__M,
2582 (__v16qi) _mm_broadcastb_epi8(__A),
2583 (__v16qi) _mm_setzero_si128());
2586 static __inline__ __m256i __DEFAULT_FN_ATTRS
2587 _mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A)
2589 return (__m256i)__builtin_ia32_selectb_256(__M,
2590 (__v32qi) _mm256_broadcastb_epi8(__A),
2594 static __inline__ __m256i __DEFAULT_FN_ATTRS
2595 _mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A)
2597 return (__m256i)__builtin_ia32_selectb_256(__M,
2598 (__v32qi) _mm256_broadcastb_epi8(__A),
2599 (__v32qi) _mm256_setzero_si256());
2602 static __inline__ __m128i __DEFAULT_FN_ATTRS
2603 _mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
2605 return (__m128i)__builtin_ia32_selectw_128(__M,
2606 (__v8hi) _mm_broadcastw_epi16(__A),
2610 static __inline__ __m128i __DEFAULT_FN_ATTRS
2611 _mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A)
2613 return (__m128i)__builtin_ia32_selectw_128(__M,
2614 (__v8hi) _mm_broadcastw_epi16(__A),
2615 (__v8hi) _mm_setzero_si128());
2618 static __inline__ __m256i __DEFAULT_FN_ATTRS
2619 _mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A)
2621 return (__m256i)__builtin_ia32_selectw_256(__M,
2622 (__v16hi) _mm256_broadcastw_epi16(__A),
2626 static __inline__ __m256i __DEFAULT_FN_ATTRS
2627 _mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A)
2629 return (__m256i)__builtin_ia32_selectw_256(__M,
2630 (__v16hi) _mm256_broadcastw_epi16(__A),
2631 (__v16hi) _mm256_setzero_si256());
2634 static __inline__ __m256i __DEFAULT_FN_ATTRS
2635 _mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A)
2637 return (__m256i) __builtin_ia32_selectw_256 (__M,
2638 (__v16hi) _mm256_set1_epi16(__A),
2642 static __inline__ __m256i __DEFAULT_FN_ATTRS
2643 _mm256_maskz_set1_epi16 (__mmask16 __M, short __A)
2645 return (__m256i) __builtin_ia32_selectw_256(__M,
2646 (__v16hi)_mm256_set1_epi16(__A),
2647 (__v16hi) _mm256_setzero_si256());
2650 static __inline__ __m128i __DEFAULT_FN_ATTRS
2651 _mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A)
2653 return (__m128i) __builtin_ia32_selectw_128(__M,
2654 (__v8hi) _mm_set1_epi16(__A),
2658 static __inline__ __m128i __DEFAULT_FN_ATTRS
2659 _mm_maskz_set1_epi16 (__mmask8 __M, short __A)
2661 return (__m128i) __builtin_ia32_selectw_128(__M,
2662 (__v8hi) _mm_set1_epi16(__A),
2663 (__v8hi) _mm_setzero_si128());
2666 static __inline__ __m128i __DEFAULT_FN_ATTRS
2667 _mm_permutexvar_epi16 (__m128i __A, __m128i __B)
2669 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
2671 (__v8hi) _mm_undefined_si128 (),
2675 static __inline__ __m128i __DEFAULT_FN_ATTRS
2676 _mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
2678 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
2680 (__v8hi) _mm_setzero_si128 (),
2684 static __inline__ __m128i __DEFAULT_FN_ATTRS
2685 _mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
2688 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
2694 static __inline__ __m256i __DEFAULT_FN_ATTRS
2695 _mm256_permutexvar_epi16 (__m256i __A, __m256i __B)
2697 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
2699 (__v16hi) _mm256_undefined_si256 (),
2703 static __inline__ __m256i __DEFAULT_FN_ATTRS
2704 _mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A,
2707 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
2709 (__v16hi) _mm256_setzero_si256 (),
2713 static __inline__ __m256i __DEFAULT_FN_ATTRS
2714 _mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
2717 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
2723 #define _mm_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \
2724 (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \
2725 (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \
2726 (__v16qi)(__m128i)(W)); })
2728 #define _mm_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \
2729 (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \
2730 (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \
2731 (__v16qi)_mm_setzero_si128()); })
2733 #define _mm256_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \
2734 (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \
2735 (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \
2736 (__v32qi)(__m256i)(W)); })
2738 #define _mm256_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \
2739 (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \
2740 (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \
2741 (__v32qi)_mm256_setzero_si256()); })
2743 #define _mm_dbsad_epu8(A, B, imm) __extension__ ({ \
2744 (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
2745 (__v16qi)(__m128i)(B), (int)(imm), \
2746 (__v8hi)_mm_setzero_hi(), \
2749 #define _mm_mask_dbsad_epu8(W, U, A, B, imm) __extension__ ({ \
2750 (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
2751 (__v16qi)(__m128i)(B), (int)(imm), \
2752 (__v8hi)(__m128i)(W), \
2755 #define _mm_maskz_dbsad_epu8(U, A, B, imm) __extension__ ({ \
2756 (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \
2757 (__v16qi)(__m128i)(B), (int)(imm), \
2758 (__v8hi)_mm_setzero_si128(), \
2761 #define _mm256_dbsad_epu8(A, B, imm) __extension__ ({ \
2762 (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
2763 (__v32qi)(__m256i)(B), (int)(imm), \
2764 (__v16hi)_mm256_setzero_si256(), \
2767 #define _mm256_mask_dbsad_epu8(W, U, A, B, imm) __extension__ ({ \
2768 (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
2769 (__v32qi)(__m256i)(B), (int)(imm), \
2770 (__v16hi)(__m256i)(W), \
2773 #define _mm256_maskz_dbsad_epu8(U, A, B, imm) __extension__ ({ \
2774 (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \
2775 (__v32qi)(__m256i)(B), (int)(imm), \
2776 (__v16hi)_mm256_setzero_si256(), \
2779 #undef __DEFAULT_FN_ATTRS
2781 #endif /* __AVX512VLBWINTRIN_H */