Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
/*===---- avx512vlbwintrin.h - AVX512VL and AVX512BW intrinsics ------------===
2
 *
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
6
 *
7
 *===-----------------------------------------------------------------------===
8
 */
9
 
10
#ifndef __IMMINTRIN_H
11
#error "Never use <avx512vlbwintrin.h> directly; include <immintrin.h> instead."
12
#endif
13
 
14
#ifndef __AVX512VLBWINTRIN_H
15
#define __AVX512VLBWINTRIN_H
16
 
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)))
20
 
21
/* Integer compare */
22
 
23
#define _mm_cmp_epi8_mask(a, b, p) \
24
  ((__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \
25
                                          (__v16qi)(__m128i)(b), (int)(p), \
26
                                          (__mmask16)-1))
27
 
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), \
31
                                          (__mmask16)(m)))
32
 
33
#define _mm_cmp_epu8_mask(a, b, p) \
34
  ((__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \
35
                                           (__v16qi)(__m128i)(b), (int)(p), \
36
                                           (__mmask16)-1))
37
 
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), \
41
                                           (__mmask16)(m)))
42
 
43
#define _mm256_cmp_epi8_mask(a, b, p) \
44
  ((__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \
45
                                          (__v32qi)(__m256i)(b), (int)(p), \
46
                                          (__mmask32)-1))
47
 
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), \
51
                                          (__mmask32)(m)))
52
 
53
#define _mm256_cmp_epu8_mask(a, b, p) \
54
  ((__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \
55
                                           (__v32qi)(__m256i)(b), (int)(p), \
56
                                           (__mmask32)-1))
57
 
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), \
61
                                           (__mmask32)(m)))
62
 
63
#define _mm_cmp_epi16_mask(a, b, p) \
64
  ((__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \
65
                                         (__v8hi)(__m128i)(b), (int)(p), \
66
                                         (__mmask8)-1))
67
 
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), \
71
                                         (__mmask8)(m)))
72
 
73
#define _mm_cmp_epu16_mask(a, b, p) \
74
  ((__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \
75
                                          (__v8hi)(__m128i)(b), (int)(p), \
76
                                          (__mmask8)-1))
77
 
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), \
81
                                          (__mmask8)(m)))
82
 
83
#define _mm256_cmp_epi16_mask(a, b, p) \
84
  ((__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \
85
                                          (__v16hi)(__m256i)(b), (int)(p), \
86
                                          (__mmask16)-1))
87
 
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), \
91
                                          (__mmask16)(m)))
92
 
93
#define _mm256_cmp_epu16_mask(a, b, p) \
94
  ((__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \
95
                                           (__v16hi)(__m256i)(b), (int)(p), \
96
                                           (__mmask16)-1))
97
 
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), \
101
                                           (__mmask16)(m)))
102
 
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)
127
 
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)
152
 
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)
177
 
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)
202
 
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)
227
 
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)
252
 
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)
277
 
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)
302
 
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),
307
                                             (__v32qi)__W);
308
}
309
 
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());
315
}
316
 
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),
321
                                             (__v16hi)__W);
322
}
323
 
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());
329
}
330
 
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),
335
                                             (__v32qi)__W);
336
}
337
 
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());
343
}
344
 
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),
349
                                             (__v16hi)__W);
350
}
351
 
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());
357
}
358
 
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),
363
                                             (__v16qi)__W);
364
}
365
 
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());
371
}
372
 
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),
377
                                             (__v8hi)__W);
378
}
379
 
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());
385
}
386
 
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),
391
                                             (__v16qi)__W);
392
}
393
 
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());
399
}
400
 
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),
405
                                             (__v8hi)__W);
406
}
407
 
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());
413
}
414
 
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),
419
                                             (__v16hi)__W);
420
}
421
 
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());
427
}
428
 
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),
433
                                             (__v8hi)__W);
434
}
435
 
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());
441
}
442
 
443
static __inline__ __m128i __DEFAULT_FN_ATTRS128
444
_mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W)
445
{
446
  return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
447
              (__v16qi) __W,
448
              (__v16qi) __A);
449
}
450
 
451
static __inline__ __m256i __DEFAULT_FN_ATTRS256
452
_mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W)
453
{
454
  return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
455
               (__v32qi) __W,
456
               (__v32qi) __A);
457
}
458
 
459
static __inline__ __m128i __DEFAULT_FN_ATTRS128
460
_mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W)
461
{
462
  return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
463
               (__v8hi) __W,
464
               (__v8hi) __A);
465
}
466
 
467
static __inline__ __m256i __DEFAULT_FN_ATTRS256
468
_mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W)
469
{
470
  return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
471
               (__v16hi) __W,
472
               (__v16hi) __A);
473
}
474
 
475
static __inline__ __m128i __DEFAULT_FN_ATTRS128
476
_mm_mask_abs_epi8(__m128i __W, __mmask16 __U, __m128i __A)
477
{
478
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
479
                                             (__v16qi)_mm_abs_epi8(__A),
480
                                             (__v16qi)__W);
481
}
482
 
483
static __inline__ __m128i __DEFAULT_FN_ATTRS128
484
_mm_maskz_abs_epi8(__mmask16 __U, __m128i __A)
485
{
486
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
487
                                             (__v16qi)_mm_abs_epi8(__A),
488
                                             (__v16qi)_mm_setzero_si128());
489
}
490
 
491
static __inline__ __m256i __DEFAULT_FN_ATTRS256
492
_mm256_mask_abs_epi8(__m256i __W, __mmask32 __U, __m256i __A)
493
{
494
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
495
                                             (__v32qi)_mm256_abs_epi8(__A),
496
                                             (__v32qi)__W);
497
}
498
 
499
static __inline__ __m256i __DEFAULT_FN_ATTRS256
500
_mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A)
501
{
502
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
503
                                             (__v32qi)_mm256_abs_epi8(__A),
504
                                             (__v32qi)_mm256_setzero_si256());
505
}
506
 
507
static __inline__ __m128i __DEFAULT_FN_ATTRS128
508
_mm_mask_abs_epi16(__m128i __W, __mmask8 __U, __m128i __A)
509
{
510
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
511
                                             (__v8hi)_mm_abs_epi16(__A),
512
                                             (__v8hi)__W);
513
}
514
 
515
static __inline__ __m128i __DEFAULT_FN_ATTRS128
516
_mm_maskz_abs_epi16(__mmask8 __U, __m128i __A)
517
{
518
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
519
                                             (__v8hi)_mm_abs_epi16(__A),
520
                                             (__v8hi)_mm_setzero_si128());
521
}
522
 
523
static __inline__ __m256i __DEFAULT_FN_ATTRS256
524
_mm256_mask_abs_epi16(__m256i __W, __mmask16 __U, __m256i __A)
525
{
526
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
527
                                             (__v16hi)_mm256_abs_epi16(__A),
528
                                             (__v16hi)__W);
529
}
530
 
531
static __inline__ __m256i __DEFAULT_FN_ATTRS256
532
_mm256_maskz_abs_epi16(__mmask16 __U, __m256i __A)
533
{
534
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
535
                                             (__v16hi)_mm256_abs_epi16(__A),
536
                                             (__v16hi)_mm256_setzero_si256());
537
}
538
 
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());
544
}
545
 
546
static __inline__ __m128i __DEFAULT_FN_ATTRS128
547
_mm_mask_packs_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
548
{
549
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
550
                                             (__v8hi)_mm_packs_epi32(__A, __B),
551
                                             (__v8hi)__W);
552
}
553
 
554
static __inline__ __m256i __DEFAULT_FN_ATTRS256
555
_mm256_maskz_packs_epi32(__mmask16 __M, __m256i __A, __m256i __B)
556
{
557
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
558
                                          (__v16hi)_mm256_packs_epi32(__A, __B),
559
                                          (__v16hi)_mm256_setzero_si256());
560
}
561
 
562
static __inline__ __m256i __DEFAULT_FN_ATTRS256
563
_mm256_mask_packs_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
564
{
565
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
566
                                          (__v16hi)_mm256_packs_epi32(__A, __B),
567
                                          (__v16hi)__W);
568
}
569
 
570
static __inline__ __m128i __DEFAULT_FN_ATTRS128
571
_mm_maskz_packs_epi16(__mmask16 __M, __m128i __A, __m128i __B)
572
{
573
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
574
                                             (__v16qi)_mm_packs_epi16(__A, __B),
575
                                             (__v16qi)_mm_setzero_si128());
576
}
577
 
578
static __inline__ __m128i __DEFAULT_FN_ATTRS128
579
_mm_mask_packs_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
580
{
581
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
582
                                             (__v16qi)_mm_packs_epi16(__A, __B),
583
                                             (__v16qi)__W);
584
}
585
 
586
static __inline__ __m256i __DEFAULT_FN_ATTRS256
587
_mm256_maskz_packs_epi16(__mmask32 __M, __m256i __A, __m256i __B)
588
{
589
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
590
                                          (__v32qi)_mm256_packs_epi16(__A, __B),
591
                                          (__v32qi)_mm256_setzero_si256());
592
}
593
 
594
static __inline__ __m256i __DEFAULT_FN_ATTRS256
595
_mm256_mask_packs_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
596
{
597
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
598
                                          (__v32qi)_mm256_packs_epi16(__A, __B),
599
                                          (__v32qi)__W);
600
}
601
 
602
static __inline__ __m128i __DEFAULT_FN_ATTRS128
603
_mm_maskz_packus_epi32(__mmask8 __M, __m128i __A, __m128i __B)
604
{
605
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
606
                                             (__v8hi)_mm_packus_epi32(__A, __B),
607
                                             (__v8hi)_mm_setzero_si128());
608
}
609
 
610
static __inline__ __m128i __DEFAULT_FN_ATTRS128
611
_mm_mask_packus_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
612
{
613
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
614
                                             (__v8hi)_mm_packus_epi32(__A, __B),
615
                                             (__v8hi)__W);
616
}
617
 
618
static __inline__ __m256i __DEFAULT_FN_ATTRS256
619
_mm256_maskz_packus_epi32(__mmask16 __M, __m256i __A, __m256i __B)
620
{
621
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
622
                                         (__v16hi)_mm256_packus_epi32(__A, __B),
623
                                         (__v16hi)_mm256_setzero_si256());
624
}
625
 
626
static __inline__ __m256i __DEFAULT_FN_ATTRS256
627
_mm256_mask_packus_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
628
{
629
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
630
                                         (__v16hi)_mm256_packus_epi32(__A, __B),
631
                                         (__v16hi)__W);
632
}
633
 
634
static __inline__ __m128i __DEFAULT_FN_ATTRS128
635
_mm_maskz_packus_epi16(__mmask16 __M, __m128i __A, __m128i __B)
636
{
637
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
638
                                            (__v16qi)_mm_packus_epi16(__A, __B),
639
                                            (__v16qi)_mm_setzero_si128());
640
}
641
 
642
static __inline__ __m128i __DEFAULT_FN_ATTRS128
643
_mm_mask_packus_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
644
{
645
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
646
                                            (__v16qi)_mm_packus_epi16(__A, __B),
647
                                            (__v16qi)__W);
648
}
649
 
650
static __inline__ __m256i __DEFAULT_FN_ATTRS256
651
_mm256_maskz_packus_epi16(__mmask32 __M, __m256i __A, __m256i __B)
652
{
653
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
654
                                         (__v32qi)_mm256_packus_epi16(__A, __B),
655
                                         (__v32qi)_mm256_setzero_si256());
656
}
657
 
658
static __inline__ __m256i __DEFAULT_FN_ATTRS256
659
_mm256_mask_packus_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
660
{
661
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
662
                                         (__v32qi)_mm256_packus_epi16(__A, __B),
663
                                         (__v32qi)__W);
