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