1*344a7f5eSAndroid Build Coastguard Worker /*===------------- avx512bwintrin.h - AVX512BW intrinsics ------------------===
2*344a7f5eSAndroid Build Coastguard Worker *
3*344a7f5eSAndroid Build Coastguard Worker *
4*344a7f5eSAndroid Build Coastguard Worker * Permission is hereby granted, free of charge, to any person obtaining a copy
5*344a7f5eSAndroid Build Coastguard Worker * of this software and associated documentation files (the "Software"), to deal
6*344a7f5eSAndroid Build Coastguard Worker * in the Software without restriction, including without limitation the rights
7*344a7f5eSAndroid Build Coastguard Worker * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8*344a7f5eSAndroid Build Coastguard Worker * copies of the Software, and to permit persons to whom the Software is
9*344a7f5eSAndroid Build Coastguard Worker * furnished to do so, subject to the following conditions:
10*344a7f5eSAndroid Build Coastguard Worker *
11*344a7f5eSAndroid Build Coastguard Worker * The above copyright notice and this permission notice shall be included in
12*344a7f5eSAndroid Build Coastguard Worker * all copies or substantial portions of the Software.
13*344a7f5eSAndroid Build Coastguard Worker *
14*344a7f5eSAndroid Build Coastguard Worker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15*344a7f5eSAndroid Build Coastguard Worker * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*344a7f5eSAndroid Build Coastguard Worker * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17*344a7f5eSAndroid Build Coastguard Worker * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18*344a7f5eSAndroid Build Coastguard Worker * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19*344a7f5eSAndroid Build Coastguard Worker * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20*344a7f5eSAndroid Build Coastguard Worker * THE SOFTWARE.
21*344a7f5eSAndroid Build Coastguard Worker *
22*344a7f5eSAndroid Build Coastguard Worker *===-----------------------------------------------------------------------===
23*344a7f5eSAndroid Build Coastguard Worker */
24*344a7f5eSAndroid Build Coastguard Worker #ifndef __IMMINTRIN_H
25*344a7f5eSAndroid Build Coastguard Worker #error "Never use <avx512bwintrin.h> directly; include <immintrin.h> instead."
26*344a7f5eSAndroid Build Coastguard Worker #endif
27*344a7f5eSAndroid Build Coastguard Worker
28*344a7f5eSAndroid Build Coastguard Worker #ifndef __AVX512BWINTRIN_H
29*344a7f5eSAndroid Build Coastguard Worker #define __AVX512BWINTRIN_H
30*344a7f5eSAndroid Build Coastguard Worker
31*344a7f5eSAndroid Build Coastguard Worker typedef unsigned int __mmask32;
32*344a7f5eSAndroid Build Coastguard Worker typedef unsigned long long __mmask64;
33*344a7f5eSAndroid Build Coastguard Worker
34*344a7f5eSAndroid Build Coastguard Worker /* Define the default attributes for the functions in this file. */
35*344a7f5eSAndroid Build Coastguard Worker #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512bw")))
36*344a7f5eSAndroid Build Coastguard Worker
37*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_setzero_qi(void)38*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_qi(void) {
39*344a7f5eSAndroid Build Coastguard Worker return (__m512i)(__v64qi){ 0, 0, 0, 0, 0, 0, 0, 0,
40*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0,
41*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0,
42*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0,
43*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0,
44*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0,
45*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0,
46*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0 };
47*344a7f5eSAndroid Build Coastguard Worker }
48*344a7f5eSAndroid Build Coastguard Worker
49*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_setzero_hi(void)50*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi(void) {
51*344a7f5eSAndroid Build Coastguard Worker return (__m512i)(__v32hi){ 0, 0, 0, 0, 0, 0, 0, 0,
52*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0,
53*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0,
54*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0 };
55*344a7f5eSAndroid Build Coastguard Worker }
56*344a7f5eSAndroid Build Coastguard Worker
57*344a7f5eSAndroid Build Coastguard Worker /* Integer compare */
58*344a7f5eSAndroid Build Coastguard Worker
59*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_cmpeq_epi8_mask(__m512i __a,__m512i __b)60*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpeq_epi8_mask(__m512i __a, __m512i __b) {
61*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_pcmpeqb512_mask((__v64qi)__a, (__v64qi)__b,
62*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1);
63*344a7f5eSAndroid Build Coastguard Worker }
64*344a7f5eSAndroid Build Coastguard Worker
65*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_cmpeq_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)66*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpeq_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
67*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_pcmpeqb512_mask((__v64qi)__a, (__v64qi)__b,
68*344a7f5eSAndroid Build Coastguard Worker __u);
69*344a7f5eSAndroid Build Coastguard Worker }
70*344a7f5eSAndroid Build Coastguard Worker
71*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_cmpeq_epu8_mask(__m512i __a,__m512i __b)72*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpeq_epu8_mask(__m512i __a, __m512i __b) {
73*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 0,
74*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1);
75*344a7f5eSAndroid Build Coastguard Worker }
76*344a7f5eSAndroid Build Coastguard Worker
77*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_cmpeq_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)78*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpeq_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
79*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 0,
80*344a7f5eSAndroid Build Coastguard Worker __u);
81*344a7f5eSAndroid Build Coastguard Worker }
82*344a7f5eSAndroid Build Coastguard Worker
83*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_cmpeq_epi16_mask(__m512i __a,__m512i __b)84*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpeq_epi16_mask(__m512i __a, __m512i __b) {
85*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_pcmpeqw512_mask((__v32hi)__a, (__v32hi)__b,
86*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1);
87*344a7f5eSAndroid Build Coastguard Worker }
88*344a7f5eSAndroid Build Coastguard Worker
89*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_cmpeq_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)90*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpeq_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
91*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_pcmpeqw512_mask((__v32hi)__a, (__v32hi)__b,
92*344a7f5eSAndroid Build Coastguard Worker __u);
93*344a7f5eSAndroid Build Coastguard Worker }
94*344a7f5eSAndroid Build Coastguard Worker
95*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_cmpeq_epu16_mask(__m512i __a,__m512i __b)96*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpeq_epu16_mask(__m512i __a, __m512i __b) {
97*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 0,
98*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1);
99*344a7f5eSAndroid Build Coastguard Worker }
100*344a7f5eSAndroid Build Coastguard Worker
101*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_cmpeq_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)102*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpeq_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
103*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 0,
104*344a7f5eSAndroid Build Coastguard Worker __u);
105*344a7f5eSAndroid Build Coastguard Worker }
106*344a7f5eSAndroid Build Coastguard Worker
107*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_cmpge_epi8_mask(__m512i __a,__m512i __b)108*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpge_epi8_mask(__m512i __a, __m512i __b) {
109*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 5,
110*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1);
111*344a7f5eSAndroid Build Coastguard Worker }
112*344a7f5eSAndroid Build Coastguard Worker
113*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_cmpge_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)114*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpge_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
115*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 5,
116*344a7f5eSAndroid Build Coastguard Worker __u);
117*344a7f5eSAndroid Build Coastguard Worker }
118*344a7f5eSAndroid Build Coastguard Worker
119*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_cmpge_epu8_mask(__m512i __a,__m512i __b)120*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpge_epu8_mask(__m512i __a, __m512i __b) {
121*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 5,
122*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1);
123*344a7f5eSAndroid Build Coastguard Worker }
124*344a7f5eSAndroid Build Coastguard Worker
125*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_cmpge_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)126*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpge_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
127*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 5,
128*344a7f5eSAndroid Build Coastguard Worker __u);
129*344a7f5eSAndroid Build Coastguard Worker }
130*344a7f5eSAndroid Build Coastguard Worker
131*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_cmpge_epi16_mask(__m512i __a,__m512i __b)132*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpge_epi16_mask(__m512i __a, __m512i __b) {
133*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 5,
134*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1);
135*344a7f5eSAndroid Build Coastguard Worker }
136*344a7f5eSAndroid Build Coastguard Worker
137*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_cmpge_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)138*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpge_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
139*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 5,
140*344a7f5eSAndroid Build Coastguard Worker __u);
141*344a7f5eSAndroid Build Coastguard Worker }
142*344a7f5eSAndroid Build Coastguard Worker
143*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_cmpge_epu16_mask(__m512i __a,__m512i __b)144*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpge_epu16_mask(__m512i __a, __m512i __b) {
145*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 5,
146*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1);
147*344a7f5eSAndroid Build Coastguard Worker }
148*344a7f5eSAndroid Build Coastguard Worker
149*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_cmpge_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)150*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpge_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
151*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 5,
152*344a7f5eSAndroid Build Coastguard Worker __u);
153*344a7f5eSAndroid Build Coastguard Worker }
154*344a7f5eSAndroid Build Coastguard Worker
155*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_cmpgt_epi8_mask(__m512i __a,__m512i __b)156*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpgt_epi8_mask(__m512i __a, __m512i __b) {
157*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_pcmpgtb512_mask((__v64qi)__a, (__v64qi)__b,
158*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1);
159*344a7f5eSAndroid Build Coastguard Worker }
160*344a7f5eSAndroid Build Coastguard Worker
161*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_cmpgt_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)162*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpgt_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
163*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_pcmpgtb512_mask((__v64qi)__a, (__v64qi)__b,
164*344a7f5eSAndroid Build Coastguard Worker __u);
165*344a7f5eSAndroid Build Coastguard Worker }
166*344a7f5eSAndroid Build Coastguard Worker
167*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_cmpgt_epu8_mask(__m512i __a,__m512i __b)168*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpgt_epu8_mask(__m512i __a, __m512i __b) {
169*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 6,
170*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1);
171*344a7f5eSAndroid Build Coastguard Worker }
172*344a7f5eSAndroid Build Coastguard Worker
173*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_cmpgt_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)174*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpgt_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
175*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 6,
176*344a7f5eSAndroid Build Coastguard Worker __u);
177*344a7f5eSAndroid Build Coastguard Worker }
178*344a7f5eSAndroid Build Coastguard Worker
179*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_cmpgt_epi16_mask(__m512i __a,__m512i __b)180*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpgt_epi16_mask(__m512i __a, __m512i __b) {
181*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_pcmpgtw512_mask((__v32hi)__a, (__v32hi)__b,
182*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1);
183*344a7f5eSAndroid Build Coastguard Worker }
184*344a7f5eSAndroid Build Coastguard Worker
185*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_cmpgt_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)186*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpgt_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
187*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_pcmpgtw512_mask((__v32hi)__a, (__v32hi)__b,
188*344a7f5eSAndroid Build Coastguard Worker __u);
189*344a7f5eSAndroid Build Coastguard Worker }
190*344a7f5eSAndroid Build Coastguard Worker
191*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_cmpgt_epu16_mask(__m512i __a,__m512i __b)192*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpgt_epu16_mask(__m512i __a, __m512i __b) {
193*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 6,
194*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1);
195*344a7f5eSAndroid Build Coastguard Worker }
196*344a7f5eSAndroid Build Coastguard Worker
197*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_cmpgt_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)198*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpgt_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
199*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 6,
200*344a7f5eSAndroid Build Coastguard Worker __u);
201*344a7f5eSAndroid Build Coastguard Worker }
202*344a7f5eSAndroid Build Coastguard Worker
203*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_cmple_epi8_mask(__m512i __a,__m512i __b)204*344a7f5eSAndroid Build Coastguard Worker _mm512_cmple_epi8_mask(__m512i __a, __m512i __b) {
205*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 2,
206*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1);
207*344a7f5eSAndroid Build Coastguard Worker }
208*344a7f5eSAndroid Build Coastguard Worker
209*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_cmple_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)210*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmple_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
211*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 2,
212*344a7f5eSAndroid Build Coastguard Worker __u);
213*344a7f5eSAndroid Build Coastguard Worker }
214*344a7f5eSAndroid Build Coastguard Worker
215*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_cmple_epu8_mask(__m512i __a,__m512i __b)216*344a7f5eSAndroid Build Coastguard Worker _mm512_cmple_epu8_mask(__m512i __a, __m512i __b) {
217*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 2,
218*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1);
219*344a7f5eSAndroid Build Coastguard Worker }
220*344a7f5eSAndroid Build Coastguard Worker
221*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_cmple_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)222*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmple_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
223*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 2,
224*344a7f5eSAndroid Build Coastguard Worker __u);
225*344a7f5eSAndroid Build Coastguard Worker }
226*344a7f5eSAndroid Build Coastguard Worker
227*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_cmple_epi16_mask(__m512i __a,__m512i __b)228*344a7f5eSAndroid Build Coastguard Worker _mm512_cmple_epi16_mask(__m512i __a, __m512i __b) {
229*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 2,
230*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1);
231*344a7f5eSAndroid Build Coastguard Worker }
232*344a7f5eSAndroid Build Coastguard Worker
233*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_cmple_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)234*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmple_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
235*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 2,
236*344a7f5eSAndroid Build Coastguard Worker __u);
237*344a7f5eSAndroid Build Coastguard Worker }
238*344a7f5eSAndroid Build Coastguard Worker
239*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_cmple_epu16_mask(__m512i __a,__m512i __b)240*344a7f5eSAndroid Build Coastguard Worker _mm512_cmple_epu16_mask(__m512i __a, __m512i __b) {
241*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 2,
242*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1);
243*344a7f5eSAndroid Build Coastguard Worker }
244*344a7f5eSAndroid Build Coastguard Worker
245*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_cmple_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)246*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmple_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
247*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 2,
248*344a7f5eSAndroid Build Coastguard Worker __u);
249*344a7f5eSAndroid Build Coastguard Worker }
250*344a7f5eSAndroid Build Coastguard Worker
251*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_cmplt_epi8_mask(__m512i __a,__m512i __b)252*344a7f5eSAndroid Build Coastguard Worker _mm512_cmplt_epi8_mask(__m512i __a, __m512i __b) {
253*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 1,
254*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1);
255*344a7f5eSAndroid Build Coastguard Worker }
256*344a7f5eSAndroid Build Coastguard Worker
257*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_cmplt_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)258*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmplt_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
259*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 1,
260*344a7f5eSAndroid Build Coastguard Worker __u);
261*344a7f5eSAndroid Build Coastguard Worker }
262*344a7f5eSAndroid Build Coastguard Worker
263*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_cmplt_epu8_mask(__m512i __a,__m512i __b)264*344a7f5eSAndroid Build Coastguard Worker _mm512_cmplt_epu8_mask(__m512i __a, __m512i __b) {
265*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 1,
266*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1);
267*344a7f5eSAndroid Build Coastguard Worker }
268*344a7f5eSAndroid Build Coastguard Worker
269*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_cmplt_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)270*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmplt_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
271*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 1,
272*344a7f5eSAndroid Build Coastguard Worker __u);
273*344a7f5eSAndroid Build Coastguard Worker }
274*344a7f5eSAndroid Build Coastguard Worker
275*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_cmplt_epi16_mask(__m512i __a,__m512i __b)276*344a7f5eSAndroid Build Coastguard Worker _mm512_cmplt_epi16_mask(__m512i __a, __m512i __b) {
277*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 1,
278*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1);
279*344a7f5eSAndroid Build Coastguard Worker }
280*344a7f5eSAndroid Build Coastguard Worker
281*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_cmplt_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)282*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmplt_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
283*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 1,
284*344a7f5eSAndroid Build Coastguard Worker __u);
285*344a7f5eSAndroid Build Coastguard Worker }
286*344a7f5eSAndroid Build Coastguard Worker
287*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_cmplt_epu16_mask(__m512i __a,__m512i __b)288*344a7f5eSAndroid Build Coastguard Worker _mm512_cmplt_epu16_mask(__m512i __a, __m512i __b) {
289*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 1,
290*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1);
291*344a7f5eSAndroid Build Coastguard Worker }
292*344a7f5eSAndroid Build Coastguard Worker
293*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_cmplt_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)294*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmplt_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
295*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 1,
296*344a7f5eSAndroid Build Coastguard Worker __u);
297*344a7f5eSAndroid Build Coastguard Worker }
298*344a7f5eSAndroid Build Coastguard Worker
299*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_cmpneq_epi8_mask(__m512i __a,__m512i __b)300*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpneq_epi8_mask(__m512i __a, __m512i __b) {
301*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 4,
302*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1);
303*344a7f5eSAndroid Build Coastguard Worker }
304*344a7f5eSAndroid Build Coastguard Worker
305*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_cmpneq_epi8_mask(__mmask64 __u,__m512i __a,__m512i __b)306*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpneq_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
307*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 4,
308*344a7f5eSAndroid Build Coastguard Worker __u);
309*344a7f5eSAndroid Build Coastguard Worker }
310*344a7f5eSAndroid Build Coastguard Worker
311*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_cmpneq_epu8_mask(__m512i __a,__m512i __b)312*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpneq_epu8_mask(__m512i __a, __m512i __b) {
313*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 4,
314*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1);
315*344a7f5eSAndroid Build Coastguard Worker }
316*344a7f5eSAndroid Build Coastguard Worker
317*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_cmpneq_epu8_mask(__mmask64 __u,__m512i __a,__m512i __b)318*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpneq_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {
319*344a7f5eSAndroid Build Coastguard Worker return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 4,
320*344a7f5eSAndroid Build Coastguard Worker __u);
321*344a7f5eSAndroid Build Coastguard Worker }
322*344a7f5eSAndroid Build Coastguard Worker
323*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_cmpneq_epi16_mask(__m512i __a,__m512i __b)324*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpneq_epi16_mask(__m512i __a, __m512i __b) {
325*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 4,
326*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1);
327*344a7f5eSAndroid Build Coastguard Worker }
328*344a7f5eSAndroid Build Coastguard Worker
329*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_cmpneq_epi16_mask(__mmask32 __u,__m512i __a,__m512i __b)330*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpneq_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
331*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 4,
332*344a7f5eSAndroid Build Coastguard Worker __u);
333*344a7f5eSAndroid Build Coastguard Worker }
334*344a7f5eSAndroid Build Coastguard Worker
335*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_cmpneq_epu16_mask(__m512i __a,__m512i __b)336*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpneq_epu16_mask(__m512i __a, __m512i __b) {
337*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 4,
338*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1);
339*344a7f5eSAndroid Build Coastguard Worker }
340*344a7f5eSAndroid Build Coastguard Worker
341*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_cmpneq_epu16_mask(__mmask32 __u,__m512i __a,__m512i __b)342*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpneq_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {
343*344a7f5eSAndroid Build Coastguard Worker return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 4,
344*344a7f5eSAndroid Build Coastguard Worker __u);
345*344a7f5eSAndroid Build Coastguard Worker }
346*344a7f5eSAndroid Build Coastguard Worker
347*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_add_epi8(__m512i __A,__m512i __B)348*344a7f5eSAndroid Build Coastguard Worker _mm512_add_epi8 (__m512i __A, __m512i __B) {
349*344a7f5eSAndroid Build Coastguard Worker return (__m512i) ((__v64qu) __A + (__v64qu) __B);
350*344a7f5eSAndroid Build Coastguard Worker }
351*344a7f5eSAndroid Build Coastguard Worker
352*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_add_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)353*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
354*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A,
355*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
356*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
357*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
358*344a7f5eSAndroid Build Coastguard Worker }
359*344a7f5eSAndroid Build Coastguard Worker
360*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_add_epi8(__mmask64 __U,__m512i __A,__m512i __B)361*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B) {
362*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A,
363*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
364*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
365*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
366*344a7f5eSAndroid Build Coastguard Worker }
367*344a7f5eSAndroid Build Coastguard Worker
368*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sub_epi8(__m512i __A,__m512i __B)369*344a7f5eSAndroid Build Coastguard Worker _mm512_sub_epi8 (__m512i __A, __m512i __B) {
370*344a7f5eSAndroid Build Coastguard Worker return (__m512i) ((__v64qu) __A - (__v64qu) __B);
371*344a7f5eSAndroid Build Coastguard Worker }
372*344a7f5eSAndroid Build Coastguard Worker
373*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sub_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)374*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sub_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
375*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A,
376*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
377*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
378*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
379*344a7f5eSAndroid Build Coastguard Worker }
380*344a7f5eSAndroid Build Coastguard Worker
381*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sub_epi8(__mmask64 __U,__m512i __A,__m512i __B)382*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sub_epi8 (__mmask64 __U, __m512i __A, __m512i __B) {
383*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A,
384*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
385*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
386*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
387*344a7f5eSAndroid Build Coastguard Worker }
388*344a7f5eSAndroid Build Coastguard Worker
389*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_add_epi16(__m512i __A,__m512i __B)390*344a7f5eSAndroid Build Coastguard Worker _mm512_add_epi16 (__m512i __A, __m512i __B) {
391*344a7f5eSAndroid Build Coastguard Worker return (__m512i) ((__v32hu) __A + (__v32hu) __B);
392*344a7f5eSAndroid Build Coastguard Worker }
393*344a7f5eSAndroid Build Coastguard Worker
394*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_add_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)395*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
396*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A,
397*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
398*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
399*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
400*344a7f5eSAndroid Build Coastguard Worker }
401*344a7f5eSAndroid Build Coastguard Worker
402*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_add_epi16(__mmask32 __U,__m512i __A,__m512i __B)403*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {
404*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A,
405*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
406*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
407*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
408*344a7f5eSAndroid Build Coastguard Worker }
409*344a7f5eSAndroid Build Coastguard Worker
410*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sub_epi16(__m512i __A,__m512i __B)411*344a7f5eSAndroid Build Coastguard Worker _mm512_sub_epi16 (__m512i __A, __m512i __B) {
412*344a7f5eSAndroid Build Coastguard Worker return (__m512i) ((__v32hu) __A - (__v32hu) __B);
413*344a7f5eSAndroid Build Coastguard Worker }
414*344a7f5eSAndroid Build Coastguard Worker
415*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sub_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)416*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sub_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
417*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A,
418*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
419*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
420*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
421*344a7f5eSAndroid Build Coastguard Worker }
422*344a7f5eSAndroid Build Coastguard Worker
423*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sub_epi16(__mmask32 __U,__m512i __A,__m512i __B)424*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sub_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {
425*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A,
426*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
427*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
428*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
429*344a7f5eSAndroid Build Coastguard Worker }
430*344a7f5eSAndroid Build Coastguard Worker
431*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mullo_epi16(__m512i __A,__m512i __B)432*344a7f5eSAndroid Build Coastguard Worker _mm512_mullo_epi16 (__m512i __A, __m512i __B) {
433*344a7f5eSAndroid Build Coastguard Worker return (__m512i) ((__v32hu) __A * (__v32hu) __B);
434*344a7f5eSAndroid Build Coastguard Worker }
435*344a7f5eSAndroid Build Coastguard Worker
436*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_mullo_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)437*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mullo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
438*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A,
439*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
440*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
441*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
442*344a7f5eSAndroid Build Coastguard Worker }
443*344a7f5eSAndroid Build Coastguard Worker
444*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_mullo_epi16(__mmask32 __U,__m512i __A,__m512i __B)445*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mullo_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {
446*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A,
447*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
448*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
449*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
450*344a7f5eSAndroid Build Coastguard Worker }
451*344a7f5eSAndroid Build Coastguard Worker
452*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_blend_epi8(__mmask64 __U,__m512i __A,__m512i __W)453*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W)
454*344a7f5eSAndroid Build Coastguard Worker {
455*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
456*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
457*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __A);
458*344a7f5eSAndroid Build Coastguard Worker }
459*344a7f5eSAndroid Build Coastguard Worker
460*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_blend_epi16(__mmask32 __U,__m512i __A,__m512i __W)461*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W)
462*344a7f5eSAndroid Build Coastguard Worker {
463*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
464*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
465*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __A);
466*344a7f5eSAndroid Build Coastguard Worker }
467*344a7f5eSAndroid Build Coastguard Worker
468*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_abs_epi8(__m512i __A)469*344a7f5eSAndroid Build Coastguard Worker _mm512_abs_epi8 (__m512i __A)
470*344a7f5eSAndroid Build Coastguard Worker {
471*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
472*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
473*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
474*344a7f5eSAndroid Build Coastguard Worker }
475*344a7f5eSAndroid Build Coastguard Worker
476*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_abs_epi8(__m512i __W,__mmask64 __U,__m512i __A)477*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
478*344a7f5eSAndroid Build Coastguard Worker {
479*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
480*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
481*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
482*344a7f5eSAndroid Build Coastguard Worker }
483*344a7f5eSAndroid Build Coastguard Worker
484*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_abs_epi8(__mmask64 __U,__m512i __A)485*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A)
486*344a7f5eSAndroid Build Coastguard Worker {
487*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,
488*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
489*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
490*344a7f5eSAndroid Build Coastguard Worker }
491*344a7f5eSAndroid Build Coastguard Worker
492*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_abs_epi16(__m512i __A)493*344a7f5eSAndroid Build Coastguard Worker _mm512_abs_epi16 (__m512i __A)
494*344a7f5eSAndroid Build Coastguard Worker {
495*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
496*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
497*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
498*344a7f5eSAndroid Build Coastguard Worker }
499*344a7f5eSAndroid Build Coastguard Worker
500*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_abs_epi16(__m512i __W,__mmask32 __U,__m512i __A)501*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
502*344a7f5eSAndroid Build Coastguard Worker {
503*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
504*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
505*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
506*344a7f5eSAndroid Build Coastguard Worker }
507*344a7f5eSAndroid Build Coastguard Worker
508*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_abs_epi16(__mmask32 __U,__m512i __A)509*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A)
510*344a7f5eSAndroid Build Coastguard Worker {
511*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,
512*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
513*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
514*344a7f5eSAndroid Build Coastguard Worker }
515*344a7f5eSAndroid Build Coastguard Worker
516*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_packs_epi32(__m512i __A,__m512i __B)517*344a7f5eSAndroid Build Coastguard Worker _mm512_packs_epi32 (__m512i __A, __m512i __B)
518*344a7f5eSAndroid Build Coastguard Worker {
519*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
520*344a7f5eSAndroid Build Coastguard Worker (__v16si) __B,
521*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
522*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
523*344a7f5eSAndroid Build Coastguard Worker }
524*344a7f5eSAndroid Build Coastguard Worker
525*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_packs_epi32(__mmask32 __M,__m512i __A,__m512i __B)526*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_packs_epi32 (__mmask32 __M, __m512i __A, __m512i __B)
527*344a7f5eSAndroid Build Coastguard Worker {
528*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
529*344a7f5eSAndroid Build Coastguard Worker (__v16si) __B,
530*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
531*344a7f5eSAndroid Build Coastguard Worker __M);
532*344a7f5eSAndroid Build Coastguard Worker }
533*344a7f5eSAndroid Build Coastguard Worker
534*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_packs_epi32(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)535*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_packs_epi32 (__m512i __W, __mmask32 __M, __m512i __A,
536*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
537*344a7f5eSAndroid Build Coastguard Worker {
538*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,
539*344a7f5eSAndroid Build Coastguard Worker (__v16si) __B,
540*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
541*344a7f5eSAndroid Build Coastguard Worker __M);
542*344a7f5eSAndroid Build Coastguard Worker }
543*344a7f5eSAndroid Build Coastguard Worker
544*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_packs_epi16(__m512i __A,__m512i __B)545*344a7f5eSAndroid Build Coastguard Worker _mm512_packs_epi16 (__m512i __A, __m512i __B)
546*344a7f5eSAndroid Build Coastguard Worker {
547*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
548*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
549*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
550*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
551*344a7f5eSAndroid Build Coastguard Worker }
552*344a7f5eSAndroid Build Coastguard Worker
553*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_packs_epi16(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)554*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_packs_epi16 (__m512i __W, __mmask64 __M, __m512i __A,
555*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
556*344a7f5eSAndroid Build Coastguard Worker {
557*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
558*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
559*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
560*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __M);
561*344a7f5eSAndroid Build Coastguard Worker }
562*344a7f5eSAndroid Build Coastguard Worker
563*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_packs_epi16(__mmask64 __M,__m512i __A,__m512i __B)564*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_packs_epi16 (__mmask64 __M, __m512i __A, __m512i __B)
565*344a7f5eSAndroid Build Coastguard Worker {
566*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,
567*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
568*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
569*344a7f5eSAndroid Build Coastguard Worker __M);
570*344a7f5eSAndroid Build Coastguard Worker }
571*344a7f5eSAndroid Build Coastguard Worker
572*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_packus_epi32(__m512i __A,__m512i __B)573*344a7f5eSAndroid Build Coastguard Worker _mm512_packus_epi32 (__m512i __A, __m512i __B)
574*344a7f5eSAndroid Build Coastguard Worker {
575*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
576*344a7f5eSAndroid Build Coastguard Worker (__v16si) __B,
577*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
578*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
579*344a7f5eSAndroid Build Coastguard Worker }
580*344a7f5eSAndroid Build Coastguard Worker
581*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_packus_epi32(__mmask32 __M,__m512i __A,__m512i __B)582*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_packus_epi32 (__mmask32 __M, __m512i __A, __m512i __B)
583*344a7f5eSAndroid Build Coastguard Worker {
584*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
585*344a7f5eSAndroid Build Coastguard Worker (__v16si) __B,
586*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
587*344a7f5eSAndroid Build Coastguard Worker __M);
588*344a7f5eSAndroid Build Coastguard Worker }
589*344a7f5eSAndroid Build Coastguard Worker
590*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_packus_epi32(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)591*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_packus_epi32 (__m512i __W, __mmask32 __M, __m512i __A,
592*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
593*344a7f5eSAndroid Build Coastguard Worker {
594*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,
595*344a7f5eSAndroid Build Coastguard Worker (__v16si) __B,
596*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
597*344a7f5eSAndroid Build Coastguard Worker __M);
598*344a7f5eSAndroid Build Coastguard Worker }
599*344a7f5eSAndroid Build Coastguard Worker
600*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_packus_epi16(__m512i __A,__m512i __B)601*344a7f5eSAndroid Build Coastguard Worker _mm512_packus_epi16 (__m512i __A, __m512i __B)
602*344a7f5eSAndroid Build Coastguard Worker {
603*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
604*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
605*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
606*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
607*344a7f5eSAndroid Build Coastguard Worker }
608*344a7f5eSAndroid Build Coastguard Worker
609*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_packus_epi16(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)610*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_packus_epi16 (__m512i __W, __mmask64 __M, __m512i __A,
611*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
612*344a7f5eSAndroid Build Coastguard Worker {
613*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
614*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
615*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
616*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __M);
617*344a7f5eSAndroid Build Coastguard Worker }
618*344a7f5eSAndroid Build Coastguard Worker
619*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_packus_epi16(__mmask64 __M,__m512i __A,__m512i __B)620*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_packus_epi16 (__mmask64 __M, __m512i __A, __m512i __B)
621*344a7f5eSAndroid Build Coastguard Worker {
622*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,
623*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
624*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
625*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __M);
626*344a7f5eSAndroid Build Coastguard Worker }
627*344a7f5eSAndroid Build Coastguard Worker
628*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_adds_epi8(__m512i __A,__m512i __B)629*344a7f5eSAndroid Build Coastguard Worker _mm512_adds_epi8 (__m512i __A, __m512i __B)
630*344a7f5eSAndroid Build Coastguard Worker {
631*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
632*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
633*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
634*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
635*344a7f5eSAndroid Build Coastguard Worker }
636*344a7f5eSAndroid Build Coastguard Worker
637*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_adds_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)638*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
639*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
640*344a7f5eSAndroid Build Coastguard Worker {
641*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
642*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
643*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
644*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
645*344a7f5eSAndroid Build Coastguard Worker }
646*344a7f5eSAndroid Build Coastguard Worker
647*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_adds_epi8(__mmask64 __U,__m512i __A,__m512i __B)648*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
649*344a7f5eSAndroid Build Coastguard Worker {
650*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
651*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
652*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
653*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
654*344a7f5eSAndroid Build Coastguard Worker }
655*344a7f5eSAndroid Build Coastguard Worker
656*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_adds_epi16(__m512i __A,__m512i __B)657*344a7f5eSAndroid Build Coastguard Worker _mm512_adds_epi16 (__m512i __A, __m512i __B)
658*344a7f5eSAndroid Build Coastguard Worker {
659*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
660*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
661*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
662*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
663*344a7f5eSAndroid Build Coastguard Worker }
664*344a7f5eSAndroid Build Coastguard Worker
665*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_adds_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)666*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
667*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
668*344a7f5eSAndroid Build Coastguard Worker {
669*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
670*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
671*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
672*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
673*344a7f5eSAndroid Build Coastguard Worker }
674*344a7f5eSAndroid Build Coastguard Worker
675*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_adds_epi16(__mmask32 __U,__m512i __A,__m512i __B)676*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
677*344a7f5eSAndroid Build Coastguard Worker {
678*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
679*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
680*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
681*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
682*344a7f5eSAndroid Build Coastguard Worker }
683*344a7f5eSAndroid Build Coastguard Worker
684*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_adds_epu8(__m512i __A,__m512i __B)685*344a7f5eSAndroid Build Coastguard Worker _mm512_adds_epu8 (__m512i __A, __m512i __B)
686*344a7f5eSAndroid Build Coastguard Worker {
687*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
688*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
689*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
690*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
691*344a7f5eSAndroid Build Coastguard Worker }
692*344a7f5eSAndroid Build Coastguard Worker
693*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_adds_epu8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)694*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
695*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
696*344a7f5eSAndroid Build Coastguard Worker {
697*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
698*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
699*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
700*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
701*344a7f5eSAndroid Build Coastguard Worker }
702*344a7f5eSAndroid Build Coastguard Worker
703*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_adds_epu8(__mmask64 __U,__m512i __A,__m512i __B)704*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
705*344a7f5eSAndroid Build Coastguard Worker {
706*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
707*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
708*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
709*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
710*344a7f5eSAndroid Build Coastguard Worker }
711*344a7f5eSAndroid Build Coastguard Worker
712*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_adds_epu16(__m512i __A,__m512i __B)713*344a7f5eSAndroid Build Coastguard Worker _mm512_adds_epu16 (__m512i __A, __m512i __B)
714*344a7f5eSAndroid Build Coastguard Worker {
715*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
716*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
717*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
718*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
719*344a7f5eSAndroid Build Coastguard Worker }
720*344a7f5eSAndroid Build Coastguard Worker
721*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_adds_epu16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)722*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
723*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
724*344a7f5eSAndroid Build Coastguard Worker {
725*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
726*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
727*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
728*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
729*344a7f5eSAndroid Build Coastguard Worker }
730*344a7f5eSAndroid Build Coastguard Worker
731*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_adds_epu16(__mmask32 __U,__m512i __A,__m512i __B)732*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
733*344a7f5eSAndroid Build Coastguard Worker {
734*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
735*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
736*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
737*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
738*344a7f5eSAndroid Build Coastguard Worker }
739*344a7f5eSAndroid Build Coastguard Worker
740*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_avg_epu8(__m512i __A,__m512i __B)741*344a7f5eSAndroid Build Coastguard Worker _mm512_avg_epu8 (__m512i __A, __m512i __B)
742*344a7f5eSAndroid Build Coastguard Worker {
743*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
744*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
745*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
746*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
747*344a7f5eSAndroid Build Coastguard Worker }
748*344a7f5eSAndroid Build Coastguard Worker
749*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_avg_epu8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)750*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
751*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
752*344a7f5eSAndroid Build Coastguard Worker {
753*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
754*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
755*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
756*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
757*344a7f5eSAndroid Build Coastguard Worker }
758*344a7f5eSAndroid Build Coastguard Worker
759*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_avg_epu8(__mmask64 __U,__m512i __A,__m512i __B)760*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
761*344a7f5eSAndroid Build Coastguard Worker {
762*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,
763*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
764*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
765*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
766*344a7f5eSAndroid Build Coastguard Worker }
767*344a7f5eSAndroid Build Coastguard Worker
768*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_avg_epu16(__m512i __A,__m512i __B)769*344a7f5eSAndroid Build Coastguard Worker _mm512_avg_epu16 (__m512i __A, __m512i __B)
770*344a7f5eSAndroid Build Coastguard Worker {
771*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
772*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
773*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
774*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
775*344a7f5eSAndroid Build Coastguard Worker }
776*344a7f5eSAndroid Build Coastguard Worker
777*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_avg_epu16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)778*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
779*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
780*344a7f5eSAndroid Build Coastguard Worker {
781*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
782*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
783*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
784*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
785*344a7f5eSAndroid Build Coastguard Worker }
786*344a7f5eSAndroid Build Coastguard Worker
787*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_avg_epu16(__mmask32 __U,__m512i __A,__m512i __B)788*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
789*344a7f5eSAndroid Build Coastguard Worker {
790*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,
791*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
792*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
793*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
794*344a7f5eSAndroid Build Coastguard Worker }
795*344a7f5eSAndroid Build Coastguard Worker
796*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_max_epi8(__m512i __A,__m512i __B)797*344a7f5eSAndroid Build Coastguard Worker _mm512_max_epi8 (__m512i __A, __m512i __B)
798*344a7f5eSAndroid Build Coastguard Worker {
799*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
800*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
801*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
802*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
803*344a7f5eSAndroid Build Coastguard Worker }
804*344a7f5eSAndroid Build Coastguard Worker
805*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_max_epi8(__mmask64 __M,__m512i __A,__m512i __B)806*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
807*344a7f5eSAndroid Build Coastguard Worker {
808*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
809*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
810*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
811*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __M);
812*344a7f5eSAndroid Build Coastguard Worker }
813*344a7f5eSAndroid Build Coastguard Worker
814*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_max_epi8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)815*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A,
816*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
817*344a7f5eSAndroid Build Coastguard Worker {
818*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,
819*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
820*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
821*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __M);
822*344a7f5eSAndroid Build Coastguard Worker }
823*344a7f5eSAndroid Build Coastguard Worker
824*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_max_epi16(__m512i __A,__m512i __B)825*344a7f5eSAndroid Build Coastguard Worker _mm512_max_epi16 (__m512i __A, __m512i __B)
826*344a7f5eSAndroid Build Coastguard Worker {
827*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
828*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
829*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
830*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
831*344a7f5eSAndroid Build Coastguard Worker }
832*344a7f5eSAndroid Build Coastguard Worker
833*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_max_epi16(__mmask32 __M,__m512i __A,__m512i __B)834*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
835*344a7f5eSAndroid Build Coastguard Worker {
836*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
837*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
838*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
839*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __M);
840*344a7f5eSAndroid Build Coastguard Worker }
841*344a7f5eSAndroid Build Coastguard Worker
842*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_max_epi16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)843*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
844*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
845*344a7f5eSAndroid Build Coastguard Worker {
846*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,
847*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
848*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
849*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __M);
850*344a7f5eSAndroid Build Coastguard Worker }
851*344a7f5eSAndroid Build Coastguard Worker
852*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_max_epu8(__m512i __A,__m512i __B)853*344a7f5eSAndroid Build Coastguard Worker _mm512_max_epu8 (__m512i __A, __m512i __B)
854*344a7f5eSAndroid Build Coastguard Worker {
855*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
856*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
857*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
858*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
859*344a7f5eSAndroid Build Coastguard Worker }
860*344a7f5eSAndroid Build Coastguard Worker
861*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_max_epu8(__mmask64 __M,__m512i __A,__m512i __B)862*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
863*344a7f5eSAndroid Build Coastguard Worker {
864*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
865*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
866*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
867*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __M);
868*344a7f5eSAndroid Build Coastguard Worker }
869*344a7f5eSAndroid Build Coastguard Worker
870*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_max_epu8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)871*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A,
872*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
873*344a7f5eSAndroid Build Coastguard Worker {
874*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,
875*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
876*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
877*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __M);
878*344a7f5eSAndroid Build Coastguard Worker }
879*344a7f5eSAndroid Build Coastguard Worker
880*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_max_epu16(__m512i __A,__m512i __B)881*344a7f5eSAndroid Build Coastguard Worker _mm512_max_epu16 (__m512i __A, __m512i __B)
882*344a7f5eSAndroid Build Coastguard Worker {
883*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
884*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
885*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
886*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
887*344a7f5eSAndroid Build Coastguard Worker }
888*344a7f5eSAndroid Build Coastguard Worker
889*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_max_epu16(__mmask32 __M,__m512i __A,__m512i __B)890*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
891*344a7f5eSAndroid Build Coastguard Worker {
892*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
893*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
894*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
895*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __M);
896*344a7f5eSAndroid Build Coastguard Worker }
897*344a7f5eSAndroid Build Coastguard Worker
898*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_max_epu16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)899*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A,
900*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
901*344a7f5eSAndroid Build Coastguard Worker {
902*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,
903*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
904*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
905*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __M);
906*344a7f5eSAndroid Build Coastguard Worker }
907*344a7f5eSAndroid Build Coastguard Worker
908*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_min_epi8(__m512i __A,__m512i __B)909*344a7f5eSAndroid Build Coastguard Worker _mm512_min_epi8 (__m512i __A, __m512i __B)
910*344a7f5eSAndroid Build Coastguard Worker {
911*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
912*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
913*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
914*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
915*344a7f5eSAndroid Build Coastguard Worker }
916*344a7f5eSAndroid Build Coastguard Worker
917*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_min_epi8(__mmask64 __M,__m512i __A,__m512i __B)918*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
919*344a7f5eSAndroid Build Coastguard Worker {
920*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
921*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
922*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
923*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __M);
924*344a7f5eSAndroid Build Coastguard Worker }
925*344a7f5eSAndroid Build Coastguard Worker
926*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_min_epi8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)927*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A,
928*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
929*344a7f5eSAndroid Build Coastguard Worker {
930*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,
931*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
932*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
933*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __M);
934*344a7f5eSAndroid Build Coastguard Worker }
935*344a7f5eSAndroid Build Coastguard Worker
936*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_min_epi16(__m512i __A,__m512i __B)937*344a7f5eSAndroid Build Coastguard Worker _mm512_min_epi16 (__m512i __A, __m512i __B)
938*344a7f5eSAndroid Build Coastguard Worker {
939*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
940*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
941*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
942*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
943*344a7f5eSAndroid Build Coastguard Worker }
944*344a7f5eSAndroid Build Coastguard Worker
945*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_min_epi16(__mmask32 __M,__m512i __A,__m512i __B)946*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
947*344a7f5eSAndroid Build Coastguard Worker {
948*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
949*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
950*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
951*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __M);
952*344a7f5eSAndroid Build Coastguard Worker }
953*344a7f5eSAndroid Build Coastguard Worker
954*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_min_epi16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)955*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
956*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
957*344a7f5eSAndroid Build Coastguard Worker {
958*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,
959*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
960*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
961*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __M);
962*344a7f5eSAndroid Build Coastguard Worker }
963*344a7f5eSAndroid Build Coastguard Worker
964*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_min_epu8(__m512i __A,__m512i __B)965*344a7f5eSAndroid Build Coastguard Worker _mm512_min_epu8 (__m512i __A, __m512i __B)
966*344a7f5eSAndroid Build Coastguard Worker {
967*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
968*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
969*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
970*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
971*344a7f5eSAndroid Build Coastguard Worker }
972*344a7f5eSAndroid Build Coastguard Worker
973*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_min_epu8(__mmask64 __M,__m512i __A,__m512i __B)974*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
975*344a7f5eSAndroid Build Coastguard Worker {
976*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
977*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
978*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
979*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __M);
980*344a7f5eSAndroid Build Coastguard Worker }
981*344a7f5eSAndroid Build Coastguard Worker
982*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_min_epu8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)983*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A,
984*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
985*344a7f5eSAndroid Build Coastguard Worker {
986*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,
987*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
988*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
989*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __M);
990*344a7f5eSAndroid Build Coastguard Worker }
991*344a7f5eSAndroid Build Coastguard Worker
992*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_min_epu16(__m512i __A,__m512i __B)993*344a7f5eSAndroid Build Coastguard Worker _mm512_min_epu16 (__m512i __A, __m512i __B)
994*344a7f5eSAndroid Build Coastguard Worker {
995*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
996*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
997*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
998*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
999*344a7f5eSAndroid Build Coastguard Worker }
1000*344a7f5eSAndroid Build Coastguard Worker
1001*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_min_epu16(__mmask32 __M,__m512i __A,__m512i __B)1002*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
1003*344a7f5eSAndroid Build Coastguard Worker {
1004*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
1005*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1006*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1007*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __M);
1008*344a7f5eSAndroid Build Coastguard Worker }
1009*344a7f5eSAndroid Build Coastguard Worker
1010*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_min_epu16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)1011*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A,
1012*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
1013*344a7f5eSAndroid Build Coastguard Worker {
1014*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,
1015*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1016*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1017*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __M);
1018*344a7f5eSAndroid Build Coastguard Worker }
1019*344a7f5eSAndroid Build Coastguard Worker
1020*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_shuffle_epi8(__m512i __A,__m512i __B)1021*344a7f5eSAndroid Build Coastguard Worker _mm512_shuffle_epi8 (__m512i __A, __m512i __B)
1022*344a7f5eSAndroid Build Coastguard Worker {
1023*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
1024*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
1025*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
1026*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
1027*344a7f5eSAndroid Build Coastguard Worker }
1028*344a7f5eSAndroid Build Coastguard Worker
1029*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_shuffle_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)1030*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_shuffle_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
1031*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
1032*344a7f5eSAndroid Build Coastguard Worker {
1033*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
1034*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
1035*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
1036*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
1037*344a7f5eSAndroid Build Coastguard Worker }
1038*344a7f5eSAndroid Build Coastguard Worker
1039*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_shuffle_epi8(__mmask64 __U,__m512i __A,__m512i __B)1040*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_shuffle_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
1041*344a7f5eSAndroid Build Coastguard Worker {
1042*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,
1043*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
1044*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
1045*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
1046*344a7f5eSAndroid Build Coastguard Worker }
1047*344a7f5eSAndroid Build Coastguard Worker
1048*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_subs_epi8(__m512i __A,__m512i __B)1049*344a7f5eSAndroid Build Coastguard Worker _mm512_subs_epi8 (__m512i __A, __m512i __B)
1050*344a7f5eSAndroid Build Coastguard Worker {
1051*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
1052*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
1053*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
1054*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
1055*344a7f5eSAndroid Build Coastguard Worker }
1056*344a7f5eSAndroid Build Coastguard Worker
1057*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_subs_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)1058*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
1059*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
1060*344a7f5eSAndroid Build Coastguard Worker {
1061*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
1062*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
1063*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
1064*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
1065*344a7f5eSAndroid Build Coastguard Worker }
1066*344a7f5eSAndroid Build Coastguard Worker
1067*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_subs_epi8(__mmask64 __U,__m512i __A,__m512i __B)1068*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
1069*344a7f5eSAndroid Build Coastguard Worker {
1070*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
1071*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
1072*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
1073*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
1074*344a7f5eSAndroid Build Coastguard Worker }
1075*344a7f5eSAndroid Build Coastguard Worker
1076*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_subs_epi16(__m512i __A,__m512i __B)1077*344a7f5eSAndroid Build Coastguard Worker _mm512_subs_epi16 (__m512i __A, __m512i __B)
1078*344a7f5eSAndroid Build Coastguard Worker {
1079*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
1080*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1081*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1082*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1083*344a7f5eSAndroid Build Coastguard Worker }
1084*344a7f5eSAndroid Build Coastguard Worker
1085*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_subs_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1086*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1087*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
1088*344a7f5eSAndroid Build Coastguard Worker {
1089*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
1090*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1091*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1092*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1093*344a7f5eSAndroid Build Coastguard Worker }
1094*344a7f5eSAndroid Build Coastguard Worker
1095*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_subs_epi16(__mmask32 __U,__m512i __A,__m512i __B)1096*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
1097*344a7f5eSAndroid Build Coastguard Worker {
1098*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
1099*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1100*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1101*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1102*344a7f5eSAndroid Build Coastguard Worker }
1103*344a7f5eSAndroid Build Coastguard Worker
1104*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_subs_epu8(__m512i __A,__m512i __B)1105*344a7f5eSAndroid Build Coastguard Worker _mm512_subs_epu8 (__m512i __A, __m512i __B)
1106*344a7f5eSAndroid Build Coastguard Worker {
1107*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
1108*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
1109*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
1110*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
1111*344a7f5eSAndroid Build Coastguard Worker }
1112*344a7f5eSAndroid Build Coastguard Worker
1113*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_subs_epu8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)1114*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
1115*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
1116*344a7f5eSAndroid Build Coastguard Worker {
1117*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
1118*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
1119*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
1120*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
1121*344a7f5eSAndroid Build Coastguard Worker }
1122*344a7f5eSAndroid Build Coastguard Worker
1123*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_subs_epu8(__mmask64 __U,__m512i __A,__m512i __B)1124*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
1125*344a7f5eSAndroid Build Coastguard Worker {
1126*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
1127*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
1128*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_qi(),
1129*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
1130*344a7f5eSAndroid Build Coastguard Worker }
1131*344a7f5eSAndroid Build Coastguard Worker
1132*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_subs_epu16(__m512i __A,__m512i __B)1133*344a7f5eSAndroid Build Coastguard Worker _mm512_subs_epu16 (__m512i __A, __m512i __B)
1134*344a7f5eSAndroid Build Coastguard Worker {
1135*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
1136*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1137*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1138*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1139*344a7f5eSAndroid Build Coastguard Worker }
1140*344a7f5eSAndroid Build Coastguard Worker
1141*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_subs_epu16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1142*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
1143*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
1144*344a7f5eSAndroid Build Coastguard Worker {
1145*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
1146*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1147*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1148*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1149*344a7f5eSAndroid Build Coastguard Worker }
1150*344a7f5eSAndroid Build Coastguard Worker
1151*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_subs_epu16(__mmask32 __U,__m512i __A,__m512i __B)1152*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
1153*344a7f5eSAndroid Build Coastguard Worker {
1154*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
1155*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1156*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1157*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1158*344a7f5eSAndroid Build Coastguard Worker }
1159*344a7f5eSAndroid Build Coastguard Worker
1160*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask2_permutex2var_epi16(__m512i __A,__m512i __I,__mmask32 __U,__m512i __B)1161*344a7f5eSAndroid Build Coastguard Worker _mm512_mask2_permutex2var_epi16 (__m512i __A, __m512i __I,
1162*344a7f5eSAndroid Build Coastguard Worker __mmask32 __U, __m512i __B)
1163*344a7f5eSAndroid Build Coastguard Worker {
1164*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_vpermi2varhi512_mask ((__v32hi) __A,
1165*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __I /* idx */ ,
1166*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1167*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1168*344a7f5eSAndroid Build Coastguard Worker }
1169*344a7f5eSAndroid Build Coastguard Worker
1170*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_permutex2var_epi16(__m512i __A,__m512i __I,__m512i __B)1171*344a7f5eSAndroid Build Coastguard Worker _mm512_permutex2var_epi16 (__m512i __A, __m512i __I, __m512i __B)
1172*344a7f5eSAndroid Build Coastguard Worker {
1173*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I /* idx */,
1174*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __A,
1175*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1176*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1177*344a7f5eSAndroid Build Coastguard Worker }
1178*344a7f5eSAndroid Build Coastguard Worker
1179*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_permutex2var_epi16(__m512i __A,__mmask32 __U,__m512i __I,__m512i __B)1180*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_permutex2var_epi16 (__m512i __A, __mmask32 __U,
1181*344a7f5eSAndroid Build Coastguard Worker __m512i __I, __m512i __B)
1182*344a7f5eSAndroid Build Coastguard Worker {
1183*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I /* idx */,
1184*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __A,
1185*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1186*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1187*344a7f5eSAndroid Build Coastguard Worker }
1188*344a7f5eSAndroid Build Coastguard Worker
1189*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_permutex2var_epi16(__mmask32 __U,__m512i __A,__m512i __I,__m512i __B)1190*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_permutex2var_epi16 (__mmask32 __U, __m512i __A,
1191*344a7f5eSAndroid Build Coastguard Worker __m512i __I, __m512i __B)
1192*344a7f5eSAndroid Build Coastguard Worker {
1193*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_vpermt2varhi512_maskz ((__v32hi) __I
1194*344a7f5eSAndroid Build Coastguard Worker /* idx */ ,
1195*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __A,
1196*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1197*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1198*344a7f5eSAndroid Build Coastguard Worker }
1199*344a7f5eSAndroid Build Coastguard Worker
1200*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mulhrs_epi16(__m512i __A,__m512i __B)1201*344a7f5eSAndroid Build Coastguard Worker _mm512_mulhrs_epi16 (__m512i __A, __m512i __B)
1202*344a7f5eSAndroid Build Coastguard Worker {
1203*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
1204*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1205*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1206*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1207*344a7f5eSAndroid Build Coastguard Worker }
1208*344a7f5eSAndroid Build Coastguard Worker
1209*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_mulhrs_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1210*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mulhrs_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1211*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
1212*344a7f5eSAndroid Build Coastguard Worker {
1213*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
1214*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1215*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1216*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1217*344a7f5eSAndroid Build Coastguard Worker }
1218*344a7f5eSAndroid Build Coastguard Worker
1219*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_mulhrs_epi16(__mmask32 __U,__m512i __A,__m512i __B)1220*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mulhrs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
1221*344a7f5eSAndroid Build Coastguard Worker {
1222*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,
1223*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1224*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1225*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1226*344a7f5eSAndroid Build Coastguard Worker }
1227*344a7f5eSAndroid Build Coastguard Worker
1228*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mulhi_epi16(__m512i __A,__m512i __B)1229*344a7f5eSAndroid Build Coastguard Worker _mm512_mulhi_epi16 (__m512i __A, __m512i __B)
1230*344a7f5eSAndroid Build Coastguard Worker {
1231*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
1232*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1233*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1234*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1235*344a7f5eSAndroid Build Coastguard Worker }
1236*344a7f5eSAndroid Build Coastguard Worker
1237*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_mulhi_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1238*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mulhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1239*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
1240*344a7f5eSAndroid Build Coastguard Worker {
1241*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
1242*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1243*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1244*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1245*344a7f5eSAndroid Build Coastguard Worker }
1246*344a7f5eSAndroid Build Coastguard Worker
1247*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_mulhi_epi16(__mmask32 __U,__m512i __A,__m512i __B)1248*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mulhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
1249*344a7f5eSAndroid Build Coastguard Worker {
1250*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,
1251*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1252*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1253*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1254*344a7f5eSAndroid Build Coastguard Worker }
1255*344a7f5eSAndroid Build Coastguard Worker
1256*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mulhi_epu16(__m512i __A,__m512i __B)1257*344a7f5eSAndroid Build Coastguard Worker _mm512_mulhi_epu16 (__m512i __A, __m512i __B)
1258*344a7f5eSAndroid Build Coastguard Worker {
1259*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
1260*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1261*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1262*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1263*344a7f5eSAndroid Build Coastguard Worker }
1264*344a7f5eSAndroid Build Coastguard Worker
1265*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_mulhi_epu16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1266*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mulhi_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
1267*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
1268*344a7f5eSAndroid Build Coastguard Worker {
1269*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
1270*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1271*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1272*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1273*344a7f5eSAndroid Build Coastguard Worker }
1274*344a7f5eSAndroid Build Coastguard Worker
1275*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_mulhi_epu16(__mmask32 __U,__m512i __A,__m512i __B)1276*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
1277*344a7f5eSAndroid Build Coastguard Worker {
1278*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,
1279*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1280*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1281*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1282*344a7f5eSAndroid Build Coastguard Worker }
1283*344a7f5eSAndroid Build Coastguard Worker
1284*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maddubs_epi16(__m512i __X,__m512i __Y)1285*344a7f5eSAndroid Build Coastguard Worker _mm512_maddubs_epi16 (__m512i __X, __m512i __Y) {
1286*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
1287*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __Y,
1288*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1289*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1290*344a7f5eSAndroid Build Coastguard Worker }
1291*344a7f5eSAndroid Build Coastguard Worker
1292*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_maddubs_epi16(__m512i __W,__mmask32 __U,__m512i __X,__m512i __Y)1293*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_maddubs_epi16 (__m512i __W, __mmask32 __U, __m512i __X,
1294*344a7f5eSAndroid Build Coastguard Worker __m512i __Y) {
1295*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
1296*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __Y,
1297*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1298*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1299*344a7f5eSAndroid Build Coastguard Worker }
1300*344a7f5eSAndroid Build Coastguard Worker
1301*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_maddubs_epi16(__mmask32 __U,__m512i __X,__m512i __Y)1302*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_maddubs_epi16 (__mmask32 __U, __m512i __X, __m512i __Y) {
1303*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,
1304*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __Y,
1305*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
1306*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1307*344a7f5eSAndroid Build Coastguard Worker }
1308*344a7f5eSAndroid Build Coastguard Worker
1309*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_madd_epi16(__m512i __A,__m512i __B)1310*344a7f5eSAndroid Build Coastguard Worker _mm512_madd_epi16 (__m512i __A, __m512i __B) {
1311*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
1312*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1313*344a7f5eSAndroid Build Coastguard Worker (__v16si) _mm512_setzero_si512(),
1314*344a7f5eSAndroid Build Coastguard Worker (__mmask16) -1);
1315*344a7f5eSAndroid Build Coastguard Worker }
1316*344a7f5eSAndroid Build Coastguard Worker
1317*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_madd_epi16(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)1318*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_madd_epi16 (__m512i __W, __mmask16 __U, __m512i __A,
1319*344a7f5eSAndroid Build Coastguard Worker __m512i __B) {
1320*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
1321*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1322*344a7f5eSAndroid Build Coastguard Worker (__v16si) __W,
1323*344a7f5eSAndroid Build Coastguard Worker (__mmask16) __U);
1324*344a7f5eSAndroid Build Coastguard Worker }
1325*344a7f5eSAndroid Build Coastguard Worker
1326*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_madd_epi16(__mmask16 __U,__m512i __A,__m512i __B)1327*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_madd_epi16 (__mmask16 __U, __m512i __A, __m512i __B) {
1328*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,
1329*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1330*344a7f5eSAndroid Build Coastguard Worker (__v16si) _mm512_setzero_si512(),
1331*344a7f5eSAndroid Build Coastguard Worker (__mmask16) __U);
1332*344a7f5eSAndroid Build Coastguard Worker }
1333*344a7f5eSAndroid Build Coastguard Worker
1334*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_cvtsepi16_epi8(__m512i __A)1335*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtsepi16_epi8 (__m512i __A) {
1336*344a7f5eSAndroid Build Coastguard Worker return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1337*344a7f5eSAndroid Build Coastguard Worker (__v32qi)_mm256_setzero_si256(),
1338*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1339*344a7f5eSAndroid Build Coastguard Worker }
1340*344a7f5eSAndroid Build Coastguard Worker
1341*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvtsepi16_epi8(__m256i __O,__mmask32 __M,__m512i __A)1342*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
1343*344a7f5eSAndroid Build Coastguard Worker return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1344*344a7f5eSAndroid Build Coastguard Worker (__v32qi)__O,
1345*344a7f5eSAndroid Build Coastguard Worker __M);
1346*344a7f5eSAndroid Build Coastguard Worker }
1347*344a7f5eSAndroid Build Coastguard Worker
1348*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtsepi16_epi8(__mmask32 __M,__m512i __A)1349*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A) {
1350*344a7f5eSAndroid Build Coastguard Worker return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
1351*344a7f5eSAndroid Build Coastguard Worker (__v32qi) _mm256_setzero_si256(),
1352*344a7f5eSAndroid Build Coastguard Worker __M);
1353*344a7f5eSAndroid Build Coastguard Worker }
1354*344a7f5eSAndroid Build Coastguard Worker
1355*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_cvtusepi16_epi8(__m512i __A)1356*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtusepi16_epi8 (__m512i __A) {
1357*344a7f5eSAndroid Build Coastguard Worker return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1358*344a7f5eSAndroid Build Coastguard Worker (__v32qi) _mm256_setzero_si256(),
1359*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1360*344a7f5eSAndroid Build Coastguard Worker }
1361*344a7f5eSAndroid Build Coastguard Worker
1362*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvtusepi16_epi8(__m256i __O,__mmask32 __M,__m512i __A)1363*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
1364*344a7f5eSAndroid Build Coastguard Worker return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1365*344a7f5eSAndroid Build Coastguard Worker (__v32qi) __O,
1366*344a7f5eSAndroid Build Coastguard Worker __M);
1367*344a7f5eSAndroid Build Coastguard Worker }
1368*344a7f5eSAndroid Build Coastguard Worker
1369*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtusepi16_epi8(__mmask32 __M,__m512i __A)1370*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A) {
1371*344a7f5eSAndroid Build Coastguard Worker return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
1372*344a7f5eSAndroid Build Coastguard Worker (__v32qi) _mm256_setzero_si256(),
1373*344a7f5eSAndroid Build Coastguard Worker __M);
1374*344a7f5eSAndroid Build Coastguard Worker }
1375*344a7f5eSAndroid Build Coastguard Worker
1376*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_cvtepi16_epi8(__m512i __A)1377*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi16_epi8 (__m512i __A) {
1378*344a7f5eSAndroid Build Coastguard Worker return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
1379*344a7f5eSAndroid Build Coastguard Worker (__v32qi) _mm256_setzero_si256(),
1380*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1381*344a7f5eSAndroid Build Coastguard Worker }
1382*344a7f5eSAndroid Build Coastguard Worker
1383*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi16_epi8(__m256i __O,__mmask32 __M,__m512i __A)1384*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
1385*344a7f5eSAndroid Build Coastguard Worker return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
1386*344a7f5eSAndroid Build Coastguard Worker (__v32qi) __O,
1387*344a7f5eSAndroid Build Coastguard Worker __M);
1388*344a7f5eSAndroid Build Coastguard Worker }
1389*344a7f5eSAndroid Build Coastguard Worker
1390*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi16_epi8(__mmask32 __M,__m512i __A)1391*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A) {
1392*344a7f5eSAndroid Build Coastguard Worker return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
1393*344a7f5eSAndroid Build Coastguard Worker (__v32qi) _mm256_setzero_si256(),
1394*344a7f5eSAndroid Build Coastguard Worker __M);
1395*344a7f5eSAndroid Build Coastguard Worker }
1396*344a7f5eSAndroid Build Coastguard Worker
1397*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi16_storeu_epi8(void * __P,__mmask32 __M,__m512i __A)1398*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1399*344a7f5eSAndroid Build Coastguard Worker {
1400*344a7f5eSAndroid Build Coastguard Worker __builtin_ia32_pmovwb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
1401*344a7f5eSAndroid Build Coastguard Worker }
1402*344a7f5eSAndroid Build Coastguard Worker
1403*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtsepi16_storeu_epi8(void * __P,__mmask32 __M,__m512i __A)1404*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1405*344a7f5eSAndroid Build Coastguard Worker {
1406*344a7f5eSAndroid Build Coastguard Worker __builtin_ia32_pmovswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
1407*344a7f5eSAndroid Build Coastguard Worker }
1408*344a7f5eSAndroid Build Coastguard Worker
1409*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtusepi16_storeu_epi8(void * __P,__mmask32 __M,__m512i __A)1410*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
1411*344a7f5eSAndroid Build Coastguard Worker {
1412*344a7f5eSAndroid Build Coastguard Worker __builtin_ia32_pmovuswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
1413*344a7f5eSAndroid Build Coastguard Worker }
1414*344a7f5eSAndroid Build Coastguard Worker
1415*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_unpackhi_epi8(__m512i __A,__m512i __B)1416*344a7f5eSAndroid Build Coastguard Worker _mm512_unpackhi_epi8(__m512i __A, __m512i __B) {
1417*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B,
1418*344a7f5eSAndroid Build Coastguard Worker 8, 64+8, 9, 64+9,
1419*344a7f5eSAndroid Build Coastguard Worker 10, 64+10, 11, 64+11,
1420*344a7f5eSAndroid Build Coastguard Worker 12, 64+12, 13, 64+13,
1421*344a7f5eSAndroid Build Coastguard Worker 14, 64+14, 15, 64+15,
1422*344a7f5eSAndroid Build Coastguard Worker 24, 64+24, 25, 64+25,
1423*344a7f5eSAndroid Build Coastguard Worker 26, 64+26, 27, 64+27,
1424*344a7f5eSAndroid Build Coastguard Worker 28, 64+28, 29, 64+29,
1425*344a7f5eSAndroid Build Coastguard Worker 30, 64+30, 31, 64+31,
1426*344a7f5eSAndroid Build Coastguard Worker 40, 64+40, 41, 64+41,
1427*344a7f5eSAndroid Build Coastguard Worker 42, 64+42, 43, 64+43,
1428*344a7f5eSAndroid Build Coastguard Worker 44, 64+44, 45, 64+45,
1429*344a7f5eSAndroid Build Coastguard Worker 46, 64+46, 47, 64+47,
1430*344a7f5eSAndroid Build Coastguard Worker 56, 64+56, 57, 64+57,
1431*344a7f5eSAndroid Build Coastguard Worker 58, 64+58, 59, 64+59,
1432*344a7f5eSAndroid Build Coastguard Worker 60, 64+60, 61, 64+61,
1433*344a7f5eSAndroid Build Coastguard Worker 62, 64+62, 63, 64+63);
1434*344a7f5eSAndroid Build Coastguard Worker }
1435*344a7f5eSAndroid Build Coastguard Worker
1436*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_unpackhi_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)1437*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
1438*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1439*344a7f5eSAndroid Build Coastguard Worker (__v64qi)_mm512_unpackhi_epi8(__A, __B),
1440*344a7f5eSAndroid Build Coastguard Worker (__v64qi)__W);
1441*344a7f5eSAndroid Build Coastguard Worker }
1442*344a7f5eSAndroid Build Coastguard Worker
1443*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_unpackhi_epi8(__mmask64 __U,__m512i __A,__m512i __B)1444*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
1445*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1446*344a7f5eSAndroid Build Coastguard Worker (__v64qi)_mm512_unpackhi_epi8(__A, __B),
1447*344a7f5eSAndroid Build Coastguard Worker (__v64qi)_mm512_setzero_qi());
1448*344a7f5eSAndroid Build Coastguard Worker }
1449*344a7f5eSAndroid Build Coastguard Worker
1450*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_unpackhi_epi16(__m512i __A,__m512i __B)1451*344a7f5eSAndroid Build Coastguard Worker _mm512_unpackhi_epi16(__m512i __A, __m512i __B) {
1452*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B,
1453*344a7f5eSAndroid Build Coastguard Worker 4, 32+4, 5, 32+5,
1454*344a7f5eSAndroid Build Coastguard Worker 6, 32+6, 7, 32+7,
1455*344a7f5eSAndroid Build Coastguard Worker 12, 32+12, 13, 32+13,
1456*344a7f5eSAndroid Build Coastguard Worker 14, 32+14, 15, 32+15,
1457*344a7f5eSAndroid Build Coastguard Worker 20, 32+20, 21, 32+21,
1458*344a7f5eSAndroid Build Coastguard Worker 22, 32+22, 23, 32+23,
1459*344a7f5eSAndroid Build Coastguard Worker 28, 32+28, 29, 32+29,
1460*344a7f5eSAndroid Build Coastguard Worker 30, 32+30, 31, 32+31);
1461*344a7f5eSAndroid Build Coastguard Worker }
1462*344a7f5eSAndroid Build Coastguard Worker
1463*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_unpackhi_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1464*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1465*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1466*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_unpackhi_epi16(__A, __B),
1467*344a7f5eSAndroid Build Coastguard Worker (__v32hi)__W);
1468*344a7f5eSAndroid Build Coastguard Worker }
1469*344a7f5eSAndroid Build Coastguard Worker
1470*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_unpackhi_epi16(__mmask32 __U,__m512i __A,__m512i __B)1471*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1472*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1473*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_unpackhi_epi16(__A, __B),
1474*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_setzero_hi());
1475*344a7f5eSAndroid Build Coastguard Worker }
1476*344a7f5eSAndroid Build Coastguard Worker
1477*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_unpacklo_epi8(__m512i __A,__m512i __B)1478*344a7f5eSAndroid Build Coastguard Worker _mm512_unpacklo_epi8(__m512i __A, __m512i __B) {
1479*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B,
1480*344a7f5eSAndroid Build Coastguard Worker 0, 64+0, 1, 64+1,
1481*344a7f5eSAndroid Build Coastguard Worker 2, 64+2, 3, 64+3,
1482*344a7f5eSAndroid Build Coastguard Worker 4, 64+4, 5, 64+5,
1483*344a7f5eSAndroid Build Coastguard Worker 6, 64+6, 7, 64+7,
1484*344a7f5eSAndroid Build Coastguard Worker 16, 64+16, 17, 64+17,
1485*344a7f5eSAndroid Build Coastguard Worker 18, 64+18, 19, 64+19,
1486*344a7f5eSAndroid Build Coastguard Worker 20, 64+20, 21, 64+21,
1487*344a7f5eSAndroid Build Coastguard Worker 22, 64+22, 23, 64+23,
1488*344a7f5eSAndroid Build Coastguard Worker 32, 64+32, 33, 64+33,
1489*344a7f5eSAndroid Build Coastguard Worker 34, 64+34, 35, 64+35,
1490*344a7f5eSAndroid Build Coastguard Worker 36, 64+36, 37, 64+37,
1491*344a7f5eSAndroid Build Coastguard Worker 38, 64+38, 39, 64+39,
1492*344a7f5eSAndroid Build Coastguard Worker 48, 64+48, 49, 64+49,
1493*344a7f5eSAndroid Build Coastguard Worker 50, 64+50, 51, 64+51,
1494*344a7f5eSAndroid Build Coastguard Worker 52, 64+52, 53, 64+53,
1495*344a7f5eSAndroid Build Coastguard Worker 54, 64+54, 55, 64+55);
1496*344a7f5eSAndroid Build Coastguard Worker }
1497*344a7f5eSAndroid Build Coastguard Worker
1498*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_unpacklo_epi8(__m512i __W,__mmask64 __U,__m512i __A,__m512i __B)1499*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
1500*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1501*344a7f5eSAndroid Build Coastguard Worker (__v64qi)_mm512_unpacklo_epi8(__A, __B),
1502*344a7f5eSAndroid Build Coastguard Worker (__v64qi)__W);
1503*344a7f5eSAndroid Build Coastguard Worker }
1504*344a7f5eSAndroid Build Coastguard Worker
1505*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_unpacklo_epi8(__mmask64 __U,__m512i __A,__m512i __B)1506*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
1507*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1508*344a7f5eSAndroid Build Coastguard Worker (__v64qi)_mm512_unpacklo_epi8(__A, __B),
1509*344a7f5eSAndroid Build Coastguard Worker (__v64qi)_mm512_setzero_qi());
1510*344a7f5eSAndroid Build Coastguard Worker }
1511*344a7f5eSAndroid Build Coastguard Worker
1512*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_unpacklo_epi16(__m512i __A,__m512i __B)1513*344a7f5eSAndroid Build Coastguard Worker _mm512_unpacklo_epi16(__m512i __A, __m512i __B) {
1514*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B,
1515*344a7f5eSAndroid Build Coastguard Worker 0, 32+0, 1, 32+1,
1516*344a7f5eSAndroid Build Coastguard Worker 2, 32+2, 3, 32+3,
1517*344a7f5eSAndroid Build Coastguard Worker 8, 32+8, 9, 32+9,
1518*344a7f5eSAndroid Build Coastguard Worker 10, 32+10, 11, 32+11,
1519*344a7f5eSAndroid Build Coastguard Worker 16, 32+16, 17, 32+17,
1520*344a7f5eSAndroid Build Coastguard Worker 18, 32+18, 19, 32+19,
1521*344a7f5eSAndroid Build Coastguard Worker 24, 32+24, 25, 32+25,
1522*344a7f5eSAndroid Build Coastguard Worker 26, 32+26, 27, 32+27);
1523*344a7f5eSAndroid Build Coastguard Worker }
1524*344a7f5eSAndroid Build Coastguard Worker
1525*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_unpacklo_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1526*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
1527*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1528*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_unpacklo_epi16(__A, __B),
1529*344a7f5eSAndroid Build Coastguard Worker (__v32hi)__W);
1530*344a7f5eSAndroid Build Coastguard Worker }
1531*344a7f5eSAndroid Build Coastguard Worker
1532*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_unpacklo_epi16(__mmask32 __U,__m512i __A,__m512i __B)1533*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
1534*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1535*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_unpacklo_epi16(__A, __B),
1536*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_setzero_hi());
1537*344a7f5eSAndroid Build Coastguard Worker }
1538*344a7f5eSAndroid Build Coastguard Worker
1539*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtepi8_epi16(__m256i __A)1540*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi8_epi16 (__m256i __A)
1541*344a7f5eSAndroid Build Coastguard Worker {
1542*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
1543*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1544*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1545*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1546*344a7f5eSAndroid Build Coastguard Worker }
1547*344a7f5eSAndroid Build Coastguard Worker
1548*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi8_epi16(__m512i __W,__mmask32 __U,__m256i __A)1549*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi8_epi16 (__m512i __W, __mmask32 __U, __m256i __A)
1550*344a7f5eSAndroid Build Coastguard Worker {
1551*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
1552*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1553*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1554*344a7f5eSAndroid Build Coastguard Worker }
1555*344a7f5eSAndroid Build Coastguard Worker
1556*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi8_epi16(__mmask32 __U,__m256i __A)1557*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi8_epi16 (__mmask32 __U, __m256i __A)
1558*344a7f5eSAndroid Build Coastguard Worker {
1559*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
1560*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1561*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi(),
1562*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1563*344a7f5eSAndroid Build Coastguard Worker }
1564*344a7f5eSAndroid Build Coastguard Worker
1565*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtepu8_epi16(__m256i __A)1566*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepu8_epi16 (__m256i __A)
1567*344a7f5eSAndroid Build Coastguard Worker {
1568*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
1569*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1570*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1571*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1572*344a7f5eSAndroid Build Coastguard Worker }
1573*344a7f5eSAndroid Build Coastguard Worker
1574*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepu8_epi16(__m512i __W,__mmask32 __U,__m256i __A)1575*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepu8_epi16 (__m512i __W, __mmask32 __U, __m256i __A)
1576*344a7f5eSAndroid Build Coastguard Worker {
1577*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
1578*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1579*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1580*344a7f5eSAndroid Build Coastguard Worker }
1581*344a7f5eSAndroid Build Coastguard Worker
1582*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepu8_epi16(__mmask32 __U,__m256i __A)1583*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepu8_epi16 (__mmask32 __U, __m256i __A)
1584*344a7f5eSAndroid Build Coastguard Worker {
1585*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
1586*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1587*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi(),
1588*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1589*344a7f5eSAndroid Build Coastguard Worker }
1590*344a7f5eSAndroid Build Coastguard Worker
1591*344a7f5eSAndroid Build Coastguard Worker
1592*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cmp_epi8_mask(a, b, p) __extension__ ({ \
1593*344a7f5eSAndroid Build Coastguard Worker (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \
1594*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(b), (int)(p), \
1595*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1); })
1596*344a7f5eSAndroid Build Coastguard Worker
1597*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \
1598*344a7f5eSAndroid Build Coastguard Worker (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \
1599*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(b), (int)(p), \
1600*344a7f5eSAndroid Build Coastguard Worker (__mmask64)(m)); })
1601*344a7f5eSAndroid Build Coastguard Worker
1602*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cmp_epu8_mask(a, b, p) __extension__ ({ \
1603*344a7f5eSAndroid Build Coastguard Worker (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \
1604*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(b), (int)(p), \
1605*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1); })
1606*344a7f5eSAndroid Build Coastguard Worker
1607*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \
1608*344a7f5eSAndroid Build Coastguard Worker (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \
1609*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(b), (int)(p), \
1610*344a7f5eSAndroid Build Coastguard Worker (__mmask64)(m)); })
1611*344a7f5eSAndroid Build Coastguard Worker
1612*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cmp_epi16_mask(a, b, p) __extension__ ({ \
1613*344a7f5eSAndroid Build Coastguard Worker (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \
1614*344a7f5eSAndroid Build Coastguard Worker (__v32hi)(__m512i)(b), (int)(p), \
1615*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1); })
1616*344a7f5eSAndroid Build Coastguard Worker
1617*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \
1618*344a7f5eSAndroid Build Coastguard Worker (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \
1619*344a7f5eSAndroid Build Coastguard Worker (__v32hi)(__m512i)(b), (int)(p), \
1620*344a7f5eSAndroid Build Coastguard Worker (__mmask32)(m)); })
1621*344a7f5eSAndroid Build Coastguard Worker
1622*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cmp_epu16_mask(a, b, p) __extension__ ({ \
1623*344a7f5eSAndroid Build Coastguard Worker (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \
1624*344a7f5eSAndroid Build Coastguard Worker (__v32hi)(__m512i)(b), (int)(p), \
1625*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1); })
1626*344a7f5eSAndroid Build Coastguard Worker
1627*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \
1628*344a7f5eSAndroid Build Coastguard Worker (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \
1629*344a7f5eSAndroid Build Coastguard Worker (__v32hi)(__m512i)(b), (int)(p), \
1630*344a7f5eSAndroid Build Coastguard Worker (__mmask32)(m)); })
1631*344a7f5eSAndroid Build Coastguard Worker
1632*344a7f5eSAndroid Build Coastguard Worker #define _mm512_shufflehi_epi16(A, imm) __extension__ ({ \
1633*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_shufflevector((__v32hi)(__m512i)(A), \
1634*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_undefined_epi32(), \
1635*344a7f5eSAndroid Build Coastguard Worker 0, 1, 2, 3, \
1636*344a7f5eSAndroid Build Coastguard Worker 4 + (((imm) >> 0) & 0x3), \
1637*344a7f5eSAndroid Build Coastguard Worker 4 + (((imm) >> 2) & 0x3), \
1638*344a7f5eSAndroid Build Coastguard Worker 4 + (((imm) >> 4) & 0x3), \
1639*344a7f5eSAndroid Build Coastguard Worker 4 + (((imm) >> 6) & 0x3), \
1640*344a7f5eSAndroid Build Coastguard Worker 8, 9, 10, 11, \
1641*344a7f5eSAndroid Build Coastguard Worker 12 + (((imm) >> 0) & 0x3), \
1642*344a7f5eSAndroid Build Coastguard Worker 12 + (((imm) >> 2) & 0x3), \
1643*344a7f5eSAndroid Build Coastguard Worker 12 + (((imm) >> 4) & 0x3), \
1644*344a7f5eSAndroid Build Coastguard Worker 12 + (((imm) >> 6) & 0x3), \
1645*344a7f5eSAndroid Build Coastguard Worker 16, 17, 18, 19, \
1646*344a7f5eSAndroid Build Coastguard Worker 20 + (((imm) >> 0) & 0x3), \
1647*344a7f5eSAndroid Build Coastguard Worker 20 + (((imm) >> 2) & 0x3), \
1648*344a7f5eSAndroid Build Coastguard Worker 20 + (((imm) >> 4) & 0x3), \
1649*344a7f5eSAndroid Build Coastguard Worker 20 + (((imm) >> 6) & 0x3), \
1650*344a7f5eSAndroid Build Coastguard Worker 24, 25, 26, 27, \
1651*344a7f5eSAndroid Build Coastguard Worker 28 + (((imm) >> 0) & 0x3), \
1652*344a7f5eSAndroid Build Coastguard Worker 28 + (((imm) >> 2) & 0x3), \
1653*344a7f5eSAndroid Build Coastguard Worker 28 + (((imm) >> 4) & 0x3), \
1654*344a7f5eSAndroid Build Coastguard Worker 28 + (((imm) >> 6) & 0x3)); })
1655*344a7f5eSAndroid Build Coastguard Worker
1656*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \
1657*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1658*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_shufflehi_epi16((A), \
1659*344a7f5eSAndroid Build Coastguard Worker (imm)), \
1660*344a7f5eSAndroid Build Coastguard Worker (__v32hi)(__m512i)(W)); })
1661*344a7f5eSAndroid Build Coastguard Worker
1662*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \
1663*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1664*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_shufflehi_epi16((A), \
1665*344a7f5eSAndroid Build Coastguard Worker (imm)), \
1666*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_setzero_hi()); })
1667*344a7f5eSAndroid Build Coastguard Worker
1668*344a7f5eSAndroid Build Coastguard Worker #define _mm512_shufflelo_epi16(A, imm) __extension__ ({ \
1669*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_shufflevector((__v32hi)(__m512i)(A), \
1670*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_undefined_epi32(), \
1671*344a7f5eSAndroid Build Coastguard Worker 0 + (((imm) >> 0) & 0x3), \
1672*344a7f5eSAndroid Build Coastguard Worker 0 + (((imm) >> 2) & 0x3), \
1673*344a7f5eSAndroid Build Coastguard Worker 0 + (((imm) >> 4) & 0x3), \
1674*344a7f5eSAndroid Build Coastguard Worker 0 + (((imm) >> 6) & 0x3), \
1675*344a7f5eSAndroid Build Coastguard Worker 4, 5, 6, 7, \
1676*344a7f5eSAndroid Build Coastguard Worker 8 + (((imm) >> 0) & 0x3), \
1677*344a7f5eSAndroid Build Coastguard Worker 8 + (((imm) >> 2) & 0x3), \
1678*344a7f5eSAndroid Build Coastguard Worker 8 + (((imm) >> 4) & 0x3), \
1679*344a7f5eSAndroid Build Coastguard Worker 8 + (((imm) >> 6) & 0x3), \
1680*344a7f5eSAndroid Build Coastguard Worker 12, 13, 14, 15, \
1681*344a7f5eSAndroid Build Coastguard Worker 16 + (((imm) >> 0) & 0x3), \
1682*344a7f5eSAndroid Build Coastguard Worker 16 + (((imm) >> 2) & 0x3), \
1683*344a7f5eSAndroid Build Coastguard Worker 16 + (((imm) >> 4) & 0x3), \
1684*344a7f5eSAndroid Build Coastguard Worker 16 + (((imm) >> 6) & 0x3), \
1685*344a7f5eSAndroid Build Coastguard Worker 20, 21, 22, 23, \
1686*344a7f5eSAndroid Build Coastguard Worker 24 + (((imm) >> 0) & 0x3), \
1687*344a7f5eSAndroid Build Coastguard Worker 24 + (((imm) >> 2) & 0x3), \
1688*344a7f5eSAndroid Build Coastguard Worker 24 + (((imm) >> 4) & 0x3), \
1689*344a7f5eSAndroid Build Coastguard Worker 24 + (((imm) >> 6) & 0x3), \
1690*344a7f5eSAndroid Build Coastguard Worker 28, 29, 30, 31); })
1691*344a7f5eSAndroid Build Coastguard Worker
1692*344a7f5eSAndroid Build Coastguard Worker
1693*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \
1694*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1695*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_shufflelo_epi16((A), \
1696*344a7f5eSAndroid Build Coastguard Worker (imm)), \
1697*344a7f5eSAndroid Build Coastguard Worker (__v32hi)(__m512i)(W)); })
1698*344a7f5eSAndroid Build Coastguard Worker
1699*344a7f5eSAndroid Build Coastguard Worker
1700*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \
1701*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
1702*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_shufflelo_epi16((A), \
1703*344a7f5eSAndroid Build Coastguard Worker (imm)), \
1704*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_setzero_hi()); })
1705*344a7f5eSAndroid Build Coastguard Worker
1706*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sllv_epi16(__m512i __A,__m512i __B)1707*344a7f5eSAndroid Build Coastguard Worker _mm512_sllv_epi16 (__m512i __A, __m512i __B)
1708*344a7f5eSAndroid Build Coastguard Worker {
1709*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,
1710*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1711*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1712*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1713*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1714*344a7f5eSAndroid Build Coastguard Worker }
1715*344a7f5eSAndroid Build Coastguard Worker
1716*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sllv_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1717*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1718*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
1719*344a7f5eSAndroid Build Coastguard Worker {
1720*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,
1721*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1722*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1723*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1724*344a7f5eSAndroid Build Coastguard Worker }
1725*344a7f5eSAndroid Build Coastguard Worker
1726*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sllv_epi16(__mmask32 __U,__m512i __A,__m512i __B)1727*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sllv_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
1728*344a7f5eSAndroid Build Coastguard Worker {
1729*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,
1730*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1731*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1732*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1733*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1734*344a7f5eSAndroid Build Coastguard Worker }
1735*344a7f5eSAndroid Build Coastguard Worker
1736*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sll_epi16(__m512i __A,__m128i __B)1737*344a7f5eSAndroid Build Coastguard Worker _mm512_sll_epi16 (__m512i __A, __m128i __B)
1738*344a7f5eSAndroid Build Coastguard Worker {
1739*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,
1740*344a7f5eSAndroid Build Coastguard Worker (__v8hi) __B,
1741*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1742*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1743*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1744*344a7f5eSAndroid Build Coastguard Worker }
1745*344a7f5eSAndroid Build Coastguard Worker
1746*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sll_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m128i __B)1747*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sll_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1748*344a7f5eSAndroid Build Coastguard Worker __m128i __B)
1749*344a7f5eSAndroid Build Coastguard Worker {
1750*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,
1751*344a7f5eSAndroid Build Coastguard Worker (__v8hi) __B,
1752*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1753*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1754*344a7f5eSAndroid Build Coastguard Worker }
1755*344a7f5eSAndroid Build Coastguard Worker
1756*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sll_epi16(__mmask32 __U,__m512i __A,__m128i __B)1757*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sll_epi16 (__mmask32 __U, __m512i __A, __m128i __B)
1758*344a7f5eSAndroid Build Coastguard Worker {
1759*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,
1760*344a7f5eSAndroid Build Coastguard Worker (__v8hi) __B,
1761*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1762*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1763*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1764*344a7f5eSAndroid Build Coastguard Worker }
1765*344a7f5eSAndroid Build Coastguard Worker
1766*344a7f5eSAndroid Build Coastguard Worker #define _mm512_slli_epi16(A, B) __extension__ ({ \
1767*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_psllwi512_mask((__v32hi)(__m512i)(A), (int)(B), \
1768*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_setzero_hi(), \
1769*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1); })
1770*344a7f5eSAndroid Build Coastguard Worker
1771*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_slli_epi16(W, U, A, B) __extension__ ({ \
1772*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_psllwi512_mask((__v32hi)(__m512i)(A), (int)(B), \
1773*344a7f5eSAndroid Build Coastguard Worker (__v32hi)(__m512i)(W), \
1774*344a7f5eSAndroid Build Coastguard Worker (__mmask32)(U)); })
1775*344a7f5eSAndroid Build Coastguard Worker
1776*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_slli_epi16(U, A, B) __extension__ ({ \
1777*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_psllwi512_mask((__v32hi)(__m512i)(A), (int)(B), \
1778*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_setzero_hi(), \
1779*344a7f5eSAndroid Build Coastguard Worker (__mmask32)(U)); })
1780*344a7f5eSAndroid Build Coastguard Worker
1781*344a7f5eSAndroid Build Coastguard Worker #define _mm512_bslli_epi128(a, imm) __extension__ ({ \
1782*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_shufflevector( \
1783*344a7f5eSAndroid Build Coastguard Worker (__v64qi)_mm512_setzero_si512(), \
1784*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(a), \
1785*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 0 : ((char)(imm)>0x0 ? 16 : 64) - (char)(imm), \
1786*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 1 : ((char)(imm)>0x1 ? 17 : 65) - (char)(imm), \
1787*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 2 : ((char)(imm)>0x2 ? 18 : 66) - (char)(imm), \
1788*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 3 : ((char)(imm)>0x3 ? 19 : 67) - (char)(imm), \
1789*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 4 : ((char)(imm)>0x4 ? 20 : 68) - (char)(imm), \
1790*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 5 : ((char)(imm)>0x5 ? 21 : 69) - (char)(imm), \
1791*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 6 : ((char)(imm)>0x6 ? 22 : 70) - (char)(imm), \
1792*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 7 : ((char)(imm)>0x7 ? 23 : 71) - (char)(imm), \
1793*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 8 : ((char)(imm)>0x8 ? 24 : 72) - (char)(imm), \
1794*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 9 : ((char)(imm)>0x9 ? 25 : 73) - (char)(imm), \
1795*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 10 : ((char)(imm)>0xA ? 26 : 74) - (char)(imm), \
1796*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 11 : ((char)(imm)>0xB ? 27 : 75) - (char)(imm), \
1797*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 12 : ((char)(imm)>0xC ? 28 : 76) - (char)(imm), \
1798*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 13 : ((char)(imm)>0xD ? 29 : 77) - (char)(imm), \
1799*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 14 : ((char)(imm)>0xE ? 30 : 78) - (char)(imm), \
1800*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 15 : ((char)(imm)>0xF ? 31 : 79) - (char)(imm), \
1801*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 16 : ((char)(imm)>0x0 ? 32 : 80) - (char)(imm), \
1802*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 17 : ((char)(imm)>0x1 ? 33 : 81) - (char)(imm), \
1803*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 18 : ((char)(imm)>0x2 ? 34 : 82) - (char)(imm), \
1804*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 19 : ((char)(imm)>0x3 ? 35 : 83) - (char)(imm), \
1805*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 20 : ((char)(imm)>0x4 ? 36 : 84) - (char)(imm), \
1806*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 21 : ((char)(imm)>0x5 ? 37 : 85) - (char)(imm), \
1807*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 22 : ((char)(imm)>0x6 ? 38 : 86) - (char)(imm), \
1808*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 23 : ((char)(imm)>0x7 ? 39 : 87) - (char)(imm), \
1809*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 24 : ((char)(imm)>0x8 ? 40 : 88) - (char)(imm), \
1810*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 25 : ((char)(imm)>0x9 ? 41 : 89) - (char)(imm), \
1811*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 26 : ((char)(imm)>0xA ? 42 : 90) - (char)(imm), \
1812*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 27 : ((char)(imm)>0xB ? 43 : 91) - (char)(imm), \
1813*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 28 : ((char)(imm)>0xC ? 44 : 92) - (char)(imm), \
1814*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 29 : ((char)(imm)>0xD ? 45 : 93) - (char)(imm), \
1815*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 30 : ((char)(imm)>0xE ? 46 : 94) - (char)(imm), \
1816*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 31 : ((char)(imm)>0xF ? 47 : 95) - (char)(imm), \
1817*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 32 : ((char)(imm)>0x0 ? 48 : 96) - (char)(imm), \
1818*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 33 : ((char)(imm)>0x1 ? 49 : 97) - (char)(imm), \
1819*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 34 : ((char)(imm)>0x2 ? 50 : 98) - (char)(imm), \
1820*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 35 : ((char)(imm)>0x3 ? 51 : 99) - (char)(imm), \
1821*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 36 : ((char)(imm)>0x4 ? 52 : 100) - (char)(imm), \
1822*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 37 : ((char)(imm)>0x5 ? 53 : 101) - (char)(imm), \
1823*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 38 : ((char)(imm)>0x6 ? 54 : 102) - (char)(imm), \
1824*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 39 : ((char)(imm)>0x7 ? 55 : 103) - (char)(imm), \
1825*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 40 : ((char)(imm)>0x8 ? 56 : 104) - (char)(imm), \
1826*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 41 : ((char)(imm)>0x9 ? 57 : 105) - (char)(imm), \
1827*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 42 : ((char)(imm)>0xA ? 58 : 106) - (char)(imm), \
1828*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 43 : ((char)(imm)>0xB ? 59 : 107) - (char)(imm), \
1829*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 44 : ((char)(imm)>0xC ? 60 : 108) - (char)(imm), \
1830*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 45 : ((char)(imm)>0xD ? 61 : 109) - (char)(imm), \
1831*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 46 : ((char)(imm)>0xE ? 62 : 110) - (char)(imm), \
1832*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 47 : ((char)(imm)>0xF ? 63 : 111) - (char)(imm), \
1833*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 48 : ((char)(imm)>0x0 ? 64 : 112) - (char)(imm), \
1834*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 49 : ((char)(imm)>0x1 ? 65 : 113) - (char)(imm), \
1835*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 50 : ((char)(imm)>0x2 ? 66 : 114) - (char)(imm), \
1836*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 51 : ((char)(imm)>0x3 ? 67 : 115) - (char)(imm), \
1837*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 52 : ((char)(imm)>0x4 ? 68 : 116) - (char)(imm), \
1838*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 53 : ((char)(imm)>0x5 ? 69 : 117) - (char)(imm), \
1839*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 54 : ((char)(imm)>0x6 ? 70 : 118) - (char)(imm), \
1840*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 55 : ((char)(imm)>0x7 ? 71 : 119) - (char)(imm), \
1841*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 56 : ((char)(imm)>0x8 ? 72 : 120) - (char)(imm), \
1842*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 57 : ((char)(imm)>0x9 ? 73 : 121) - (char)(imm), \
1843*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 58 : ((char)(imm)>0xA ? 74 : 122) - (char)(imm), \
1844*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 59 : ((char)(imm)>0xB ? 75 : 123) - (char)(imm), \
1845*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 60 : ((char)(imm)>0xC ? 76 : 124) - (char)(imm), \
1846*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 61 : ((char)(imm)>0xD ? 77 : 125) - (char)(imm), \
1847*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 62 : ((char)(imm)>0xE ? 78 : 126) - (char)(imm), \
1848*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 63 : ((char)(imm)>0xF ? 79 : 127) - (char)(imm)); })
1849*344a7f5eSAndroid Build Coastguard Worker
1850*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_srlv_epi16(__m512i __A,__m512i __B)1851*344a7f5eSAndroid Build Coastguard Worker _mm512_srlv_epi16 (__m512i __A, __m512i __B)
1852*344a7f5eSAndroid Build Coastguard Worker {
1853*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,
1854*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1855*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1856*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1857*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1858*344a7f5eSAndroid Build Coastguard Worker }
1859*344a7f5eSAndroid Build Coastguard Worker
1860*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_srlv_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1861*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_srlv_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1862*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
1863*344a7f5eSAndroid Build Coastguard Worker {
1864*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,
1865*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1866*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1867*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1868*344a7f5eSAndroid Build Coastguard Worker }
1869*344a7f5eSAndroid Build Coastguard Worker
1870*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_srlv_epi16(__mmask32 __U,__m512i __A,__m512i __B)1871*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_srlv_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
1872*344a7f5eSAndroid Build Coastguard Worker {
1873*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,
1874*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1875*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1876*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1877*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1878*344a7f5eSAndroid Build Coastguard Worker }
1879*344a7f5eSAndroid Build Coastguard Worker
1880*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_srav_epi16(__m512i __A,__m512i __B)1881*344a7f5eSAndroid Build Coastguard Worker _mm512_srav_epi16 (__m512i __A, __m512i __B)
1882*344a7f5eSAndroid Build Coastguard Worker {
1883*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,
1884*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1885*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1886*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1887*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1888*344a7f5eSAndroid Build Coastguard Worker }
1889*344a7f5eSAndroid Build Coastguard Worker
1890*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_srav_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m512i __B)1891*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_srav_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1892*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
1893*344a7f5eSAndroid Build Coastguard Worker {
1894*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,
1895*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1896*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1897*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1898*344a7f5eSAndroid Build Coastguard Worker }
1899*344a7f5eSAndroid Build Coastguard Worker
1900*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_srav_epi16(__mmask32 __U,__m512i __A,__m512i __B)1901*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_srav_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
1902*344a7f5eSAndroid Build Coastguard Worker {
1903*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,
1904*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
1905*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1906*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1907*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1908*344a7f5eSAndroid Build Coastguard Worker }
1909*344a7f5eSAndroid Build Coastguard Worker
1910*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sra_epi16(__m512i __A,__m128i __B)1911*344a7f5eSAndroid Build Coastguard Worker _mm512_sra_epi16 (__m512i __A, __m128i __B)
1912*344a7f5eSAndroid Build Coastguard Worker {
1913*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,
1914*344a7f5eSAndroid Build Coastguard Worker (__v8hi) __B,
1915*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1916*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1917*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1918*344a7f5eSAndroid Build Coastguard Worker }
1919*344a7f5eSAndroid Build Coastguard Worker
1920*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sra_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m128i __B)1921*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sra_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1922*344a7f5eSAndroid Build Coastguard Worker __m128i __B)
1923*344a7f5eSAndroid Build Coastguard Worker {
1924*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,
1925*344a7f5eSAndroid Build Coastguard Worker (__v8hi) __B,
1926*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1927*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1928*344a7f5eSAndroid Build Coastguard Worker }
1929*344a7f5eSAndroid Build Coastguard Worker
1930*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sra_epi16(__mmask32 __U,__m512i __A,__m128i __B)1931*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sra_epi16 (__mmask32 __U, __m512i __A, __m128i __B)
1932*344a7f5eSAndroid Build Coastguard Worker {
1933*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,
1934*344a7f5eSAndroid Build Coastguard Worker (__v8hi) __B,
1935*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1936*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1937*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1938*344a7f5eSAndroid Build Coastguard Worker }
1939*344a7f5eSAndroid Build Coastguard Worker
1940*344a7f5eSAndroid Build Coastguard Worker #define _mm512_srai_epi16(A, B) __extension__ ({ \
1941*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_psrawi512_mask((__v32hi)(__m512i)(A), (int)(B), \
1942*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_setzero_hi(), \
1943*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1); })
1944*344a7f5eSAndroid Build Coastguard Worker
1945*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_srai_epi16(W, U, A, B) __extension__ ({ \
1946*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_psrawi512_mask((__v32hi)(__m512i)(A), (int)(B), \
1947*344a7f5eSAndroid Build Coastguard Worker (__v32hi)(__m512i)(W), \
1948*344a7f5eSAndroid Build Coastguard Worker (__mmask32)(U)); })
1949*344a7f5eSAndroid Build Coastguard Worker
1950*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_srai_epi16(U, A, B) __extension__ ({ \
1951*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_psrawi512_mask((__v32hi)(__m512i)(A), (int)(B), \
1952*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_setzero_hi(), \
1953*344a7f5eSAndroid Build Coastguard Worker (__mmask32)(U)); })
1954*344a7f5eSAndroid Build Coastguard Worker
1955*344a7f5eSAndroid Build Coastguard Worker
1956*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_srl_epi16(__m512i __A,__m128i __B)1957*344a7f5eSAndroid Build Coastguard Worker _mm512_srl_epi16 (__m512i __A, __m128i __B)
1958*344a7f5eSAndroid Build Coastguard Worker {
1959*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,
1960*344a7f5eSAndroid Build Coastguard Worker (__v8hi) __B,
1961*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1962*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1963*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
1964*344a7f5eSAndroid Build Coastguard Worker }
1965*344a7f5eSAndroid Build Coastguard Worker
1966*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_srl_epi16(__m512i __W,__mmask32 __U,__m512i __A,__m128i __B)1967*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_srl_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
1968*344a7f5eSAndroid Build Coastguard Worker __m128i __B)
1969*344a7f5eSAndroid Build Coastguard Worker {
1970*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,
1971*344a7f5eSAndroid Build Coastguard Worker (__v8hi) __B,
1972*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
1973*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1974*344a7f5eSAndroid Build Coastguard Worker }
1975*344a7f5eSAndroid Build Coastguard Worker
1976*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_srl_epi16(__mmask32 __U,__m512i __A,__m128i __B)1977*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_srl_epi16 (__mmask32 __U, __m512i __A, __m128i __B)
1978*344a7f5eSAndroid Build Coastguard Worker {
1979*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,
1980*344a7f5eSAndroid Build Coastguard Worker (__v8hi) __B,
1981*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
1982*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
1983*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
1984*344a7f5eSAndroid Build Coastguard Worker }
1985*344a7f5eSAndroid Build Coastguard Worker
1986*344a7f5eSAndroid Build Coastguard Worker #define _mm512_srli_epi16(A, imm) __extension__ ({ \
1987*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_psrlwi512_mask((__v32hi)(__m512i)(A), (int)(imm), \
1988*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_setzero_hi(), \
1989*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1); })
1990*344a7f5eSAndroid Build Coastguard Worker
1991*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_srli_epi16(W, U, A, imm) __extension__ ({ \
1992*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_psrlwi512_mask((__v32hi)(__m512i)(A), (int)(imm), \
1993*344a7f5eSAndroid Build Coastguard Worker (__v32hi)(__m512i)(W), \
1994*344a7f5eSAndroid Build Coastguard Worker (__mmask32)(U)); })
1995*344a7f5eSAndroid Build Coastguard Worker
1996*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_srli_epi16(U, A, imm) __extension__ ({ \
1997*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_psrlwi512_mask((__v32hi)(__m512i)(A), (int)(imm), \
1998*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_setzero_hi(), \
1999*344a7f5eSAndroid Build Coastguard Worker (__mmask32)(U)); })
2000*344a7f5eSAndroid Build Coastguard Worker
2001*344a7f5eSAndroid Build Coastguard Worker #define _mm512_bsrli_epi128(a, imm) __extension__ ({ \
2002*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_shufflevector( \
2003*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(a), \
2004*344a7f5eSAndroid Build Coastguard Worker (__v64qi)_mm512_setzero_si512(), \
2005*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 64 : (char)(imm) + ((char)(imm)>0xF ? 48 : 0), \
2006*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 65 : (char)(imm) + ((char)(imm)>0xE ? 49 : 1), \
2007*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 66 : (char)(imm) + ((char)(imm)>0xD ? 50 : 2), \
2008*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 67 : (char)(imm) + ((char)(imm)>0xC ? 51 : 3), \
2009*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 68 : (char)(imm) + ((char)(imm)>0xB ? 52 : 4), \
2010*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 69 : (char)(imm) + ((char)(imm)>0xA ? 53 : 5), \
2011*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 70 : (char)(imm) + ((char)(imm)>0x9 ? 54 : 6), \
2012*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 71 : (char)(imm) + ((char)(imm)>0x8 ? 55 : 7), \
2013*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 72 : (char)(imm) + ((char)(imm)>0x7 ? 56 : 8), \
2014*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 73 : (char)(imm) + ((char)(imm)>0x6 ? 57 : 9), \
2015*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 74 : (char)(imm) + ((char)(imm)>0x5 ? 58 : 10), \
2016*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 75 : (char)(imm) + ((char)(imm)>0x4 ? 59 : 11), \
2017*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 76 : (char)(imm) + ((char)(imm)>0x3 ? 60 : 12), \
2018*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 77 : (char)(imm) + ((char)(imm)>0x2 ? 61 : 13), \
2019*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 78 : (char)(imm) + ((char)(imm)>0x1 ? 62 : 14), \
2020*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 79 : (char)(imm) + ((char)(imm)>0x0 ? 63 : 15), \
2021*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 80 : (char)(imm) + ((char)(imm)>0xF ? 64 : 16), \
2022*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 81 : (char)(imm) + ((char)(imm)>0xE ? 65 : 17), \
2023*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 82 : (char)(imm) + ((char)(imm)>0xD ? 66 : 18), \
2024*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 83 : (char)(imm) + ((char)(imm)>0xC ? 67 : 19), \
2025*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 84 : (char)(imm) + ((char)(imm)>0xB ? 68 : 20), \
2026*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 85 : (char)(imm) + ((char)(imm)>0xA ? 69 : 21), \
2027*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 86 : (char)(imm) + ((char)(imm)>0x9 ? 70 : 22), \
2028*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 87 : (char)(imm) + ((char)(imm)>0x8 ? 71 : 23), \
2029*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 88 : (char)(imm) + ((char)(imm)>0x7 ? 72 : 24), \
2030*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 89 : (char)(imm) + ((char)(imm)>0x6 ? 73 : 25), \
2031*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 90 : (char)(imm) + ((char)(imm)>0x5 ? 74 : 26), \
2032*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 91 : (char)(imm) + ((char)(imm)>0x4 ? 75 : 27), \
2033*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 92 : (char)(imm) + ((char)(imm)>0x3 ? 76 : 28), \
2034*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 93 : (char)(imm) + ((char)(imm)>0x2 ? 77 : 29), \
2035*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 94 : (char)(imm) + ((char)(imm)>0x1 ? 78 : 30), \
2036*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 95 : (char)(imm) + ((char)(imm)>0x0 ? 79 : 31), \
2037*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 96 : (char)(imm) + ((char)(imm)>0xF ? 80 : 32), \
2038*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 97 : (char)(imm) + ((char)(imm)>0xE ? 81 : 33), \
2039*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 98 : (char)(imm) + ((char)(imm)>0xD ? 82 : 34), \
2040*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 99 : (char)(imm) + ((char)(imm)>0xC ? 83 : 35), \
2041*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 100 : (char)(imm) + ((char)(imm)>0xB ? 84 : 36), \
2042*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 101 : (char)(imm) + ((char)(imm)>0xA ? 85 : 37), \
2043*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 102 : (char)(imm) + ((char)(imm)>0x9 ? 86 : 38), \
2044*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 103 : (char)(imm) + ((char)(imm)>0x8 ? 87 : 39), \
2045*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 104 : (char)(imm) + ((char)(imm)>0x7 ? 88 : 40), \
2046*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 105 : (char)(imm) + ((char)(imm)>0x6 ? 89 : 41), \
2047*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 106 : (char)(imm) + ((char)(imm)>0x5 ? 90 : 42), \
2048*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 107 : (char)(imm) + ((char)(imm)>0x4 ? 91 : 43), \
2049*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 108 : (char)(imm) + ((char)(imm)>0x3 ? 92 : 44), \
2050*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 109 : (char)(imm) + ((char)(imm)>0x2 ? 93 : 45), \
2051*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 110 : (char)(imm) + ((char)(imm)>0x1 ? 94 : 46), \
2052*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 111 : (char)(imm) + ((char)(imm)>0x0 ? 95 : 47), \
2053*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 112 : (char)(imm) + ((char)(imm)>0xF ? 96 : 48), \
2054*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 113 : (char)(imm) + ((char)(imm)>0xE ? 97 : 49), \
2055*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 114 : (char)(imm) + ((char)(imm)>0xD ? 98 : 50), \
2056*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 115 : (char)(imm) + ((char)(imm)>0xC ? 99 : 51), \
2057*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 116 : (char)(imm) + ((char)(imm)>0xB ? 100 : 52), \
2058*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 117 : (char)(imm) + ((char)(imm)>0xA ? 101 : 53), \
2059*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 118 : (char)(imm) + ((char)(imm)>0x9 ? 102 : 54), \
2060*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 119 : (char)(imm) + ((char)(imm)>0x8 ? 103 : 55), \
2061*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 120 : (char)(imm) + ((char)(imm)>0x7 ? 104 : 56), \
2062*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 121 : (char)(imm) + ((char)(imm)>0x6 ? 105 : 57), \
2063*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 122 : (char)(imm) + ((char)(imm)>0x5 ? 106 : 58), \
2064*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 123 : (char)(imm) + ((char)(imm)>0x4 ? 107 : 59), \
2065*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 124 : (char)(imm) + ((char)(imm)>0x3 ? 108 : 60), \
2066*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 125 : (char)(imm) + ((char)(imm)>0x2 ? 109 : 61), \
2067*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 126 : (char)(imm) + ((char)(imm)>0x1 ? 110 : 62), \
2068*344a7f5eSAndroid Build Coastguard Worker ((char)(imm)&0xF0) ? 127 : (char)(imm) + ((char)(imm)>0x0 ? 111 : 63)); })
2069*344a7f5eSAndroid Build Coastguard Worker
2070*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_mov_epi16(__m512i __W,__mmask32 __U,__m512i __A)2071*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
2072*344a7f5eSAndroid Build Coastguard Worker {
2073*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
2074*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __A,
2075*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W);
2076*344a7f5eSAndroid Build Coastguard Worker }
2077*344a7f5eSAndroid Build Coastguard Worker
2078*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_mov_epi16(__mmask32 __U,__m512i __A)2079*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mov_epi16 (__mmask32 __U, __m512i __A)
2080*344a7f5eSAndroid Build Coastguard Worker {
2081*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
2082*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __A,
2083*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi ());
2084*344a7f5eSAndroid Build Coastguard Worker }
2085*344a7f5eSAndroid Build Coastguard Worker
2086*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_mov_epi8(__m512i __W,__mmask64 __U,__m512i __A)2087*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
2088*344a7f5eSAndroid Build Coastguard Worker {
2089*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
2090*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __A,
2091*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W);
2092*344a7f5eSAndroid Build Coastguard Worker }
2093*344a7f5eSAndroid Build Coastguard Worker
2094*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_mov_epi8(__mmask64 __U,__m512i __A)2095*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A)
2096*344a7f5eSAndroid Build Coastguard Worker {
2097*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
2098*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __A,
2099*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_hi ());
2100*344a7f5eSAndroid Build Coastguard Worker }
2101*344a7f5eSAndroid Build Coastguard Worker
2102*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_set1_epi8(__m512i __O,__mmask64 __M,char __A)2103*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A)
2104*344a7f5eSAndroid Build Coastguard Worker {
2105*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A,
2106*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __O,
2107*344a7f5eSAndroid Build Coastguard Worker __M);
2108*344a7f5eSAndroid Build Coastguard Worker }
2109*344a7f5eSAndroid Build Coastguard Worker
2110*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_set1_epi8(__mmask64 __M,char __A)2111*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_set1_epi8 (__mmask64 __M, char __A)
2112*344a7f5eSAndroid Build Coastguard Worker {
2113*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A,
2114*344a7f5eSAndroid Build Coastguard Worker (__v64qi)
2115*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_qi(),
2116*344a7f5eSAndroid Build Coastguard Worker __M);
2117*344a7f5eSAndroid Build Coastguard Worker }
2118*344a7f5eSAndroid Build Coastguard Worker
2119*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_kunpackd(__mmask64 __A,__mmask64 __B)2120*344a7f5eSAndroid Build Coastguard Worker _mm512_kunpackd (__mmask64 __A, __mmask64 __B)
2121*344a7f5eSAndroid Build Coastguard Worker {
2122*344a7f5eSAndroid Build Coastguard Worker return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A,
2123*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __B);
2124*344a7f5eSAndroid Build Coastguard Worker }
2125*344a7f5eSAndroid Build Coastguard Worker
2126*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_kunpackw(__mmask32 __A,__mmask32 __B)2127*344a7f5eSAndroid Build Coastguard Worker _mm512_kunpackw (__mmask32 __A, __mmask32 __B)
2128*344a7f5eSAndroid Build Coastguard Worker {
2129*344a7f5eSAndroid Build Coastguard Worker return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A,
2130*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __B);
2131*344a7f5eSAndroid Build Coastguard Worker }
2132*344a7f5eSAndroid Build Coastguard Worker
2133*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_loadu_epi16(__m512i __W,__mmask32 __U,void const * __P)2134*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P)
2135*344a7f5eSAndroid Build Coastguard Worker {
2136*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P,
2137*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
2138*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
2139*344a7f5eSAndroid Build Coastguard Worker }
2140*344a7f5eSAndroid Build Coastguard Worker
2141*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_loadu_epi16(__mmask32 __U,void const * __P)2142*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P)
2143*344a7f5eSAndroid Build Coastguard Worker {
2144*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P,
2145*344a7f5eSAndroid Build Coastguard Worker (__v32hi)
2146*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
2147*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
2148*344a7f5eSAndroid Build Coastguard Worker }
2149*344a7f5eSAndroid Build Coastguard Worker
2150*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_loadu_epi8(__m512i __W,__mmask64 __U,void const * __P)2151*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P)
2152*344a7f5eSAndroid Build Coastguard Worker {
2153*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P,
2154*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __W,
2155*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
2156*344a7f5eSAndroid Build Coastguard Worker }
2157*344a7f5eSAndroid Build Coastguard Worker
2158*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_loadu_epi8(__mmask64 __U,void const * __P)2159*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P)
2160*344a7f5eSAndroid Build Coastguard Worker {
2161*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P,
2162*344a7f5eSAndroid Build Coastguard Worker (__v64qi)
2163*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_hi (),
2164*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
2165*344a7f5eSAndroid Build Coastguard Worker }
2166*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_storeu_epi16(void * __P,__mmask32 __U,__m512i __A)2167*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A)
2168*344a7f5eSAndroid Build Coastguard Worker {
2169*344a7f5eSAndroid Build Coastguard Worker __builtin_ia32_storedquhi512_mask ((__v32hi *) __P,
2170*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __A,
2171*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __U);
2172*344a7f5eSAndroid Build Coastguard Worker }
2173*344a7f5eSAndroid Build Coastguard Worker
2174*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_storeu_epi8(void * __P,__mmask64 __U,__m512i __A)2175*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A)
2176*344a7f5eSAndroid Build Coastguard Worker {
2177*344a7f5eSAndroid Build Coastguard Worker __builtin_ia32_storedquqi512_mask ((__v64qi *) __P,
2178*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __A,
2179*344a7f5eSAndroid Build Coastguard Worker (__mmask64) __U);
2180*344a7f5eSAndroid Build Coastguard Worker }
2181*344a7f5eSAndroid Build Coastguard Worker
2182*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_test_epi8_mask(__m512i __A,__m512i __B)2183*344a7f5eSAndroid Build Coastguard Worker _mm512_test_epi8_mask (__m512i __A, __m512i __B)
2184*344a7f5eSAndroid Build Coastguard Worker {
2185*344a7f5eSAndroid Build Coastguard Worker return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A,
2186*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
2187*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
2188*344a7f5eSAndroid Build Coastguard Worker }
2189*344a7f5eSAndroid Build Coastguard Worker
2190*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_test_epi8_mask(__mmask64 __U,__m512i __A,__m512i __B)2191*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
2192*344a7f5eSAndroid Build Coastguard Worker {
2193*344a7f5eSAndroid Build Coastguard Worker return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A,
2194*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B, __U);
2195*344a7f5eSAndroid Build Coastguard Worker }
2196*344a7f5eSAndroid Build Coastguard Worker
2197*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_test_epi16_mask(__m512i __A,__m512i __B)2198*344a7f5eSAndroid Build Coastguard Worker _mm512_test_epi16_mask (__m512i __A, __m512i __B)
2199*344a7f5eSAndroid Build Coastguard Worker {
2200*344a7f5eSAndroid Build Coastguard Worker return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A,
2201*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
2202*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
2203*344a7f5eSAndroid Build Coastguard Worker }
2204*344a7f5eSAndroid Build Coastguard Worker
2205*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_test_epi16_mask(__mmask32 __U,__m512i __A,__m512i __B)2206*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
2207*344a7f5eSAndroid Build Coastguard Worker {
2208*344a7f5eSAndroid Build Coastguard Worker return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A,
2209*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B, __U);
2210*344a7f5eSAndroid Build Coastguard Worker }
2211*344a7f5eSAndroid Build Coastguard Worker
2212*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_testn_epi8_mask(__m512i __A,__m512i __B)2213*344a7f5eSAndroid Build Coastguard Worker _mm512_testn_epi8_mask (__m512i __A, __m512i __B)
2214*344a7f5eSAndroid Build Coastguard Worker {
2215*344a7f5eSAndroid Build Coastguard Worker return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A,
2216*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B,
2217*344a7f5eSAndroid Build Coastguard Worker (__mmask64) -1);
2218*344a7f5eSAndroid Build Coastguard Worker }
2219*344a7f5eSAndroid Build Coastguard Worker
2220*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_mask_testn_epi8_mask(__mmask64 __U,__m512i __A,__m512i __B)2221*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
2222*344a7f5eSAndroid Build Coastguard Worker {
2223*344a7f5eSAndroid Build Coastguard Worker return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A,
2224*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B, __U);
2225*344a7f5eSAndroid Build Coastguard Worker }
2226*344a7f5eSAndroid Build Coastguard Worker
2227*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_testn_epi16_mask(__m512i __A,__m512i __B)2228*344a7f5eSAndroid Build Coastguard Worker _mm512_testn_epi16_mask (__m512i __A, __m512i __B)
2229*344a7f5eSAndroid Build Coastguard Worker {
2230*344a7f5eSAndroid Build Coastguard Worker return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A,
2231*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B,
2232*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
2233*344a7f5eSAndroid Build Coastguard Worker }
2234*344a7f5eSAndroid Build Coastguard Worker
2235*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_mask_testn_epi16_mask(__mmask32 __U,__m512i __A,__m512i __B)2236*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
2237*344a7f5eSAndroid Build Coastguard Worker {
2238*344a7f5eSAndroid Build Coastguard Worker return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A,
2239*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __B, __U);
2240*344a7f5eSAndroid Build Coastguard Worker }
2241*344a7f5eSAndroid Build Coastguard Worker
2242*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask64 __DEFAULT_FN_ATTRS
_mm512_movepi8_mask(__m512i __A)2243*344a7f5eSAndroid Build Coastguard Worker _mm512_movepi8_mask (__m512i __A)
2244*344a7f5eSAndroid Build Coastguard Worker {
2245*344a7f5eSAndroid Build Coastguard Worker return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A);
2246*344a7f5eSAndroid Build Coastguard Worker }
2247*344a7f5eSAndroid Build Coastguard Worker
2248*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask32 __DEFAULT_FN_ATTRS
_mm512_movepi16_mask(__m512i __A)2249*344a7f5eSAndroid Build Coastguard Worker _mm512_movepi16_mask (__m512i __A)
2250*344a7f5eSAndroid Build Coastguard Worker {
2251*344a7f5eSAndroid Build Coastguard Worker return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A);
2252*344a7f5eSAndroid Build Coastguard Worker }
2253*344a7f5eSAndroid Build Coastguard Worker
2254*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_movm_epi8(__mmask64 __A)2255*344a7f5eSAndroid Build Coastguard Worker _mm512_movm_epi8 (__mmask64 __A)
2256*344a7f5eSAndroid Build Coastguard Worker {
2257*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_cvtmask2b512 (__A);
2258*344a7f5eSAndroid Build Coastguard Worker }
2259*344a7f5eSAndroid Build Coastguard Worker
2260*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_movm_epi16(__mmask32 __A)2261*344a7f5eSAndroid Build Coastguard Worker _mm512_movm_epi16 (__mmask32 __A)
2262*344a7f5eSAndroid Build Coastguard Worker {
2263*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_cvtmask2w512 (__A);
2264*344a7f5eSAndroid Build Coastguard Worker }
2265*344a7f5eSAndroid Build Coastguard Worker
2266*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_broadcastb_epi8(__m128i __A)2267*344a7f5eSAndroid Build Coastguard Worker _mm512_broadcastb_epi8 (__m128i __A)
2268*344a7f5eSAndroid Build Coastguard Worker {
2269*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_shufflevector((__v16qi) __A,
2270*344a7f5eSAndroid Build Coastguard Worker (__v16qi)_mm_undefined_si128(),
2271*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2272*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2273*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2274*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
2275*344a7f5eSAndroid Build Coastguard Worker }
2276*344a7f5eSAndroid Build Coastguard Worker
2277*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_broadcastb_epi8(__m512i __O,__mmask64 __M,__m128i __A)2278*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A)
2279*344a7f5eSAndroid Build Coastguard Worker {
2280*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_ia32_selectb_512(__M,
2281*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_broadcastb_epi8(__A),
2282*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __O);
2283*344a7f5eSAndroid Build Coastguard Worker }
2284*344a7f5eSAndroid Build Coastguard Worker
2285*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_broadcastb_epi8(__mmask64 __M,__m128i __A)2286*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A)
2287*344a7f5eSAndroid Build Coastguard Worker {
2288*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_ia32_selectb_512(__M,
2289*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_broadcastb_epi8(__A),
2290*344a7f5eSAndroid Build Coastguard Worker (__v64qi) _mm512_setzero_si512());
2291*344a7f5eSAndroid Build Coastguard Worker }
2292*344a7f5eSAndroid Build Coastguard Worker
2293*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_set1_epi16(__m512i __O,__mmask32 __M,short __A)2294*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A)
2295*344a7f5eSAndroid Build Coastguard Worker {
2296*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A,
2297*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __O,
2298*344a7f5eSAndroid Build Coastguard Worker __M);
2299*344a7f5eSAndroid Build Coastguard Worker }
2300*344a7f5eSAndroid Build Coastguard Worker
2301*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_set1_epi16(__mmask32 __M,short __A)2302*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_set1_epi16 (__mmask32 __M, short __A)
2303*344a7f5eSAndroid Build Coastguard Worker {
2304*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A,
2305*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
2306*344a7f5eSAndroid Build Coastguard Worker __M);
2307*344a7f5eSAndroid Build Coastguard Worker }
2308*344a7f5eSAndroid Build Coastguard Worker
2309*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_broadcastw_epi16(__m128i __A)2310*344a7f5eSAndroid Build Coastguard Worker _mm512_broadcastw_epi16 (__m128i __A)
2311*344a7f5eSAndroid Build Coastguard Worker {
2312*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_shufflevector((__v8hi) __A,
2313*344a7f5eSAndroid Build Coastguard Worker (__v8hi)_mm_undefined_si128(),
2314*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2315*344a7f5eSAndroid Build Coastguard Worker 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
2316*344a7f5eSAndroid Build Coastguard Worker }
2317*344a7f5eSAndroid Build Coastguard Worker
2318*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_broadcastw_epi16(__m512i __O,__mmask32 __M,__m128i __A)2319*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A)
2320*344a7f5eSAndroid Build Coastguard Worker {
2321*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_ia32_selectw_512(__M,
2322*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_broadcastw_epi16(__A),
2323*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __O);
2324*344a7f5eSAndroid Build Coastguard Worker }
2325*344a7f5eSAndroid Build Coastguard Worker
2326*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_broadcastw_epi16(__mmask32 __M,__m128i __A)2327*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A)
2328*344a7f5eSAndroid Build Coastguard Worker {
2329*344a7f5eSAndroid Build Coastguard Worker return (__m512i)__builtin_ia32_selectw_512(__M,
2330*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_broadcastw_epi16(__A),
2331*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_si512());
2332*344a7f5eSAndroid Build Coastguard Worker }
2333*344a7f5eSAndroid Build Coastguard Worker
2334*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_permutexvar_epi16(__m512i __A,__m512i __B)2335*344a7f5eSAndroid Build Coastguard Worker _mm512_permutexvar_epi16 (__m512i __A, __m512i __B)
2336*344a7f5eSAndroid Build Coastguard Worker {
2337*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
2338*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __A,
2339*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_undefined_epi32 (),
2340*344a7f5eSAndroid Build Coastguard Worker (__mmask32) -1);
2341*344a7f5eSAndroid Build Coastguard Worker }
2342*344a7f5eSAndroid Build Coastguard Worker
2343*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_permutexvar_epi16(__mmask32 __M,__m512i __A,__m512i __B)2344*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A,
2345*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
2346*344a7f5eSAndroid Build Coastguard Worker {
2347*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
2348*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __A,
2349*344a7f5eSAndroid Build Coastguard Worker (__v32hi) _mm512_setzero_hi(),
2350*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __M);
2351*344a7f5eSAndroid Build Coastguard Worker }
2352*344a7f5eSAndroid Build Coastguard Worker
2353*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_permutexvar_epi16(__m512i __W,__mmask32 __M,__m512i __A,__m512i __B)2354*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
2355*344a7f5eSAndroid Build Coastguard Worker __m512i __B)
2356*344a7f5eSAndroid Build Coastguard Worker {
2357*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
2358*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __A,
2359*344a7f5eSAndroid Build Coastguard Worker (__v32hi) __W,
2360*344a7f5eSAndroid Build Coastguard Worker (__mmask32) __M);
2361*344a7f5eSAndroid Build Coastguard Worker }
2362*344a7f5eSAndroid Build Coastguard Worker
2363*344a7f5eSAndroid Build Coastguard Worker #define _mm512_alignr_epi8(A, B, N) __extension__ ({\
2364*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_palignr512_mask((__v64qi)(__m512i)(A), \
2365*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(B), (int)(N), \
2366*344a7f5eSAndroid Build Coastguard Worker (__v64qi)_mm512_undefined_pd(), \
2367*344a7f5eSAndroid Build Coastguard Worker (__mmask64)-1); })
2368*344a7f5eSAndroid Build Coastguard Worker
2369*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_alignr_epi8(W, U, A, B, N) __extension__({\
2370*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_palignr512_mask((__v64qi)(__m512i)(A), \
2371*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(B), (int)(N), \
2372*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(W), \
2373*344a7f5eSAndroid Build Coastguard Worker (__mmask64)(U)); })
2374*344a7f5eSAndroid Build Coastguard Worker
2375*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_alignr_epi8(U, A, B, N) __extension__({\
2376*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_palignr512_mask((__v64qi)(__m512i)(A), \
2377*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(B), (int)(N), \
2378*344a7f5eSAndroid Build Coastguard Worker (__v64qi)_mm512_setzero_si512(), \
2379*344a7f5eSAndroid Build Coastguard Worker (__mmask64)(U)); })
2380*344a7f5eSAndroid Build Coastguard Worker
2381*344a7f5eSAndroid Build Coastguard Worker #define _mm512_dbsad_epu8(A, B, imm) __extension__ ({\
2382*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_dbpsadbw512_mask((__v64qi)(__m512i)(A), \
2383*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(B), (int)(imm), \
2384*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_undefined_epi32(), \
2385*344a7f5eSAndroid Build Coastguard Worker (__mmask32)-1); })
2386*344a7f5eSAndroid Build Coastguard Worker
2387*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_dbsad_epu8(W, U, A, B, imm) ({\
2388*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_dbpsadbw512_mask((__v64qi)(__m512i)(A), \
2389*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(B), (int)(imm), \
2390*344a7f5eSAndroid Build Coastguard Worker (__v32hi)(__m512i)(W), \
2391*344a7f5eSAndroid Build Coastguard Worker (__mmask32)(U)); })
2392*344a7f5eSAndroid Build Coastguard Worker
2393*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_dbsad_epu8(U, A, B, imm) ({\
2394*344a7f5eSAndroid Build Coastguard Worker (__m512i)__builtin_ia32_dbpsadbw512_mask((__v64qi)(__m512i)(A), \
2395*344a7f5eSAndroid Build Coastguard Worker (__v64qi)(__m512i)(B), (int)(imm), \
2396*344a7f5eSAndroid Build Coastguard Worker (__v32hi)_mm512_setzero_hi(), \
2397*344a7f5eSAndroid Build Coastguard Worker (__mmask32)(U)); })
2398*344a7f5eSAndroid Build Coastguard Worker
2399*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sad_epu8(__m512i __A,__m512i __B)2400*344a7f5eSAndroid Build Coastguard Worker _mm512_sad_epu8 (__m512i __A, __m512i __B)
2401*344a7f5eSAndroid Build Coastguard Worker {
2402*344a7f5eSAndroid Build Coastguard Worker return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A,
2403*344a7f5eSAndroid Build Coastguard Worker (__v64qi) __B);
2404*344a7f5eSAndroid Build Coastguard Worker }
2405*344a7f5eSAndroid Build Coastguard Worker
2406*344a7f5eSAndroid Build Coastguard Worker
2407*344a7f5eSAndroid Build Coastguard Worker
2408*344a7f5eSAndroid Build Coastguard Worker #undef __DEFAULT_FN_ATTRS
2409*344a7f5eSAndroid Build Coastguard Worker
2410*344a7f5eSAndroid Build Coastguard Worker #endif
2411