664
}
665
 
666
static __inline__ __m128i __DEFAULT_FN_ATTRS128
667
_mm_mask_adds_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
668
{
669
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
670
                                             (__v16qi)_mm_adds_epi8(__A, __B),
671
                                             (__v16qi)__W);
672
}
673
 
674
static __inline__ __m128i __DEFAULT_FN_ATTRS128
675
_mm_maskz_adds_epi8(__mmask16 __U, __m128i __A, __m128i __B)
676
{
677
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
678
                                             (__v16qi)_mm_adds_epi8(__A, __B),
679
                                             (__v16qi)_mm_setzero_si128());
680
}
681
 
682
static __inline__ __m256i __DEFAULT_FN_ATTRS256
683
_mm256_mask_adds_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
684
{
685
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
686
                                            (__v32qi)_mm256_adds_epi8(__A, __B),
687
                                            (__v32qi)__W);
688
}
689
 
690
static __inline__ __m256i __DEFAULT_FN_ATTRS256
691
_mm256_maskz_adds_epi8(__mmask32 __U, __m256i __A, __m256i __B)
692
{
693
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
694
                                            (__v32qi)_mm256_adds_epi8(__A, __B),
695
                                            (__v32qi)_mm256_setzero_si256());
696
}
697
 
698
static __inline__ __m128i __DEFAULT_FN_ATTRS128
699
_mm_mask_adds_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
700
{
701
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
702
                                             (__v8hi)_mm_adds_epi16(__A, __B),
703
                                             (__v8hi)__W);
704
}
705
 
706
static __inline__ __m128i __DEFAULT_FN_ATTRS128
707
_mm_maskz_adds_epi16(__mmask8 __U, __m128i __A, __m128i __B)
708
{
709
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
710
                                             (__v8hi)_mm_adds_epi16(__A, __B),
711
                                             (__v8hi)_mm_setzero_si128());
712
}
713
 
714
static __inline__ __m256i __DEFAULT_FN_ATTRS256
715
_mm256_mask_adds_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
716
{
717
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
718
                                           (__v16hi)_mm256_adds_epi16(__A, __B),
719
                                           (__v16hi)__W);
720
}
721
 
722
static __inline__ __m256i __DEFAULT_FN_ATTRS256
723
_mm256_maskz_adds_epi16(__mmask16 __U, __m256i __A, __m256i __B)
724
{
725
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
726
                                           (__v16hi)_mm256_adds_epi16(__A, __B),
727
                                           (__v16hi)_mm256_setzero_si256());
728
}
729
 
730
static __inline__ __m128i __DEFAULT_FN_ATTRS128
731
_mm_mask_adds_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
732
{
733
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
734
                                             (__v16qi)_mm_adds_epu8(__A, __B),
735
                                             (__v16qi)__W);
736
}
737
 
738
static __inline__ __m128i __DEFAULT_FN_ATTRS128
739
_mm_maskz_adds_epu8(__mmask16 __U, __m128i __A, __m128i __B)
740
{
741
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
742
                                             (__v16qi)_mm_adds_epu8(__A, __B),
743
                                             (__v16qi)_mm_setzero_si128());
744
}
745
 
746
static __inline__ __m256i __DEFAULT_FN_ATTRS256
747
_mm256_mask_adds_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
748
{
749
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
750
                                            (__v32qi)_mm256_adds_epu8(__A, __B),
751
                                            (__v32qi)__W);
752
}
753
 
754
static __inline__ __m256i __DEFAULT_FN_ATTRS256
755
_mm256_maskz_adds_epu8(__mmask32 __U, __m256i __A, __m256i __B)
756
{
757
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
758
                                            (__v32qi)_mm256_adds_epu8(__A, __B),
759
                                            (__v32qi)_mm256_setzero_si256());
760
}
761
 
762
static __inline__ __m128i __DEFAULT_FN_ATTRS128
763
_mm_mask_adds_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
764
{
765
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
766
                                             (__v8hi)_mm_adds_epu16(__A, __B),
767
                                             (__v8hi)__W);
768
}
769
 
770
static __inline__ __m128i __DEFAULT_FN_ATTRS128
771
_mm_maskz_adds_epu16(__mmask8 __U, __m128i __A, __m128i __B)
772
{
773
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
774
                                             (__v8hi)_mm_adds_epu16(__A, __B),
775
                                             (__v8hi)_mm_setzero_si128());
776
}
777
 
778
static __inline__ __m256i __DEFAULT_FN_ATTRS256
779
_mm256_mask_adds_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
780
{
781
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
782
                                           (__v16hi)_mm256_adds_epu16(__A, __B),
783
                                           (__v16hi)__W);
784
}
785
 
786
static __inline__ __m256i __DEFAULT_FN_ATTRS256
787
_mm256_maskz_adds_epu16(__mmask16 __U, __m256i __A, __m256i __B)
788
{
789
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
790
                                           (__v16hi)_mm256_adds_epu16(__A, __B),
791
                                           (__v16hi)_mm256_setzero_si256());
792
}
793
 
794
static __inline__ __m128i __DEFAULT_FN_ATTRS128
795
_mm_mask_avg_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
796
{
797
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
798
                                             (__v16qi)_mm_avg_epu8(__A, __B),
799
                                             (__v16qi)__W);
800
}
801
 
802
static __inline__ __m128i __DEFAULT_FN_ATTRS128
803
_mm_maskz_avg_epu8(__mmask16 __U, __m128i __A, __m128i __B)
804
{
805
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
806
                                             (__v16qi)_mm_avg_epu8(__A, __B),
807
                                             (__v16qi)_mm_setzero_si128());
808
}
809
 
810
static __inline__ __m256i __DEFAULT_FN_ATTRS256
811
_mm256_mask_avg_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
812
{
813
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
814
                                             (__v32qi)_mm256_avg_epu8(__A, __B),
815
                                             (__v32qi)__W);
816
}
817
 
818
static __inline__ __m256i __DEFAULT_FN_ATTRS256
819
_mm256_maskz_avg_epu8(__mmask32 __U, __m256i __A, __m256i __B)
820
{
821
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
822
                                             (__v32qi)_mm256_avg_epu8(__A, __B),
823
                                             (__v32qi)_mm256_setzero_si256());
824
}
825
 
826
static __inline__ __m128i __DEFAULT_FN_ATTRS128
827
_mm_mask_avg_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
828
{
829
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
830
                                             (__v8hi)_mm_avg_epu16(__A, __B),
831
                                             (__v8hi)__W);
832
}
833
 
834
static __inline__ __m128i __DEFAULT_FN_ATTRS128
835
_mm_maskz_avg_epu16(__mmask8 __U, __m128i __A, __m128i __B)
836
{
837
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
838
                                             (__v8hi)_mm_avg_epu16(__A, __B),
839
                                             (__v8hi)_mm_setzero_si128());
840
}
841
 
842
static __inline__ __m256i __DEFAULT_FN_ATTRS256
843
_mm256_mask_avg_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
844
{
845
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
846
                                            (__v16hi)_mm256_avg_epu16(__A, __B),
847
                                            (__v16hi)__W);
848
}
849
 
850
static __inline__ __m256i __DEFAULT_FN_ATTRS256
851
_mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B)
852
{
853
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
854
                                            (__v16hi)_mm256_avg_epu16(__A, __B),
855
                                            (__v16hi)_mm256_setzero_si256());
856
}
857
 
858
static __inline__ __m128i __DEFAULT_FN_ATTRS128
859
_mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B)
860
{
861
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
862
                                             (__v16qi)_mm_max_epi8(__A, __B),
863
                                             (__v16qi)_mm_setzero_si128());
864
}
865
 
866
static __inline__ __m128i __DEFAULT_FN_ATTRS128
867
_mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
868
{
869
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
870
                                             (__v16qi)_mm_max_epi8(__A, __B),
871
                                             (__v16qi)__W);
872
}
873
 
874
static __inline__ __m256i __DEFAULT_FN_ATTRS256
875
_mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B)
876
{
877
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
878
                                             (__v32qi)_mm256_max_epi8(__A, __B),
879
                                             (__v32qi)_mm256_setzero_si256());
880
}
881
 
882
static __inline__ __m256i __DEFAULT_FN_ATTRS256
883
_mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
884
{
885
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
886
                                             (__v32qi)_mm256_max_epi8(__A, __B),
887
                                             (__v32qi)__W);
888
}
889
 
890
static __inline__ __m128i __DEFAULT_FN_ATTRS128
891
_mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B)
892
{
893
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
894
                                             (__v8hi)_mm_max_epi16(__A, __B),
895
                                             (__v8hi)_mm_setzero_si128());
896
}
897
 
898
static __inline__ __m128i __DEFAULT_FN_ATTRS128
899
_mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
900
{
901
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
902
                                             (__v8hi)_mm_max_epi16(__A, __B),
903
                                             (__v8hi)__W);
904
}
905
 
906
static __inline__ __m256i __DEFAULT_FN_ATTRS256
907
_mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B)
908
{
909
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
910
                                            (__v16hi)_mm256_max_epi16(__A, __B),
911
                                            (__v16hi)_mm256_setzero_si256());
912
}
913
 
914
static __inline__ __m256i __DEFAULT_FN_ATTRS256
915
_mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
916
{
917
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
918
                                            (__v16hi)_mm256_max_epi16(__A, __B),
919
                                            (__v16hi)__W);
920
}
921
 
922
static __inline__ __m128i __DEFAULT_FN_ATTRS128
923
_mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B)
924
{
925
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
926
                                             (__v16qi)_mm_max_epu8(__A, __B),
927
                                             (__v16qi)_mm_setzero_si128());
928
}
929
 
930
static __inline__ __m128i __DEFAULT_FN_ATTRS128
931
_mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
932
{
933
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
934
                                             (__v16qi)_mm_max_epu8(__A, __B),
935
                                             (__v16qi)__W);
936
}
937
 
938
static __inline__ __m256i __DEFAULT_FN_ATTRS256
939
_mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
940
{
941
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
942
                                             (__v32qi)_mm256_max_epu8(__A, __B),
943
                                             (__v32qi)_mm256_setzero_si256());
944
}
945
 
946
static __inline__ __m256i __DEFAULT_FN_ATTRS256
947
_mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
948
{
949
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
950
                                             (__v32qi)_mm256_max_epu8(__A, __B),
951
                                             (__v32qi)__W);
952
}
953
 
954
static __inline__ __m128i __DEFAULT_FN_ATTRS128
955
_mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B)
956
{
957
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
958
                                             (__v8hi)_mm_max_epu16(__A, __B),
959
                                             (__v8hi)_mm_setzero_si128());
960
}
961
 
962
static __inline__ __m128i __DEFAULT_FN_ATTRS128
963
_mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
964
{
965
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
966
                                             (__v8hi)_mm_max_epu16(__A, __B),
967
                                             (__v8hi)__W);
968
}
969
 
970
static __inline__ __m256i __DEFAULT_FN_ATTRS256
971
_mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B)
972
{
973
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
974
                                            (__v16hi)_mm256_max_epu16(__A, __B),
975
                                            (__v16hi)_mm256_setzero_si256());
976
}
977
 
978
static __inline__ __m256i __DEFAULT_FN_ATTRS256
979
_mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
980
{
981
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
982
                                            (__v16hi)_mm256_max_epu16(__A, __B),
983
                                            (__v16hi)__W);
984
}
985
 
986
static __inline__ __m128i __DEFAULT_FN_ATTRS128
987
_mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B)
988
{
989
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
990
                                             (__v16qi)_mm_min_epi8(__A, __B),
991
                                             (__v16qi)_mm_setzero_si128());
