1 /*===---- avx512vlbwintrin.h - AVX512VL and AVX512BW intrinsics ------------===
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 *===-----------------------------------------------------------------------===
11 #error "Never use <avx512vlbwintrin.h> directly; include <immintrin.h> instead."
14 #ifndef __AVX512VLBWINTRIN_H
15 #define __AVX512VLBWINTRIN_H
17 /* Define the default attributes for the functions in this file. */
18 #define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128)))
19 #define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256)))
23 #define _mm_cmp_epi8_mask(a, b, p) \
24 (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
25 (__v16qi)(__m128i)(b), (int)(p), \
28 #define _mm_mask_cmp_epi8_mask(m, a, b, p) \
29 (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
30 (__v16qi)(__m128i)(b), (int)(p), \
33 #define _mm_cmp_epu8_mask(a, b, p) \
34 (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
35 (__v16qi)(__m128i)(b), (int)(p), \
38 #define _mm_mask_cmp_epu8_mask(m, a, b, p) \
39 (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
40 (__v16qi)(__m128i)(b), (int)(p), \
43 #define _mm256_cmp_epi8_mask(a, b, p) \
44 (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
45 (__v32qi)(__m256i)(b), (int)(p), \
48 #define _mm256_mask_cmp_epi8_mask(m, a, b, p) \
49 (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
50 (__v32qi)(__m256i)(b), (int)(p), \
53 #define _mm256_cmp_epu8_mask(a, b, p) \
54 (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
55 (__v32qi)(__m256i)(b), (int)(p), \
58 #define _mm256_mask_cmp_epu8_mask(m, a, b, p) \
59 (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
60 (__v32qi)(__m256i)(b), (int)(p), \
63 #define _mm_cmp_epi16_mask(a, b, p) \
64 (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
65 (__v8hi)(__m128i)(b), (int)(p), \
68 #define _mm_mask_cmp_epi16_mask(m, a, b, p) \
69 (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
70 (__v8hi)(__m128i)(b), (int)(p), \
73 #define _mm_cmp_epu16_mask(a, b, p) \
74 (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
75 (__v8hi)(__m128i)(b), (int)(p), \
78 #define _mm_mask_cmp_epu16_mask(m, a, b, p) \
79 (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
80 (__v8hi)(__m128i)(b), (int)(p), \
83 #define _mm256_cmp_epi16_mask(a, b, p) \
84 (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
85 (__v16hi)(__m256i)(b), (int)(p), \
88 #define _mm256_mask_cmp_epi16_mask(m, a, b, p) \
89 (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
90 (__v16hi)(__m256i)(b), (int)(p), \
93 #define _mm256_cmp_epu16_mask(a, b, p) \
94 (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
95 (__v16hi)(__m256i)(b), (int)(p), \
98 #define _mm256_mask_cmp_epu16_mask(m, a, b, p) \
99 (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
100 (__v16hi)(__m256i)(b), (int)(p), \
103 #define _mm_cmpeq_epi8_mask(A, B) \
104 _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_EQ)
105 #define _mm_mask_cmpeq_epi8_mask(k, A, B) \
106 _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_EQ)
107 #define _mm_cmpge_epi8_mask(A, B) \
108 _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_GE)
109 #define _mm_mask_cmpge_epi8_mask(k, A, B) \
110 _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GE)
111 #define _mm_cmpgt_epi8_mask(A, B) \
112 _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_GT)
113 #define _mm_mask_cmpgt_epi8_mask(k, A, B) \
114 _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GT)
115 #define _mm_cmple_epi8_mask(A, B) \
116 _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_LE)
117 #define _mm_mask_cmple_epi8_mask(k, A, B) \
118 _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LE)
119 #define _mm_cmplt_epi8_mask(A, B) \
120 _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_LT)
121 #define _mm_mask_cmplt_epi8_mask(k, A, B) \
122 _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LT)
123 #define _mm_cmpneq_epi8_mask(A, B) \
124 _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_NE)
125 #define _mm_mask_cmpneq_epi8_mask(k, A, B) \
126 _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_NE)
128 #define _mm256_cmpeq_epi8_mask(A, B) \
129 _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_EQ)
130 #define _mm256_mask_cmpeq_epi8_mask(k, A, B) \
131 _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_EQ)
132 #define _mm256_cmpge_epi8_mask(A, B) \
133 _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_GE)
134 #define _mm256_mask_cmpge_epi8_mask(k, A, B) \
135 _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GE)
136 #define _mm256_cmpgt_epi8_mask(A, B) \
137 _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_GT)
138 #define _mm256_mask_cmpgt_epi8_mask(k, A, B) \
139 _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GT)
140 #define _mm256_cmple_epi8_mask(A, B) \
141 _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_LE)
142 #define _mm256_mask_cmple_epi8_mask(k, A, B) \
143 _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LE)
144 #define _mm256_cmplt_epi8_mask(A, B) \
145 _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_LT)
146 #define _mm256_mask_cmplt_epi8_mask(k, A, B) \
147 _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LT)
148 #define _mm256_cmpneq_epi8_mask(A, B) \
149 _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_NE)
150 #define _mm256_mask_cmpneq_epi8_mask(k, A, B) \
151 _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_NE)
153 #define _mm_cmpeq_epu8_mask(A, B) \
154 _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_EQ)
155 #define _mm_mask_cmpeq_epu8_mask(k, A, B) \
156 _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_EQ)
157 #define _mm_cmpge_epu8_mask(A, B) \
158 _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_GE)
159 #define _mm_mask_cmpge_epu8_mask(k, A, B) \
160 _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GE)
161 #define _mm_cmpgt_epu8_mask(A, B) \
162 _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_GT)
163 #define _mm_mask_cmpgt_epu8_mask(k, A, B) \
164 _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GT)
165 #define _mm_cmple_epu8_mask(A, B) \
166 _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_LE)
167 #define _mm_mask_cmple_epu8_mask(k, A, B) \
168 _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LE)
169 #define _mm_cmplt_epu8_mask(A, B) \
170 _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_LT)
171 #define _mm_mask_cmplt_epu8_mask(k, A, B) \
172 _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LT)
173 #define _mm_cmpneq_epu8_mask(A, B) \
174 _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_NE)
175 #define _mm_mask_cmpneq_epu8_mask(k, A, B) \
176 _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_NE)
178 #define _mm256_cmpeq_epu8_mask(A, B) \
179 _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_EQ)
180 #define _mm256_mask_cmpeq_epu8_mask(k, A, B) \
181 _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_EQ)
182 #define _mm256_cmpge_epu8_mask(A, B) \
183 _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_GE)
184 #define _mm256_mask_cmpge_epu8_mask(k, A, B) \
185 _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GE)
186 #define _mm256_cmpgt_epu8_mask(A, B) \
187 _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_GT)
188 #define _mm256_mask_cmpgt_epu8_mask(k, A, B) \
189 _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GT)
190 #define _mm256_cmple_epu8_mask(A, B) \
191 _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_LE)
192 #define _mm256_mask_cmple_epu8_mask(k, A, B) \
193 _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LE)
194 #define _mm256_cmplt_epu8_mask(A, B) \
195 _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_LT)
196 #define _mm256_mask_cmplt_epu8_mask(k, A, B) \
197 _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LT)
198 #define _mm256_cmpneq_epu8_mask(A, B) \
199 _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_NE)
200 #define _mm256_mask_cmpneq_epu8_mask(k, A, B) \
201 _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_NE)
203 #define _mm_cmpeq_epi16_mask(A, B) \
204 _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_EQ)
205 #define _mm_mask_cmpeq_epi16_mask(k, A, B) \
206 _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_EQ)
207 #define _mm_cmpge_epi16_mask(A, B) \
208 _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_GE)
209 #define _mm_mask_cmpge_epi16_mask(k, A, B) \
210 _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GE)
211 #define _mm_cmpgt_epi16_mask(A, B) \
212 _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_GT)
213 #define _mm_mask_cmpgt_epi16_mask(k, A, B) \
214 _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GT)
215 #define _mm_cmple_epi16_mask(A, B) \
216 _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_LE)
217 #define _mm_mask_cmple_epi16_mask(k, A, B) \
218 _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LE)
219 #define _mm_cmplt_epi16_mask(A, B) \
220 _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_LT)
221 #define _mm_mask_cmplt_epi16_mask(k, A, B) \
222 _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LT)
223 #define _mm_cmpneq_epi16_mask(A, B) \
224 _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_NE)
225 #define _mm_mask_cmpneq_epi16_mask(k, A, B) \
226 _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_NE)
228 #define _mm256_cmpeq_epi16_mask(A, B) \
229 _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_EQ)
230 #define _mm256_mask_cmpeq_epi16_mask(k, A, B) \
231 _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_EQ)
232 #define _mm256_cmpge_epi16_mask(A, B) \
233 _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_GE)
234 #define _mm256_mask_cmpge_epi16_mask(k, A, B) \
235 _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GE)
236 #define _mm256_cmpgt_epi16_mask(A, B) \
237 _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_GT)
238 #define _mm256_mask_cmpgt_epi16_mask(k, A, B) \
239 _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GT)
240 #define _mm256_cmple_epi16_mask(A, B) \
241 _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_LE)
242 #define _mm256_mask_cmple_epi16_mask(k, A, B) \
243 _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LE)
244 #define _mm256_cmplt_epi16_mask(A, B) \
245 _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_LT)
246 #define _mm256_mask_cmplt_epi16_mask(k, A, B) \
247 _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LT)
248 #define _mm256_cmpneq_epi16_mask(A, B) \
249 _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_NE)
250 #define _mm256_mask_cmpneq_epi16_mask(k, A, B) \
251 _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_NE)
253 #define _mm_cmpeq_epu16_mask(A, B) \
254 _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_EQ)
255 #define _mm_mask_cmpeq_epu16_mask(k, A, B) \
256 _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_EQ)
257 #define _mm_cmpge_epu16_mask(A, B) \
258 _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_GE)
259 #define _mm_mask_cmpge_epu16_mask(k, A, B) \
260 _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GE)
261 #define _mm_cmpgt_epu16_mask(A, B) \
262 _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_GT)
263 #define _mm_mask_cmpgt_epu16_mask(k, A, B) \
264 _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GT)
265 #define _mm_cmple_epu16_mask(A, B) \
266 _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_LE)
267 #define _mm_mask_cmple_epu16_mask(k, A, B) \
268 _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LE)
269 #define _mm_cmplt_epu16_mask(A, B) \
270 _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_LT)
271 #define _mm_mask_cmplt_epu16_mask(k, A, B) \
272 _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LT)
273 #define _mm_cmpneq_epu16_mask(A, B) \
274 _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_NE)
275 #define _mm_mask_cmpneq_epu16_mask(k, A, B) \
276 _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_NE)
278 #define _mm256_cmpeq_epu16_mask(A, B) \
279 _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_EQ)
280 #define _mm256_mask_cmpeq_epu16_mask(k, A, B) \
281 _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_EQ)
282 #define _mm256_cmpge_epu16_mask(A, B) \
283 _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_GE)
284 #define _mm256_mask_cmpge_epu16_mask(k, A, B) \
285 _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GE)
286 #define _mm256_cmpgt_epu16_mask(A, B) \
287 _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_GT)
288 #define _mm256_mask_cmpgt_epu16_mask(k, A, B) \
289 _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GT)
290 #define _mm256_cmple_epu16_mask(A, B) \
291 _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_LE)
292 #define _mm256_mask_cmple_epu16_mask(k, A, B) \
293 _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LE)
294 #define _mm256_cmplt_epu16_mask(A, B) \
295 _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_LT)
296 #define _mm256_mask_cmplt_epu16_mask(k, A, B) \
297 _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LT)
298 #define _mm256_cmpneq_epu16_mask(A, B) \
299 _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_NE)
300 #define _mm256_mask_cmpneq_epu16_mask(k, A, B) \
301 _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_NE)
303 static __inline__ __m256i __DEFAULT_FN_ATTRS256
304 _mm256_mask_add_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){
305 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
306 (__v32qi)_mm256_add_epi8(__A, __B),
310 static __inline__ __m256i __DEFAULT_FN_ATTRS256
311 _mm256_maskz_add_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
312 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
313 (__v32qi)_mm256_add_epi8(__A, __B),
314 (__v32qi)_mm256_setzero_si256());
317 static __inline__ __m256i __DEFAULT_FN_ATTRS256
318 _mm256_mask_add_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
319 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
320 (__v16hi)_mm256_add_epi16(__A, __B),
324 static __inline__ __m256i __DEFAULT_FN_ATTRS256
325 _mm256_maskz_add_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
326 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
327 (__v16hi)_mm256_add_epi16(__A, __B),
328 (__v16hi)_mm256_setzero_si256());
331 static __inline__ __m256i __DEFAULT_FN_ATTRS256
332 _mm256_mask_sub_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
333 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
334 (__v32qi)_mm256_sub_epi8(__A, __B),
338 static __inline__ __m256i __DEFAULT_FN_ATTRS256
339 _mm256_maskz_sub_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
340 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
341 (__v32qi)_mm256_sub_epi8(__A, __B),
342 (__v32qi)_mm256_setzero_si256());
345 static __inline__ __m256i __DEFAULT_FN_ATTRS256
346 _mm256_mask_sub_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
347 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
348 (__v16hi)_mm256_sub_epi16(__A, __B),
352 static __inline__ __m256i __DEFAULT_FN_ATTRS256
353 _mm256_maskz_sub_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
354 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
355 (__v16hi)_mm256_sub_epi16(__A, __B),
356 (__v16hi)_mm256_setzero_si256());
359 static __inline__ __m128i __DEFAULT_FN_ATTRS128
360 _mm_mask_add_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
361 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
362 (__v16qi)_mm_add_epi8(__A, __B),
366 static __inline__ __m128i __DEFAULT_FN_ATTRS128
367 _mm_maskz_add_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
368 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
369 (__v16qi)_mm_add_epi8(__A, __B),
370 (__v16qi)_mm_setzero_si128());
373 static __inline__ __m128i __DEFAULT_FN_ATTRS128
374 _mm_mask_add_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
375 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
376 (__v8hi)_mm_add_epi16(__A, __B),
380 static __inline__ __m128i __DEFAULT_FN_ATTRS128
381 _mm_maskz_add_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
382 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
383 (__v8hi)_mm_add_epi16(__A, __B),
384 (__v8hi)_mm_setzero_si128());
387 static __inline__ __m128i __DEFAULT_FN_ATTRS128
388 _mm_mask_sub_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
389 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
390 (__v16qi)_mm_sub_epi8(__A, __B),
394 static __inline__ __m128i __DEFAULT_FN_ATTRS128
395 _mm_maskz_sub_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
396 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
397 (__v16qi)_mm_sub_epi8(__A, __B),
398 (__v16qi)_mm_setzero_si128());
401 static __inline__ __m128i __DEFAULT_FN_ATTRS128
402 _mm_mask_sub_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
403 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
404 (__v8hi)_mm_sub_epi16(__A, __B),
408 static __inline__ __m128i __DEFAULT_FN_ATTRS128
409 _mm_maskz_sub_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
410 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
411 (__v8hi)_mm_sub_epi16(__A, __B),
412 (__v8hi)_mm_setzero_si128());
415 static __inline__ __m256i __DEFAULT_FN_ATTRS256
416 _mm256_mask_mullo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
417 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
418 (__v16hi)_mm256_mullo_epi16(__A, __B),
422 static __inline__ __m256i __DEFAULT_FN_ATTRS256
423 _mm256_maskz_mullo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
424 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
425 (__v16hi)_mm256_mullo_epi16(__A, __B),
426 (__v16hi)_mm256_setzero_si256());
429 static __inline__ __m128i __DEFAULT_FN_ATTRS128
430 _mm_mask_mullo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
431 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
432 (__v8hi)_mm_mullo_epi16(__A, __B),
436 static __inline__ __m128i __DEFAULT_FN_ATTRS128
437 _mm_maskz_mullo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
438 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
439 (__v8hi)_mm_mullo_epi16(__A, __B),
440 (__v8hi)_mm_setzero_si128());
443 static __inline__ __m128i __DEFAULT_FN_ATTRS128
444 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
446 return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
451 static __inline__ __m256i __DEFAULT_FN_ATTRS256
452 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
454 return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
459 static __inline__ __m128i __DEFAULT_FN_ATTRS128
460 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
462 return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
467 static __inline__ __m256i __DEFAULT_FN_ATTRS256
468 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
470 return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
475 static __inline__ __m128i __DEFAULT_FN_ATTRS128
476 _mm_mask_abs_epi8(__m128i __W, __mmask16 __U, __m128i __A)
478 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
479 (__v16qi)_mm_abs_epi8(__A),
483 static __inline__ __m128i __DEFAULT_FN_ATTRS128
484 _mm_maskz_abs_epi8(__mmask16 __U, __m128i __A)
486 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
487 (__v16qi)_mm_abs_epi8(__A),
488 (__v16qi)_mm_setzero_si128());
491 static __inline__ __m256i __DEFAULT_FN_ATTRS256
492 _mm256_mask_abs_epi8(__m256i __W, __mmask32 __U, __m256i __A)
494 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
495 (__v32qi)_mm256_abs_epi8(__A),
499 static __inline__ __m256i __DEFAULT_FN_ATTRS256
500 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
502 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
503 (__v32qi)_mm256_abs_epi8(__A),
504 (__v32qi)_mm256_setzero_si256());
507 static __inline__ __m128i __DEFAULT_FN_ATTRS128
508 _mm_mask_abs_epi16(__m128i __W, __mmask8 __U, __m128i __A)
510 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
511 (__v8hi)_mm_abs_epi16(__A),
515 static __inline__ __m128i __DEFAULT_FN_ATTRS128
516 _mm_maskz_abs_epi16(__mmask8 __U, __m128i __A)
518 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
519 (__v8hi)_mm_abs_epi16(__A),
520 (__v8hi)_mm_setzero_si128());
523 static __inline__ __m256i __DEFAULT_FN_ATTRS256
524 _mm256_mask_abs_epi16(__m256i __W, __mmask16 __U, __m256i __A)
526 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
527 (__v16hi)_mm256_abs_epi16(__A),
531 static __inline__ __m256i __DEFAULT_FN_ATTRS256
532 _mm256_maskz_abs_epi16(__mmask16 __U, __m256i __A)
534 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
535 (__v16hi)_mm256_abs_epi16(__A),
536 (__v16hi)_mm256_setzero_si256());
539 static __inline__ __m128i __DEFAULT_FN_ATTRS128
540 _mm_maskz_packs_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
541 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
542 (__v8hi)_mm_packs_epi32(__A, __B),
543 (__v8hi)_mm_setzero_si128());
546 static __inline__ __m128i __DEFAULT_FN_ATTRS128
547 _mm_mask_packs_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
549 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
550 (__v8hi)_mm_packs_epi32(__A, __B),
554 static __inline__ __m256i __DEFAULT_FN_ATTRS256
555 _mm256_maskz_packs_epi32(__mmask16 __M, __m256i __A, __m256i __B)
557 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
558 (__v16hi)_mm256_packs_epi32(__A, __B),
559 (__v16hi)_mm256_setzero_si256());
562 static __inline__ __m256i __DEFAULT_FN_ATTRS256
563 _mm256_mask_packs_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
565 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
566 (__v16hi)_mm256_packs_epi32(__A, __B),
570 static __inline__ __m128i __DEFAULT_FN_ATTRS128
571 _mm_maskz_packs_epi16(__mmask16 __M, __m128i __A, __m128i __B)
573 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
574 (__v16qi)_mm_packs_epi16(__A, __B),
575 (__v16qi)_mm_setzero_si128());
578 static __inline__ __m128i __DEFAULT_FN_ATTRS128
579 _mm_mask_packs_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
581 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
582 (__v16qi)_mm_packs_epi16(__A, __B),
586 static __inline__ __m256i __DEFAULT_FN_ATTRS256
587 _mm256_maskz_packs_epi16(__mmask32 __M, __m256i __A, __m256i __B)
589 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
590 (__v32qi)_mm256_packs_epi16(__A, __B),
591 (__v32qi)_mm256_setzero_si256());
594 static __inline__ __m256i __DEFAULT_FN_ATTRS256
595 _mm256_mask_packs_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
597 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
598 (__v32qi)_mm256_packs_epi16(__A, __B),
602 static __inline__ __m128i __DEFAULT_FN_ATTRS128
603 _mm_maskz_packus_epi32(__mmask8 __M, __m128i __A, __m128i __B)
605 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
606 (__v8hi)_mm_packus_epi32(__A, __B),
607 (__v8hi)_mm_setzero_si128());
610 static __inline__ __m128i __DEFAULT_FN_ATTRS128
611 _mm_mask_packus_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
613 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
614 (__v8hi)_mm_packus_epi32(__A, __B),
618 static __inline__ __m256i __DEFAULT_FN_ATTRS256
619 _mm256_maskz_packus_epi32(__mmask16 __M, __m256i __A, __m256i __B)
621 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
622 (__v16hi)_mm256_packus_epi32(__A, __B),
623 (__v16hi)_mm256_setzero_si256());
626 static __inline__ __m256i __DEFAULT_FN_ATTRS256
627 _mm256_mask_packus_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
629 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
630 (__v16hi)_mm256_packus_epi32(__A, __B),
634 static __inline__ __m128i __DEFAULT_FN_ATTRS128
635 _mm_maskz_packus_epi16(__mmask16 __M, __m128i __A, __m128i __B)
637 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
638 (__v16qi)_mm_packus_epi16(__A, __B),
639 (__v16qi)_mm_setzero_si128());
642 static __inline__ __m128i __DEFAULT_FN_ATTRS128
643 _mm_mask_packus_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
645 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
646 (__v16qi)_mm_packus_epi16(__A, __B),
650 static __inline__ __m256i __DEFAULT_FN_ATTRS256
651 _mm256_maskz_packus_epi16(__mmask32 __M, __m256i __A, __m256i __B)
653 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
654 (__v32qi)_mm256_packus_epi16(__A, __B),
655 (__v32qi)_mm256_setzero_si256());
658 static __inline__ __m256i __DEFAULT_FN_ATTRS256
659 _mm256_mask_packus_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
661 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
662 (__v32qi)_mm256_packus_epi16(__A, __B),
666 static __inline__ __m128i __DEFAULT_FN_ATTRS128
667 _mm_mask_adds_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
669 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
670 (__v16qi)_mm_adds_epi8(__A, __B),
674 static __inline__ __m128i __DEFAULT_FN_ATTRS128
675 _mm_maskz_adds_epi8(__mmask16 __U, __m128i __A, __m128i __B)
677 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
678 (__v16qi)_mm_adds_epi8(__A, __B),
679 (__v16qi)_mm_setzero_si128());
682 static __inline__ __m256i __DEFAULT_FN_ATTRS256
683 _mm256_mask_adds_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
685 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
686 (__v32qi)_mm256_adds_epi8(__A, __B),
690 static __inline__ __m256i __DEFAULT_FN_ATTRS256
691 _mm256_maskz_adds_epi8(__mmask32 __U, __m256i __A, __m256i __B)
693 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
694 (__v32qi)_mm256_adds_epi8(__A, __B),
695 (__v32qi)_mm256_setzero_si256());
698 static __inline__ __m128i __DEFAULT_FN_ATTRS128
699 _mm_mask_adds_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
701 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
702 (__v8hi)_mm_adds_epi16(__A, __B),
706 static __inline__ __m128i __DEFAULT_FN_ATTRS128
707 _mm_maskz_adds_epi16(__mmask8 __U, __m128i __A, __m128i __B)
709 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
710 (__v8hi)_mm_adds_epi16(__A, __B),
711 (__v8hi)_mm_setzero_si128());
714 static __inline__ __m256i __DEFAULT_FN_ATTRS256
715 _mm256_mask_adds_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
717 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
718 (__v16hi)_mm256_adds_epi16(__A, __B),
722 static __inline__ __m256i __DEFAULT_FN_ATTRS256
723 _mm256_maskz_adds_epi16(__mmask16 __U, __m256i __A, __m256i __B)
725 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
726 (__v16hi)_mm256_adds_epi16(__A, __B),
727 (__v16hi)_mm256_setzero_si256());
730 static __inline__ __m128i __DEFAULT_FN_ATTRS128
731 _mm_mask_adds_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
733 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
734 (__v16qi)_mm_adds_epu8(__A, __B),
738 static __inline__ __m128i __DEFAULT_FN_ATTRS128
739 _mm_maskz_adds_epu8(__mmask16 __U, __m128i __A, __m128i __B)
741 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
742 (__v16qi)_mm_adds_epu8(__A, __B),
743 (__v16qi)_mm_setzero_si128());
746 static __inline__ __m256i __DEFAULT_FN_ATTRS256
747 _mm256_mask_adds_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
749 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
750 (__v32qi)_mm256_adds_epu8(__A, __B),
754 static __inline__ __m256i __DEFAULT_FN_ATTRS256
755 _mm256_maskz_adds_epu8(__mmask32 __U, __m256i __A, __m256i __B)
757 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
758 (__v32qi)_mm256_adds_epu8(__A, __B),
759 (__v32qi)_mm256_setzero_si256());
762 static __inline__ __m128i __DEFAULT_FN_ATTRS128
763 _mm_mask_adds_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
765 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
766 (__v8hi)_mm_adds_epu16(__A, __B),
770 static __inline__ __m128i __DEFAULT_FN_ATTRS128
771 _mm_maskz_adds_epu16(__mmask8 __U, __m128i __A, __m128i __B)
773 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
774 (__v8hi)_mm_adds_epu16(__A, __B),
775 (__v8hi)_mm_setzero_si128());
778 static __inline__ __m256i __DEFAULT_FN_ATTRS256
779 _mm256_mask_adds_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
781 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
782 (__v16hi)_mm256_adds_epu16(__A, __B),
786 static __inline__ __m256i __DEFAULT_FN_ATTRS256
787 _mm256_maskz_adds_epu16(__mmask16 __U, __m256i __A, __m256i __B)
789 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
790 (__v16hi)_mm256_adds_epu16(__A, __B),
791 (__v16hi)_mm256_setzero_si256());
794 static __inline__ __m128i __DEFAULT_FN_ATTRS128
795 _mm_mask_avg_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
797 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
798 (__v16qi)_mm_avg_epu8(__A, __B),
802 static __inline__ __m128i __DEFAULT_FN_ATTRS128
803 _mm_maskz_avg_epu8(__mmask16 __U, __m128i __A, __m128i __B)
805 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
806 (__v16qi)_mm_avg_epu8(__A, __B),
807 (__v16qi)_mm_setzero_si128());
810 static __inline__ __m256i __DEFAULT_FN_ATTRS256
811 _mm256_mask_avg_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
813 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
814 (__v32qi)_mm256_avg_epu8(__A, __B),
818 static __inline__ __m256i __DEFAULT_FN_ATTRS256
819 _mm256_maskz_avg_epu8(__mmask32 __U, __m256i __A, __m256i __B)
821 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
822 (__v32qi)_mm256_avg_epu8(__A, __B),
823 (__v32qi)_mm256_setzero_si256());
826 static __inline__ __m128i __DEFAULT_FN_ATTRS128
827 _mm_mask_avg_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
829 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
830 (__v8hi)_mm_avg_epu16(__A, __B),
834 static __inline__ __m128i __DEFAULT_FN_ATTRS128
835 _mm_maskz_avg_epu16(__mmask8 __U, __m128i __A, __m128i __B)
837 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
838 (__v8hi)_mm_avg_epu16(__A, __B),
839 (__v8hi)_mm_setzero_si128());
842 static __inline__ __m256i __DEFAULT_FN_ATTRS256
843 _mm256_mask_avg_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
845 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
846 (__v16hi)_mm256_avg_epu16(__A, __B),
850 static __inline__ __m256i __DEFAULT_FN_ATTRS256
851 _mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B)
853 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
854 (__v16hi)_mm256_avg_epu16(__A, __B),
855 (__v16hi)_mm256_setzero_si256());
858 static __inline__ __m128i __DEFAULT_FN_ATTRS128
859 _mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B)
861 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
862 (__v16qi)_mm_max_epi8(__A, __B),
863 (__v16qi)_mm_setzero_si128());
866 static __inline__ __m128i __DEFAULT_FN_ATTRS128
867 _mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
869 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
870 (__v16qi)_mm_max_epi8(__A, __B),
874 static __inline__ __m256i __DEFAULT_FN_ATTRS256
875 _mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B)
877 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
878 (__v32qi)_mm256_max_epi8(__A, __B),
879 (__v32qi)_mm256_setzero_si256());
882 static __inline__ __m256i __DEFAULT_FN_ATTRS256
883 _mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
885 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
886 (__v32qi)_mm256_max_epi8(__A, __B),
890 static __inline__ __m128i __DEFAULT_FN_ATTRS128
891 _mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B)
893 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
894 (__v8hi)_mm_max_epi16(__A, __B),
895 (__v8hi)_mm_setzero_si128());
898 static __inline__ __m128i __DEFAULT_FN_ATTRS128
899 _mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
901 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
902 (__v8hi)_mm_max_epi16(__A, __B),
906 static __inline__ __m256i __DEFAULT_FN_ATTRS256
907 _mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B)
909 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
910 (__v16hi)_mm256_max_epi16(__A, __B),
911 (__v16hi)_mm256_setzero_si256());
914 static __inline__ __m256i __DEFAULT_FN_ATTRS256
915 _mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
917 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
918 (__v16hi)_mm256_max_epi16(__A, __B),
922 static __inline__ __m128i __DEFAULT_FN_ATTRS128
923 _mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B)
925 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
926 (__v16qi)_mm_max_epu8(__A, __B),
927 (__v16qi)_mm_setzero_si128());
930 static __inline__ __m128i __DEFAULT_FN_ATTRS128
931 _mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
933 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
934 (__v16qi)_mm_max_epu8(__A, __B),
938 static __inline__ __m256i __DEFAULT_FN_ATTRS256
939 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
941 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
942 (__v32qi)_mm256_max_epu8(__A, __B),
943 (__v32qi)_mm256_setzero_si256());
946 static __inline__ __m256i __DEFAULT_FN_ATTRS256
947 _mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
949 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
950 (__v32qi)_mm256_max_epu8(__A, __B),
954 static __inline__ __m128i __DEFAULT_FN_ATTRS128
955 _mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B)
957 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
958 (__v8hi)_mm_max_epu16(__A, __B),
959 (__v8hi)_mm_setzero_si128());
962 static __inline__ __m128i __DEFAULT_FN_ATTRS128
963 _mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
965 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
966 (__v8hi)_mm_max_epu16(__A, __B),
970 static __inline__ __m256i __DEFAULT_FN_ATTRS256
971 _mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B)
973 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
974 (__v16hi)_mm256_max_epu16(__A, __B),
975 (__v16hi)_mm256_setzero_si256());
978 static __inline__ __m256i __DEFAULT_FN_ATTRS256
979 _mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
981 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
982 (__v16hi)_mm256_max_epu16(__A, __B),
986 static __inline__ __m128i __DEFAULT_FN_ATTRS128
987 _mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B)
989 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
990 (__v16qi)_mm_min_epi8(__A, __B),
991 (__v16qi)_mm_setzero_si128());
994 static __inline__ __m128i __DEFAULT_FN_ATTRS128
995 _mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
997 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
998 (__v16qi)_mm_min_epi8(__A, __B),
1002 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1003 _mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B)
1005 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1006 (__v32qi)_mm256_min_epi8(__A, __B),
1007 (__v32qi)_mm256_setzero_si256());
1010 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1011 _mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
1013 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1014 (__v32qi)_mm256_min_epi8(__A, __B),
1018 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1019 _mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B)
1021 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1022 (__v8hi)_mm_min_epi16(__A, __B),
1023 (__v8hi)_mm_setzero_si128());
1026 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1027 _mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
1029 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1030 (__v8hi)_mm_min_epi16(__A, __B),
1034 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1035 _mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B)
1037 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1038 (__v16hi)_mm256_min_epi16(__A, __B),
1039 (__v16hi)_mm256_setzero_si256());
1042 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1043 _mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
1045 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1046 (__v16hi)_mm256_min_epi16(__A, __B),
1050 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1051 _mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B)
1053 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1054 (__v16qi)_mm_min_epu8(__A, __B),
1055 (__v16qi)_mm_setzero_si128());
1058 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1059 _mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
1061 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1062 (__v16qi)_mm_min_epu8(__A, __B),
1066 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1067 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1069 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1070 (__v32qi)_mm256_min_epu8(__A, __B),
1071 (__v32qi)_mm256_setzero_si256());
1074 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1075 _mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
1077 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1078 (__v32qi)_mm256_min_epu8(__A, __B),
1082 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1083 _mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B)
1085 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1086 (__v8hi)_mm_min_epu16(__A, __B),
1087 (__v8hi)_mm_setzero_si128());
1090 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1091 _mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
1093 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1094 (__v8hi)_mm_min_epu16(__A, __B),
1098 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1099 _mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B)
1101 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1102 (__v16hi)_mm256_min_epu16(__A, __B),
1103 (__v16hi)_mm256_setzero_si256());
1106 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1107 _mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
1109 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1110 (__v16hi)_mm256_min_epu16(__A, __B),
1114 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1115 _mm_mask_shuffle_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1117 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1118 (__v16qi)_mm_shuffle_epi8(__A, __B),
1122 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1123 _mm_maskz_shuffle_epi8(__mmask16 __U, __m128i __A, __m128i __B)
1125 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1126 (__v16qi)_mm_shuffle_epi8(__A, __B),
1127 (__v16qi)_mm_setzero_si128());
1130 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1131 _mm256_mask_shuffle_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1133 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1134 (__v32qi)_mm256_shuffle_epi8(__A, __B),
1138 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1139 _mm256_maskz_shuffle_epi8(__mmask32 __U, __m256i __A, __m256i __B)
1141 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1142 (__v32qi)_mm256_shuffle_epi8(__A, __B),
1143 (__v32qi)_mm256_setzero_si256());
1146 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1147 _mm_mask_subs_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1149 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1150 (__v16qi)_mm_subs_epi8(__A, __B),
1154 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1155 _mm_maskz_subs_epi8(__mmask16 __U, __m128i __A, __m128i __B)
1157 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1158 (__v16qi)_mm_subs_epi8(__A, __B),
1159 (__v16qi)_mm_setzero_si128());
1162 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1163 _mm256_mask_subs_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1165 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1166 (__v32qi)_mm256_subs_epi8(__A, __B),
1170 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1171 _mm256_maskz_subs_epi8(__mmask32 __U, __m256i __A, __m256i __B)
1173 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1174 (__v32qi)_mm256_subs_epi8(__A, __B),
1175 (__v32qi)_mm256_setzero_si256());
1178 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1179 _mm_mask_subs_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1181 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1182 (__v8hi)_mm_subs_epi16(__A, __B),
1186 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1187 _mm_maskz_subs_epi16(__mmask8 __U, __m128i __A, __m128i __B)
1189 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1190 (__v8hi)_mm_subs_epi16(__A, __B),
1191 (__v8hi)_mm_setzero_si128());
1194 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1195 _mm256_mask_subs_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
1197 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1198 (__v16hi)_mm256_subs_epi16(__A, __B),
1202 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1203 _mm256_maskz_subs_epi16(__mmask16 __U, __m256i __A, __m256i __B)
1205 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1206 (__v16hi)_mm256_subs_epi16(__A, __B),
1207 (__v16hi)_mm256_setzero_si256());
1210 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1211 _mm_mask_subs_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1213 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1214 (__v16qi)_mm_subs_epu8(__A, __B),
1218 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1219 _mm_maskz_subs_epu8(__mmask16 __U, __m128i __A, __m128i __B)
1221 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1222 (__v16qi)_mm_subs_epu8(__A, __B),
1223 (__v16qi)_mm_setzero_si128());
1226 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1227 _mm256_mask_subs_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1229 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1230 (__v32qi)_mm256_subs_epu8(__A, __B),
1234 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1235 _mm256_maskz_subs_epu8(__mmask32 __U, __m256i __A, __m256i __B)
1237 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1238 (__v32qi)_mm256_subs_epu8(__A, __B),
1239 (__v32qi)_mm256_setzero_si256());
1242 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1243 _mm_mask_subs_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1245 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1246 (__v8hi)_mm_subs_epu16(__A, __B),
1250 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1251 _mm_maskz_subs_epu16(__mmask8 __U, __m128i __A, __m128i __B)
1253 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1254 (__v8hi)_mm_subs_epu16(__A, __B),
1255 (__v8hi)_mm_setzero_si128());
1258 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1259 _mm256_mask_subs_epu16(__m256i __W, __mmask16 __U, __m256i __A,
1261 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1262 (__v16hi)_mm256_subs_epu16(__A, __B),
1266 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1267 _mm256_maskz_subs_epu16(__mmask16 __U, __m256i __A, __m256i __B)
1269 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1270 (__v16hi)_mm256_subs_epu16(__A, __B),
1271 (__v16hi)_mm256_setzero_si256());
1274 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1275 _mm_permutex2var_epi16(__m128i __A, __m128i __I, __m128i __B)
1277 return (__m128i)__builtin_ia32_vpermi2varhi128((__v8hi)__A, (__v8hi)__I,
1281 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1282 _mm_mask_permutex2var_epi16(__m128i __A, __mmask8 __U, __m128i __I,
1285 return (__m128i)__builtin_ia32_selectw_128(__U,
1286 (__v8hi)_mm_permutex2var_epi16(__A, __I, __B),
1290 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1291 _mm_mask2_permutex2var_epi16(__m128i __A, __m128i __I, __mmask8 __U,
1294 return (__m128i)__builtin_ia32_selectw_128(__U,
1295 (__v8hi)_mm_permutex2var_epi16(__A, __I, __B),
1299 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1300 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
1303 return (__m128i)__builtin_ia32_selectw_128(__U,
1304 (__v8hi)_mm_permutex2var_epi16(__A, __I, __B),
1305 (__v8hi)_mm_setzero_si128());
1308 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1309 _mm256_permutex2var_epi16(__m256i __A, __m256i __I, __m256i __B)
1311 return (__m256i)__builtin_ia32_vpermi2varhi256((__v16hi)__A, (__v16hi)__I,
1315 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1316 _mm256_mask_permutex2var_epi16(__m256i __A, __mmask16 __U, __m256i __I,
1319 return (__m256i)__builtin_ia32_selectw_256(__U,
1320 (__v16hi)_mm256_permutex2var_epi16(__A, __I, __B),
1324 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1325 _mm256_mask2_permutex2var_epi16(__m256i __A, __m256i __I, __mmask16 __U,
1328 return (__m256i)__builtin_ia32_selectw_256(__U,
1329 (__v16hi)_mm256_permutex2var_epi16(__A, __I, __B),
1333 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1334 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A, __m256i __I,
1337 return (__m256i)__builtin_ia32_selectw_256(__U,
1338 (__v16hi)_mm256_permutex2var_epi16(__A, __I, __B),
1339 (__v16hi)_mm256_setzero_si256());
1342 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1343 _mm_mask_maddubs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1344 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1345 (__v8hi)_mm_maddubs_epi16(__X, __Y),
1349 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1350 _mm_maskz_maddubs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
1351 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1352 (__v8hi)_mm_maddubs_epi16(__X, __Y),
1353 (__v8hi)_mm_setzero_si128());
1356 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1357 _mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X,
1359 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1360 (__v16hi)_mm256_maddubs_epi16(__X, __Y),
1364 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1365 _mm256_maskz_maddubs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
1366 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1367 (__v16hi)_mm256_maddubs_epi16(__X, __Y),
1368 (__v16hi)_mm256_setzero_si256());
1371 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1372 _mm_mask_madd_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1373 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
1374 (__v4si)_mm_madd_epi16(__A, __B),
1378 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1379 _mm_maskz_madd_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1380 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
1381 (__v4si)_mm_madd_epi16(__A, __B),
1382 (__v4si)_mm_setzero_si128());
1385 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1386 _mm256_mask_madd_epi16(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
1387 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
1388 (__v8si)_mm256_madd_epi16(__A, __B),
1392 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1393 _mm256_maskz_madd_epi16(__mmask8 __U, __m256i __A, __m256i __B) {
1394 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
1395 (__v8si)_mm256_madd_epi16(__A, __B),
1396 (__v8si)_mm256_setzero_si256());
1399 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1400 _mm_cvtsepi16_epi8 (__m128i __A) {
1401 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1402 (__v16qi) _mm_setzero_si128(),
1406 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1407 _mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1408 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1413 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1414 _mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) {
1415 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A,
1416 (__v16qi) _mm_setzero_si128(),
1420 static __inline__ __m128i __DEFAULT_FN_ATTRS256
1421 _mm256_cvtsepi16_epi8 (__m256i __A) {
1422 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1423 (__v16qi) _mm_setzero_si128(),
1427 static __inline__ __m128i __DEFAULT_FN_ATTRS256
1428 _mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1429 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1434 static __inline__ __m128i __DEFAULT_FN_ATTRS256
1435 _mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) {
1436 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A,
1437 (__v16qi) _mm_setzero_si128(),
1441 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1442 _mm_cvtusepi16_epi8 (__m128i __A) {
1443 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1444 (__v16qi) _mm_setzero_si128(),
1448 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1449 _mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1450 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1455 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1456 _mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) {
1457 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A,
1458 (__v16qi) _mm_setzero_si128(),
1462 static __inline__ __m128i __DEFAULT_FN_ATTRS256
1463 _mm256_cvtusepi16_epi8 (__m256i __A) {
1464 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1465 (__v16qi) _mm_setzero_si128(),
1469 static __inline__ __m128i __DEFAULT_FN_ATTRS256
1470 _mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1471 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1476 static __inline__ __m128i __DEFAULT_FN_ATTRS256
1477 _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) {
1478 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A,
1479 (__v16qi) _mm_setzero_si128(),
1483 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1484 _mm_cvtepi16_epi8 (__m128i __A) {
1485 return (__m128i)__builtin_shufflevector(
1486 __builtin_convertvector((__v8hi)__A, __v8qi),
1487 (__v8qi){0, 0, 0, 0, 0, 0, 0, 0}, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1491 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1492 _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) {
1493 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1498 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1499 _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) {
1500 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A,
1501 (__v16qi) _mm_setzero_si128(),
1505 static __inline__ void __DEFAULT_FN_ATTRS128
1506 _mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
1508 __builtin_ia32_pmovwb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
1512 static __inline__ void __DEFAULT_FN_ATTRS128
1513 _mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
1515 __builtin_ia32_pmovswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
1518 static __inline__ void __DEFAULT_FN_ATTRS128
1519 _mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
1521 __builtin_ia32_pmovuswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
1524 static __inline__ __m128i __DEFAULT_FN_ATTRS256
1525 _mm256_cvtepi16_epi8 (__m256i __A) {
1526 return (__m128i)__builtin_convertvector((__v16hi) __A, __v16qi);
1529 static __inline__ __m128i __DEFAULT_FN_ATTRS256
1530 _mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
1531 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1532 (__v16qi)_mm256_cvtepi16_epi8(__A),
1536 static __inline__ __m128i __DEFAULT_FN_ATTRS256
1537 _mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) {
1538 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1539 (__v16qi)_mm256_cvtepi16_epi8(__A),
1540 (__v16qi)_mm_setzero_si128());
1543 static __inline__ void __DEFAULT_FN_ATTRS256
1544 _mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
1546 __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
1549 static __inline__ void __DEFAULT_FN_ATTRS256
1550 _mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
1552 __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
1555 static __inline__ void __DEFAULT_FN_ATTRS256
1556 _mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
1558 __builtin_ia32_pmovuswb256mem_mask ((__v16qi*) __P, (__v16hi) __A, __M);
1561 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1562 _mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
1563 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1564 (__v8hi)_mm_mulhrs_epi16(__X, __Y),
1568 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1569 _mm_maskz_mulhrs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
1570 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1571 (__v8hi)_mm_mulhrs_epi16(__X, __Y),
1572 (__v8hi)_mm_setzero_si128());
1575 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1576 _mm256_mask_mulhrs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
1577 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1578 (__v16hi)_mm256_mulhrs_epi16(__X, __Y),
1582 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1583 _mm256_maskz_mulhrs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
1584 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1585 (__v16hi)_mm256_mulhrs_epi16(__X, __Y),
1586 (__v16hi)_mm256_setzero_si256());
1589 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1590 _mm_mask_mulhi_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1591 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1592 (__v8hi)_mm_mulhi_epu16(__A, __B),
1596 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1597 _mm_maskz_mulhi_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
1598 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1599 (__v8hi)_mm_mulhi_epu16(__A, __B),
1600 (__v8hi)_mm_setzero_si128());
1603 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1604 _mm256_mask_mulhi_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1605 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1606 (__v16hi)_mm256_mulhi_epu16(__A, __B),
1610 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1611 _mm256_maskz_mulhi_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
1612 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1613 (__v16hi)_mm256_mulhi_epu16(__A, __B),
1614 (__v16hi)_mm256_setzero_si256());
1617 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1618 _mm_mask_mulhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1619 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1620 (__v8hi)_mm_mulhi_epi16(__A, __B),
1624 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1625 _mm_maskz_mulhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1626 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1627 (__v8hi)_mm_mulhi_epi16(__A, __B),
1628 (__v8hi)_mm_setzero_si128());
1631 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1632 _mm256_mask_mulhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1633 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1634 (__v16hi)_mm256_mulhi_epi16(__A, __B),
1638 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1639 _mm256_maskz_mulhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1640 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1641 (__v16hi)_mm256_mulhi_epi16(__A, __B),
1642 (__v16hi)_mm256_setzero_si256());
1645 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1646 _mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1647 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1648 (__v16qi)_mm_unpackhi_epi8(__A, __B),
1652 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1653 _mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1654 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1655 (__v16qi)_mm_unpackhi_epi8(__A, __B),
1656 (__v16qi)_mm_setzero_si128());
1659 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1660 _mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1661 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1662 (__v32qi)_mm256_unpackhi_epi8(__A, __B),
1666 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1667 _mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1668 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1669 (__v32qi)_mm256_unpackhi_epi8(__A, __B),
1670 (__v32qi)_mm256_setzero_si256());
1673 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1674 _mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1675 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1676 (__v8hi)_mm_unpackhi_epi16(__A, __B),
1680 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1681 _mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1682 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1683 (__v8hi)_mm_unpackhi_epi16(__A, __B),
1684 (__v8hi) _mm_setzero_si128());
1687 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1688 _mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1689 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1690 (__v16hi)_mm256_unpackhi_epi16(__A, __B),
1694 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1695 _mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1696 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1697 (__v16hi)_mm256_unpackhi_epi16(__A, __B),
1698 (__v16hi)_mm256_setzero_si256());
1701 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1702 _mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
1703 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1704 (__v16qi)_mm_unpacklo_epi8(__A, __B),
1708 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1709 _mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
1710 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1711 (__v16qi)_mm_unpacklo_epi8(__A, __B),
1712 (__v16qi)_mm_setzero_si128());
1715 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1716 _mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
1717 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1718 (__v32qi)_mm256_unpacklo_epi8(__A, __B),
1722 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1723 _mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
1724 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1725 (__v32qi)_mm256_unpacklo_epi8(__A, __B),
1726 (__v32qi)_mm256_setzero_si256());
1729 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1730 _mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
1731 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1732 (__v8hi)_mm_unpacklo_epi16(__A, __B),
1736 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1737 _mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
1738 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1739 (__v8hi)_mm_unpacklo_epi16(__A, __B),
1740 (__v8hi) _mm_setzero_si128());
1743 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1744 _mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
1745 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1746 (__v16hi)_mm256_unpacklo_epi16(__A, __B),
1750 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1751 _mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
1752 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1753 (__v16hi)_mm256_unpacklo_epi16(__A, __B),
1754 (__v16hi)_mm256_setzero_si256());
1757 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1758 _mm_mask_cvtepi8_epi16(__m128i __W, __mmask8 __U, __m128i __A)
1760 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1761 (__v8hi)_mm_cvtepi8_epi16(__A),
1765 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1766 _mm_maskz_cvtepi8_epi16(__mmask8 __U, __m128i __A)
1768 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1769 (__v8hi)_mm_cvtepi8_epi16(__A),
1770 (__v8hi)_mm_setzero_si128());
1773 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1774 _mm256_mask_cvtepi8_epi16(__m256i __W, __mmask16 __U, __m128i __A)
1776 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1777 (__v16hi)_mm256_cvtepi8_epi16(__A),
1781 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1782 _mm256_maskz_cvtepi8_epi16(__mmask16 __U, __m128i __A)
1784 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1785 (__v16hi)_mm256_cvtepi8_epi16(__A),
1786 (__v16hi)_mm256_setzero_si256());
1790 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1791 _mm_mask_cvtepu8_epi16(__m128i __W, __mmask8 __U, __m128i __A)
1793 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1794 (__v8hi)_mm_cvtepu8_epi16(__A),
1798 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1799 _mm_maskz_cvtepu8_epi16(__mmask8 __U, __m128i __A)
1801 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1802 (__v8hi)_mm_cvtepu8_epi16(__A),
1803 (__v8hi)_mm_setzero_si128());
1806 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1807 _mm256_mask_cvtepu8_epi16(__m256i __W, __mmask16 __U, __m128i __A)
1809 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1810 (__v16hi)_mm256_cvtepu8_epi16(__A),
1814 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1815 _mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A)
1817 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1818 (__v16hi)_mm256_cvtepu8_epi16(__A),
1819 (__v16hi)_mm256_setzero_si256());
1823 #define _mm_mask_shufflehi_epi16(W, U, A, imm) \
1824 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
1825 (__v8hi)_mm_shufflehi_epi16((A), (imm)), \
1826 (__v8hi)(__m128i)(W))
1828 #define _mm_maskz_shufflehi_epi16(U, A, imm) \
1829 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
1830 (__v8hi)_mm_shufflehi_epi16((A), (imm)), \
1831 (__v8hi)_mm_setzero_si128())
1833 #define _mm256_mask_shufflehi_epi16(W, U, A, imm) \
1834 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
1835 (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \
1836 (__v16hi)(__m256i)(W))
1838 #define _mm256_maskz_shufflehi_epi16(U, A, imm) \
1839 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
1840 (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \
1841 (__v16hi)_mm256_setzero_si256())
1843 #define _mm_mask_shufflelo_epi16(W, U, A, imm) \
1844 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
1845 (__v8hi)_mm_shufflelo_epi16((A), (imm)), \
1846 (__v8hi)(__m128i)(W))
1848 #define _mm_maskz_shufflelo_epi16(U, A, imm) \
1849 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
1850 (__v8hi)_mm_shufflelo_epi16((A), (imm)), \
1851 (__v8hi)_mm_setzero_si128())
1853 #define _mm256_mask_shufflelo_epi16(W, U, A, imm) \
1854 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
1855 (__v16hi)_mm256_shufflelo_epi16((A), \
1857 (__v16hi)(__m256i)(W))
1859 #define _mm256_maskz_shufflelo_epi16(U, A, imm) \
1860 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
1861 (__v16hi)_mm256_shufflelo_epi16((A), \
1863 (__v16hi)_mm256_setzero_si256())
1865 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1866 _mm256_sllv_epi16(__m256i __A, __m256i __B)
1868 return (__m256i)__builtin_ia32_psllv16hi((__v16hi)__A, (__v16hi)__B);
1871 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1872 _mm256_mask_sllv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
1874 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1875 (__v16hi)_mm256_sllv_epi16(__A, __B),
1879 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1880 _mm256_maskz_sllv_epi16(__mmask16 __U, __m256i __A, __m256i __B)
1882 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1883 (__v16hi)_mm256_sllv_epi16(__A, __B),
1884 (__v16hi)_mm256_setzero_si256());
1887 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1888 _mm_sllv_epi16(__m128i __A, __m128i __B)
1890 return (__m128i)__builtin_ia32_psllv8hi((__v8hi)__A, (__v8hi)__B);
1893 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1894 _mm_mask_sllv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1896 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1897 (__v8hi)_mm_sllv_epi16(__A, __B),
1901 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1902 _mm_maskz_sllv_epi16(__mmask8 __U, __m128i __A, __m128i __B)
1904 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1905 (__v8hi)_mm_sllv_epi16(__A, __B),
1906 (__v8hi)_mm_setzero_si128());
1909 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1910 _mm_mask_sll_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1912 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1913 (__v8hi)_mm_sll_epi16(__A, __B),
1917 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1918 _mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
1920 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1921 (__v8hi)_mm_sll_epi16(__A, __B),
1922 (__v8hi)_mm_setzero_si128());
1925 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1926 _mm256_mask_sll_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
1928 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1929 (__v16hi)_mm256_sll_epi16(__A, __B),
1933 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1934 _mm256_maskz_sll_epi16(__mmask16 __U, __m256i __A, __m128i __B)
1936 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1937 (__v16hi)_mm256_sll_epi16(__A, __B),
1938 (__v16hi)_mm256_setzero_si256());
1941 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1942 _mm_mask_slli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
1944 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1945 (__v8hi)_mm_slli_epi16(__A, __B),
1949 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1950 _mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B)
1952 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1953 (__v8hi)_mm_slli_epi16(__A, __B),
1954 (__v8hi)_mm_setzero_si128());
1957 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1958 _mm256_mask_slli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
1960 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1961 (__v16hi)_mm256_slli_epi16(__A, __B),
1965 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1966 _mm256_maskz_slli_epi16(__mmask16 __U, __m256i __A, int __B)
1968 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1969 (__v16hi)_mm256_slli_epi16(__A, __B),
1970 (__v16hi)_mm256_setzero_si256());
1973 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1974 _mm256_srlv_epi16(__m256i __A, __m256i __B)
1976 return (__m256i)__builtin_ia32_psrlv16hi((__v16hi)__A, (__v16hi)__B);
1979 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1980 _mm256_mask_srlv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
1982 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1983 (__v16hi)_mm256_srlv_epi16(__A, __B),
1987 static __inline__ __m256i __DEFAULT_FN_ATTRS256
1988 _mm256_maskz_srlv_epi16(__mmask16 __U, __m256i __A, __m256i __B)
1990 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1991 (__v16hi)_mm256_srlv_epi16(__A, __B),
1992 (__v16hi)_mm256_setzero_si256());
1995 static __inline__ __m128i __DEFAULT_FN_ATTRS128
1996 _mm_srlv_epi16(__m128i __A, __m128i __B)
1998 return (__m128i)__builtin_ia32_psrlv8hi((__v8hi)__A, (__v8hi)__B);
2001 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2002 _mm_mask_srlv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2004 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2005 (__v8hi)_mm_srlv_epi16(__A, __B),
2009 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2010 _mm_maskz_srlv_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2012 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2013 (__v8hi)_mm_srlv_epi16(__A, __B),
2014 (__v8hi)_mm_setzero_si128());
2017 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2018 _mm256_srav_epi16(__m256i __A, __m256i __B)
2020 return (__m256i)__builtin_ia32_psrav16hi((__v16hi)__A, (__v16hi)__B);
2023 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2024 _mm256_mask_srav_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
2026 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2027 (__v16hi)_mm256_srav_epi16(__A, __B),
2031 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2032 _mm256_maskz_srav_epi16(__mmask16 __U, __m256i __A, __m256i __B)
2034 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2035 (__v16hi)_mm256_srav_epi16(__A, __B),
2036 (__v16hi)_mm256_setzero_si256());
2039 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2040 _mm_srav_epi16(__m128i __A, __m128i __B)
2042 return (__m128i)__builtin_ia32_psrav8hi((__v8hi)__A, (__v8hi)__B);
2045 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2046 _mm_mask_srav_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2048 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2049 (__v8hi)_mm_srav_epi16(__A, __B),
2053 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2054 _mm_maskz_srav_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2056 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2057 (__v8hi)_mm_srav_epi16(__A, __B),
2058 (__v8hi)_mm_setzero_si128());
2061 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2062 _mm_mask_sra_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2064 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2065 (__v8hi)_mm_sra_epi16(__A, __B),
2069 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2070 _mm_maskz_sra_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2072 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2073 (__v8hi)_mm_sra_epi16(__A, __B),
2074 (__v8hi)_mm_setzero_si128());
2077 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2078 _mm256_mask_sra_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
2080 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2081 (__v16hi)_mm256_sra_epi16(__A, __B),
2085 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2086 _mm256_maskz_sra_epi16(__mmask16 __U, __m256i __A, __m128i __B)
2088 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2089 (__v16hi)_mm256_sra_epi16(__A, __B),
2090 (__v16hi)_mm256_setzero_si256());
2093 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2094 _mm_mask_srai_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
2096 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2097 (__v8hi)_mm_srai_epi16(__A, __B),
2101 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2102 _mm_maskz_srai_epi16(__mmask8 __U, __m128i __A, int __B)
2104 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2105 (__v8hi)_mm_srai_epi16(__A, __B),
2106 (__v8hi)_mm_setzero_si128());
2109 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2110 _mm256_mask_srai_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
2112 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2113 (__v16hi)_mm256_srai_epi16(__A, __B),
2117 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2118 _mm256_maskz_srai_epi16(__mmask16 __U, __m256i __A, int __B)
2120 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2121 (__v16hi)_mm256_srai_epi16(__A, __B),
2122 (__v16hi)_mm256_setzero_si256());
2125 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2126 _mm_mask_srl_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2128 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2129 (__v8hi)_mm_srl_epi16(__A, __B),
2133 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2134 _mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2136 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2137 (__v8hi)_mm_srl_epi16(__A, __B),
2138 (__v8hi)_mm_setzero_si128());
2141 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2142 _mm256_mask_srl_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
2144 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2145 (__v16hi)_mm256_srl_epi16(__A, __B),
2149 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2150 _mm256_maskz_srl_epi16(__mmask16 __U, __m256i __A, __m128i __B)
2152 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2153 (__v16hi)_mm256_srl_epi16(__A, __B),
2154 (__v16hi)_mm256_setzero_si256());
2157 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2158 _mm_mask_srli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
2160 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2161 (__v8hi)_mm_srli_epi16(__A, __B),
2165 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2166 _mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, int __B)
2168 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2169 (__v8hi)_mm_srli_epi16(__A, __B),
2170 (__v8hi)_mm_setzero_si128());
2173 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2174 _mm256_mask_srli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
2176 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2177 (__v16hi)_mm256_srli_epi16(__A, __B),
2181 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2182 _mm256_maskz_srli_epi16(__mmask16 __U, __m256i __A, int __B)
2184 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2185 (__v16hi)_mm256_srli_epi16(__A, __B),
2186 (__v16hi)_mm256_setzero_si256());
2189 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2190 _mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
2192 return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
2197 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2198 _mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A)
2200 return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
2202 (__v8hi) _mm_setzero_si128 ());
2205 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2206 _mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
2208 return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
2213 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2214 _mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A)
2216 return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
2218 (__v16hi) _mm256_setzero_si256 ());
2221 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2222 _mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
2224 return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
2229 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2230 _mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A)
2232 return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
2234 (__v16qi) _mm_setzero_si128 ());
2237 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2238 _mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
2240 return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
2245 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2246 _mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A)
2248 return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
2250 (__v32qi) _mm256_setzero_si256 ());
2254 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2255 _mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A)
2257 return (__m128i) __builtin_ia32_selectb_128(__M,
2258 (__v16qi) _mm_set1_epi8(__A),
2262 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2263 _mm_maskz_set1_epi8 (__mmask16 __M, char __A)
2265 return (__m128i) __builtin_ia32_selectb_128(__M,
2266 (__v16qi) _mm_set1_epi8(__A),
2267 (__v16qi) _mm_setzero_si128());
2270 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2271 _mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A)
2273 return (__m256i) __builtin_ia32_selectb_256(__M,
2274 (__v32qi) _mm256_set1_epi8(__A),
2278 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2279 _mm256_maskz_set1_epi8 (__mmask32 __M, char __A)
2281 return (__m256i) __builtin_ia32_selectb_256(__M,
2282 (__v32qi) _mm256_set1_epi8(__A),
2283 (__v32qi) _mm256_setzero_si256());
2286 static __inline __m128i __DEFAULT_FN_ATTRS128
2287 _mm_loadu_epi16 (void const *__P)
2289 struct __loadu_epi16 {
2291 } __attribute__((__packed__, __may_alias__));
2292 return ((struct __loadu_epi16*)__P)->__v;
2295 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2296 _mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P)
2298 return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P,
2303 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2304 _mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P)
2306 return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P,
2308 _mm_setzero_si128 (),
2312 static __inline __m256i __DEFAULT_FN_ATTRS256
2313 _mm256_loadu_epi16 (void const *__P)
2315 struct __loadu_epi16 {
2317 } __attribute__((__packed__, __may_alias__));
2318 return ((struct __loadu_epi16*)__P)->__v;
2321 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2322 _mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P)
2324 return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P,
2329 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2330 _mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P)
2332 return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P,
2334 _mm256_setzero_si256 (),
2338 static __inline __m128i __DEFAULT_FN_ATTRS128
2339 _mm_loadu_epi8 (void const *__P)
2341 struct __loadu_epi8 {
2343 } __attribute__((__packed__, __may_alias__));
2344 return ((struct __loadu_epi8*)__P)->__v;
2347 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2348 _mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P)
2350 return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P,
2355 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2356 _mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P)
2358 return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P,
2360 _mm_setzero_si128 (),
2364 static __inline __m256i __DEFAULT_FN_ATTRS256
2365 _mm256_loadu_epi8 (void const *__P)
2367 struct __loadu_epi8 {
2369 } __attribute__((__packed__, __may_alias__));
2370 return ((struct __loadu_epi8*)__P)->__v;
2373 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2374 _mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P)
2376 return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P,
2381 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2382 _mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P)
2384 return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P,
2386 _mm256_setzero_si256 (),
2390 static __inline void __DEFAULT_FN_ATTRS128
2391 _mm_storeu_epi16 (void *__P, __m128i __A)
2393 struct __storeu_epi16 {
2395 } __attribute__((__packed__, __may_alias__));
2396 ((struct __storeu_epi16*)__P)->__v = __A;
2399 static __inline__ void __DEFAULT_FN_ATTRS128
2400 _mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
2402 __builtin_ia32_storedquhi128_mask ((__v8hi *) __P,
2407 static __inline void __DEFAULT_FN_ATTRS256
2408 _mm256_storeu_epi16 (void *__P, __m256i __A)
2410 struct __storeu_epi16 {
2412 } __attribute__((__packed__, __may_alias__));
2413 ((struct __storeu_epi16*)__P)->__v = __A;
2416 static __inline__ void __DEFAULT_FN_ATTRS256
2417 _mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
2419 __builtin_ia32_storedquhi256_mask ((__v16hi *) __P,
2424 static __inline void __DEFAULT_FN_ATTRS128
2425 _mm_storeu_epi8 (void *__P, __m128i __A)
2427 struct __storeu_epi8 {
2429 } __attribute__((__packed__, __may_alias__));
2430 ((struct __storeu_epi8*)__P)->__v = __A;
2433 static __inline__ void __DEFAULT_FN_ATTRS128
2434 _mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A)
2436 __builtin_ia32_storedquqi128_mask ((__v16qi *) __P,
2441 static __inline void __DEFAULT_FN_ATTRS256
2442 _mm256_storeu_epi8 (void *__P, __m256i __A)
2444 struct __storeu_epi8 {
2446 } __attribute__((__packed__, __may_alias__));
2447 ((struct __storeu_epi8*)__P)->__v = __A;
2450 static __inline__ void __DEFAULT_FN_ATTRS256
2451 _mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A)
2453 __builtin_ia32_storedquqi256_mask ((__v32qi *) __P,
2458 static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
2459 _mm_test_epi8_mask (__m128i __A, __m128i __B)
2461 return _mm_cmpneq_epi8_mask (_mm_and_si128(__A, __B), _mm_setzero_si128());
2464 static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
2465 _mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
2467 return _mm_mask_cmpneq_epi8_mask (__U, _mm_and_si128 (__A, __B),
2468 _mm_setzero_si128());
2471 static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
2472 _mm256_test_epi8_mask (__m256i __A, __m256i __B)
2474 return _mm256_cmpneq_epi8_mask (_mm256_and_si256(__A, __B),
2475 _mm256_setzero_si256());
2478 static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
2479 _mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
2481 return _mm256_mask_cmpneq_epi8_mask (__U, _mm256_and_si256(__A, __B),
2482 _mm256_setzero_si256());
2485 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
2486 _mm_test_epi16_mask (__m128i __A, __m128i __B)
2488 return _mm_cmpneq_epi16_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
2491 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
2492 _mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
2494 return _mm_mask_cmpneq_epi16_mask (__U, _mm_and_si128 (__A, __B),
2495 _mm_setzero_si128());
2498 static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
2499 _mm256_test_epi16_mask (__m256i __A, __m256i __B)
2501 return _mm256_cmpneq_epi16_mask (_mm256_and_si256 (__A, __B),
2502 _mm256_setzero_si256 ());
2505 static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
2506 _mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
2508 return _mm256_mask_cmpneq_epi16_mask (__U, _mm256_and_si256(__A, __B),
2509 _mm256_setzero_si256());
2512 static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
2513 _mm_testn_epi8_mask (__m128i __A, __m128i __B)
2515 return _mm_cmpeq_epi8_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
2518 static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
2519 _mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
2521 return _mm_mask_cmpeq_epi8_mask (__U, _mm_and_si128 (__A, __B),
2522 _mm_setzero_si128());
2525 static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
2526 _mm256_testn_epi8_mask (__m256i __A, __m256i __B)
2528 return _mm256_cmpeq_epi8_mask (_mm256_and_si256 (__A, __B),
2529 _mm256_setzero_si256());
2532 static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
2533 _mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
2535 return _mm256_mask_cmpeq_epi8_mask (__U, _mm256_and_si256 (__A, __B),
2536 _mm256_setzero_si256());
2539 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
2540 _mm_testn_epi16_mask (__m128i __A, __m128i __B)
2542 return _mm_cmpeq_epi16_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
2545 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
2546 _mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
2548 return _mm_mask_cmpeq_epi16_mask (__U, _mm_and_si128(__A, __B), _mm_setzero_si128());
2551 static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
2552 _mm256_testn_epi16_mask (__m256i __A, __m256i __B)
2554 return _mm256_cmpeq_epi16_mask (_mm256_and_si256(__A, __B),
2555 _mm256_setzero_si256());
2558 static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
2559 _mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
2561 return _mm256_mask_cmpeq_epi16_mask (__U, _mm256_and_si256 (__A, __B),
2562 _mm256_setzero_si256());
2565 static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
2566 _mm_movepi8_mask (__m128i __A)
2568 return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A);
2571 static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
2572 _mm256_movepi8_mask (__m256i __A)
2574 return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A);
2577 static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
2578 _mm_movepi16_mask (__m128i __A)
2580 return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A);
2583 static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
2584 _mm256_movepi16_mask (__m256i __A)
2586 return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A);
2589 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2590 _mm_movm_epi8 (__mmask16 __A)
2592 return (__m128i) __builtin_ia32_cvtmask2b128 (__A);
2595 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2596 _mm256_movm_epi8 (__mmask32 __A)
2598 return (__m256i) __builtin_ia32_cvtmask2b256 (__A);
2601 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2602 _mm_movm_epi16 (__mmask8 __A)
2604 return (__m128i) __builtin_ia32_cvtmask2w128 (__A);
2607 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2608 _mm256_movm_epi16 (__mmask16 __A)
2610 return (__m256i) __builtin_ia32_cvtmask2w256 (__A);
2613 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2614 _mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A)
2616 return (__m128i)__builtin_ia32_selectb_128(__M,
2617 (__v16qi) _mm_broadcastb_epi8(__A),
2621 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2622 _mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A)
2624 return (__m128i)__builtin_ia32_selectb_128(__M,
2625 (__v16qi) _mm_broadcastb_epi8(__A),
2626 (__v16qi) _mm_setzero_si128());
2629 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2630 _mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A)
2632 return (__m256i)__builtin_ia32_selectb_256(__M,
2633 (__v32qi) _mm256_broadcastb_epi8(__A),
2637 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2638 _mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A)
2640 return (__m256i)__builtin_ia32_selectb_256(__M,
2641 (__v32qi) _mm256_broadcastb_epi8(__A),
2642 (__v32qi) _mm256_setzero_si256());
2645 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2646 _mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
2648 return (__m128i)__builtin_ia32_selectw_128(__M,
2649 (__v8hi) _mm_broadcastw_epi16(__A),
2653 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2654 _mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A)
2656 return (__m128i)__builtin_ia32_selectw_128(__M,
2657 (__v8hi) _mm_broadcastw_epi16(__A),
2658 (__v8hi) _mm_setzero_si128());
2661 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2662 _mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A)
2664 return (__m256i)__builtin_ia32_selectw_256(__M,
2665 (__v16hi) _mm256_broadcastw_epi16(__A),
2669 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2670 _mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A)
2672 return (__m256i)__builtin_ia32_selectw_256(__M,
2673 (__v16hi) _mm256_broadcastw_epi16(__A),
2674 (__v16hi) _mm256_setzero_si256());
2677 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2678 _mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A)
2680 return (__m256i) __builtin_ia32_selectw_256 (__M,
2681 (__v16hi) _mm256_set1_epi16(__A),
2685 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2686 _mm256_maskz_set1_epi16 (__mmask16 __M, short __A)
2688 return (__m256i) __builtin_ia32_selectw_256(__M,
2689 (__v16hi)_mm256_set1_epi16(__A),
2690 (__v16hi) _mm256_setzero_si256());
2693 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2694 _mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A)
2696 return (__m128i) __builtin_ia32_selectw_128(__M,
2697 (__v8hi) _mm_set1_epi16(__A),
2701 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2702 _mm_maskz_set1_epi16 (__mmask8 __M, short __A)
2704 return (__m128i) __builtin_ia32_selectw_128(__M,
2705 (__v8hi) _mm_set1_epi16(__A),
2706 (__v8hi) _mm_setzero_si128());
2709 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2710 _mm_permutexvar_epi16 (__m128i __A, __m128i __B)
2712 return (__m128i)__builtin_ia32_permvarhi128((__v8hi) __B, (__v8hi) __A);
2715 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2716 _mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
2718 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
2719 (__v8hi)_mm_permutexvar_epi16(__A, __B),
2720 (__v8hi) _mm_setzero_si128());
2723 static __inline__ __m128i __DEFAULT_FN_ATTRS128
2724 _mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
2727 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
2728 (__v8hi)_mm_permutexvar_epi16(__A, __B),
2732 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2733 _mm256_permutexvar_epi16 (__m256i __A, __m256i __B)
2735 return (__m256i)__builtin_ia32_permvarhi256((__v16hi) __B, (__v16hi) __A);
2738 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2739 _mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A,
2742 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
2743 (__v16hi)_mm256_permutexvar_epi16(__A, __B),
2744 (__v16hi)_mm256_setzero_si256());
2747 static __inline__ __m256i __DEFAULT_FN_ATTRS256
2748 _mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
2751 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
2752 (__v16hi)_mm256_permutexvar_epi16(__A, __B),
2756 #define _mm_mask_alignr_epi8(W, U, A, B, N) \
2757 (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \
2758 (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \
2759 (__v16qi)(__m128i)(W))
2761 #define _mm_maskz_alignr_epi8(U, A, B, N) \
2762 (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \
2763 (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \
2764 (__v16qi)_mm_setzero_si128())
2766 #define _mm256_mask_alignr_epi8(W, U, A, B, N) \
2767 (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \
2768 (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \
2769 (__v32qi)(__m256i)(W))
2771 #define _mm256_maskz_alignr_epi8(U, A, B, N) \
2772 (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \
2773 (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \
2774 (__v32qi)_mm256_setzero_si256())
2776 #define _mm_dbsad_epu8(A, B, imm) \
2777 (__m128i)__builtin_ia32_dbpsadbw128((__v16qi)(__m128i)(A), \
2778 (__v16qi)(__m128i)(B), (int)(imm))
2780 #define _mm_mask_dbsad_epu8(W, U, A, B, imm) \
2781 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
2782 (__v8hi)_mm_dbsad_epu8((A), (B), (imm)), \
2783 (__v8hi)(__m128i)(W))
2785 #define _mm_maskz_dbsad_epu8(U, A, B, imm) \
2786 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
2787 (__v8hi)_mm_dbsad_epu8((A), (B), (imm)), \
2788 (__v8hi)_mm_setzero_si128())
2790 #define _mm256_dbsad_epu8(A, B, imm) \
2791 (__m256i)__builtin_ia32_dbpsadbw256((__v32qi)(__m256i)(A), \
2792 (__v32qi)(__m256i)(B), (int)(imm))
2794 #define _mm256_mask_dbsad_epu8(W, U, A, B, imm) \
2795 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
2796 (__v16hi)_mm256_dbsad_epu8((A), (B), (imm)), \
2797 (__v16hi)(__m256i)(W))
2799 #define _mm256_maskz_dbsad_epu8(U, A, B, imm) \
2800 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
2801 (__v16hi)_mm256_dbsad_epu8((A), (B), (imm)), \
2802 (__v16hi)_mm256_setzero_si256())
2804 #undef __DEFAULT_FN_ATTRS128
2805 #undef __DEFAULT_FN_ATTRS256
2807 #endif /* __AVX512VLBWINTRIN_H */