992
}
993
 
994
static __inline__ __m128i __DEFAULT_FN_ATTRS128
995
_mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
996
{
997
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
998
                                             (__v16qi)_mm_min_epi8(__A, __B),
999
                                             (__v16qi)__W);
1000
}
1001
 
1002
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1003
_mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B)
1004
{
1005
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1006
                                             (__v32qi)_mm256_min_epi8(__A, __B),
1007
                                             (__v32qi)_mm256_setzero_si256());
1008
}
1009
 
1010
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1011
_mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
1012
{
1013
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1014
                                             (__v32qi)_mm256_min_epi8(__A, __B),
1015
                                             (__v32qi)__W);
1016
}
1017
 
1018
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1019
_mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B)
1020
{
1021
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1022
                                             (__v8hi)_mm_min_epi16(__A, __B),
1023
                                             (__v8hi)_mm_setzero_si128());
1024
}
1025
 
1026
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1027
_mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
1028
{
1029
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1030
                                             (__v8hi)_mm_min_epi16(__A, __B),
1031
                                             (__v8hi)__W);
1032
}
1033
 
1034
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1035
_mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B)
1036
{
1037
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1038
                                            (__v16hi)_mm256_min_epi16(__A, __B),
1039
                                            (__v16hi)_mm256_setzero_si256());
1040
}
1041
 
1042
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1043
_mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
1044
{
1045
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1046
                                            (__v16hi)_mm256_min_epi16(__A, __B),
1047
                                            (__v16hi)__W);
1048
}
1049
 
1050
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1051
_mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B)
1052
{
1053
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1054
                                             (__v16qi)_mm_min_epu8(__A, __B),
1055
                                             (__v16qi)_mm_setzero_si128());
1056
}
1057
 
1058
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1059
_mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B)
1060
{
1061
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
1062
                                             (__v16qi)_mm_min_epu8(__A, __B),
1063
                                             (__v16qi)__W);
1064
}
1065
 
1066
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1067
_mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B)
1068
{
1069
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1070
                                             (__v32qi)_mm256_min_epu8(__A, __B),
1071
                                             (__v32qi)_mm256_setzero_si256());
1072
}
1073
 
1074
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1075
_mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B)
1076
{
1077
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
1078
                                             (__v32qi)_mm256_min_epu8(__A, __B),
1079
                                             (__v32qi)__W);
1080
}
1081
 
1082
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1083
_mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B)
1084
{
1085
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1086
                                             (__v8hi)_mm_min_epu16(__A, __B),
1087
                                             (__v8hi)_mm_setzero_si128());
1088
}
1089
 
1090
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1091
_mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
1092
{
1093
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
1094
                                             (__v8hi)_mm_min_epu16(__A, __B),
1095
                                             (__v8hi)__W);
1096
}
1097
 
1098
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1099
_mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B)
1100
{
1101
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1102
                                            (__v16hi)_mm256_min_epu16(__A, __B),
1103
                                            (__v16hi)_mm256_setzero_si256());
1104
}
1105
 
1106
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1107
_mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B)
1108
{
1109
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
1110
                                            (__v16hi)_mm256_min_epu16(__A, __B),
1111
                                            (__v16hi)__W);
1112
}
1113
 
1114
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1115
_mm_mask_shuffle_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1116
{
1117
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1118
                                            (__v16qi)_mm_shuffle_epi8(__A, __B),
1119
                                            (__v16qi)__W);
1120
}
1121
 
1122
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1123
_mm_maskz_shuffle_epi8(__mmask16 __U, __m128i __A, __m128i __B)
1124
{
1125
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1126
                                            (__v16qi)_mm_shuffle_epi8(__A, __B),
1127
                                            (__v16qi)_mm_setzero_si128());
1128
}
1129
 
1130
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1131
_mm256_mask_shuffle_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1132
{
1133
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1134
                                         (__v32qi)_mm256_shuffle_epi8(__A, __B),
1135
                                         (__v32qi)__W);
1136
}
1137
 
1138
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1139
_mm256_maskz_shuffle_epi8(__mmask32 __U, __m256i __A, __m256i __B)
1140
{
1141
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1142
                                         (__v32qi)_mm256_shuffle_epi8(__A, __B),
1143
                                         (__v32qi)_mm256_setzero_si256());
1144
}
1145
 
1146
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1147
_mm_mask_subs_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1148
{
1149
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1150
                                             (__v16qi)_mm_subs_epi8(__A, __B),
1151
                                             (__v16qi)__W);
1152
}
1153
 
1154
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1155
_mm_maskz_subs_epi8(__mmask16 __U, __m128i __A, __m128i __B)
1156
{
1157
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1158
                                             (__v16qi)_mm_subs_epi8(__A, __B),
1159
                                             (__v16qi)_mm_setzero_si128());
1160
}
1161
 
1162
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1163
_mm256_mask_subs_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1164
{
1165
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1166
                                            (__v32qi)_mm256_subs_epi8(__A, __B),
1167
                                            (__v32qi)__W);
1168
}
1169
 
1170
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1171
_mm256_maskz_subs_epi8(__mmask32 __U, __m256i __A, __m256i __B)
1172
{
1173
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1174
                                            (__v32qi)_mm256_subs_epi8(__A, __B),
1175
                                            (__v32qi)_mm256_setzero_si256());
1176
}
1177
 
1178
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1179
_mm_mask_subs_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1180
{
1181
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1182
                                             (__v8hi)_mm_subs_epi16(__A, __B),
1183
                                             (__v8hi)__W);
1184
}
1185
 
1186
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1187
_mm_maskz_subs_epi16(__mmask8 __U, __m128i __A, __m128i __B)
1188
{
1189
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1190
                                             (__v8hi)_mm_subs_epi16(__A, __B),
1191
                                             (__v8hi)_mm_setzero_si128());
1192
}
1193
 
1194
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1195
_mm256_mask_subs_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
1196
{
1197
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1198
                                           (__v16hi)_mm256_subs_epi16(__A, __B),
1199
                                           (__v16hi)__W);
1200
}
1201
 
1202
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1203
_mm256_maskz_subs_epi16(__mmask16 __U, __m256i __A, __m256i __B)
1204
{
1205
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1206
                                           (__v16hi)_mm256_subs_epi16(__A, __B),
1207
                                           (__v16hi)_mm256_setzero_si256());
1208
}
1209
 
1210
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1211
_mm_mask_subs_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B)
1212
{
1213
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1214
                                             (__v16qi)_mm_subs_epu8(__A, __B),
1215
                                             (__v16qi)__W);
1216
}
1217
 
1218
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1219
_mm_maskz_subs_epu8(__mmask16 __U, __m128i __A, __m128i __B)
1220
{
1221
  return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
1222
                                             (__v16qi)_mm_subs_epu8(__A, __B),
1223
                                             (__v16qi)_mm_setzero_si128());
1224
}
1225
 
1226
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1227
_mm256_mask_subs_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B)
1228
{
1229
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1230
                                            (__v32qi)_mm256_subs_epu8(__A, __B),
1231
                                            (__v32qi)__W);
1232
}
1233
 
1234
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1235
_mm256_maskz_subs_epu8(__mmask32 __U, __m256i __A, __m256i __B)
1236
{
1237
  return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
1238
                                            (__v32qi)_mm256_subs_epu8(__A, __B),
1239
                                            (__v32qi)_mm256_setzero_si256());
1240
}
1241
 
1242
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1243
_mm_mask_subs_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1244
{
1245
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1246
                                             (__v8hi)_mm_subs_epu16(__A, __B),
1247
                                             (__v8hi)__W);
1248
}
1249
 
1250
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1251
_mm_maskz_subs_epu16(__mmask8 __U, __m128i __A, __m128i __B)
1252
{
1253
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1254
                                             (__v8hi)_mm_subs_epu16(__A, __B),
1255
                                             (__v8hi)_mm_setzero_si128());
1256
}
1257
 
1258
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1259
_mm256_mask_subs_epu16(__m256i __W, __mmask16 __U, __m256i __A,
1260
      __m256i __B) {
1261
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1262
                                           (__v16hi)_mm256_subs_epu16(__A, __B),
1263
                                           (__v16hi)__W);
1264
}
1265
 
1266
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1267
_mm256_maskz_subs_epu16(__mmask16 __U, __m256i __A, __m256i __B)
1268
{
1269
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1270
                                           (__v16hi)_mm256_subs_epu16(__A, __B),
1271
                                           (__v16hi)_mm256_setzero_si256());
1272
}
1273
 
1274
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1275
_mm_permutex2var_epi16(__m128i __A, __m128i __I, __m128i __B)
1276
{
1277
  return (__m128i)__builtin_ia32_vpermi2varhi128((__v8hi)__A, (__v8hi)__I,
1278
                                                 (__v8hi) __B);
1279
}
1280
 
1281
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1282
_mm_mask_permutex2var_epi16(__m128i __A, __mmask8 __U, __m128i __I,
1283
                            __m128i __B)
1284
{
1285
  return (__m128i)__builtin_ia32_selectw_128(__U,
1286
                                  (__v8hi)_mm_permutex2var_epi16(__A, __I, __B),
1287
                                  (__v8hi)__A);
1288
}
1289
 
1290
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1291
_mm_mask2_permutex2var_epi16(__m128i __A, __m128i __I, __mmask8 __U,
1292
                             __m128i __B)
1293
{
1294
  return (__m128i)__builtin_ia32_selectw_128(__U,
1295
                                  (__v8hi)_mm_permutex2var_epi16(__A, __I, __B),
1296
                                  (__v8hi)__I);
1297
}
1298
 
1299
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1300
_mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I,
1301
            __m128i __B)
1302
{
1303
  return (__m128i)__builtin_ia32_selectw_128(__U,
1304
                                  (__v8hi)_mm_permutex2var_epi16(__A, __I, __B),
1305
                                  (__v8hi)_mm_setzero_si128());
1306
}
1307
 
1308
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1309
_mm256_permutex2var_epi16(__m256i __A, __m256i __I, __m256i __B)
1310
{
1311
  return (__m256i)__builtin_ia32_vpermi2varhi256((__v16hi)__A, (__v16hi)__I,
1312
                                                 (__v16hi)__B);
1313
}
1314
 
1315
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1316
_mm256_mask_permutex2var_epi16(__m256i __A, __mmask16 __U, __m256i __I,
1317
                               __m256i __B)
1318
{
1319
  return (__m256i)__builtin_ia32_selectw_256(__U,
1320
                              (__v16hi)_mm256_permutex2var_epi16(__A, __I, __B),
1321
                              (__v16hi)__A);
1322
}
1323
 
1324
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1325
_mm256_mask2_permutex2var_epi16(__m256i __A, __m256i __I, __mmask16 __U,
1326
                                __m256i __B)
1327
{
1328
  return (__m256i)__builtin_ia32_selectw_256(__U,
1329
                              (__v16hi)_mm256_permutex2var_epi16(__A, __I, __B),
1330
                              (__v16hi)__I);
1331
}
1332
 
1333
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1334
_mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A, __m256i __I,
1335
                                 __m256i __B)
1336
{
1337
  return (__m256i)__builtin_ia32_selectw_256(__U,
1338
                              (__v16hi)_mm256_permutex2var_epi16(__A, __I, __B),
1339
                              (__v16hi)_mm256_setzero_si256());
1340
}
1341
 
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),
1346
                                            (__v8hi)__W);
1347
}
1348
 
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());
1354
}
1355
 
1356
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1357
_mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X,
1358
                          __m256i __Y) {
1359
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1360
                                        (__v16hi)_mm256_maddubs_epi16(__X, __Y),
1361
                                        (__v16hi)__W);
1362
}
1363
 
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());
1369
}
1370
 
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),
1375
                                             (__v4si)__W);
1376
}
1377
 
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());
1383
}
1384
 
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),
1389
                                            (__v8si)__W);
1390
}
1391
 
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());
1397
}
1398
 
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(),
1403
               (__mmask8) -1);
1404
}
1405
 
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,
1409
               (__v16qi) __O,
1410
                __M);
1411
}
1412
 
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(),
1417
               __M);
1418
}
1419
 
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(),
1424
               (__mmask16) -1);
1425
}
1426
 
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,
1430
               (__v16qi) __O,
1431
                __M);
1432
}
1433
 
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(),
1438
               __M);
1439
}
1440
 
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(),
1445
                (__mmask8) -1);
1446
}
1447
 
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,
1451
                (__v16qi) __O,
1452
                __M);
1453
}
1454
 
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(),
1459
                __M);
1460
}
1461
 
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(),
1466
                (__mmask16) -1);
1467
}
1468
 
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,
1472
                (__v16qi) __O,
1473
                __M);
1474
}
1475
 
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(),
1480
                __M);
1481
}
1482
 
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,
1488
      12, 13, 14, 15);
1489
}
1490
 
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,
1494
               (__v16qi) __O,
1495
               __M);
1496
}
1497
 
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(),
1502
               __M);
1503
}
1504
 
1505
static __inline__ void __DEFAULT_FN_ATTRS128
1506
_mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
1507
{
1508
  __builtin_ia32_pmovwb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
1509
}
1510
 
1511
 
1512
static __inline__ void __DEFAULT_FN_ATTRS128
1513
_mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
1514
{
1515
  __builtin_ia32_pmovswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
1516
}
1517
 
1518
static __inline__ void __DEFAULT_FN_ATTRS128
1519
_mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
1520
{
1521
  __builtin_ia32_pmovuswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
1522
}
1523
 
1524
static __inline__ __m128i __DEFAULT_FN_ATTRS256
1525
_mm256_cvtepi16_epi8 (__m256i __A) {
1526
  return (__m128i)__builtin_convertvector((__v16hi) __A, __v16qi);
1527
}
1528
 
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),
1533
                                             (__v16qi)__O);
1534
}
1535
 
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());
1541
}
1542
 
1543
static __inline__ void __DEFAULT_FN_ATTRS256
1544
_mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
1545
{
1546
  __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
1547
}
1548
 
1549
static __inline__ void __DEFAULT_FN_ATTRS256
1550
_mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
1551
{
1552
  __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M);
1553
}
1554
 
1555
static __inline__ void __DEFAULT_FN_ATTRS256
1556
_mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A)
1557
{
1558
  __builtin_ia32_pmovuswb256mem_mask ((__v16qi*) __P, (__v16hi) __A, __M);
1559
}
1560
 
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),
1565
                                             (__v8hi)__W);
1566
}
1567
 
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());
1573
}
1574
 
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),
1579
                                         (__v16hi)__W);
1580
}
1581
 
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());
1587
}
1588
 
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),
1593
                                             (__v8hi)__W);
1594
}
1595
 
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());
1601
}
1602
 
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),
1607
                                          (__v16hi)__W);
1608
}
1609
 
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());
1615
}
1616
 
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),
1621
                                             (__v8hi)__W);
1622
}
1623
 
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());
1629
}
1630
 
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),
1635
                                          (__v16hi)__W);
1636
}
1637
 
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());
1643
}
1644
 
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),
1649
                                           (__v16qi)__W);
1650
}
1651
 
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());
1657
}
1658
 
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),
1663
                                        (__v32qi)__W);
1664
}
1665
 
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());
1671
}
1672
 
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),
1677
                                           (__v8hi)__W);
1678
}
1679
 
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());
1685
}
1686
 
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),
1691
                                       (__v16hi)__W);
1692
}
1693
 
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());
1699
}
1700
 
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),
1705
                                           (__v16qi)__W);
1706
}
1707
 
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());
1713
}
1714
 
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),
1719
                                        (__v32qi)__W);
1720
}
1721
 
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());
1727
}
1728
 
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),
1733
                                           (__v8hi)__W);
1734
}
1735
 
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());
1741
}
1742
 
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),
1747
                                       (__v16hi)__W);
1748
}
1749
 
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());
1755
}
1756
 
1757
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1758
_mm_mask_cvtepi8_epi16(__m128i __W, __mmask8 __U, __m128i __A)
1759
{
1760
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1761
                                             (__v8hi)_mm_cvtepi8_epi16(__A),
1762
                                             (__v8hi)__W);
1763
}
1764
 
1765
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1766
_mm_maskz_cvtepi8_epi16(__mmask8 __U, __m128i __A)
1767
{
1768
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1769
                                             (__v8hi)_mm_cvtepi8_epi16(__A),
1770
                                             (__v8hi)_mm_setzero_si128());
1771
}
1772
 
1773
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1774
_mm256_mask_cvtepi8_epi16(__m256i __W, __mmask16 __U, __m128i __A)
1775
{
1776
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1777
                                             (__v16hi)_mm256_cvtepi8_epi16(__A),
1778
                                             (__v16hi)__W);
1779
}
1780
 
1781
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1782
_mm256_maskz_cvtepi8_epi16(__mmask16 __U, __m128i __A)
1783
{
1784
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1785
                                             (__v16hi)_mm256_cvtepi8_epi16(__A),
1786
                                             (__v16hi)_mm256_setzero_si256());
1787
}
1788
 
1789
 
1790
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1791
_mm_mask_cvtepu8_epi16(__m128i __W, __mmask8 __U, __m128i __A)
1792
{
1793
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1794
                                             (__v8hi)_mm_cvtepu8_epi16(__A),
1795
                                             (__v8hi)__W);
1796
}
1797
 
1798
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1799
_mm_maskz_cvtepu8_epi16(__mmask8 __U, __m128i __A)
1800
{
1801
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1802
                                             (__v8hi)_mm_cvtepu8_epi16(__A),
1803
                                             (__v8hi)_mm_setzero_si128());
1804
}
1805
 
1806
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1807
_mm256_mask_cvtepu8_epi16(__m256i __W, __mmask16 __U, __m128i __A)
1808
{
1809
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1810
                                             (__v16hi)_mm256_cvtepu8_epi16(__A),
1811
                                             (__v16hi)__W);
1812
}
1813
 
1814
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1815
_mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A)
1816
{
1817
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1818
                                             (__v16hi)_mm256_cvtepu8_epi16(__A),
1819
                                             (__v16hi)_mm256_setzero_si256());
1820
}
1821
 
1822
 
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)))
1827
 
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()))
1832
 
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)))
1837
 
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()))
1842
 
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)))
1847
 
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()))
1852
 
1853
#define _mm256_mask_shufflelo_epi16(W, U, A, imm) \
1854
  ((__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
1855
                                       (__v16hi)_mm256_shufflelo_epi16((A), \
1856
                                                                       (imm)), \
1857
                                       (__v16hi)(__m256i)(W)))
1858
 
1859
#define _mm256_maskz_shufflelo_epi16(U, A, imm) \
1860
  ((__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
1861
                                       (__v16hi)_mm256_shufflelo_epi16((A), \
1862
                                                                       (imm)), \
1863
                                       (__v16hi)_mm256_setzero_si256()))
1864
 
1865
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1866
_mm256_sllv_epi16(__m256i __A, __m256i __B)
1867
{
1868
  return (__m256i)__builtin_ia32_psllv16hi((__v16hi)__A, (__v16hi)__B);
1869
}
1870
 
1871
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1872
_mm256_mask_sllv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
1873
{
1874
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1875
                                           (__v16hi)_mm256_sllv_epi16(__A, __B),
1876
                                           (__v16hi)__W);
1877
}
1878
 
1879
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1880
_mm256_maskz_sllv_epi16(__mmask16 __U, __m256i __A, __m256i __B)
1881
{
1882
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1883
                                           (__v16hi)_mm256_sllv_epi16(__A, __B),
1884
                                           (__v16hi)_mm256_setzero_si256());
1885
}
1886
 
1887
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1888
_mm_sllv_epi16(__m128i __A, __m128i __B)
1889
{
1890
  return (__m128i)__builtin_ia32_psllv8hi((__v8hi)__A, (__v8hi)__B);
1891
}
1892
 
1893
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1894
_mm_mask_sllv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1895
{
1896
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1897
                                             (__v8hi)_mm_sllv_epi16(__A, __B),
1898
                                             (__v8hi)__W);
1899
}
1900
 
1901
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1902
_mm_maskz_sllv_epi16(__mmask8 __U, __m128i __A, __m128i __B)
1903
{
1904
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1905
                                             (__v8hi)_mm_sllv_epi16(__A, __B),
1906
                                             (__v8hi)_mm_setzero_si128());
1907
}
1908
 
1909
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1910
_mm_mask_sll_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
1911
{
1912
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1913
                                             (__v8hi)_mm_sll_epi16(__A, __B),
1914
                                             (__v8hi)__W);
1915
}
1916
 
1917
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1918
_mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
1919
{
1920
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1921
                                             (__v8hi)_mm_sll_epi16(__A, __B),
1922
                                             (__v8hi)_mm_setzero_si128());
1923
}
1924
 
1925
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1926
_mm256_mask_sll_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
1927
{
1928
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1929
                                          (__v16hi)_mm256_sll_epi16(__A, __B),
1930
                                          (__v16hi)__W);
1931
}
1932
 
1933
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1934
_mm256_maskz_sll_epi16(__mmask16 __U, __m256i __A, __m128i __B)
1935
{
1936
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1937
                                          (__v16hi)_mm256_sll_epi16(__A, __B),
1938
                                          (__v16hi)_mm256_setzero_si256());
1939
}
1940
 
1941
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1942
_mm_mask_slli_epi16(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B)
1943
{
1944
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1945
                                             (__v8hi)_mm_slli_epi16(__A, (int)__B),
1946
                                             (__v8hi)__W);
1947
}
1948
 
1949
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1950
_mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, unsigned int __B)
1951
{
1952
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
1953
                                             (__v8hi)_mm_slli_epi16(__A, (int)__B),
1954
                                             (__v8hi)_mm_setzero_si128());
1955
}
1956
 
1957
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1958
_mm256_mask_slli_epi16(__m256i __W, __mmask16 __U, __m256i __A,
1959
                       unsigned int __B)
1960
{
1961
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1962
                                         (__v16hi)_mm256_slli_epi16(__A, (int)__B),
1963
                                         (__v16hi)__W);
1964
}
1965
 
1966
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1967
_mm256_maskz_slli_epi16(__mmask16 __U, __m256i __A, unsigned int __B)
1968
{
1969
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1970
                                         (__v16hi)_mm256_slli_epi16(__A, (int)__B),
1971
                                         (__v16hi)_mm256_setzero_si256());
1972
}
1973
 
1974
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1975
_mm256_srlv_epi16(__m256i __A, __m256i __B)
1976
{
1977
  return (__m256i)__builtin_ia32_psrlv16hi((__v16hi)__A, (__v16hi)__B);
1978
}
1979
 
1980
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1981
_mm256_mask_srlv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
1982
{
1983
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1984
                                           (__v16hi)_mm256_srlv_epi16(__A, __B),
1985
                                           (__v16hi)__W);
1986
}
1987
 
1988
static __inline__ __m256i __DEFAULT_FN_ATTRS256
1989
_mm256_maskz_srlv_epi16(__mmask16 __U, __m256i __A, __m256i __B)
1990
{
1991
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
1992
                                           (__v16hi)_mm256_srlv_epi16(__A, __B),
1993
                                           (__v16hi)_mm256_setzero_si256());
1994
}
1995
 
1996
static __inline__ __m128i __DEFAULT_FN_ATTRS128
1997
_mm_srlv_epi16(__m128i __A, __m128i __B)
1998
{
1999
  return (__m128i)__builtin_ia32_psrlv8hi((__v8hi)__A, (__v8hi)__B);
2000
}
2001
 
2002
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2003
_mm_mask_srlv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2004
{
2005
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2006
                                             (__v8hi)_mm_srlv_epi16(__A, __B),
2007
                                             (__v8hi)__W);
2008
}
2009
 
2010
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2011
_mm_maskz_srlv_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2012
{
2013
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2014
                                             (__v8hi)_mm_srlv_epi16(__A, __B),
2015
                                             (__v8hi)_mm_setzero_si128());
2016
}
2017
 
2018
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2019
_mm256_srav_epi16(__m256i __A, __m256i __B)
2020
{
2021
  return (__m256i)__builtin_ia32_psrav16hi((__v16hi)__A, (__v16hi)__B);
2022
}
2023
 
2024
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2025
_mm256_mask_srav_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B)
2026
{
2027
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2028
                                           (__v16hi)_mm256_srav_epi16(__A, __B),
2029
                                           (__v16hi)__W);
2030
}
2031
 
2032
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2033
_mm256_maskz_srav_epi16(__mmask16 __U, __m256i __A, __m256i __B)
2034
{
2035
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2036
                                           (__v16hi)_mm256_srav_epi16(__A, __B),
2037
                                           (__v16hi)_mm256_setzero_si256());
2038
}
2039
 
2040
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2041
_mm_srav_epi16(__m128i __A, __m128i __B)
2042
{
2043
  return (__m128i)__builtin_ia32_psrav8hi((__v8hi)__A, (__v8hi)__B);
2044
}
2045
 
2046
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2047
_mm_mask_srav_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2048
{
2049
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2050
                                             (__v8hi)_mm_srav_epi16(__A, __B),
2051
                                             (__v8hi)__W);
2052
}
2053
 
2054
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2055
_mm_maskz_srav_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2056
{
2057
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2058
                                             (__v8hi)_mm_srav_epi16(__A, __B),
2059
                                             (__v8hi)_mm_setzero_si128());
2060
}
2061
 
2062
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2063
_mm_mask_sra_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2064
{
2065
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2066
                                             (__v8hi)_mm_sra_epi16(__A, __B),
2067
                                             (__v8hi)__W);
2068
}
2069
 
2070
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2071
_mm_maskz_sra_epi16(__mmask8 __U, __m128i __A, __m128i __B)
2072
{
2073
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2074
                                             (__v8hi)_mm_sra_epi16(__A, __B),
2075
                                             (__v8hi)_mm_setzero_si128());
2076
}
2077
 
2078
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2079
_mm256_mask_sra_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
2080
{
2081
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2082
                                          (__v16hi)_mm256_sra_epi16(__A, __B),
2083
                                          (__v16hi)__W);
2084
}
2085
 
2086
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2087
_mm256_maskz_sra_epi16(__mmask16 __U, __m256i __A, __m128i __B)
2088
{
2089
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2090
                                          (__v16hi)_mm256_sra_epi16(__A, __B),
2091
                                          (__v16hi)_mm256_setzero_si256());
2092
}
2093
 
2094
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2095
_mm_mask_srai_epi16(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B)
2096
{
2097
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2098
                                             (__v8hi)_mm_srai_epi16(__A, (int)__B),
2099
                                             (__v8hi)__W);
2100
}
2101
 
2102
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2103
_mm_maskz_srai_epi16(__mmask8 __U, __m128i __A, unsigned int __B)
2104
{
2105
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2106
                                             (__v8hi)_mm_srai_epi16(__A, (int)__B),
2107
                                             (__v8hi)_mm_setzero_si128());
2108
}
2109
 
2110
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2111
_mm256_mask_srai_epi16(__m256i __W, __mmask16 __U, __m256i __A,
2112
                       unsigned int __B)
2113
{
2114
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2115
                                         (__v16hi)_mm256_srai_epi16(__A, (int)__B),
2116
                                         (__v16hi)__W);
2117
}
2118
 
2119
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2120
_mm256_maskz_srai_epi16(__mmask16 __U, __m256i __A, unsigned int __B)
2121
{
2122
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2123
                                         (__v16hi)_mm256_srai_epi16(__A, (int)__B),
2124
                                         (__v16hi)_mm256_setzero_si256());
2125
}
2126
 
2127
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2128
_mm_mask_srl_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
2129
{
2130
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2131
                                             (__v8hi)_mm_srl_epi16(__A, __B),
2132
                                             (__v8hi)__W);
2133
}
2134
 
2135
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2136
_mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B)
2137
{
2138
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2139
                                             (__v8hi)_mm_srl_epi16(__A, __B),
2140
                                             (__v8hi)_mm_setzero_si128());
2141
}
2142
 
2143
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2144
_mm256_mask_srl_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B)
2145
{
2146
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2147
                                          (__v16hi)_mm256_srl_epi16(__A, __B),
2148
                                          (__v16hi)__W);
2149
}
2150
 
2151
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2152
_mm256_maskz_srl_epi16(__mmask16 __U, __m256i __A, __m128i __B)
2153
{
2154
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2155
                                          (__v16hi)_mm256_srl_epi16(__A, __B),
2156
                                          (__v16hi)_mm256_setzero_si256());
2157
}
2158
 
2159
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2160
_mm_mask_srli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B)
2161
{
2162
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2163
                                             (__v8hi)_mm_srli_epi16(__A, __B),
2164
                                             (__v8hi)__W);
2165
}
2166
 
2167
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2168
_mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, int __B)
2169
{
2170
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
2171
                                             (__v8hi)_mm_srli_epi16(__A, __B),
2172
                                             (__v8hi)_mm_setzero_si128());
2173
}
2174
 
2175
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2176
_mm256_mask_srli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B)
2177
{
2178
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2179
                                         (__v16hi)_mm256_srli_epi16(__A, __B),
2180
                                         (__v16hi)__W);
2181
}
2182
 
2183
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2184
_mm256_maskz_srli_epi16(__mmask16 __U, __m256i __A, int __B)
2185
{
2186
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
2187
                                         (__v16hi)_mm256_srli_epi16(__A, __B),
2188
                                         (__v16hi)_mm256_setzero_si256());
2189
}
2190
 
2191
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2192
_mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
2193
{
2194
  return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
2195
                (__v8hi) __A,
2196
                (__v8hi) __W);
2197
}
2198
 
2199
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2200
_mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A)
2201
{
2202
  return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U,
2203
                (__v8hi) __A,
2204
                (__v8hi) _mm_setzero_si128 ());
2205
}
2206
 
2207
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2208
_mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A)
2209
{
2210
  return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
2211
                (__v16hi) __A,
2212
                (__v16hi) __W);
2213
}
2214
 
2215
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2216
_mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A)
2217
{
2218
  return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U,
2219
                (__v16hi) __A,
2220
                (__v16hi) _mm256_setzero_si256 ());
2221
}
2222
 
2223
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2224
_mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A)
2225
{
2226
  return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
2227
                (__v16qi) __A,
2228
                (__v16qi) __W);
2229
}
2230
 
2231
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2232
_mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A)
2233
{
2234
  return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U,
2235
                (__v16qi) __A,
2236
                (__v16qi) _mm_setzero_si128 ());
2237
}
2238
 
2239
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2240
_mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A)
2241
{
2242
  return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
2243
                (__v32qi) __A,
2244
                (__v32qi) __W);
2245
}
2246
 
2247
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2248
_mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A)
2249
{
2250
  return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U,
2251
                (__v32qi) __A,
2252
                (__v32qi) _mm256_setzero_si256 ());
2253
}
2254
 
2255
 
2256
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2257
_mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A)
2258
{
2259
  return (__m128i) __builtin_ia32_selectb_128(__M,
2260
                                              (__v16qi) _mm_set1_epi8(__A),
2261
                                              (__v16qi) __O);
2262
}
2263
 
2264
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2265
_mm_maskz_set1_epi8 (__mmask16 __M, char __A)
2266
{
2267
 return (__m128i) __builtin_ia32_selectb_128(__M,
2268
                                             (__v16qi) _mm_set1_epi8(__A),
2269
                                             (__v16qi) _mm_setzero_si128());
2270
}
2271
 
2272
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2273
_mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A)
2274
{
2275
  return (__m256i) __builtin_ia32_selectb_256(__M,
2276
                                              (__v32qi) _mm256_set1_epi8(__A),
2277
                                              (__v32qi) __O);
2278
}
2279
 
2280
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2281
_mm256_maskz_set1_epi8 (__mmask32 __M, char __A)
2282
{
2283
  return (__m256i) __builtin_ia32_selectb_256(__M,
2284
                                              (__v32qi) _mm256_set1_epi8(__A),
2285
                                              (__v32qi) _mm256_setzero_si256());
2286
}
2287
 
2288
static __inline __m128i __DEFAULT_FN_ATTRS128
2289
_mm_loadu_epi16 (void const *__P)
2290
{
2291
  struct __loadu_epi16 {
2292
    __m128i_u __v;
2293
  } __attribute__((__packed__, __may_alias__));
2294
  return ((const struct __loadu_epi16*)__P)->__v;
2295
}
2296
 
2297
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2298
_mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P)
2299
{
2300
  return (__m128i) __builtin_ia32_loaddquhi128_mask ((const __v8hi *) __P,
2301
                 (__v8hi) __W,
2302
                 (__mmask8) __U);
2303
}
2304
 
2305
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2306
_mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P)
2307
{
2308
  return (__m128i) __builtin_ia32_loaddquhi128_mask ((const __v8hi *) __P,
2309
                 (__v8hi)
2310
                 _mm_setzero_si128 (),
2311
                 (__mmask8) __U);
2312
}
2313
 
2314
static __inline __m256i __DEFAULT_FN_ATTRS256
2315
_mm256_loadu_epi16 (void const *__P)
2316
{
2317
  struct __loadu_epi16 {
2318
    __m256i_u __v;
2319
  } __attribute__((__packed__, __may_alias__));
2320
  return ((const struct __loadu_epi16*)__P)->__v;
2321
}
2322
 
2323
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2324
_mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P)
2325
{
2326
  return (__m256i) __builtin_ia32_loaddquhi256_mask ((const __v16hi *) __P,
2327
                 (__v16hi) __W,
2328
                 (__mmask16) __U);
2329
}
2330
 
2331
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2332
_mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P)
2333
{
2334
  return (__m256i) __builtin_ia32_loaddquhi256_mask ((const __v16hi *) __P,
2335
                 (__v16hi)
2336
                 _mm256_setzero_si256 (),
2337
                 (__mmask16) __U);
2338
}
2339
 
2340
static __inline __m128i __DEFAULT_FN_ATTRS128
2341
_mm_loadu_epi8 (void const *__P)
2342
{
2343
  struct __loadu_epi8 {
2344
    __m128i_u __v;
2345
  } __attribute__((__packed__, __may_alias__));
2346
  return ((const struct __loadu_epi8*)__P)->__v;
2347
}
2348
 
2349
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2350
_mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P)
2351
{
2352
  return (__m128i) __builtin_ia32_loaddquqi128_mask ((const __v16qi *) __P,
2353
                 (__v16qi) __W,
2354
                 (__mmask16) __U);
2355
}
2356
 
2357
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2358
_mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P)
2359
{
2360
  return (__m128i) __builtin_ia32_loaddquqi128_mask ((const __v16qi *) __P,
2361
                 (__v16qi)
2362
                 _mm_setzero_si128 (),
2363
                 (__mmask16) __U);
2364
}
2365
 
2366
static __inline __m256i __DEFAULT_FN_ATTRS256
2367
_mm256_loadu_epi8 (void const *__P)
2368
{
2369
  struct __loadu_epi8 {
2370
    __m256i_u __v;
2371
  } __attribute__((__packed__, __may_alias__));
2372
  return ((const struct __loadu_epi8*)__P)->__v;
2373
}
2374
 
2375
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2376
_mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P)
2377
{
2378
  return (__m256i) __builtin_ia32_loaddquqi256_mask ((const __v32qi *) __P,
2379
                 (__v32qi) __W,
2380
                 (__mmask32) __U);
2381
}
2382
 
2383
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2384
_mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P)
2385
{
2386
  return (__m256i) __builtin_ia32_loaddquqi256_mask ((const __v32qi *) __P,
2387
                 (__v32qi)
2388
                 _mm256_setzero_si256 (),
2389
                 (__mmask32) __U);
2390
}
2391
 
2392
static __inline void __DEFAULT_FN_ATTRS128
2393
_mm_storeu_epi16 (void *__P, __m128i __A)
2394
{
2395
  struct __storeu_epi16 {
2396
    __m128i_u __v;
2397
  } __attribute__((__packed__, __may_alias__));
2398
  ((struct __storeu_epi16*)__P)->__v = __A;
2399
}
2400
 
2401
static __inline__ void __DEFAULT_FN_ATTRS128
2402
_mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
2403
{
2404
  __builtin_ia32_storedquhi128_mask ((__v8hi *) __P,
2405
             (__v8hi) __A,
2406
             (__mmask8) __U);
2407
}
2408
 
2409
static __inline void __DEFAULT_FN_ATTRS256
2410
_mm256_storeu_epi16 (void *__P, __m256i __A)
2411
{
2412
  struct __storeu_epi16 {
2413
    __m256i_u __v;
2414
  } __attribute__((__packed__, __may_alias__));
2415
  ((struct __storeu_epi16*)__P)->__v = __A;
2416
}
2417
 
2418
static __inline__ void __DEFAULT_FN_ATTRS256
2419
_mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
2420
{
2421
  __builtin_ia32_storedquhi256_mask ((__v16hi *) __P,
2422
             (__v16hi) __A,
2423
             (__mmask16) __U);
2424
}
2425
 
2426
static __inline void __DEFAULT_FN_ATTRS128
2427
_mm_storeu_epi8 (void *__P, __m128i __A)
2428
{
2429
  struct __storeu_epi8 {
2430
    __m128i_u __v;
2431
  } __attribute__((__packed__, __may_alias__));
2432
  ((struct __storeu_epi8*)__P)->__v = __A;
2433
}
2434
 
2435
static __inline__ void __DEFAULT_FN_ATTRS128
2436
_mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A)
2437
{
2438
  __builtin_ia32_storedquqi128_mask ((__v16qi *) __P,
2439
             (__v16qi) __A,
2440
             (__mmask16) __U);
2441
}
2442
 
2443
static __inline void __DEFAULT_FN_ATTRS256
2444
_mm256_storeu_epi8 (void *__P, __m256i __A)
2445
{
2446
  struct __storeu_epi8 {
2447
    __m256i_u __v;
2448
  } __attribute__((__packed__, __may_alias__));
2449
  ((struct __storeu_epi8*)__P)->__v = __A;
2450
}
2451
 
2452
static __inline__ void __DEFAULT_FN_ATTRS256
2453
_mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A)
2454
{
2455
  __builtin_ia32_storedquqi256_mask ((__v32qi *) __P,
2456
             (__v32qi) __A,
2457
             (__mmask32) __U);
2458
}
2459
 
2460
static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
2461
_mm_test_epi8_mask (__m128i __A, __m128i __B)
2462
{
2463
  return _mm_cmpneq_epi8_mask (_mm_and_si128(__A, __B), _mm_setzero_si128());
2464
}
2465
 
2466
static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
2467
_mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
2468
{
2469
  return _mm_mask_cmpneq_epi8_mask (__U, _mm_and_si128 (__A, __B),
2470
                                    _mm_setzero_si128());
2471
}
2472
 
2473
static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
2474
_mm256_test_epi8_mask (__m256i __A, __m256i __B)
2475
{
2476
  return _mm256_cmpneq_epi8_mask (_mm256_and_si256(__A, __B),
2477
                                  _mm256_setzero_si256());
2478
}
2479
 
2480
static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
2481
_mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
2482
{
2483
  return _mm256_mask_cmpneq_epi8_mask (__U, _mm256_and_si256(__A, __B),
2484
                                       _mm256_setzero_si256());
2485
}
2486
 
2487
static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
2488
_mm_test_epi16_mask (__m128i __A, __m128i __B)
2489
{
2490
  return _mm_cmpneq_epi16_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
2491
}
2492
 
2493
static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
2494
_mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
2495
{
2496
  return _mm_mask_cmpneq_epi16_mask (__U, _mm_and_si128 (__A, __B),
2497
                                     _mm_setzero_si128());
2498
}
2499
 
2500
static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
2501
_mm256_test_epi16_mask (__m256i __A, __m256i __B)
2502
{
2503
  return _mm256_cmpneq_epi16_mask (_mm256_and_si256 (__A, __B),
2504
                                   _mm256_setzero_si256 ());
2505
}
2506
 
2507
static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
2508
_mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
2509
{
2510
  return _mm256_mask_cmpneq_epi16_mask (__U, _mm256_and_si256(__A, __B),
2511
                                        _mm256_setzero_si256());
2512
}
2513
 
2514
static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
2515
_mm_testn_epi8_mask (__m128i __A, __m128i __B)
2516
{
2517
  return _mm_cmpeq_epi8_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
2518
}
2519
 
2520
static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
2521
_mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
2522
{
2523
  return _mm_mask_cmpeq_epi8_mask (__U, _mm_and_si128 (__A, __B),
2524
                                  _mm_setzero_si128());
2525
}
2526
 
2527
static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
2528
_mm256_testn_epi8_mask (__m256i __A, __m256i __B)
2529
{
2530
  return _mm256_cmpeq_epi8_mask (_mm256_and_si256 (__A, __B),
2531
                                 _mm256_setzero_si256());
2532
}
2533
 
2534
static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
2535
_mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
2536
{
2537
  return _mm256_mask_cmpeq_epi8_mask (__U, _mm256_and_si256 (__A, __B),
2538
                                      _mm256_setzero_si256());
2539
}
2540
 
2541
static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
2542
_mm_testn_epi16_mask (__m128i __A, __m128i __B)
2543
{
2544
  return _mm_cmpeq_epi16_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
2545
}
2546
 
2547
static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
2548
_mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
2549
{
2550
  return _mm_mask_cmpeq_epi16_mask (__U, _mm_and_si128(__A, __B), _mm_setzero_si128());
2551
}
2552
 
2553
static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
2554
_mm256_testn_epi16_mask (__m256i __A, __m256i __B)
2555
{
2556
  return _mm256_cmpeq_epi16_mask (_mm256_and_si256(__A, __B),
2557
                                  _mm256_setzero_si256());
2558
}
2559
 
2560
static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
2561
_mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
2562
{
2563
  return _mm256_mask_cmpeq_epi16_mask (__U, _mm256_and_si256 (__A, __B),
2564
                                       _mm256_setzero_si256());
2565
}
2566
 
2567
static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
2568
_mm_movepi8_mask (__m128i __A)
2569
{
2570
  return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A);
2571
}
2572
 
2573
static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
2574
_mm256_movepi8_mask (__m256i __A)
2575
{
2576
  return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A);
2577
}
2578
 
2579
static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
2580
_mm_movepi16_mask (__m128i __A)
2581
{
2582
  return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A);
2583
}
2584
 
2585
static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
2586
_mm256_movepi16_mask (__m256i __A)
2587
{
2588
  return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A);
2589
}
2590
 
2591
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2592
_mm_movm_epi8 (__mmask16 __A)
2593
{
2594
  return (__m128i) __builtin_ia32_cvtmask2b128 (__A);
2595
}
2596
 
2597
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2598
_mm256_movm_epi8 (__mmask32 __A)
2599
{
2600
  return (__m256i) __builtin_ia32_cvtmask2b256 (__A);
2601
}
2602
 
2603
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2604
_mm_movm_epi16 (__mmask8 __A)
2605
{
2606
  return (__m128i) __builtin_ia32_cvtmask2w128 (__A);
2607
}
2608
 
2609
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2610
_mm256_movm_epi16 (__mmask16 __A)
2611
{
2612
  return (__m256i) __builtin_ia32_cvtmask2w256 (__A);
2613
}
2614
 
2615
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2616
_mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A)
2617
{
2618
  return (__m128i)__builtin_ia32_selectb_128(__M,
2619
                                             (__v16qi) _mm_broadcastb_epi8(__A),
2620
                                             (__v16qi) __O);
2621
}
2622
 
2623
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2624
_mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A)
2625
{
2626
  return (__m128i)__builtin_ia32_selectb_128(__M,
2627
                                             (__v16qi) _mm_broadcastb_epi8(__A),
2628
                                             (__v16qi) _mm_setzero_si128());
2629
}
2630
 
2631
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2632
_mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A)
2633
{
2634
  return (__m256i)__builtin_ia32_selectb_256(__M,
2635
                                             (__v32qi) _mm256_broadcastb_epi8(__A),
2636
                                             (__v32qi) __O);
2637
}
2638
 
2639
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2640
_mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A)
2641
{
2642
  return (__m256i)__builtin_ia32_selectb_256(__M,
2643
                                             (__v32qi) _mm256_broadcastb_epi8(__A),
2644
                                             (__v32qi) _mm256_setzero_si256());
2645
}
2646
 
2647
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2648
_mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
2649
{
2650
  return (__m128i)__builtin_ia32_selectw_128(__M,
2651
                                             (__v8hi) _mm_broadcastw_epi16(__A),
2652
                                             (__v8hi) __O);
2653
}
2654
 
2655
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2656
_mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A)
2657
{
2658
  return (__m128i)__builtin_ia32_selectw_128(__M,
2659
                                             (__v8hi) _mm_broadcastw_epi16(__A),
2660
                                             (__v8hi) _mm_setzero_si128());
2661
}
2662
 
2663
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2664
_mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A)
2665
{
2666
  return (__m256i)__builtin_ia32_selectw_256(__M,
2667
                                             (__v16hi) _mm256_broadcastw_epi16(__A),
2668
                                             (__v16hi) __O);
2669
}
2670
 
2671
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2672
_mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A)
2673
{
2674
  return (__m256i)__builtin_ia32_selectw_256(__M,
2675
                                             (__v16hi) _mm256_broadcastw_epi16(__A),
2676
                                             (__v16hi) _mm256_setzero_si256());
2677
}
2678
 
2679
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2680
_mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A)
2681
{
2682
  return (__m256i) __builtin_ia32_selectw_256 (__M,
2683
                                               (__v16hi) _mm256_set1_epi16(__A),
2684
                                               (__v16hi) __O);
2685
}
2686
 
2687
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2688
_mm256_maskz_set1_epi16 (__mmask16 __M, short __A)
2689
{
2690
  return (__m256i) __builtin_ia32_selectw_256(__M,
2691
                                              (__v16hi)_mm256_set1_epi16(__A),
2692
                                              (__v16hi) _mm256_setzero_si256());
2693
}
2694
 
2695
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2696
_mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A)
2697
{
2698
  return (__m128i) __builtin_ia32_selectw_128(__M,
2699
                                              (__v8hi) _mm_set1_epi16(__A),
2700
                                              (__v8hi) __O);
2701
}
2702
 
2703
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2704
_mm_maskz_set1_epi16 (__mmask8 __M, short __A)
2705
{
2706
  return (__m128i) __builtin_ia32_selectw_128(__M,
2707
                                              (__v8hi) _mm_set1_epi16(__A),
2708
                                              (__v8hi) _mm_setzero_si128());
2709
}
2710
 
2711
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2712
_mm_permutexvar_epi16 (__m128i __A, __m128i __B)
2713
{
2714
  return (__m128i)__builtin_ia32_permvarhi128((__v8hi) __B, (__v8hi) __A);
2715
}
2716
 
2717
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2718
_mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
2719
{
2720
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
2721
                                        (__v8hi)_mm_permutexvar_epi16(__A, __B),
2722
                                        (__v8hi) _mm_setzero_si128());
2723
}
2724
 
2725
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2726
_mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
2727
          __m128i __B)
2728
{
2729
  return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M,
2730
                                        (__v8hi)_mm_permutexvar_epi16(__A, __B),
2731
                                        (__v8hi)__W);
2732
}
2733
 
2734
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2735
_mm256_permutexvar_epi16 (__m256i __A, __m256i __B)
2736
{
2737
  return (__m256i)__builtin_ia32_permvarhi256((__v16hi) __B, (__v16hi) __A);
2738
}
2739
 
2740
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2741
_mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A,
2742
        __m256i __B)
2743
{
2744
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
2745
                                    (__v16hi)_mm256_permutexvar_epi16(__A, __B),
2746
                                    (__v16hi)_mm256_setzero_si256());
2747
}
2748
 
2749
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2750
_mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
2751
             __m256i __B)
2752
{
2753
  return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M,
2754
                                    (__v16hi)_mm256_permutexvar_epi16(__A, __B),
2755
                                    (__v16hi)__W);
2756
}
2757
 
2758
#define _mm_mask_alignr_epi8(W, U, A, B, N) \
2759
  ((__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \
2760
                                 (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \
2761
                                 (__v16qi)(__m128i)(W)))
2762
 
2763
#define _mm_maskz_alignr_epi8(U, A, B, N) \
2764
  ((__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \
2765
                                 (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \
2766
                                 (__v16qi)_mm_setzero_si128()))
2767
 
2768
#define _mm256_mask_alignr_epi8(W, U, A, B, N) \
2769
  ((__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \
2770
                              (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \
2771
                              (__v32qi)(__m256i)(W)))
2772
 
2773
#define _mm256_maskz_alignr_epi8(U, A, B, N) \
2774
  ((__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \
2775
                              (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \
2776
                              (__v32qi)_mm256_setzero_si256()))
2777
 
2778
#define _mm_dbsad_epu8(A, B, imm) \
2779
  ((__m128i)__builtin_ia32_dbpsadbw128((__v16qi)(__m128i)(A), \
2780
                                       (__v16qi)(__m128i)(B), (int)(imm)))
2781
 
2782
#define _mm_mask_dbsad_epu8(W, U, A, B, imm) \
2783
  ((__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
2784
                                      (__v8hi)_mm_dbsad_epu8((A), (B), (imm)), \
2785
                                      (__v8hi)(__m128i)(W)))
2786
 
2787
#define _mm_maskz_dbsad_epu8(U, A, B, imm) \
2788
  ((__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \
2789
                                      (__v8hi)_mm_dbsad_epu8((A), (B), (imm)), \
2790
                                      (__v8hi)_mm_setzero_si128()))
2791
 
2792
#define _mm256_dbsad_epu8(A, B, imm) \
2793
  ((__m256i)__builtin_ia32_dbpsadbw256((__v32qi)(__m256i)(A), \
2794
                                       (__v32qi)(__m256i)(B), (int)(imm)))
2795
 
2796
#define _mm256_mask_dbsad_epu8(W, U, A, B, imm) \
2797
  ((__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
2798
                                  (__v16hi)_mm256_dbsad_epu8((A), (B), (imm)), \
2799
                                  (__v16hi)(__m256i)(W)))
2800
 
2801
#define _mm256_maskz_dbsad_epu8(U, A, B, imm) \
2802
  ((__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \
2803
                                  (__v16hi)_mm256_dbsad_epu8((A), (B), (imm)), \
2804
                                  (__v16hi)_mm256_setzero_si256()))
2805
 
2806
static __inline__ short __DEFAULT_FN_ATTRS128
2807
_mm_reduce_add_epi16(__m128i __W) {
2808
  return __builtin_reduce_add((__v8hi)__W);
2809
}
2810
 
2811
static __inline__ short __DEFAULT_FN_ATTRS128
2812
_mm_reduce_mul_epi16(__m128i __W) {
2813
  return __builtin_reduce_mul((__v8hi)__W);
2814
}
2815
 
2816
static __inline__ short __DEFAULT_FN_ATTRS128
2817
_mm_reduce_and_epi16(__m128i __W) {
2818
  return __builtin_reduce_and((__v8hi)__W);
2819
}
2820
 
2821
static __inline__ short __DEFAULT_FN_ATTRS128
2822
_mm_reduce_or_epi16(__m128i __W) {
2823
  return __builtin_reduce_or((__v8hi)__W);
2824
}
2825
 
2826
static __inline__ short __DEFAULT_FN_ATTRS128
2827
_mm_mask_reduce_add_epi16( __mmask8 __M, __m128i __W) {
2828
  __W = _mm_maskz_mov_epi16(__M, __W);
2829
  return __builtin_reduce_add((__v8hi)__W);
2830
}
2831
 
2832
static __inline__ short __DEFAULT_FN_ATTRS128
2833
_mm_mask_reduce_mul_epi16( __mmask8 __M, __m128i __W) {
2834
  __W = _mm_mask_mov_epi16(_mm_set1_epi16(1), __M, __W);
2835
  return __builtin_reduce_mul((__v8hi)__W);
2836
}
2837
 
2838
static __inline__ short __DEFAULT_FN_ATTRS128
2839
_mm_mask_reduce_and_epi16( __mmask8 __M, __m128i __W) {
2840
  __W = _mm_mask_mov_epi16(_mm_set1_epi16(-1), __M, __W);
2841
  return __builtin_reduce_and((__v8hi)__W);
2842
}
2843
 
2844
static __inline__ short __DEFAULT_FN_ATTRS128
2845
_mm_mask_reduce_or_epi16(__mmask8 __M, __m128i __W) {
2846
  __W = _mm_maskz_mov_epi16(__M, __W);
2847
  return __builtin_reduce_or((__v8hi)__W);
2848
}
2849
 
2850
static __inline__ short __DEFAULT_FN_ATTRS128
2851
_mm_reduce_max_epi16(__m128i __V) {
2852
  return __builtin_reduce_max((__v8hi)__V);
2853
}
2854
 
2855
static __inline__ unsigned short __DEFAULT_FN_ATTRS128
2856
_mm_reduce_max_epu16(__m128i __V) {
2857
  return __builtin_reduce_max((__v8hu)__V);
2858
}
2859
 
2860
static __inline__ short __DEFAULT_FN_ATTRS128
2861
_mm_reduce_min_epi16(__m128i __V) {
2862
  return __builtin_reduce_min((__v8hi)__V);
2863
}
2864
 
2865
static __inline__ unsigned short __DEFAULT_FN_ATTRS128
2866
_mm_reduce_min_epu16(__m128i __V) {
2867
  return __builtin_reduce_min((__v8hu)__V);
2868
}
2869
 
2870
static __inline__ short __DEFAULT_FN_ATTRS128
2871
_mm_mask_reduce_max_epi16(__mmask16 __M, __m128i __V) {
2872
  __V = _mm_mask_mov_epi16(_mm_set1_epi16(-32767-1), __M, __V);
2873
  return __builtin_reduce_max((__v8hi)__V);
2874
}
2875
 
2876
static __inline__ unsigned short __DEFAULT_FN_ATTRS128
2877
_mm_mask_reduce_max_epu16(__mmask16 __M, __m128i __V) {
2878
  __V = _mm_maskz_mov_epi16(__M, __V);
2879
  return __builtin_reduce_max((__v8hu)__V);
2880
}
2881
 
2882
static __inline__ short __DEFAULT_FN_ATTRS128
2883
_mm_mask_reduce_min_epi16(__mmask16 __M, __m128i __V) {
2884
  __V = _mm_mask_mov_epi16(_mm_set1_epi16(32767), __M, __V);
2885
  return __builtin_reduce_min((__v8hi)__V);
2886
}
2887
 
2888
static __inline__ unsigned short __DEFAULT_FN_ATTRS128
2889
_mm_mask_reduce_min_epu16(__mmask16 __M, __m128i __V) {
2890
  __V = _mm_mask_mov_epi16(_mm_set1_epi16(-1), __M, __V);
2891
  return __builtin_reduce_min((__v8hu)__V);
2892
}
2893
 
2894
static __inline__ short __DEFAULT_FN_ATTRS256
2895
_mm256_reduce_add_epi16(__m256i __W) {
2896
  return __builtin_reduce_add((__v16hi)__W);
2897
}
2898
 
2899
static __inline__ short __DEFAULT_FN_ATTRS256
2900
_mm256_reduce_mul_epi16(__m256i __W) {
2901
  return __builtin_reduce_mul((__v16hi)__W);
2902
}
2903
 
2904
static __inline__ short __DEFAULT_FN_ATTRS256
2905
_mm256_reduce_and_epi16(__m256i __W) {
2906
  return __builtin_reduce_and((__v16hi)__W);
2907
}
2908
 
2909
static __inline__ short __DEFAULT_FN_ATTRS256
2910
_mm256_reduce_or_epi16(__m256i __W) {
2911
  return __builtin_reduce_or((__v16hi)__W);
2912
}
2913
 
2914
static __inline__ short __DEFAULT_FN_ATTRS256
2915
_mm256_mask_reduce_add_epi16( __mmask16 __M, __m256i __W) {
2916
  __W = _mm256_maskz_mov_epi16(__M, __W);
2917
  return __builtin_reduce_add((__v16hi)__W);
2918
}
2919
 
2920
static __inline__ short __DEFAULT_FN_ATTRS256
2921
_mm256_mask_reduce_mul_epi16( __mmask16 __M, __m256i __W) {
2922
  __W = _mm256_mask_mov_epi16(_mm256_set1_epi16(1), __M, __W);
2923
  return __builtin_reduce_mul((__v16hi)__W);
2924
}
2925
 
2926
static __inline__ short __DEFAULT_FN_ATTRS256
2927
_mm256_mask_reduce_and_epi16( __mmask16 __M, __m256i __W) {
2928
  __W = _mm256_mask_mov_epi16(_mm256_set1_epi16(-1), __M, __W);
2929
  return __builtin_reduce_and((__v16hi)__W);
2930
}
2931
 
2932
static __inline__ short __DEFAULT_FN_ATTRS256
2933
_mm256_mask_reduce_or_epi16(__mmask16 __M, __m256i __W) {
2934
  __W = _mm256_maskz_mov_epi16(__M, __W);
2935
  return __builtin_reduce_or((__v16hi)__W);
2936
}
2937
 
2938
static __inline__ short __DEFAULT_FN_ATTRS256
2939
_mm256_reduce_max_epi16(__m256i __V) {
2940
  return __builtin_reduce_max((__v16hi)__V);
2941
}
2942
 
2943
static __inline__ unsigned short __DEFAULT_FN_ATTRS256
2944
_mm256_reduce_max_epu16(__m256i __V) {
2945
  return __builtin_reduce_max((__v16hu)__V);
2946
}
2947
 
2948
static __inline__ short __DEFAULT_FN_ATTRS256
2949
_mm256_reduce_min_epi16(__m256i __V) {
2950
  return __builtin_reduce_min((__v16hi)__V);
2951
}
2952
 
2953
static __inline__ unsigned short __DEFAULT_FN_ATTRS256
2954
_mm256_reduce_min_epu16(__m256i __V) {
2955
  return __builtin_reduce_min((__v16hu)__V);
2956
}
2957
 
2958
static __inline__ short __DEFAULT_FN_ATTRS256
2959
_mm256_mask_reduce_max_epi16(__mmask16 __M, __m256i __V) {
2960
  __V = _mm256_mask_mov_epi16(_mm256_set1_epi16(-32767-1), __M, __V);
2961
  return __builtin_reduce_max((__v16hi)__V);
2962
}
2963
 
2964
static __inline__ unsigned short __DEFAULT_FN_ATTRS256
2965
_mm256_mask_reduce_max_epu16(__mmask16 __M, __m256i __V) {
2966
  __V = _mm256_maskz_mov_epi16(__M, __V);
2967
  return __builtin_reduce_max((__v16hu)__V);
2968
}
2969
 
2970
static __inline__ short __DEFAULT_FN_ATTRS256
2971
_mm256_mask_reduce_min_epi16(__mmask16 __M, __m256i __V) {
2972
  __V = _mm256_mask_mov_epi16(_mm256_set1_epi16(32767), __M, __V);
2973
  return __builtin_reduce_min((__v16hi)__V);
2974
}
2975
 
2976
static __inline__ unsigned short __DEFAULT_FN_ATTRS256
2977
_mm256_mask_reduce_min_epu16(__mmask16 __M, __m256i __V) {
2978
  __V = _mm256_mask_mov_epi16(_mm256_set1_epi16(-1), __M, __V);
2979
  return __builtin_reduce_min((__v16hu)__V);
2980
}
2981
 
2982
static __inline__ signed char __DEFAULT_FN_ATTRS128
2983
_mm_reduce_add_epi8(__m128i __W) {
2984
  return __builtin_reduce_add((__v16qs)__W);
2985
}
2986
 
2987
static __inline__ signed char __DEFAULT_FN_ATTRS128
2988
_mm_reduce_mul_epi8(__m128i __W) {
2989
  return __builtin_reduce_mul((__v16qs)__W);
2990
}
2991
 
2992
static __inline__ signed char __DEFAULT_FN_ATTRS128
2993
_mm_reduce_and_epi8(__m128i __W) {
2994
  return __builtin_reduce_and((__v16qs)__W);
2995
}
2996
 
2997
static __inline__ signed char __DEFAULT_FN_ATTRS128
2998
_mm_reduce_or_epi8(__m128i __W) {
2999
  return __builtin_reduce_or((__v16qs)__W);
3000
}
3001
 
3002
static __inline__ signed char __DEFAULT_FN_ATTRS128
3003
_mm_mask_reduce_add_epi8(__mmask16 __M, __m128i __W) {
3004
  __W = _mm_maskz_mov_epi8(__M, __W);
3005
  return __builtin_reduce_add((__v16qs)__W);
3006
}
3007
 
3008
static __inline__ signed char __DEFAULT_FN_ATTRS128
3009
_mm_mask_reduce_mul_epi8(__mmask16 __M, __m128i __W) {
3010
  __W = _mm_mask_mov_epi8(_mm_set1_epi8(1), __M, __W);
3011
  return __builtin_reduce_mul((__v16qs)__W);
3012
}
3013
 
3014
static __inline__ signed char __DEFAULT_FN_ATTRS128
3015
_mm_mask_reduce_and_epi8(__mmask16 __M, __m128i __W) {
3016
  __W = _mm_mask_mov_epi8(_mm_set1_epi8(-1), __M, __W);
3017
  return __builtin_reduce_and((__v16qs)__W);
3018
}
3019
 
3020
static __inline__ signed char __DEFAULT_FN_ATTRS128
3021
_mm_mask_reduce_or_epi8(__mmask16 __M, __m128i __W) {
3022
  __W = _mm_maskz_mov_epi8(__M, __W);
3023
  return __builtin_reduce_or((__v16qs)__W);
3024
}
3025
 
3026
static __inline__ signed char __DEFAULT_FN_ATTRS128
3027
_mm_reduce_max_epi8(__m128i __V) {
3028
  return __builtin_reduce_max((__v16qs)__V);
3029
}
3030
 
3031
static __inline__ unsigned char __DEFAULT_FN_ATTRS128
3032
_mm_reduce_max_epu8(__m128i __V) {
3033
  return __builtin_reduce_max((__v16qu)__V);
3034
}
3035
 
3036
static __inline__ signed char __DEFAULT_FN_ATTRS128
3037
_mm_reduce_min_epi8(__m128i __V) {
3038
  return __builtin_reduce_min((__v16qs)__V);
3039
}
3040
 
3041
static __inline__ unsigned char __DEFAULT_FN_ATTRS128
3042
_mm_reduce_min_epu8(__m128i __V) {
3043
  return __builtin_reduce_min((__v16qu)__V);
3044
}
3045
 
3046
static __inline__ signed char __DEFAULT_FN_ATTRS128
3047
_mm_mask_reduce_max_epi8(__mmask16 __M, __m128i __V) {
3048
  __V = _mm_mask_mov_epi8(_mm_set1_epi8(-127-1), __M, __V);
3049
  return __builtin_reduce_max((__v16qs)__V);
3050
}
3051
 
3052
static __inline__ unsigned char __DEFAULT_FN_ATTRS128
3053
_mm_mask_reduce_max_epu8(__mmask16 __M, __m128i __V) {
3054
  __V = _mm_maskz_mov_epi8(__M, __V);
3055
  return __builtin_reduce_max((__v16qu)__V);
3056
}
3057
 
3058
static __inline__ signed char __DEFAULT_FN_ATTRS128
3059
_mm_mask_reduce_min_epi8(__mmask16 __M, __m128i __V) {
3060
  __V = _mm_mask_mov_epi8(_mm_set1_epi8(127), __M, __V);
3061
  return __builtin_reduce_min((__v16qs)__V);
3062
}
3063
 
3064
static __inline__ unsigned char __DEFAULT_FN_ATTRS128
3065
_mm_mask_reduce_min_epu8(__mmask16 __M, __m128i __V) {
3066
  __V = _mm_mask_mov_epi8(_mm_set1_epi8(-1), __M, __V);
3067
  return __builtin_reduce_min((__v16qu)__V);
3068
}
3069
 
3070
static __inline__ signed char __DEFAULT_FN_ATTRS256
3071
_mm256_reduce_add_epi8(__m256i __W) {
3072
  return __builtin_reduce_add((__v32qs)__W);
3073
}
3074
 
3075
static __inline__ signed char __DEFAULT_FN_ATTRS256
3076
_mm256_reduce_mul_epi8(__m256i __W) {
3077
  return __builtin_reduce_mul((__v32qs)__W);
3078
}
3079
 
3080
static __inline__ signed char __DEFAULT_FN_ATTRS256
3081
_mm256_reduce_and_epi8(__m256i __W) {
3082
  return __builtin_reduce_and((__v32qs)__W);
3083
}
3084
 
3085
static __inline__ signed char __DEFAULT_FN_ATTRS256
3086
_mm256_reduce_or_epi8(__m256i __W) {
3087
  return __builtin_reduce_or((__v32qs)__W);
3088
}
3089
 
3090
static __inline__ signed char __DEFAULT_FN_ATTRS256
3091
_mm256_mask_reduce_add_epi8(__mmask32 __M, __m256i __W) {
3092
  __W = _mm256_maskz_mov_epi8(__M, __W);
3093
  return __builtin_reduce_add((__v32qs)__W);
3094
}
3095
 
3096
static __inline__ signed char __DEFAULT_FN_ATTRS256
3097
_mm256_mask_reduce_mul_epi8(__mmask32 __M, __m256i __W) {
3098
  __W = _mm256_mask_mov_epi8(_mm256_set1_epi8(1), __M, __W);
3099
  return __builtin_reduce_mul((__v32qs)__W);
3100
}
3101
 
3102
static __inline__ signed char __DEFAULT_FN_ATTRS256
3103
_mm256_mask_reduce_and_epi8(__mmask32 __M, __m256i __W) {
3104
  __W = _mm256_mask_mov_epi8(_mm256_set1_epi8(-1), __M, __W);
3105
  return __builtin_reduce_and((__v32qs)__W);
3106
}
3107
 
3108
static __inline__ signed char __DEFAULT_FN_ATTRS256
3109
_mm256_mask_reduce_or_epi8(__mmask32 __M, __m256i __W) {
3110
  __W = _mm256_maskz_mov_epi8(__M, __W);
3111
  return __builtin_reduce_or((__v32qs)__W);
3112
}
3113
 
3114
static __inline__ signed char __DEFAULT_FN_ATTRS256
3115
_mm256_reduce_max_epi8(__m256i __V) {
3116
  return __builtin_reduce_max((__v32qs)__V);
3117
}
3118
 
3119
static __inline__ unsigned char __DEFAULT_FN_ATTRS256
3120
_mm256_reduce_max_epu8(__m256i __V) {
3121
  return __builtin_reduce_max((__v32qu)__V);
3122
}
3123
 
3124
static __inline__ signed char __DEFAULT_FN_ATTRS256
3125
_mm256_reduce_min_epi8(__m256i __V) {
3126
  return __builtin_reduce_min((__v32qs)__V);
3127
}
3128
 
3129
static __inline__ unsigned char __DEFAULT_FN_ATTRS256
3130
_mm256_reduce_min_epu8(__m256i __V) {
3131
  return __builtin_reduce_min((__v32qu)__V);
3132
}
3133
 
3134
static __inline__ signed char __DEFAULT_FN_ATTRS256
3135
_mm256_mask_reduce_max_epi8(__mmask32 __M, __m256i __V) {
3136
  __V = _mm256_mask_mov_epi8(_mm256_set1_epi8(-127-1), __M, __V);
3137
  return __builtin_reduce_max((__v32qs)__V);
3138
}
3139
 
3140
static __inline__ unsigned char __DEFAULT_FN_ATTRS256
3141
_mm256_mask_reduce_max_epu8(__mmask32 __M, __m256i __V) {
3142
  __V = _mm256_maskz_mov_epi8(__M, __V);
3143
  return __builtin_reduce_max((__v32qu)__V);
3144
}
3145
 
3146
static __inline__ signed char __DEFAULT_FN_ATTRS256
3147
_mm256_mask_reduce_min_epi8(__mmask32 __M, __m256i __V) {
3148
  __V = _mm256_mask_mov_epi8(_mm256_set1_epi8(127), __M, __V);
3149
  return __builtin_reduce_min((__v32qs)__V);
3150
}
3151
 
3152
static __inline__ unsigned char __DEFAULT_FN_ATTRS256
3153
_mm256_mask_reduce_min_epu8(__mmask32 __M, __m256i __V) {
3154
  __V = _mm256_mask_mov_epi8(_mm256_set1_epi8(-1), __M, __V);
3155
  return __builtin_reduce_min((__v32qu)__V);
3156
}
3157
 
3158
#undef __DEFAULT_FN_ATTRS128
3159
#undef __DEFAULT_FN_ATTRS256
3160
 
3161
#endif /* __AVX512VLBWINTRIN_H */