1*344a7f5eSAndroid Build Coastguard Worker /*===---- vecintrin.h - Vector intrinsics ----------------------------------===
2*344a7f5eSAndroid Build Coastguard Worker *
3*344a7f5eSAndroid Build Coastguard Worker * Permission is hereby granted, free of charge, to any person obtaining a copy
4*344a7f5eSAndroid Build Coastguard Worker * of this software and associated documentation files (the "Software"), to deal
5*344a7f5eSAndroid Build Coastguard Worker * in the Software without restriction, including without limitation the rights
6*344a7f5eSAndroid Build Coastguard Worker * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7*344a7f5eSAndroid Build Coastguard Worker * copies of the Software, and to permit persons to whom the Software is
8*344a7f5eSAndroid Build Coastguard Worker * furnished to do so, subject to the following conditions:
9*344a7f5eSAndroid Build Coastguard Worker *
10*344a7f5eSAndroid Build Coastguard Worker * The above copyright notice and this permission notice shall be included in
11*344a7f5eSAndroid Build Coastguard Worker * all copies or substantial portions of the Software.
12*344a7f5eSAndroid Build Coastguard Worker *
13*344a7f5eSAndroid Build Coastguard Worker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14*344a7f5eSAndroid Build Coastguard Worker * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15*344a7f5eSAndroid Build Coastguard Worker * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16*344a7f5eSAndroid Build Coastguard Worker * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17*344a7f5eSAndroid Build Coastguard Worker * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18*344a7f5eSAndroid Build Coastguard Worker * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19*344a7f5eSAndroid Build Coastguard Worker * THE SOFTWARE.
20*344a7f5eSAndroid Build Coastguard Worker *
21*344a7f5eSAndroid Build Coastguard Worker *===-----------------------------------------------------------------------===
22*344a7f5eSAndroid Build Coastguard Worker */
23*344a7f5eSAndroid Build Coastguard Worker
24*344a7f5eSAndroid Build Coastguard Worker #if defined(__s390x__) && defined(__VEC__)
25*344a7f5eSAndroid Build Coastguard Worker
26*344a7f5eSAndroid Build Coastguard Worker #define __ATTRS_ai __attribute__((__always_inline__))
27*344a7f5eSAndroid Build Coastguard Worker #define __ATTRS_o __attribute__((__overloadable__))
28*344a7f5eSAndroid Build Coastguard Worker #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
29*344a7f5eSAndroid Build Coastguard Worker
30*344a7f5eSAndroid Build Coastguard Worker #define __constant(PARM) \
31*344a7f5eSAndroid Build Coastguard Worker __attribute__((__enable_if__ ((PARM) == (PARM), \
32*344a7f5eSAndroid Build Coastguard Worker "argument must be a constant integer")))
33*344a7f5eSAndroid Build Coastguard Worker #define __constant_range(PARM, LOW, HIGH) \
34*344a7f5eSAndroid Build Coastguard Worker __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
35*344a7f5eSAndroid Build Coastguard Worker "argument must be a constant integer from " #LOW " to " #HIGH)))
36*344a7f5eSAndroid Build Coastguard Worker #define __constant_pow2_range(PARM, LOW, HIGH) \
37*344a7f5eSAndroid Build Coastguard Worker __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
38*344a7f5eSAndroid Build Coastguard Worker ((PARM) & ((PARM) - 1)) == 0, \
39*344a7f5eSAndroid Build Coastguard Worker "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
40*344a7f5eSAndroid Build Coastguard Worker
41*344a7f5eSAndroid Build Coastguard Worker /*-- __lcbb -----------------------------------------------------------------*/
42*344a7f5eSAndroid Build Coastguard Worker
43*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o unsigned int
44*344a7f5eSAndroid Build Coastguard Worker __lcbb(const void *__ptr, unsigned short __len)
45*344a7f5eSAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
46*344a7f5eSAndroid Build Coastguard Worker
47*344a7f5eSAndroid Build Coastguard Worker #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
48*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
49*344a7f5eSAndroid Build Coastguard Worker ((Y) == 64 ? 0 : \
50*344a7f5eSAndroid Build Coastguard Worker (Y) == 128 ? 1 : \
51*344a7f5eSAndroid Build Coastguard Worker (Y) == 256 ? 2 : \
52*344a7f5eSAndroid Build Coastguard Worker (Y) == 512 ? 3 : \
53*344a7f5eSAndroid Build Coastguard Worker (Y) == 1024 ? 4 : \
54*344a7f5eSAndroid Build Coastguard Worker (Y) == 2048 ? 5 : \
55*344a7f5eSAndroid Build Coastguard Worker (Y) == 4096 ? 6 : 0) : 0))
56*344a7f5eSAndroid Build Coastguard Worker
57*344a7f5eSAndroid Build Coastguard Worker /*-- vec_extract ------------------------------------------------------------*/
58*344a7f5eSAndroid Build Coastguard Worker
59*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai signed char
vec_extract(vector signed char __vec,int __index)60*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector signed char __vec, int __index) {
61*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 15];
62*344a7f5eSAndroid Build Coastguard Worker }
63*344a7f5eSAndroid Build Coastguard Worker
64*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned char
vec_extract(vector bool char __vec,int __index)65*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector bool char __vec, int __index) {
66*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 15];
67*344a7f5eSAndroid Build Coastguard Worker }
68*344a7f5eSAndroid Build Coastguard Worker
69*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned char
vec_extract(vector unsigned char __vec,int __index)70*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector unsigned char __vec, int __index) {
71*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 15];
72*344a7f5eSAndroid Build Coastguard Worker }
73*344a7f5eSAndroid Build Coastguard Worker
74*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai signed short
vec_extract(vector signed short __vec,int __index)75*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector signed short __vec, int __index) {
76*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 7];
77*344a7f5eSAndroid Build Coastguard Worker }
78*344a7f5eSAndroid Build Coastguard Worker
79*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned short
vec_extract(vector bool short __vec,int __index)80*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector bool short __vec, int __index) {
81*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 7];
82*344a7f5eSAndroid Build Coastguard Worker }
83*344a7f5eSAndroid Build Coastguard Worker
84*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned short
vec_extract(vector unsigned short __vec,int __index)85*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector unsigned short __vec, int __index) {
86*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 7];
87*344a7f5eSAndroid Build Coastguard Worker }
88*344a7f5eSAndroid Build Coastguard Worker
89*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai signed int
vec_extract(vector signed int __vec,int __index)90*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector signed int __vec, int __index) {
91*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 3];
92*344a7f5eSAndroid Build Coastguard Worker }
93*344a7f5eSAndroid Build Coastguard Worker
94*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned int
vec_extract(vector bool int __vec,int __index)95*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector bool int __vec, int __index) {
96*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 3];
97*344a7f5eSAndroid Build Coastguard Worker }
98*344a7f5eSAndroid Build Coastguard Worker
99*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned int
vec_extract(vector unsigned int __vec,int __index)100*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector unsigned int __vec, int __index) {
101*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 3];
102*344a7f5eSAndroid Build Coastguard Worker }
103*344a7f5eSAndroid Build Coastguard Worker
104*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai signed long long
vec_extract(vector signed long long __vec,int __index)105*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector signed long long __vec, int __index) {
106*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 1];
107*344a7f5eSAndroid Build Coastguard Worker }
108*344a7f5eSAndroid Build Coastguard Worker
109*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned long long
vec_extract(vector bool long long __vec,int __index)110*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector bool long long __vec, int __index) {
111*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 1];
112*344a7f5eSAndroid Build Coastguard Worker }
113*344a7f5eSAndroid Build Coastguard Worker
114*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned long long
vec_extract(vector unsigned long long __vec,int __index)115*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector unsigned long long __vec, int __index) {
116*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 1];
117*344a7f5eSAndroid Build Coastguard Worker }
118*344a7f5eSAndroid Build Coastguard Worker
119*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai double
vec_extract(vector double __vec,int __index)120*344a7f5eSAndroid Build Coastguard Worker vec_extract(vector double __vec, int __index) {
121*344a7f5eSAndroid Build Coastguard Worker return __vec[__index & 1];
122*344a7f5eSAndroid Build Coastguard Worker }
123*344a7f5eSAndroid Build Coastguard Worker
124*344a7f5eSAndroid Build Coastguard Worker /*-- vec_insert -------------------------------------------------------------*/
125*344a7f5eSAndroid Build Coastguard Worker
126*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_insert(signed char __scalar,vector signed char __vec,int __index)127*344a7f5eSAndroid Build Coastguard Worker vec_insert(signed char __scalar, vector signed char __vec, int __index) {
128*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 15] = __scalar;
129*344a7f5eSAndroid Build Coastguard Worker return __vec;
130*344a7f5eSAndroid Build Coastguard Worker }
131*344a7f5eSAndroid Build Coastguard Worker
132*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_insert(unsigned char __scalar,vector bool char __vec,int __index)133*344a7f5eSAndroid Build Coastguard Worker vec_insert(unsigned char __scalar, vector bool char __vec, int __index) {
134*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __newvec = (vector unsigned char)__vec;
135*344a7f5eSAndroid Build Coastguard Worker __newvec[__index & 15] = (unsigned char)__scalar;
136*344a7f5eSAndroid Build Coastguard Worker return __newvec;
137*344a7f5eSAndroid Build Coastguard Worker }
138*344a7f5eSAndroid Build Coastguard Worker
139*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_insert(unsigned char __scalar,vector unsigned char __vec,int __index)140*344a7f5eSAndroid Build Coastguard Worker vec_insert(unsigned char __scalar, vector unsigned char __vec, int __index) {
141*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 15] = __scalar;
142*344a7f5eSAndroid Build Coastguard Worker return __vec;
143*344a7f5eSAndroid Build Coastguard Worker }
144*344a7f5eSAndroid Build Coastguard Worker
145*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_insert(signed short __scalar,vector signed short __vec,int __index)146*344a7f5eSAndroid Build Coastguard Worker vec_insert(signed short __scalar, vector signed short __vec, int __index) {
147*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 7] = __scalar;
148*344a7f5eSAndroid Build Coastguard Worker return __vec;
149*344a7f5eSAndroid Build Coastguard Worker }
150*344a7f5eSAndroid Build Coastguard Worker
151*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_insert(unsigned short __scalar,vector bool short __vec,int __index)152*344a7f5eSAndroid Build Coastguard Worker vec_insert(unsigned short __scalar, vector bool short __vec, int __index) {
153*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __newvec = (vector unsigned short)__vec;
154*344a7f5eSAndroid Build Coastguard Worker __newvec[__index & 7] = (unsigned short)__scalar;
155*344a7f5eSAndroid Build Coastguard Worker return __newvec;
156*344a7f5eSAndroid Build Coastguard Worker }
157*344a7f5eSAndroid Build Coastguard Worker
158*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_insert(unsigned short __scalar,vector unsigned short __vec,int __index)159*344a7f5eSAndroid Build Coastguard Worker vec_insert(unsigned short __scalar, vector unsigned short __vec, int __index) {
160*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 7] = __scalar;
161*344a7f5eSAndroid Build Coastguard Worker return __vec;
162*344a7f5eSAndroid Build Coastguard Worker }
163*344a7f5eSAndroid Build Coastguard Worker
164*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_insert(signed int __scalar,vector signed int __vec,int __index)165*344a7f5eSAndroid Build Coastguard Worker vec_insert(signed int __scalar, vector signed int __vec, int __index) {
166*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 3] = __scalar;
167*344a7f5eSAndroid Build Coastguard Worker return __vec;
168*344a7f5eSAndroid Build Coastguard Worker }
169*344a7f5eSAndroid Build Coastguard Worker
170*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_insert(unsigned int __scalar,vector bool int __vec,int __index)171*344a7f5eSAndroid Build Coastguard Worker vec_insert(unsigned int __scalar, vector bool int __vec, int __index) {
172*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __newvec = (vector unsigned int)__vec;
173*344a7f5eSAndroid Build Coastguard Worker __newvec[__index & 3] = __scalar;
174*344a7f5eSAndroid Build Coastguard Worker return __newvec;
175*344a7f5eSAndroid Build Coastguard Worker }
176*344a7f5eSAndroid Build Coastguard Worker
177*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_insert(unsigned int __scalar,vector unsigned int __vec,int __index)178*344a7f5eSAndroid Build Coastguard Worker vec_insert(unsigned int __scalar, vector unsigned int __vec, int __index) {
179*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 3] = __scalar;
180*344a7f5eSAndroid Build Coastguard Worker return __vec;
181*344a7f5eSAndroid Build Coastguard Worker }
182*344a7f5eSAndroid Build Coastguard Worker
183*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_insert(signed long long __scalar,vector signed long long __vec,int __index)184*344a7f5eSAndroid Build Coastguard Worker vec_insert(signed long long __scalar, vector signed long long __vec,
185*344a7f5eSAndroid Build Coastguard Worker int __index) {
186*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
187*344a7f5eSAndroid Build Coastguard Worker return __vec;
188*344a7f5eSAndroid Build Coastguard Worker }
189*344a7f5eSAndroid Build Coastguard Worker
190*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_insert(unsigned long long __scalar,vector bool long long __vec,int __index)191*344a7f5eSAndroid Build Coastguard Worker vec_insert(unsigned long long __scalar, vector bool long long __vec,
192*344a7f5eSAndroid Build Coastguard Worker int __index) {
193*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __newvec = (vector unsigned long long)__vec;
194*344a7f5eSAndroid Build Coastguard Worker __newvec[__index & 1] = __scalar;
195*344a7f5eSAndroid Build Coastguard Worker return __newvec;
196*344a7f5eSAndroid Build Coastguard Worker }
197*344a7f5eSAndroid Build Coastguard Worker
198*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_insert(unsigned long long __scalar,vector unsigned long long __vec,int __index)199*344a7f5eSAndroid Build Coastguard Worker vec_insert(unsigned long long __scalar, vector unsigned long long __vec,
200*344a7f5eSAndroid Build Coastguard Worker int __index) {
201*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
202*344a7f5eSAndroid Build Coastguard Worker return __vec;
203*344a7f5eSAndroid Build Coastguard Worker }
204*344a7f5eSAndroid Build Coastguard Worker
205*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_insert(double __scalar,vector double __vec,int __index)206*344a7f5eSAndroid Build Coastguard Worker vec_insert(double __scalar, vector double __vec, int __index) {
207*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
208*344a7f5eSAndroid Build Coastguard Worker return __vec;
209*344a7f5eSAndroid Build Coastguard Worker }
210*344a7f5eSAndroid Build Coastguard Worker
211*344a7f5eSAndroid Build Coastguard Worker /*-- vec_promote ------------------------------------------------------------*/
212*344a7f5eSAndroid Build Coastguard Worker
213*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_promote(signed char __scalar,int __index)214*344a7f5eSAndroid Build Coastguard Worker vec_promote(signed char __scalar, int __index) {
215*344a7f5eSAndroid Build Coastguard Worker const vector signed char __zero = (vector signed char)0;
216*344a7f5eSAndroid Build Coastguard Worker vector signed char __vec = __builtin_shufflevector(__zero, __zero,
217*344a7f5eSAndroid Build Coastguard Worker -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
218*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 15] = __scalar;
219*344a7f5eSAndroid Build Coastguard Worker return __vec;
220*344a7f5eSAndroid Build Coastguard Worker }
221*344a7f5eSAndroid Build Coastguard Worker
222*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_promote(unsigned char __scalar,int __index)223*344a7f5eSAndroid Build Coastguard Worker vec_promote(unsigned char __scalar, int __index) {
224*344a7f5eSAndroid Build Coastguard Worker const vector unsigned char __zero = (vector unsigned char)0;
225*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
226*344a7f5eSAndroid Build Coastguard Worker -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
227*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 15] = __scalar;
228*344a7f5eSAndroid Build Coastguard Worker return __vec;
229*344a7f5eSAndroid Build Coastguard Worker }
230*344a7f5eSAndroid Build Coastguard Worker
231*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_promote(signed short __scalar,int __index)232*344a7f5eSAndroid Build Coastguard Worker vec_promote(signed short __scalar, int __index) {
233*344a7f5eSAndroid Build Coastguard Worker const vector signed short __zero = (vector signed short)0;
234*344a7f5eSAndroid Build Coastguard Worker vector signed short __vec = __builtin_shufflevector(__zero, __zero,
235*344a7f5eSAndroid Build Coastguard Worker -1, -1, -1, -1, -1, -1, -1, -1);
236*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 7] = __scalar;
237*344a7f5eSAndroid Build Coastguard Worker return __vec;
238*344a7f5eSAndroid Build Coastguard Worker }
239*344a7f5eSAndroid Build Coastguard Worker
240*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_promote(unsigned short __scalar,int __index)241*344a7f5eSAndroid Build Coastguard Worker vec_promote(unsigned short __scalar, int __index) {
242*344a7f5eSAndroid Build Coastguard Worker const vector unsigned short __zero = (vector unsigned short)0;
243*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
244*344a7f5eSAndroid Build Coastguard Worker -1, -1, -1, -1, -1, -1, -1, -1);
245*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 7] = __scalar;
246*344a7f5eSAndroid Build Coastguard Worker return __vec;
247*344a7f5eSAndroid Build Coastguard Worker }
248*344a7f5eSAndroid Build Coastguard Worker
249*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_promote(signed int __scalar,int __index)250*344a7f5eSAndroid Build Coastguard Worker vec_promote(signed int __scalar, int __index) {
251*344a7f5eSAndroid Build Coastguard Worker const vector signed int __zero = (vector signed int)0;
252*344a7f5eSAndroid Build Coastguard Worker vector signed int __vec = __builtin_shufflevector(__zero, __zero,
253*344a7f5eSAndroid Build Coastguard Worker -1, -1, -1, -1);
254*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 3] = __scalar;
255*344a7f5eSAndroid Build Coastguard Worker return __vec;
256*344a7f5eSAndroid Build Coastguard Worker }
257*344a7f5eSAndroid Build Coastguard Worker
258*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_promote(unsigned int __scalar,int __index)259*344a7f5eSAndroid Build Coastguard Worker vec_promote(unsigned int __scalar, int __index) {
260*344a7f5eSAndroid Build Coastguard Worker const vector unsigned int __zero = (vector unsigned int)0;
261*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
262*344a7f5eSAndroid Build Coastguard Worker -1, -1, -1, -1);
263*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 3] = __scalar;
264*344a7f5eSAndroid Build Coastguard Worker return __vec;
265*344a7f5eSAndroid Build Coastguard Worker }
266*344a7f5eSAndroid Build Coastguard Worker
267*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_promote(signed long long __scalar,int __index)268*344a7f5eSAndroid Build Coastguard Worker vec_promote(signed long long __scalar, int __index) {
269*344a7f5eSAndroid Build Coastguard Worker const vector signed long long __zero = (vector signed long long)0;
270*344a7f5eSAndroid Build Coastguard Worker vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
271*344a7f5eSAndroid Build Coastguard Worker -1, -1);
272*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
273*344a7f5eSAndroid Build Coastguard Worker return __vec;
274*344a7f5eSAndroid Build Coastguard Worker }
275*344a7f5eSAndroid Build Coastguard Worker
276*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_promote(unsigned long long __scalar,int __index)277*344a7f5eSAndroid Build Coastguard Worker vec_promote(unsigned long long __scalar, int __index) {
278*344a7f5eSAndroid Build Coastguard Worker const vector unsigned long long __zero = (vector unsigned long long)0;
279*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
280*344a7f5eSAndroid Build Coastguard Worker -1, -1);
281*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
282*344a7f5eSAndroid Build Coastguard Worker return __vec;
283*344a7f5eSAndroid Build Coastguard Worker }
284*344a7f5eSAndroid Build Coastguard Worker
285*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_promote(double __scalar,int __index)286*344a7f5eSAndroid Build Coastguard Worker vec_promote(double __scalar, int __index) {
287*344a7f5eSAndroid Build Coastguard Worker const vector double __zero = (vector double)0;
288*344a7f5eSAndroid Build Coastguard Worker vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
289*344a7f5eSAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
290*344a7f5eSAndroid Build Coastguard Worker return __vec;
291*344a7f5eSAndroid Build Coastguard Worker }
292*344a7f5eSAndroid Build Coastguard Worker
293*344a7f5eSAndroid Build Coastguard Worker /*-- vec_insert_and_zero ----------------------------------------------------*/
294*344a7f5eSAndroid Build Coastguard Worker
295*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_insert_and_zero(const signed char * __ptr)296*344a7f5eSAndroid Build Coastguard Worker vec_insert_and_zero(const signed char *__ptr) {
297*344a7f5eSAndroid Build Coastguard Worker vector signed char __vec = (vector signed char)0;
298*344a7f5eSAndroid Build Coastguard Worker __vec[7] = *__ptr;
299*344a7f5eSAndroid Build Coastguard Worker return __vec;
300*344a7f5eSAndroid Build Coastguard Worker }
301*344a7f5eSAndroid Build Coastguard Worker
302*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_insert_and_zero(const unsigned char * __ptr)303*344a7f5eSAndroid Build Coastguard Worker vec_insert_and_zero(const unsigned char *__ptr) {
304*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __vec = (vector unsigned char)0;
305*344a7f5eSAndroid Build Coastguard Worker __vec[7] = *__ptr;
306*344a7f5eSAndroid Build Coastguard Worker return __vec;
307*344a7f5eSAndroid Build Coastguard Worker }
308*344a7f5eSAndroid Build Coastguard Worker
309*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_insert_and_zero(const signed short * __ptr)310*344a7f5eSAndroid Build Coastguard Worker vec_insert_and_zero(const signed short *__ptr) {
311*344a7f5eSAndroid Build Coastguard Worker vector signed short __vec = (vector signed short)0;
312*344a7f5eSAndroid Build Coastguard Worker __vec[3] = *__ptr;
313*344a7f5eSAndroid Build Coastguard Worker return __vec;
314*344a7f5eSAndroid Build Coastguard Worker }
315*344a7f5eSAndroid Build Coastguard Worker
316*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_insert_and_zero(const unsigned short * __ptr)317*344a7f5eSAndroid Build Coastguard Worker vec_insert_and_zero(const unsigned short *__ptr) {
318*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __vec = (vector unsigned short)0;
319*344a7f5eSAndroid Build Coastguard Worker __vec[3] = *__ptr;
320*344a7f5eSAndroid Build Coastguard Worker return __vec;
321*344a7f5eSAndroid Build Coastguard Worker }
322*344a7f5eSAndroid Build Coastguard Worker
323*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_insert_and_zero(const signed int * __ptr)324*344a7f5eSAndroid Build Coastguard Worker vec_insert_and_zero(const signed int *__ptr) {
325*344a7f5eSAndroid Build Coastguard Worker vector signed int __vec = (vector signed int)0;
326*344a7f5eSAndroid Build Coastguard Worker __vec[1] = *__ptr;
327*344a7f5eSAndroid Build Coastguard Worker return __vec;
328*344a7f5eSAndroid Build Coastguard Worker }
329*344a7f5eSAndroid Build Coastguard Worker
330*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_insert_and_zero(const unsigned int * __ptr)331*344a7f5eSAndroid Build Coastguard Worker vec_insert_and_zero(const unsigned int *__ptr) {
332*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __vec = (vector unsigned int)0;
333*344a7f5eSAndroid Build Coastguard Worker __vec[1] = *__ptr;
334*344a7f5eSAndroid Build Coastguard Worker return __vec;
335*344a7f5eSAndroid Build Coastguard Worker }
336*344a7f5eSAndroid Build Coastguard Worker
337*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_insert_and_zero(const signed long long * __ptr)338*344a7f5eSAndroid Build Coastguard Worker vec_insert_and_zero(const signed long long *__ptr) {
339*344a7f5eSAndroid Build Coastguard Worker vector signed long long __vec = (vector signed long long)0;
340*344a7f5eSAndroid Build Coastguard Worker __vec[0] = *__ptr;
341*344a7f5eSAndroid Build Coastguard Worker return __vec;
342*344a7f5eSAndroid Build Coastguard Worker }
343*344a7f5eSAndroid Build Coastguard Worker
344*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_insert_and_zero(const unsigned long long * __ptr)345*344a7f5eSAndroid Build Coastguard Worker vec_insert_and_zero(const unsigned long long *__ptr) {
346*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __vec = (vector unsigned long long)0;
347*344a7f5eSAndroid Build Coastguard Worker __vec[0] = *__ptr;
348*344a7f5eSAndroid Build Coastguard Worker return __vec;
349*344a7f5eSAndroid Build Coastguard Worker }
350*344a7f5eSAndroid Build Coastguard Worker
351*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_insert_and_zero(const double * __ptr)352*344a7f5eSAndroid Build Coastguard Worker vec_insert_and_zero(const double *__ptr) {
353*344a7f5eSAndroid Build Coastguard Worker vector double __vec = (vector double)0;
354*344a7f5eSAndroid Build Coastguard Worker __vec[0] = *__ptr;
355*344a7f5eSAndroid Build Coastguard Worker return __vec;
356*344a7f5eSAndroid Build Coastguard Worker }
357*344a7f5eSAndroid Build Coastguard Worker
358*344a7f5eSAndroid Build Coastguard Worker /*-- vec_perm ---------------------------------------------------------------*/
359*344a7f5eSAndroid Build Coastguard Worker
360*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_perm(vector signed char __a,vector signed char __b,vector unsigned char __c)361*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector signed char __a, vector signed char __b,
362*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
363*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vperm(
364*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
365*344a7f5eSAndroid Build Coastguard Worker }
366*344a7f5eSAndroid Build Coastguard Worker
367*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_perm(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)368*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector unsigned char __a, vector unsigned char __b,
369*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
370*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned char)__builtin_s390_vperm(
371*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
372*344a7f5eSAndroid Build Coastguard Worker }
373*344a7f5eSAndroid Build Coastguard Worker
374*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_perm(vector bool char __a,vector bool char __b,vector unsigned char __c)375*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector bool char __a, vector bool char __b,
376*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
377*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vperm(
378*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
379*344a7f5eSAndroid Build Coastguard Worker }
380*344a7f5eSAndroid Build Coastguard Worker
381*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_perm(vector signed short __a,vector signed short __b,vector unsigned char __c)382*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector signed short __a, vector signed short __b,
383*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
384*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vperm(
385*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
386*344a7f5eSAndroid Build Coastguard Worker }
387*344a7f5eSAndroid Build Coastguard Worker
388*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_perm(vector unsigned short __a,vector unsigned short __b,vector unsigned char __c)389*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector unsigned short __a, vector unsigned short __b,
390*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
391*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vperm(
392*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
393*344a7f5eSAndroid Build Coastguard Worker }
394*344a7f5eSAndroid Build Coastguard Worker
395*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_perm(vector bool short __a,vector bool short __b,vector unsigned char __c)396*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector bool short __a, vector bool short __b,
397*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
398*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vperm(
399*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
400*344a7f5eSAndroid Build Coastguard Worker }
401*344a7f5eSAndroid Build Coastguard Worker
402*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_perm(vector signed int __a,vector signed int __b,vector unsigned char __c)403*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector signed int __a, vector signed int __b,
404*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
405*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vperm(
406*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
407*344a7f5eSAndroid Build Coastguard Worker }
408*344a7f5eSAndroid Build Coastguard Worker
409*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_perm(vector unsigned int __a,vector unsigned int __b,vector unsigned char __c)410*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector unsigned int __a, vector unsigned int __b,
411*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
412*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vperm(
413*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
414*344a7f5eSAndroid Build Coastguard Worker }
415*344a7f5eSAndroid Build Coastguard Worker
416*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_perm(vector bool int __a,vector bool int __b,vector unsigned char __c)417*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector bool int __a, vector bool int __b,
418*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
419*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vperm(
420*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
421*344a7f5eSAndroid Build Coastguard Worker }
422*344a7f5eSAndroid Build Coastguard Worker
423*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_perm(vector signed long long __a,vector signed long long __b,vector unsigned char __c)424*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector signed long long __a, vector signed long long __b,
425*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
426*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vperm(
427*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
428*344a7f5eSAndroid Build Coastguard Worker }
429*344a7f5eSAndroid Build Coastguard Worker
430*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_perm(vector unsigned long long __a,vector unsigned long long __b,vector unsigned char __c)431*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector unsigned long long __a, vector unsigned long long __b,
432*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
433*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vperm(
434*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
435*344a7f5eSAndroid Build Coastguard Worker }
436*344a7f5eSAndroid Build Coastguard Worker
437*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_perm(vector bool long long __a,vector bool long long __b,vector unsigned char __c)438*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector bool long long __a, vector bool long long __b,
439*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
440*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)__builtin_s390_vperm(
441*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
442*344a7f5eSAndroid Build Coastguard Worker }
443*344a7f5eSAndroid Build Coastguard Worker
444*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_perm(vector double __a,vector double __b,vector unsigned char __c)445*344a7f5eSAndroid Build Coastguard Worker vec_perm(vector double __a, vector double __b,
446*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
447*344a7f5eSAndroid Build Coastguard Worker return (vector double)__builtin_s390_vperm(
448*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b, __c);
449*344a7f5eSAndroid Build Coastguard Worker }
450*344a7f5eSAndroid Build Coastguard Worker
451*344a7f5eSAndroid Build Coastguard Worker /*-- vec_permi --------------------------------------------------------------*/
452*344a7f5eSAndroid Build Coastguard Worker
453*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed long long
454*344a7f5eSAndroid Build Coastguard Worker vec_permi(vector signed long long __a, vector signed long long __b, int __c)
455*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
456*344a7f5eSAndroid Build Coastguard Worker
457*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned long long
458*344a7f5eSAndroid Build Coastguard Worker vec_permi(vector unsigned long long __a, vector unsigned long long __b, int __c)
459*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
460*344a7f5eSAndroid Build Coastguard Worker
461*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector bool long long
462*344a7f5eSAndroid Build Coastguard Worker vec_permi(vector bool long long __a, vector bool long long __b, int __c)
463*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
464*344a7f5eSAndroid Build Coastguard Worker
465*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector double
466*344a7f5eSAndroid Build Coastguard Worker vec_permi(vector double __a, vector double __b, int __c)
467*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
468*344a7f5eSAndroid Build Coastguard Worker
469*344a7f5eSAndroid Build Coastguard Worker #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
470*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vpdi((vector unsigned long long)(X), \
471*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)(Y), \
472*344a7f5eSAndroid Build Coastguard Worker (((Z) & 2) << 1) | ((Z) & 1)))
473*344a7f5eSAndroid Build Coastguard Worker
474*344a7f5eSAndroid Build Coastguard Worker /*-- vec_sel ----------------------------------------------------------------*/
475*344a7f5eSAndroid Build Coastguard Worker
476*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_sel(vector signed char __a,vector signed char __b,vector unsigned char __c)477*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector signed char __a, vector signed char __b,
478*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
479*344a7f5eSAndroid Build Coastguard Worker return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
480*344a7f5eSAndroid Build Coastguard Worker }
481*344a7f5eSAndroid Build Coastguard Worker
482*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_sel(vector signed char __a,vector signed char __b,vector bool char __c)483*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector signed char __a, vector signed char __b, vector bool char __c) {
484*344a7f5eSAndroid Build Coastguard Worker return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
485*344a7f5eSAndroid Build Coastguard Worker }
486*344a7f5eSAndroid Build Coastguard Worker
487*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_sel(vector bool char __a,vector bool char __b,vector unsigned char __c)488*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c) {
489*344a7f5eSAndroid Build Coastguard Worker return ((vector bool char)__c & __b) | (~(vector bool char)__c & __a);
490*344a7f5eSAndroid Build Coastguard Worker }
491*344a7f5eSAndroid Build Coastguard Worker
492*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_sel(vector bool char __a,vector bool char __b,vector bool char __c)493*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector bool char __a, vector bool char __b, vector bool char __c) {
494*344a7f5eSAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
495*344a7f5eSAndroid Build Coastguard Worker }
496*344a7f5eSAndroid Build Coastguard Worker
497*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_sel(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)498*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector unsigned char __a, vector unsigned char __b,
499*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
500*344a7f5eSAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
501*344a7f5eSAndroid Build Coastguard Worker }
502*344a7f5eSAndroid Build Coastguard Worker
503*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_sel(vector unsigned char __a,vector unsigned char __b,vector bool char __c)504*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector unsigned char __a, vector unsigned char __b,
505*344a7f5eSAndroid Build Coastguard Worker vector bool char __c) {
506*344a7f5eSAndroid Build Coastguard Worker return ((vector unsigned char)__c & __b) | (~(vector unsigned char)__c & __a);
507*344a7f5eSAndroid Build Coastguard Worker }
508*344a7f5eSAndroid Build Coastguard Worker
509*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_sel(vector signed short __a,vector signed short __b,vector unsigned short __c)510*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector signed short __a, vector signed short __b,
511*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
512*344a7f5eSAndroid Build Coastguard Worker return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
513*344a7f5eSAndroid Build Coastguard Worker }
514*344a7f5eSAndroid Build Coastguard Worker
515*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_sel(vector signed short __a,vector signed short __b,vector bool short __c)516*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector signed short __a, vector signed short __b,
517*344a7f5eSAndroid Build Coastguard Worker vector bool short __c) {
518*344a7f5eSAndroid Build Coastguard Worker return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
519*344a7f5eSAndroid Build Coastguard Worker }
520*344a7f5eSAndroid Build Coastguard Worker
521*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_sel(vector bool short __a,vector bool short __b,vector unsigned short __c)522*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector bool short __a, vector bool short __b,
523*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
524*344a7f5eSAndroid Build Coastguard Worker return ((vector bool short)__c & __b) | (~(vector bool short)__c & __a);
525*344a7f5eSAndroid Build Coastguard Worker }
526*344a7f5eSAndroid Build Coastguard Worker
527*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_sel(vector bool short __a,vector bool short __b,vector bool short __c)528*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) {
529*344a7f5eSAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
530*344a7f5eSAndroid Build Coastguard Worker }
531*344a7f5eSAndroid Build Coastguard Worker
532*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_sel(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)533*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector unsigned short __a, vector unsigned short __b,
534*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
535*344a7f5eSAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
536*344a7f5eSAndroid Build Coastguard Worker }
537*344a7f5eSAndroid Build Coastguard Worker
538*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_sel(vector unsigned short __a,vector unsigned short __b,vector bool short __c)539*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector unsigned short __a, vector unsigned short __b,
540*344a7f5eSAndroid Build Coastguard Worker vector bool short __c) {
541*344a7f5eSAndroid Build Coastguard Worker return (((vector unsigned short)__c & __b) |
542*344a7f5eSAndroid Build Coastguard Worker (~(vector unsigned short)__c & __a));
543*344a7f5eSAndroid Build Coastguard Worker }
544*344a7f5eSAndroid Build Coastguard Worker
545*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_sel(vector signed int __a,vector signed int __b,vector unsigned int __c)546*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector signed int __a, vector signed int __b,
547*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
548*344a7f5eSAndroid Build Coastguard Worker return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
549*344a7f5eSAndroid Build Coastguard Worker }
550*344a7f5eSAndroid Build Coastguard Worker
551*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_sel(vector signed int __a,vector signed int __b,vector bool int __c)552*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector signed int __a, vector signed int __b, vector bool int __c) {
553*344a7f5eSAndroid Build Coastguard Worker return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
554*344a7f5eSAndroid Build Coastguard Worker }
555*344a7f5eSAndroid Build Coastguard Worker
556*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_sel(vector bool int __a,vector bool int __b,vector unsigned int __c)557*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c) {
558*344a7f5eSAndroid Build Coastguard Worker return ((vector bool int)__c & __b) | (~(vector bool int)__c & __a);
559*344a7f5eSAndroid Build Coastguard Worker }
560*344a7f5eSAndroid Build Coastguard Worker
561*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_sel(vector bool int __a,vector bool int __b,vector bool int __c)562*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector bool int __a, vector bool int __b, vector bool int __c) {
563*344a7f5eSAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
564*344a7f5eSAndroid Build Coastguard Worker }
565*344a7f5eSAndroid Build Coastguard Worker
566*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_sel(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)567*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector unsigned int __a, vector unsigned int __b,
568*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
569*344a7f5eSAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
570*344a7f5eSAndroid Build Coastguard Worker }
571*344a7f5eSAndroid Build Coastguard Worker
572*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_sel(vector unsigned int __a,vector unsigned int __b,vector bool int __c)573*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c) {
574*344a7f5eSAndroid Build Coastguard Worker return ((vector unsigned int)__c & __b) | (~(vector unsigned int)__c & __a);
575*344a7f5eSAndroid Build Coastguard Worker }
576*344a7f5eSAndroid Build Coastguard Worker
577*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_sel(vector signed long long __a,vector signed long long __b,vector unsigned long long __c)578*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector signed long long __a, vector signed long long __b,
579*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __c) {
580*344a7f5eSAndroid Build Coastguard Worker return (((vector signed long long)__c & __b) |
581*344a7f5eSAndroid Build Coastguard Worker (~(vector signed long long)__c & __a));
582*344a7f5eSAndroid Build Coastguard Worker }
583*344a7f5eSAndroid Build Coastguard Worker
584*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_sel(vector signed long long __a,vector signed long long __b,vector bool long long __c)585*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector signed long long __a, vector signed long long __b,
586*344a7f5eSAndroid Build Coastguard Worker vector bool long long __c) {
587*344a7f5eSAndroid Build Coastguard Worker return (((vector signed long long)__c & __b) |
588*344a7f5eSAndroid Build Coastguard Worker (~(vector signed long long)__c & __a));
589*344a7f5eSAndroid Build Coastguard Worker }
590*344a7f5eSAndroid Build Coastguard Worker
591*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_sel(vector bool long long __a,vector bool long long __b,vector unsigned long long __c)592*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector bool long long __a, vector bool long long __b,
593*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __c) {
594*344a7f5eSAndroid Build Coastguard Worker return (((vector bool long long)__c & __b) |
595*344a7f5eSAndroid Build Coastguard Worker (~(vector bool long long)__c & __a));
596*344a7f5eSAndroid Build Coastguard Worker }
597*344a7f5eSAndroid Build Coastguard Worker
598*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_sel(vector bool long long __a,vector bool long long __b,vector bool long long __c)599*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector bool long long __a, vector bool long long __b,
600*344a7f5eSAndroid Build Coastguard Worker vector bool long long __c) {
601*344a7f5eSAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
602*344a7f5eSAndroid Build Coastguard Worker }
603*344a7f5eSAndroid Build Coastguard Worker
604*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_sel(vector unsigned long long __a,vector unsigned long long __b,vector unsigned long long __c)605*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector unsigned long long __a, vector unsigned long long __b,
606*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __c) {
607*344a7f5eSAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
608*344a7f5eSAndroid Build Coastguard Worker }
609*344a7f5eSAndroid Build Coastguard Worker
610*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_sel(vector unsigned long long __a,vector unsigned long long __b,vector bool long long __c)611*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector unsigned long long __a, vector unsigned long long __b,
612*344a7f5eSAndroid Build Coastguard Worker vector bool long long __c) {
613*344a7f5eSAndroid Build Coastguard Worker return (((vector unsigned long long)__c & __b) |
614*344a7f5eSAndroid Build Coastguard Worker (~(vector unsigned long long)__c & __a));
615*344a7f5eSAndroid Build Coastguard Worker }
616*344a7f5eSAndroid Build Coastguard Worker
617*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_sel(vector double __a,vector double __b,vector unsigned long long __c)618*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector double __a, vector double __b, vector unsigned long long __c) {
619*344a7f5eSAndroid Build Coastguard Worker return (vector double)((__c & (vector unsigned long long)__b) |
620*344a7f5eSAndroid Build Coastguard Worker (~__c & (vector unsigned long long)__a));
621*344a7f5eSAndroid Build Coastguard Worker }
622*344a7f5eSAndroid Build Coastguard Worker
623*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_sel(vector double __a,vector double __b,vector bool long long __c)624*344a7f5eSAndroid Build Coastguard Worker vec_sel(vector double __a, vector double __b, vector bool long long __c) {
625*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __ac = (vector unsigned long long)__a;
626*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __bc = (vector unsigned long long)__b;
627*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __cc = (vector unsigned long long)__c;
628*344a7f5eSAndroid Build Coastguard Worker return (vector double)((__cc & __bc) | (~__cc & __ac));
629*344a7f5eSAndroid Build Coastguard Worker }
630*344a7f5eSAndroid Build Coastguard Worker
631*344a7f5eSAndroid Build Coastguard Worker /*-- vec_gather_element -----------------------------------------------------*/
632*344a7f5eSAndroid Build Coastguard Worker
633*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_gather_element(vector signed int __vec,vector unsigned int __offset,const signed int * __ptr,int __index)634*344a7f5eSAndroid Build Coastguard Worker vec_gather_element(vector signed int __vec, vector unsigned int __offset,
635*344a7f5eSAndroid Build Coastguard Worker const signed int *__ptr, int __index)
636*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
637*344a7f5eSAndroid Build Coastguard Worker __vec[__index] = *(const signed int *)(
638*344a7f5eSAndroid Build Coastguard Worker (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
639*344a7f5eSAndroid Build Coastguard Worker return __vec;
640*344a7f5eSAndroid Build Coastguard Worker }
641*344a7f5eSAndroid Build Coastguard Worker
642*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_gather_element(vector bool int __vec,vector unsigned int __offset,const unsigned int * __ptr,int __index)643*344a7f5eSAndroid Build Coastguard Worker vec_gather_element(vector bool int __vec, vector unsigned int __offset,
644*344a7f5eSAndroid Build Coastguard Worker const unsigned int *__ptr, int __index)
645*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
646*344a7f5eSAndroid Build Coastguard Worker __vec[__index] = *(const unsigned int *)(
647*344a7f5eSAndroid Build Coastguard Worker (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
648*344a7f5eSAndroid Build Coastguard Worker return __vec;
649*344a7f5eSAndroid Build Coastguard Worker }
650*344a7f5eSAndroid Build Coastguard Worker
651*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_gather_element(vector unsigned int __vec,vector unsigned int __offset,const unsigned int * __ptr,int __index)652*344a7f5eSAndroid Build Coastguard Worker vec_gather_element(vector unsigned int __vec, vector unsigned int __offset,
653*344a7f5eSAndroid Build Coastguard Worker const unsigned int *__ptr, int __index)
654*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
655*344a7f5eSAndroid Build Coastguard Worker __vec[__index] = *(const unsigned int *)(
656*344a7f5eSAndroid Build Coastguard Worker (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
657*344a7f5eSAndroid Build Coastguard Worker return __vec;
658*344a7f5eSAndroid Build Coastguard Worker }
659*344a7f5eSAndroid Build Coastguard Worker
660*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_gather_element(vector signed long long __vec,vector unsigned long long __offset,const signed long long * __ptr,int __index)661*344a7f5eSAndroid Build Coastguard Worker vec_gather_element(vector signed long long __vec,
662*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __offset,
663*344a7f5eSAndroid Build Coastguard Worker const signed long long *__ptr, int __index)
664*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
665*344a7f5eSAndroid Build Coastguard Worker __vec[__index] = *(const signed long long *)(
666*344a7f5eSAndroid Build Coastguard Worker (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
667*344a7f5eSAndroid Build Coastguard Worker return __vec;
668*344a7f5eSAndroid Build Coastguard Worker }
669*344a7f5eSAndroid Build Coastguard Worker
670*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_gather_element(vector bool long long __vec,vector unsigned long long __offset,const unsigned long long * __ptr,int __index)671*344a7f5eSAndroid Build Coastguard Worker vec_gather_element(vector bool long long __vec,
672*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __offset,
673*344a7f5eSAndroid Build Coastguard Worker const unsigned long long *__ptr, int __index)
674*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
675*344a7f5eSAndroid Build Coastguard Worker __vec[__index] = *(const unsigned long long *)(
676*344a7f5eSAndroid Build Coastguard Worker (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
677*344a7f5eSAndroid Build Coastguard Worker return __vec;
678*344a7f5eSAndroid Build Coastguard Worker }
679*344a7f5eSAndroid Build Coastguard Worker
680*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_gather_element(vector unsigned long long __vec,vector unsigned long long __offset,const unsigned long long * __ptr,int __index)681*344a7f5eSAndroid Build Coastguard Worker vec_gather_element(vector unsigned long long __vec,
682*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __offset,
683*344a7f5eSAndroid Build Coastguard Worker const unsigned long long *__ptr, int __index)
684*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
685*344a7f5eSAndroid Build Coastguard Worker __vec[__index] = *(const unsigned long long *)(
686*344a7f5eSAndroid Build Coastguard Worker (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
687*344a7f5eSAndroid Build Coastguard Worker return __vec;
688*344a7f5eSAndroid Build Coastguard Worker }
689*344a7f5eSAndroid Build Coastguard Worker
690*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_gather_element(vector double __vec,vector unsigned long long __offset,const double * __ptr,int __index)691*344a7f5eSAndroid Build Coastguard Worker vec_gather_element(vector double __vec, vector unsigned long long __offset,
692*344a7f5eSAndroid Build Coastguard Worker const double *__ptr, int __index)
693*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
694*344a7f5eSAndroid Build Coastguard Worker __vec[__index] = *(const double *)(
695*344a7f5eSAndroid Build Coastguard Worker (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
696*344a7f5eSAndroid Build Coastguard Worker return __vec;
697*344a7f5eSAndroid Build Coastguard Worker }
698*344a7f5eSAndroid Build Coastguard Worker
699*344a7f5eSAndroid Build Coastguard Worker /*-- vec_scatter_element ----------------------------------------------------*/
700*344a7f5eSAndroid Build Coastguard Worker
701*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_scatter_element(vector signed int __vec,vector unsigned int __offset,signed int * __ptr,int __index)702*344a7f5eSAndroid Build Coastguard Worker vec_scatter_element(vector signed int __vec, vector unsigned int __offset,
703*344a7f5eSAndroid Build Coastguard Worker signed int *__ptr, int __index)
704*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
705*344a7f5eSAndroid Build Coastguard Worker *(signed int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
706*344a7f5eSAndroid Build Coastguard Worker __vec[__index];
707*344a7f5eSAndroid Build Coastguard Worker }
708*344a7f5eSAndroid Build Coastguard Worker
709*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_scatter_element(vector bool int __vec,vector unsigned int __offset,unsigned int * __ptr,int __index)710*344a7f5eSAndroid Build Coastguard Worker vec_scatter_element(vector bool int __vec, vector unsigned int __offset,
711*344a7f5eSAndroid Build Coastguard Worker unsigned int *__ptr, int __index)
712*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
713*344a7f5eSAndroid Build Coastguard Worker *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
714*344a7f5eSAndroid Build Coastguard Worker __vec[__index];
715*344a7f5eSAndroid Build Coastguard Worker }
716*344a7f5eSAndroid Build Coastguard Worker
717*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_scatter_element(vector unsigned int __vec,vector unsigned int __offset,unsigned int * __ptr,int __index)718*344a7f5eSAndroid Build Coastguard Worker vec_scatter_element(vector unsigned int __vec, vector unsigned int __offset,
719*344a7f5eSAndroid Build Coastguard Worker unsigned int *__ptr, int __index)
720*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
721*344a7f5eSAndroid Build Coastguard Worker *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
722*344a7f5eSAndroid Build Coastguard Worker __vec[__index];
723*344a7f5eSAndroid Build Coastguard Worker }
724*344a7f5eSAndroid Build Coastguard Worker
725*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_scatter_element(vector signed long long __vec,vector unsigned long long __offset,signed long long * __ptr,int __index)726*344a7f5eSAndroid Build Coastguard Worker vec_scatter_element(vector signed long long __vec,
727*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __offset,
728*344a7f5eSAndroid Build Coastguard Worker signed long long *__ptr, int __index)
729*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
730*344a7f5eSAndroid Build Coastguard Worker *(signed long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
731*344a7f5eSAndroid Build Coastguard Worker __vec[__index];
732*344a7f5eSAndroid Build Coastguard Worker }
733*344a7f5eSAndroid Build Coastguard Worker
734*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_scatter_element(vector bool long long __vec,vector unsigned long long __offset,unsigned long long * __ptr,int __index)735*344a7f5eSAndroid Build Coastguard Worker vec_scatter_element(vector bool long long __vec,
736*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __offset,
737*344a7f5eSAndroid Build Coastguard Worker unsigned long long *__ptr, int __index)
738*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
739*344a7f5eSAndroid Build Coastguard Worker *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
740*344a7f5eSAndroid Build Coastguard Worker __vec[__index];
741*344a7f5eSAndroid Build Coastguard Worker }
742*344a7f5eSAndroid Build Coastguard Worker
743*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_scatter_element(vector unsigned long long __vec,vector unsigned long long __offset,unsigned long long * __ptr,int __index)744*344a7f5eSAndroid Build Coastguard Worker vec_scatter_element(vector unsigned long long __vec,
745*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __offset,
746*344a7f5eSAndroid Build Coastguard Worker unsigned long long *__ptr, int __index)
747*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
748*344a7f5eSAndroid Build Coastguard Worker *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
749*344a7f5eSAndroid Build Coastguard Worker __vec[__index];
750*344a7f5eSAndroid Build Coastguard Worker }
751*344a7f5eSAndroid Build Coastguard Worker
752*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_scatter_element(vector double __vec,vector unsigned long long __offset,double * __ptr,int __index)753*344a7f5eSAndroid Build Coastguard Worker vec_scatter_element(vector double __vec, vector unsigned long long __offset,
754*344a7f5eSAndroid Build Coastguard Worker double *__ptr, int __index)
755*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
756*344a7f5eSAndroid Build Coastguard Worker *(double *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
757*344a7f5eSAndroid Build Coastguard Worker __vec[__index];
758*344a7f5eSAndroid Build Coastguard Worker }
759*344a7f5eSAndroid Build Coastguard Worker
760*344a7f5eSAndroid Build Coastguard Worker /*-- vec_xld2 ---------------------------------------------------------------*/
761*344a7f5eSAndroid Build Coastguard Worker
762*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_xld2(long __offset,const signed char * __ptr)763*344a7f5eSAndroid Build Coastguard Worker vec_xld2(long __offset, const signed char *__ptr) {
764*344a7f5eSAndroid Build Coastguard Worker return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
765*344a7f5eSAndroid Build Coastguard Worker }
766*344a7f5eSAndroid Build Coastguard Worker
767*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_xld2(long __offset,const unsigned char * __ptr)768*344a7f5eSAndroid Build Coastguard Worker vec_xld2(long __offset, const unsigned char *__ptr) {
769*344a7f5eSAndroid Build Coastguard Worker return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
770*344a7f5eSAndroid Build Coastguard Worker }
771*344a7f5eSAndroid Build Coastguard Worker
772*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_xld2(long __offset,const signed short * __ptr)773*344a7f5eSAndroid Build Coastguard Worker vec_xld2(long __offset, const signed short *__ptr) {
774*344a7f5eSAndroid Build Coastguard Worker return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
775*344a7f5eSAndroid Build Coastguard Worker }
776*344a7f5eSAndroid Build Coastguard Worker
777*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_xld2(long __offset,const unsigned short * __ptr)778*344a7f5eSAndroid Build Coastguard Worker vec_xld2(long __offset, const unsigned short *__ptr) {
779*344a7f5eSAndroid Build Coastguard Worker return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
780*344a7f5eSAndroid Build Coastguard Worker }
781*344a7f5eSAndroid Build Coastguard Worker
782*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_xld2(long __offset,const signed int * __ptr)783*344a7f5eSAndroid Build Coastguard Worker vec_xld2(long __offset, const signed int *__ptr) {
784*344a7f5eSAndroid Build Coastguard Worker return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
785*344a7f5eSAndroid Build Coastguard Worker }
786*344a7f5eSAndroid Build Coastguard Worker
787*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_xld2(long __offset,const unsigned int * __ptr)788*344a7f5eSAndroid Build Coastguard Worker vec_xld2(long __offset, const unsigned int *__ptr) {
789*344a7f5eSAndroid Build Coastguard Worker return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
790*344a7f5eSAndroid Build Coastguard Worker }
791*344a7f5eSAndroid Build Coastguard Worker
792*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_xld2(long __offset,const signed long long * __ptr)793*344a7f5eSAndroid Build Coastguard Worker vec_xld2(long __offset, const signed long long *__ptr) {
794*344a7f5eSAndroid Build Coastguard Worker return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
795*344a7f5eSAndroid Build Coastguard Worker }
796*344a7f5eSAndroid Build Coastguard Worker
797*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_xld2(long __offset,const unsigned long long * __ptr)798*344a7f5eSAndroid Build Coastguard Worker vec_xld2(long __offset, const unsigned long long *__ptr) {
799*344a7f5eSAndroid Build Coastguard Worker return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
800*344a7f5eSAndroid Build Coastguard Worker }
801*344a7f5eSAndroid Build Coastguard Worker
802*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_xld2(long __offset,const double * __ptr)803*344a7f5eSAndroid Build Coastguard Worker vec_xld2(long __offset, const double *__ptr) {
804*344a7f5eSAndroid Build Coastguard Worker return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
805*344a7f5eSAndroid Build Coastguard Worker }
806*344a7f5eSAndroid Build Coastguard Worker
807*344a7f5eSAndroid Build Coastguard Worker /*-- vec_xlw4 ---------------------------------------------------------------*/
808*344a7f5eSAndroid Build Coastguard Worker
809*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_xlw4(long __offset,const signed char * __ptr)810*344a7f5eSAndroid Build Coastguard Worker vec_xlw4(long __offset, const signed char *__ptr) {
811*344a7f5eSAndroid Build Coastguard Worker return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
812*344a7f5eSAndroid Build Coastguard Worker }
813*344a7f5eSAndroid Build Coastguard Worker
814*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_xlw4(long __offset,const unsigned char * __ptr)815*344a7f5eSAndroid Build Coastguard Worker vec_xlw4(long __offset, const unsigned char *__ptr) {
816*344a7f5eSAndroid Build Coastguard Worker return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
817*344a7f5eSAndroid Build Coastguard Worker }
818*344a7f5eSAndroid Build Coastguard Worker
819*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_xlw4(long __offset,const signed short * __ptr)820*344a7f5eSAndroid Build Coastguard Worker vec_xlw4(long __offset, const signed short *__ptr) {
821*344a7f5eSAndroid Build Coastguard Worker return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
822*344a7f5eSAndroid Build Coastguard Worker }
823*344a7f5eSAndroid Build Coastguard Worker
824*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_xlw4(long __offset,const unsigned short * __ptr)825*344a7f5eSAndroid Build Coastguard Worker vec_xlw4(long __offset, const unsigned short *__ptr) {
826*344a7f5eSAndroid Build Coastguard Worker return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
827*344a7f5eSAndroid Build Coastguard Worker }
828*344a7f5eSAndroid Build Coastguard Worker
829*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_xlw4(long __offset,const signed int * __ptr)830*344a7f5eSAndroid Build Coastguard Worker vec_xlw4(long __offset, const signed int *__ptr) {
831*344a7f5eSAndroid Build Coastguard Worker return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
832*344a7f5eSAndroid Build Coastguard Worker }
833*344a7f5eSAndroid Build Coastguard Worker
834*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_xlw4(long __offset,const unsigned int * __ptr)835*344a7f5eSAndroid Build Coastguard Worker vec_xlw4(long __offset, const unsigned int *__ptr) {
836*344a7f5eSAndroid Build Coastguard Worker return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
837*344a7f5eSAndroid Build Coastguard Worker }
838*344a7f5eSAndroid Build Coastguard Worker
839*344a7f5eSAndroid Build Coastguard Worker /*-- vec_xstd2 --------------------------------------------------------------*/
840*344a7f5eSAndroid Build Coastguard Worker
841*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(vector signed char __vec,long __offset,signed char * __ptr)842*344a7f5eSAndroid Build Coastguard Worker vec_xstd2(vector signed char __vec, long __offset, signed char *__ptr) {
843*344a7f5eSAndroid Build Coastguard Worker *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
844*344a7f5eSAndroid Build Coastguard Worker }
845*344a7f5eSAndroid Build Coastguard Worker
846*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(vector unsigned char __vec,long __offset,unsigned char * __ptr)847*344a7f5eSAndroid Build Coastguard Worker vec_xstd2(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
848*344a7f5eSAndroid Build Coastguard Worker *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
849*344a7f5eSAndroid Build Coastguard Worker }
850*344a7f5eSAndroid Build Coastguard Worker
851*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(vector signed short __vec,long __offset,signed short * __ptr)852*344a7f5eSAndroid Build Coastguard Worker vec_xstd2(vector signed short __vec, long __offset, signed short *__ptr) {
853*344a7f5eSAndroid Build Coastguard Worker *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
854*344a7f5eSAndroid Build Coastguard Worker }
855*344a7f5eSAndroid Build Coastguard Worker
856*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(vector unsigned short __vec,long __offset,unsigned short * __ptr)857*344a7f5eSAndroid Build Coastguard Worker vec_xstd2(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
858*344a7f5eSAndroid Build Coastguard Worker *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
859*344a7f5eSAndroid Build Coastguard Worker }
860*344a7f5eSAndroid Build Coastguard Worker
861*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(vector signed int __vec,long __offset,signed int * __ptr)862*344a7f5eSAndroid Build Coastguard Worker vec_xstd2(vector signed int __vec, long __offset, signed int *__ptr) {
863*344a7f5eSAndroid Build Coastguard Worker *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
864*344a7f5eSAndroid Build Coastguard Worker }
865*344a7f5eSAndroid Build Coastguard Worker
866*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(vector unsigned int __vec,long __offset,unsigned int * __ptr)867*344a7f5eSAndroid Build Coastguard Worker vec_xstd2(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
868*344a7f5eSAndroid Build Coastguard Worker *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
869*344a7f5eSAndroid Build Coastguard Worker }
870*344a7f5eSAndroid Build Coastguard Worker
871*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(vector signed long long __vec,long __offset,signed long long * __ptr)872*344a7f5eSAndroid Build Coastguard Worker vec_xstd2(vector signed long long __vec, long __offset,
873*344a7f5eSAndroid Build Coastguard Worker signed long long *__ptr) {
874*344a7f5eSAndroid Build Coastguard Worker *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
875*344a7f5eSAndroid Build Coastguard Worker }
876*344a7f5eSAndroid Build Coastguard Worker
877*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(vector unsigned long long __vec,long __offset,unsigned long long * __ptr)878*344a7f5eSAndroid Build Coastguard Worker vec_xstd2(vector unsigned long long __vec, long __offset,
879*344a7f5eSAndroid Build Coastguard Worker unsigned long long *__ptr) {
880*344a7f5eSAndroid Build Coastguard Worker *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) =
881*344a7f5eSAndroid Build Coastguard Worker __vec;
882*344a7f5eSAndroid Build Coastguard Worker }
883*344a7f5eSAndroid Build Coastguard Worker
884*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(vector double __vec,long __offset,double * __ptr)885*344a7f5eSAndroid Build Coastguard Worker vec_xstd2(vector double __vec, long __offset, double *__ptr) {
886*344a7f5eSAndroid Build Coastguard Worker *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
887*344a7f5eSAndroid Build Coastguard Worker }
888*344a7f5eSAndroid Build Coastguard Worker
889*344a7f5eSAndroid Build Coastguard Worker /*-- vec_xstw4 --------------------------------------------------------------*/
890*344a7f5eSAndroid Build Coastguard Worker
891*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstw4(vector signed char __vec,long __offset,signed char * __ptr)892*344a7f5eSAndroid Build Coastguard Worker vec_xstw4(vector signed char __vec, long __offset, signed char *__ptr) {
893*344a7f5eSAndroid Build Coastguard Worker *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
894*344a7f5eSAndroid Build Coastguard Worker }
895*344a7f5eSAndroid Build Coastguard Worker
896*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstw4(vector unsigned char __vec,long __offset,unsigned char * __ptr)897*344a7f5eSAndroid Build Coastguard Worker vec_xstw4(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
898*344a7f5eSAndroid Build Coastguard Worker *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
899*344a7f5eSAndroid Build Coastguard Worker }
900*344a7f5eSAndroid Build Coastguard Worker
901*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstw4(vector signed short __vec,long __offset,signed short * __ptr)902*344a7f5eSAndroid Build Coastguard Worker vec_xstw4(vector signed short __vec, long __offset, signed short *__ptr) {
903*344a7f5eSAndroid Build Coastguard Worker *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
904*344a7f5eSAndroid Build Coastguard Worker }
905*344a7f5eSAndroid Build Coastguard Worker
906*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstw4(vector unsigned short __vec,long __offset,unsigned short * __ptr)907*344a7f5eSAndroid Build Coastguard Worker vec_xstw4(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
908*344a7f5eSAndroid Build Coastguard Worker *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
909*344a7f5eSAndroid Build Coastguard Worker }
910*344a7f5eSAndroid Build Coastguard Worker
911*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstw4(vector signed int __vec,long __offset,signed int * __ptr)912*344a7f5eSAndroid Build Coastguard Worker vec_xstw4(vector signed int __vec, long __offset, signed int *__ptr) {
913*344a7f5eSAndroid Build Coastguard Worker *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
914*344a7f5eSAndroid Build Coastguard Worker }
915*344a7f5eSAndroid Build Coastguard Worker
916*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstw4(vector unsigned int __vec,long __offset,unsigned int * __ptr)917*344a7f5eSAndroid Build Coastguard Worker vec_xstw4(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
918*344a7f5eSAndroid Build Coastguard Worker *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
919*344a7f5eSAndroid Build Coastguard Worker }
920*344a7f5eSAndroid Build Coastguard Worker
921*344a7f5eSAndroid Build Coastguard Worker /*-- vec_load_bndry ---------------------------------------------------------*/
922*344a7f5eSAndroid Build Coastguard Worker
923*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed char
924*344a7f5eSAndroid Build Coastguard Worker vec_load_bndry(const signed char *__ptr, unsigned short __len)
925*344a7f5eSAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
926*344a7f5eSAndroid Build Coastguard Worker
927*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned char
928*344a7f5eSAndroid Build Coastguard Worker vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
929*344a7f5eSAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
930*344a7f5eSAndroid Build Coastguard Worker
931*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed short
932*344a7f5eSAndroid Build Coastguard Worker vec_load_bndry(const signed short *__ptr, unsigned short __len)
933*344a7f5eSAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
934*344a7f5eSAndroid Build Coastguard Worker
935*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned short
936*344a7f5eSAndroid Build Coastguard Worker vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
937*344a7f5eSAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
938*344a7f5eSAndroid Build Coastguard Worker
939*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed int
940*344a7f5eSAndroid Build Coastguard Worker vec_load_bndry(const signed int *__ptr, unsigned short __len)
941*344a7f5eSAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
942*344a7f5eSAndroid Build Coastguard Worker
943*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned int
944*344a7f5eSAndroid Build Coastguard Worker vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
945*344a7f5eSAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
946*344a7f5eSAndroid Build Coastguard Worker
947*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed long long
948*344a7f5eSAndroid Build Coastguard Worker vec_load_bndry(const signed long long *__ptr, unsigned short __len)
949*344a7f5eSAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
950*344a7f5eSAndroid Build Coastguard Worker
951*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned long long
952*344a7f5eSAndroid Build Coastguard Worker vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
953*344a7f5eSAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
954*344a7f5eSAndroid Build Coastguard Worker
955*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector double
956*344a7f5eSAndroid Build Coastguard Worker vec_load_bndry(const double *__ptr, unsigned short __len)
957*344a7f5eSAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
958*344a7f5eSAndroid Build Coastguard Worker
959*344a7f5eSAndroid Build Coastguard Worker #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
960*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
961*344a7f5eSAndroid Build Coastguard Worker (Y) == 128 ? 1 : \
962*344a7f5eSAndroid Build Coastguard Worker (Y) == 256 ? 2 : \
963*344a7f5eSAndroid Build Coastguard Worker (Y) == 512 ? 3 : \
964*344a7f5eSAndroid Build Coastguard Worker (Y) == 1024 ? 4 : \
965*344a7f5eSAndroid Build Coastguard Worker (Y) == 2048 ? 5 : \
966*344a7f5eSAndroid Build Coastguard Worker (Y) == 4096 ? 6 : -1)))
967*344a7f5eSAndroid Build Coastguard Worker
968*344a7f5eSAndroid Build Coastguard Worker /*-- vec_load_len -----------------------------------------------------------*/
969*344a7f5eSAndroid Build Coastguard Worker
970*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_load_len(const signed char * __ptr,unsigned int __len)971*344a7f5eSAndroid Build Coastguard Worker vec_load_len(const signed char *__ptr, unsigned int __len) {
972*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vll(__len, __ptr);
973*344a7f5eSAndroid Build Coastguard Worker }
974*344a7f5eSAndroid Build Coastguard Worker
975*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_load_len(const unsigned char * __ptr,unsigned int __len)976*344a7f5eSAndroid Build Coastguard Worker vec_load_len(const unsigned char *__ptr, unsigned int __len) {
977*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned char)__builtin_s390_vll(__len, __ptr);
978*344a7f5eSAndroid Build Coastguard Worker }
979*344a7f5eSAndroid Build Coastguard Worker
980*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_load_len(const signed short * __ptr,unsigned int __len)981*344a7f5eSAndroid Build Coastguard Worker vec_load_len(const signed short *__ptr, unsigned int __len) {
982*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vll(__len, __ptr);
983*344a7f5eSAndroid Build Coastguard Worker }
984*344a7f5eSAndroid Build Coastguard Worker
985*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_load_len(const unsigned short * __ptr,unsigned int __len)986*344a7f5eSAndroid Build Coastguard Worker vec_load_len(const unsigned short *__ptr, unsigned int __len) {
987*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vll(__len, __ptr);
988*344a7f5eSAndroid Build Coastguard Worker }
989*344a7f5eSAndroid Build Coastguard Worker
990*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_load_len(const signed int * __ptr,unsigned int __len)991*344a7f5eSAndroid Build Coastguard Worker vec_load_len(const signed int *__ptr, unsigned int __len) {
992*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vll(__len, __ptr);
993*344a7f5eSAndroid Build Coastguard Worker }
994*344a7f5eSAndroid Build Coastguard Worker
995*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_load_len(const unsigned int * __ptr,unsigned int __len)996*344a7f5eSAndroid Build Coastguard Worker vec_load_len(const unsigned int *__ptr, unsigned int __len) {
997*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vll(__len, __ptr);
998*344a7f5eSAndroid Build Coastguard Worker }
999*344a7f5eSAndroid Build Coastguard Worker
1000*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_load_len(const signed long long * __ptr,unsigned int __len)1001*344a7f5eSAndroid Build Coastguard Worker vec_load_len(const signed long long *__ptr, unsigned int __len) {
1002*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vll(__len, __ptr);
1003*344a7f5eSAndroid Build Coastguard Worker }
1004*344a7f5eSAndroid Build Coastguard Worker
1005*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_load_len(const unsigned long long * __ptr,unsigned int __len)1006*344a7f5eSAndroid Build Coastguard Worker vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1007*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1008*344a7f5eSAndroid Build Coastguard Worker }
1009*344a7f5eSAndroid Build Coastguard Worker
1010*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_load_len(const double * __ptr,unsigned int __len)1011*344a7f5eSAndroid Build Coastguard Worker vec_load_len(const double *__ptr, unsigned int __len) {
1012*344a7f5eSAndroid Build Coastguard Worker return (vector double)__builtin_s390_vll(__len, __ptr);
1013*344a7f5eSAndroid Build Coastguard Worker }
1014*344a7f5eSAndroid Build Coastguard Worker
1015*344a7f5eSAndroid Build Coastguard Worker /*-- vec_store_len ----------------------------------------------------------*/
1016*344a7f5eSAndroid Build Coastguard Worker
1017*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(vector signed char __vec,signed char * __ptr,unsigned int __len)1018*344a7f5eSAndroid Build Coastguard Worker vec_store_len(vector signed char __vec, signed char *__ptr,
1019*344a7f5eSAndroid Build Coastguard Worker unsigned int __len) {
1020*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1021*344a7f5eSAndroid Build Coastguard Worker }
1022*344a7f5eSAndroid Build Coastguard Worker
1023*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1024*344a7f5eSAndroid Build Coastguard Worker vec_store_len(vector unsigned char __vec, unsigned char *__ptr,
1025*344a7f5eSAndroid Build Coastguard Worker unsigned int __len) {
1026*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1027*344a7f5eSAndroid Build Coastguard Worker }
1028*344a7f5eSAndroid Build Coastguard Worker
1029*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(vector signed short __vec,signed short * __ptr,unsigned int __len)1030*344a7f5eSAndroid Build Coastguard Worker vec_store_len(vector signed short __vec, signed short *__ptr,
1031*344a7f5eSAndroid Build Coastguard Worker unsigned int __len) {
1032*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1033*344a7f5eSAndroid Build Coastguard Worker }
1034*344a7f5eSAndroid Build Coastguard Worker
1035*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(vector unsigned short __vec,unsigned short * __ptr,unsigned int __len)1036*344a7f5eSAndroid Build Coastguard Worker vec_store_len(vector unsigned short __vec, unsigned short *__ptr,
1037*344a7f5eSAndroid Build Coastguard Worker unsigned int __len) {
1038*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1039*344a7f5eSAndroid Build Coastguard Worker }
1040*344a7f5eSAndroid Build Coastguard Worker
1041*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(vector signed int __vec,signed int * __ptr,unsigned int __len)1042*344a7f5eSAndroid Build Coastguard Worker vec_store_len(vector signed int __vec, signed int *__ptr,
1043*344a7f5eSAndroid Build Coastguard Worker unsigned int __len) {
1044*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1045*344a7f5eSAndroid Build Coastguard Worker }
1046*344a7f5eSAndroid Build Coastguard Worker
1047*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(vector unsigned int __vec,unsigned int * __ptr,unsigned int __len)1048*344a7f5eSAndroid Build Coastguard Worker vec_store_len(vector unsigned int __vec, unsigned int *__ptr,
1049*344a7f5eSAndroid Build Coastguard Worker unsigned int __len) {
1050*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1051*344a7f5eSAndroid Build Coastguard Worker }
1052*344a7f5eSAndroid Build Coastguard Worker
1053*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(vector signed long long __vec,signed long long * __ptr,unsigned int __len)1054*344a7f5eSAndroid Build Coastguard Worker vec_store_len(vector signed long long __vec, signed long long *__ptr,
1055*344a7f5eSAndroid Build Coastguard Worker unsigned int __len) {
1056*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1057*344a7f5eSAndroid Build Coastguard Worker }
1058*344a7f5eSAndroid Build Coastguard Worker
1059*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(vector unsigned long long __vec,unsigned long long * __ptr,unsigned int __len)1060*344a7f5eSAndroid Build Coastguard Worker vec_store_len(vector unsigned long long __vec, unsigned long long *__ptr,
1061*344a7f5eSAndroid Build Coastguard Worker unsigned int __len) {
1062*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1063*344a7f5eSAndroid Build Coastguard Worker }
1064*344a7f5eSAndroid Build Coastguard Worker
1065*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(vector double __vec,double * __ptr,unsigned int __len)1066*344a7f5eSAndroid Build Coastguard Worker vec_store_len(vector double __vec, double *__ptr,
1067*344a7f5eSAndroid Build Coastguard Worker unsigned int __len) {
1068*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1069*344a7f5eSAndroid Build Coastguard Worker }
1070*344a7f5eSAndroid Build Coastguard Worker
1071*344a7f5eSAndroid Build Coastguard Worker /*-- vec_load_pair ----------------------------------------------------------*/
1072*344a7f5eSAndroid Build Coastguard Worker
1073*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_load_pair(signed long long __a,signed long long __b)1074*344a7f5eSAndroid Build Coastguard Worker vec_load_pair(signed long long __a, signed long long __b) {
1075*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)(__a, __b);
1076*344a7f5eSAndroid Build Coastguard Worker }
1077*344a7f5eSAndroid Build Coastguard Worker
1078*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_load_pair(unsigned long long __a,unsigned long long __b)1079*344a7f5eSAndroid Build Coastguard Worker vec_load_pair(unsigned long long __a, unsigned long long __b) {
1080*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)(__a, __b);
1081*344a7f5eSAndroid Build Coastguard Worker }
1082*344a7f5eSAndroid Build Coastguard Worker
1083*344a7f5eSAndroid Build Coastguard Worker /*-- vec_genmask ------------------------------------------------------------*/
1084*344a7f5eSAndroid Build Coastguard Worker
1085*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_genmask(unsigned short __mask)1086*344a7f5eSAndroid Build Coastguard Worker vec_genmask(unsigned short __mask)
1087*344a7f5eSAndroid Build Coastguard Worker __constant(__mask) {
1088*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned char)(
1089*344a7f5eSAndroid Build Coastguard Worker __mask & 0x8000 ? 0xff : 0,
1090*344a7f5eSAndroid Build Coastguard Worker __mask & 0x4000 ? 0xff : 0,
1091*344a7f5eSAndroid Build Coastguard Worker __mask & 0x2000 ? 0xff : 0,
1092*344a7f5eSAndroid Build Coastguard Worker __mask & 0x1000 ? 0xff : 0,
1093*344a7f5eSAndroid Build Coastguard Worker __mask & 0x0800 ? 0xff : 0,
1094*344a7f5eSAndroid Build Coastguard Worker __mask & 0x0400 ? 0xff : 0,
1095*344a7f5eSAndroid Build Coastguard Worker __mask & 0x0200 ? 0xff : 0,
1096*344a7f5eSAndroid Build Coastguard Worker __mask & 0x0100 ? 0xff : 0,
1097*344a7f5eSAndroid Build Coastguard Worker __mask & 0x0080 ? 0xff : 0,
1098*344a7f5eSAndroid Build Coastguard Worker __mask & 0x0040 ? 0xff : 0,
1099*344a7f5eSAndroid Build Coastguard Worker __mask & 0x0020 ? 0xff : 0,
1100*344a7f5eSAndroid Build Coastguard Worker __mask & 0x0010 ? 0xff : 0,
1101*344a7f5eSAndroid Build Coastguard Worker __mask & 0x0008 ? 0xff : 0,
1102*344a7f5eSAndroid Build Coastguard Worker __mask & 0x0004 ? 0xff : 0,
1103*344a7f5eSAndroid Build Coastguard Worker __mask & 0x0002 ? 0xff : 0,
1104*344a7f5eSAndroid Build Coastguard Worker __mask & 0x0001 ? 0xff : 0);
1105*344a7f5eSAndroid Build Coastguard Worker }
1106*344a7f5eSAndroid Build Coastguard Worker
1107*344a7f5eSAndroid Build Coastguard Worker /*-- vec_genmasks_* ---------------------------------------------------------*/
1108*344a7f5eSAndroid Build Coastguard Worker
1109*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_genmasks_8(unsigned char __first,unsigned char __last)1110*344a7f5eSAndroid Build Coastguard Worker vec_genmasks_8(unsigned char __first, unsigned char __last)
1111*344a7f5eSAndroid Build Coastguard Worker __constant(__first) __constant(__last) {
1112*344a7f5eSAndroid Build Coastguard Worker unsigned char __bit1 = __first & 7;
1113*344a7f5eSAndroid Build Coastguard Worker unsigned char __bit2 = __last & 7;
1114*344a7f5eSAndroid Build Coastguard Worker unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1115*344a7f5eSAndroid Build Coastguard Worker unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1116*344a7f5eSAndroid Build Coastguard Worker unsigned char __value = (__bit1 <= __bit2 ?
1117*344a7f5eSAndroid Build Coastguard Worker __mask1 & ~__mask2 :
1118*344a7f5eSAndroid Build Coastguard Worker __mask1 | ~__mask2);
1119*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned char)__value;
1120*344a7f5eSAndroid Build Coastguard Worker }
1121*344a7f5eSAndroid Build Coastguard Worker
1122*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_genmasks_16(unsigned char __first,unsigned char __last)1123*344a7f5eSAndroid Build Coastguard Worker vec_genmasks_16(unsigned char __first, unsigned char __last)
1124*344a7f5eSAndroid Build Coastguard Worker __constant(__first) __constant(__last) {
1125*344a7f5eSAndroid Build Coastguard Worker unsigned char __bit1 = __first & 15;
1126*344a7f5eSAndroid Build Coastguard Worker unsigned char __bit2 = __last & 15;
1127*344a7f5eSAndroid Build Coastguard Worker unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1128*344a7f5eSAndroid Build Coastguard Worker unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1129*344a7f5eSAndroid Build Coastguard Worker unsigned short __value = (__bit1 <= __bit2 ?
1130*344a7f5eSAndroid Build Coastguard Worker __mask1 & ~__mask2 :
1131*344a7f5eSAndroid Build Coastguard Worker __mask1 | ~__mask2);
1132*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__value;
1133*344a7f5eSAndroid Build Coastguard Worker }
1134*344a7f5eSAndroid Build Coastguard Worker
1135*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_genmasks_32(unsigned char __first,unsigned char __last)1136*344a7f5eSAndroid Build Coastguard Worker vec_genmasks_32(unsigned char __first, unsigned char __last)
1137*344a7f5eSAndroid Build Coastguard Worker __constant(__first) __constant(__last) {
1138*344a7f5eSAndroid Build Coastguard Worker unsigned char __bit1 = __first & 31;
1139*344a7f5eSAndroid Build Coastguard Worker unsigned char __bit2 = __last & 31;
1140*344a7f5eSAndroid Build Coastguard Worker unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1141*344a7f5eSAndroid Build Coastguard Worker unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1142*344a7f5eSAndroid Build Coastguard Worker unsigned int __value = (__bit1 <= __bit2 ?
1143*344a7f5eSAndroid Build Coastguard Worker __mask1 & ~__mask2 :
1144*344a7f5eSAndroid Build Coastguard Worker __mask1 | ~__mask2);
1145*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__value;
1146*344a7f5eSAndroid Build Coastguard Worker }
1147*344a7f5eSAndroid Build Coastguard Worker
1148*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_genmasks_64(unsigned char __first,unsigned char __last)1149*344a7f5eSAndroid Build Coastguard Worker vec_genmasks_64(unsigned char __first, unsigned char __last)
1150*344a7f5eSAndroid Build Coastguard Worker __constant(__first) __constant(__last) {
1151*344a7f5eSAndroid Build Coastguard Worker unsigned char __bit1 = __first & 63;
1152*344a7f5eSAndroid Build Coastguard Worker unsigned char __bit2 = __last & 63;
1153*344a7f5eSAndroid Build Coastguard Worker unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1154*344a7f5eSAndroid Build Coastguard Worker unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1155*344a7f5eSAndroid Build Coastguard Worker unsigned long long __value = (__bit1 <= __bit2 ?
1156*344a7f5eSAndroid Build Coastguard Worker __mask1 & ~__mask2 :
1157*344a7f5eSAndroid Build Coastguard Worker __mask1 | ~__mask2);
1158*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__value;
1159*344a7f5eSAndroid Build Coastguard Worker }
1160*344a7f5eSAndroid Build Coastguard Worker
1161*344a7f5eSAndroid Build Coastguard Worker /*-- vec_splat --------------------------------------------------------------*/
1162*344a7f5eSAndroid Build Coastguard Worker
1163*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_splat(vector signed char __vec,int __index)1164*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector signed char __vec, int __index)
1165*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 15) {
1166*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__vec[__index];
1167*344a7f5eSAndroid Build Coastguard Worker }
1168*344a7f5eSAndroid Build Coastguard Worker
1169*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_splat(vector bool char __vec,int __index)1170*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector bool char __vec, int __index)
1171*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 15) {
1172*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(vector unsigned char)__vec[__index];
1173*344a7f5eSAndroid Build Coastguard Worker }
1174*344a7f5eSAndroid Build Coastguard Worker
1175*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_splat(vector unsigned char __vec,int __index)1176*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector unsigned char __vec, int __index)
1177*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 15) {
1178*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned char)__vec[__index];
1179*344a7f5eSAndroid Build Coastguard Worker }
1180*344a7f5eSAndroid Build Coastguard Worker
1181*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_splat(vector signed short __vec,int __index)1182*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector signed short __vec, int __index)
1183*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 7) {
1184*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__vec[__index];
1185*344a7f5eSAndroid Build Coastguard Worker }
1186*344a7f5eSAndroid Build Coastguard Worker
1187*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_splat(vector bool short __vec,int __index)1188*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector bool short __vec, int __index)
1189*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 7) {
1190*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(vector unsigned short)__vec[__index];
1191*344a7f5eSAndroid Build Coastguard Worker }
1192*344a7f5eSAndroid Build Coastguard Worker
1193*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_splat(vector unsigned short __vec,int __index)1194*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector unsigned short __vec, int __index)
1195*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 7) {
1196*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__vec[__index];
1197*344a7f5eSAndroid Build Coastguard Worker }
1198*344a7f5eSAndroid Build Coastguard Worker
1199*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_splat(vector signed int __vec,int __index)1200*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector signed int __vec, int __index)
1201*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
1202*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__vec[__index];
1203*344a7f5eSAndroid Build Coastguard Worker }
1204*344a7f5eSAndroid Build Coastguard Worker
1205*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_splat(vector bool int __vec,int __index)1206*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector bool int __vec, int __index)
1207*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
1208*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(vector unsigned int)__vec[__index];
1209*344a7f5eSAndroid Build Coastguard Worker }
1210*344a7f5eSAndroid Build Coastguard Worker
1211*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_splat(vector unsigned int __vec,int __index)1212*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector unsigned int __vec, int __index)
1213*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
1214*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__vec[__index];
1215*344a7f5eSAndroid Build Coastguard Worker }
1216*344a7f5eSAndroid Build Coastguard Worker
1217*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_splat(vector signed long long __vec,int __index)1218*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector signed long long __vec, int __index)
1219*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
1220*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__vec[__index];
1221*344a7f5eSAndroid Build Coastguard Worker }
1222*344a7f5eSAndroid Build Coastguard Worker
1223*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_splat(vector bool long long __vec,int __index)1224*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector bool long long __vec, int __index)
1225*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
1226*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(vector unsigned long long)__vec[__index];
1227*344a7f5eSAndroid Build Coastguard Worker }
1228*344a7f5eSAndroid Build Coastguard Worker
1229*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_splat(vector unsigned long long __vec,int __index)1230*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector unsigned long long __vec, int __index)
1231*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
1232*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__vec[__index];
1233*344a7f5eSAndroid Build Coastguard Worker }
1234*344a7f5eSAndroid Build Coastguard Worker
1235*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_splat(vector double __vec,int __index)1236*344a7f5eSAndroid Build Coastguard Worker vec_splat(vector double __vec, int __index)
1237*344a7f5eSAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
1238*344a7f5eSAndroid Build Coastguard Worker return (vector double)__vec[__index];
1239*344a7f5eSAndroid Build Coastguard Worker }
1240*344a7f5eSAndroid Build Coastguard Worker
1241*344a7f5eSAndroid Build Coastguard Worker /*-- vec_splat_s* -----------------------------------------------------------*/
1242*344a7f5eSAndroid Build Coastguard Worker
1243*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector signed char
vec_splat_s8(signed char __scalar)1244*344a7f5eSAndroid Build Coastguard Worker vec_splat_s8(signed char __scalar)
1245*344a7f5eSAndroid Build Coastguard Worker __constant(__scalar) {
1246*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__scalar;
1247*344a7f5eSAndroid Build Coastguard Worker }
1248*344a7f5eSAndroid Build Coastguard Worker
1249*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector signed short
vec_splat_s16(signed short __scalar)1250*344a7f5eSAndroid Build Coastguard Worker vec_splat_s16(signed short __scalar)
1251*344a7f5eSAndroid Build Coastguard Worker __constant(__scalar) {
1252*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__scalar;
1253*344a7f5eSAndroid Build Coastguard Worker }
1254*344a7f5eSAndroid Build Coastguard Worker
1255*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector signed int
vec_splat_s32(signed short __scalar)1256*344a7f5eSAndroid Build Coastguard Worker vec_splat_s32(signed short __scalar)
1257*344a7f5eSAndroid Build Coastguard Worker __constant(__scalar) {
1258*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)(signed int)__scalar;
1259*344a7f5eSAndroid Build Coastguard Worker }
1260*344a7f5eSAndroid Build Coastguard Worker
1261*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector signed long long
vec_splat_s64(signed short __scalar)1262*344a7f5eSAndroid Build Coastguard Worker vec_splat_s64(signed short __scalar)
1263*344a7f5eSAndroid Build Coastguard Worker __constant(__scalar) {
1264*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)(signed long)__scalar;
1265*344a7f5eSAndroid Build Coastguard Worker }
1266*344a7f5eSAndroid Build Coastguard Worker
1267*344a7f5eSAndroid Build Coastguard Worker /*-- vec_splat_u* -----------------------------------------------------------*/
1268*344a7f5eSAndroid Build Coastguard Worker
1269*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned char
vec_splat_u8(unsigned char __scalar)1270*344a7f5eSAndroid Build Coastguard Worker vec_splat_u8(unsigned char __scalar)
1271*344a7f5eSAndroid Build Coastguard Worker __constant(__scalar) {
1272*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned char)__scalar;
1273*344a7f5eSAndroid Build Coastguard Worker }
1274*344a7f5eSAndroid Build Coastguard Worker
1275*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned short
vec_splat_u16(unsigned short __scalar)1276*344a7f5eSAndroid Build Coastguard Worker vec_splat_u16(unsigned short __scalar)
1277*344a7f5eSAndroid Build Coastguard Worker __constant(__scalar) {
1278*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__scalar;
1279*344a7f5eSAndroid Build Coastguard Worker }
1280*344a7f5eSAndroid Build Coastguard Worker
1281*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned int
vec_splat_u32(signed short __scalar)1282*344a7f5eSAndroid Build Coastguard Worker vec_splat_u32(signed short __scalar)
1283*344a7f5eSAndroid Build Coastguard Worker __constant(__scalar) {
1284*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)(signed int)__scalar;
1285*344a7f5eSAndroid Build Coastguard Worker }
1286*344a7f5eSAndroid Build Coastguard Worker
1287*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned long long
vec_splat_u64(signed short __scalar)1288*344a7f5eSAndroid Build Coastguard Worker vec_splat_u64(signed short __scalar)
1289*344a7f5eSAndroid Build Coastguard Worker __constant(__scalar) {
1290*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)(signed long long)__scalar;
1291*344a7f5eSAndroid Build Coastguard Worker }
1292*344a7f5eSAndroid Build Coastguard Worker
1293*344a7f5eSAndroid Build Coastguard Worker /*-- vec_splats -------------------------------------------------------------*/
1294*344a7f5eSAndroid Build Coastguard Worker
1295*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_splats(signed char __scalar)1296*344a7f5eSAndroid Build Coastguard Worker vec_splats(signed char __scalar) {
1297*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__scalar;
1298*344a7f5eSAndroid Build Coastguard Worker }
1299*344a7f5eSAndroid Build Coastguard Worker
1300*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_splats(unsigned char __scalar)1301*344a7f5eSAndroid Build Coastguard Worker vec_splats(unsigned char __scalar) {
1302*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned char)__scalar;
1303*344a7f5eSAndroid Build Coastguard Worker }
1304*344a7f5eSAndroid Build Coastguard Worker
1305*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_splats(signed short __scalar)1306*344a7f5eSAndroid Build Coastguard Worker vec_splats(signed short __scalar) {
1307*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__scalar;
1308*344a7f5eSAndroid Build Coastguard Worker }
1309*344a7f5eSAndroid Build Coastguard Worker
1310*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_splats(unsigned short __scalar)1311*344a7f5eSAndroid Build Coastguard Worker vec_splats(unsigned short __scalar) {
1312*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__scalar;
1313*344a7f5eSAndroid Build Coastguard Worker }
1314*344a7f5eSAndroid Build Coastguard Worker
1315*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_splats(signed int __scalar)1316*344a7f5eSAndroid Build Coastguard Worker vec_splats(signed int __scalar) {
1317*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__scalar;
1318*344a7f5eSAndroid Build Coastguard Worker }
1319*344a7f5eSAndroid Build Coastguard Worker
1320*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_splats(unsigned int __scalar)1321*344a7f5eSAndroid Build Coastguard Worker vec_splats(unsigned int __scalar) {
1322*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__scalar;
1323*344a7f5eSAndroid Build Coastguard Worker }
1324*344a7f5eSAndroid Build Coastguard Worker
1325*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_splats(signed long long __scalar)1326*344a7f5eSAndroid Build Coastguard Worker vec_splats(signed long long __scalar) {
1327*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__scalar;
1328*344a7f5eSAndroid Build Coastguard Worker }
1329*344a7f5eSAndroid Build Coastguard Worker
1330*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_splats(unsigned long long __scalar)1331*344a7f5eSAndroid Build Coastguard Worker vec_splats(unsigned long long __scalar) {
1332*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__scalar;
1333*344a7f5eSAndroid Build Coastguard Worker }
1334*344a7f5eSAndroid Build Coastguard Worker
1335*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_splats(double __scalar)1336*344a7f5eSAndroid Build Coastguard Worker vec_splats(double __scalar) {
1337*344a7f5eSAndroid Build Coastguard Worker return (vector double)__scalar;
1338*344a7f5eSAndroid Build Coastguard Worker }
1339*344a7f5eSAndroid Build Coastguard Worker
1340*344a7f5eSAndroid Build Coastguard Worker /*-- vec_extend_s64 ---------------------------------------------------------*/
1341*344a7f5eSAndroid Build Coastguard Worker
1342*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_extend_s64(vector signed char __a)1343*344a7f5eSAndroid Build Coastguard Worker vec_extend_s64(vector signed char __a) {
1344*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)(__a[7], __a[15]);
1345*344a7f5eSAndroid Build Coastguard Worker }
1346*344a7f5eSAndroid Build Coastguard Worker
1347*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_extend_s64(vector signed short __a)1348*344a7f5eSAndroid Build Coastguard Worker vec_extend_s64(vector signed short __a) {
1349*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)(__a[3], __a[7]);
1350*344a7f5eSAndroid Build Coastguard Worker }
1351*344a7f5eSAndroid Build Coastguard Worker
1352*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_extend_s64(vector signed int __a)1353*344a7f5eSAndroid Build Coastguard Worker vec_extend_s64(vector signed int __a) {
1354*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)(__a[1], __a[3]);
1355*344a7f5eSAndroid Build Coastguard Worker }
1356*344a7f5eSAndroid Build Coastguard Worker
1357*344a7f5eSAndroid Build Coastguard Worker /*-- vec_mergeh -------------------------------------------------------------*/
1358*344a7f5eSAndroid Build Coastguard Worker
1359*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_mergeh(vector signed char __a,vector signed char __b)1360*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector signed char __a, vector signed char __b) {
1361*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)(
1362*344a7f5eSAndroid Build Coastguard Worker __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1363*344a7f5eSAndroid Build Coastguard Worker __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1364*344a7f5eSAndroid Build Coastguard Worker }
1365*344a7f5eSAndroid Build Coastguard Worker
1366*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_mergeh(vector bool char __a,vector bool char __b)1367*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector bool char __a, vector bool char __b) {
1368*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(
1369*344a7f5eSAndroid Build Coastguard Worker __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1370*344a7f5eSAndroid Build Coastguard Worker __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1371*344a7f5eSAndroid Build Coastguard Worker }
1372*344a7f5eSAndroid Build Coastguard Worker
1373*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_mergeh(vector unsigned char __a,vector unsigned char __b)1374*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector unsigned char __a, vector unsigned char __b) {
1375*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned char)(
1376*344a7f5eSAndroid Build Coastguard Worker __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1377*344a7f5eSAndroid Build Coastguard Worker __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1378*344a7f5eSAndroid Build Coastguard Worker }
1379*344a7f5eSAndroid Build Coastguard Worker
1380*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_mergeh(vector signed short __a,vector signed short __b)1381*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector signed short __a, vector signed short __b) {
1382*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)(
1383*344a7f5eSAndroid Build Coastguard Worker __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1384*344a7f5eSAndroid Build Coastguard Worker }
1385*344a7f5eSAndroid Build Coastguard Worker
1386*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_mergeh(vector bool short __a,vector bool short __b)1387*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector bool short __a, vector bool short __b) {
1388*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(
1389*344a7f5eSAndroid Build Coastguard Worker __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1390*344a7f5eSAndroid Build Coastguard Worker }
1391*344a7f5eSAndroid Build Coastguard Worker
1392*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_mergeh(vector unsigned short __a,vector unsigned short __b)1393*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector unsigned short __a, vector unsigned short __b) {
1394*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)(
1395*344a7f5eSAndroid Build Coastguard Worker __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1396*344a7f5eSAndroid Build Coastguard Worker }
1397*344a7f5eSAndroid Build Coastguard Worker
1398*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_mergeh(vector signed int __a,vector signed int __b)1399*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector signed int __a, vector signed int __b) {
1400*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1401*344a7f5eSAndroid Build Coastguard Worker }
1402*344a7f5eSAndroid Build Coastguard Worker
1403*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_mergeh(vector bool int __a,vector bool int __b)1404*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector bool int __a, vector bool int __b) {
1405*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a[0], __b[0], __a[1], __b[1]);
1406*344a7f5eSAndroid Build Coastguard Worker }
1407*344a7f5eSAndroid Build Coastguard Worker
1408*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_mergeh(vector unsigned int __a,vector unsigned int __b)1409*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector unsigned int __a, vector unsigned int __b) {
1410*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1411*344a7f5eSAndroid Build Coastguard Worker }
1412*344a7f5eSAndroid Build Coastguard Worker
1413*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_mergeh(vector signed long long __a,vector signed long long __b)1414*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector signed long long __a, vector signed long long __b) {
1415*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)(__a[0], __b[0]);
1416*344a7f5eSAndroid Build Coastguard Worker }
1417*344a7f5eSAndroid Build Coastguard Worker
1418*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_mergeh(vector bool long long __a,vector bool long long __b)1419*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector bool long long __a, vector bool long long __b) {
1420*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a[0], __b[0]);
1421*344a7f5eSAndroid Build Coastguard Worker }
1422*344a7f5eSAndroid Build Coastguard Worker
1423*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_mergeh(vector unsigned long long __a,vector unsigned long long __b)1424*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector unsigned long long __a, vector unsigned long long __b) {
1425*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)(__a[0], __b[0]);
1426*344a7f5eSAndroid Build Coastguard Worker }
1427*344a7f5eSAndroid Build Coastguard Worker
1428*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_mergeh(vector double __a,vector double __b)1429*344a7f5eSAndroid Build Coastguard Worker vec_mergeh(vector double __a, vector double __b) {
1430*344a7f5eSAndroid Build Coastguard Worker return (vector double)(__a[0], __b[0]);
1431*344a7f5eSAndroid Build Coastguard Worker }
1432*344a7f5eSAndroid Build Coastguard Worker
1433*344a7f5eSAndroid Build Coastguard Worker /*-- vec_mergel -------------------------------------------------------------*/
1434*344a7f5eSAndroid Build Coastguard Worker
1435*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_mergel(vector signed char __a,vector signed char __b)1436*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector signed char __a, vector signed char __b) {
1437*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)(
1438*344a7f5eSAndroid Build Coastguard Worker __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1439*344a7f5eSAndroid Build Coastguard Worker __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1440*344a7f5eSAndroid Build Coastguard Worker }
1441*344a7f5eSAndroid Build Coastguard Worker
1442*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_mergel(vector bool char __a,vector bool char __b)1443*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector bool char __a, vector bool char __b) {
1444*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(
1445*344a7f5eSAndroid Build Coastguard Worker __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1446*344a7f5eSAndroid Build Coastguard Worker __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1447*344a7f5eSAndroid Build Coastguard Worker }
1448*344a7f5eSAndroid Build Coastguard Worker
1449*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_mergel(vector unsigned char __a,vector unsigned char __b)1450*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector unsigned char __a, vector unsigned char __b) {
1451*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned char)(
1452*344a7f5eSAndroid Build Coastguard Worker __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1453*344a7f5eSAndroid Build Coastguard Worker __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1454*344a7f5eSAndroid Build Coastguard Worker }
1455*344a7f5eSAndroid Build Coastguard Worker
1456*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_mergel(vector signed short __a,vector signed short __b)1457*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector signed short __a, vector signed short __b) {
1458*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)(
1459*344a7f5eSAndroid Build Coastguard Worker __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1460*344a7f5eSAndroid Build Coastguard Worker }
1461*344a7f5eSAndroid Build Coastguard Worker
1462*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_mergel(vector bool short __a,vector bool short __b)1463*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector bool short __a, vector bool short __b) {
1464*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(
1465*344a7f5eSAndroid Build Coastguard Worker __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1466*344a7f5eSAndroid Build Coastguard Worker }
1467*344a7f5eSAndroid Build Coastguard Worker
1468*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_mergel(vector unsigned short __a,vector unsigned short __b)1469*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector unsigned short __a, vector unsigned short __b) {
1470*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)(
1471*344a7f5eSAndroid Build Coastguard Worker __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1472*344a7f5eSAndroid Build Coastguard Worker }
1473*344a7f5eSAndroid Build Coastguard Worker
1474*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_mergel(vector signed int __a,vector signed int __b)1475*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector signed int __a, vector signed int __b) {
1476*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)(__a[2], __b[2], __a[3], __b[3]);
1477*344a7f5eSAndroid Build Coastguard Worker }
1478*344a7f5eSAndroid Build Coastguard Worker
1479*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_mergel(vector bool int __a,vector bool int __b)1480*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector bool int __a, vector bool int __b) {
1481*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a[2], __b[2], __a[3], __b[3]);
1482*344a7f5eSAndroid Build Coastguard Worker }
1483*344a7f5eSAndroid Build Coastguard Worker
1484*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_mergel(vector unsigned int __a,vector unsigned int __b)1485*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector unsigned int __a, vector unsigned int __b) {
1486*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
1487*344a7f5eSAndroid Build Coastguard Worker }
1488*344a7f5eSAndroid Build Coastguard Worker
1489*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_mergel(vector signed long long __a,vector signed long long __b)1490*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector signed long long __a, vector signed long long __b) {
1491*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)(__a[1], __b[1]);
1492*344a7f5eSAndroid Build Coastguard Worker }
1493*344a7f5eSAndroid Build Coastguard Worker
1494*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_mergel(vector bool long long __a,vector bool long long __b)1495*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector bool long long __a, vector bool long long __b) {
1496*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a[1], __b[1]);
1497*344a7f5eSAndroid Build Coastguard Worker }
1498*344a7f5eSAndroid Build Coastguard Worker
1499*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_mergel(vector unsigned long long __a,vector unsigned long long __b)1500*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector unsigned long long __a, vector unsigned long long __b) {
1501*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)(__a[1], __b[1]);
1502*344a7f5eSAndroid Build Coastguard Worker }
1503*344a7f5eSAndroid Build Coastguard Worker
1504*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_mergel(vector double __a,vector double __b)1505*344a7f5eSAndroid Build Coastguard Worker vec_mergel(vector double __a, vector double __b) {
1506*344a7f5eSAndroid Build Coastguard Worker return (vector double)(__a[1], __b[1]);
1507*344a7f5eSAndroid Build Coastguard Worker }
1508*344a7f5eSAndroid Build Coastguard Worker
1509*344a7f5eSAndroid Build Coastguard Worker /*-- vec_pack ---------------------------------------------------------------*/
1510*344a7f5eSAndroid Build Coastguard Worker
1511*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_pack(vector signed short __a,vector signed short __b)1512*344a7f5eSAndroid Build Coastguard Worker vec_pack(vector signed short __a, vector signed short __b) {
1513*344a7f5eSAndroid Build Coastguard Worker vector signed char __ac = (vector signed char)__a;
1514*344a7f5eSAndroid Build Coastguard Worker vector signed char __bc = (vector signed char)__b;
1515*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)(
1516*344a7f5eSAndroid Build Coastguard Worker __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1517*344a7f5eSAndroid Build Coastguard Worker __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1518*344a7f5eSAndroid Build Coastguard Worker }
1519*344a7f5eSAndroid Build Coastguard Worker
1520*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_pack(vector bool short __a,vector bool short __b)1521*344a7f5eSAndroid Build Coastguard Worker vec_pack(vector bool short __a, vector bool short __b) {
1522*344a7f5eSAndroid Build Coastguard Worker vector bool char __ac = (vector bool char)__a;
1523*344a7f5eSAndroid Build Coastguard Worker vector bool char __bc = (vector bool char)__b;
1524*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(
1525*344a7f5eSAndroid Build Coastguard Worker __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1526*344a7f5eSAndroid Build Coastguard Worker __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1527*344a7f5eSAndroid Build Coastguard Worker }
1528*344a7f5eSAndroid Build Coastguard Worker
1529*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_pack(vector unsigned short __a,vector unsigned short __b)1530*344a7f5eSAndroid Build Coastguard Worker vec_pack(vector unsigned short __a, vector unsigned short __b) {
1531*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __ac = (vector unsigned char)__a;
1532*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __bc = (vector unsigned char)__b;
1533*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned char)(
1534*344a7f5eSAndroid Build Coastguard Worker __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1535*344a7f5eSAndroid Build Coastguard Worker __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1536*344a7f5eSAndroid Build Coastguard Worker }
1537*344a7f5eSAndroid Build Coastguard Worker
1538*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_pack(vector signed int __a,vector signed int __b)1539*344a7f5eSAndroid Build Coastguard Worker vec_pack(vector signed int __a, vector signed int __b) {
1540*344a7f5eSAndroid Build Coastguard Worker vector signed short __ac = (vector signed short)__a;
1541*344a7f5eSAndroid Build Coastguard Worker vector signed short __bc = (vector signed short)__b;
1542*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)(
1543*344a7f5eSAndroid Build Coastguard Worker __ac[1], __ac[3], __ac[5], __ac[7],
1544*344a7f5eSAndroid Build Coastguard Worker __bc[1], __bc[3], __bc[5], __bc[7]);
1545*344a7f5eSAndroid Build Coastguard Worker }
1546*344a7f5eSAndroid Build Coastguard Worker
1547*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_pack(vector bool int __a,vector bool int __b)1548*344a7f5eSAndroid Build Coastguard Worker vec_pack(vector bool int __a, vector bool int __b) {
1549*344a7f5eSAndroid Build Coastguard Worker vector bool short __ac = (vector bool short)__a;
1550*344a7f5eSAndroid Build Coastguard Worker vector bool short __bc = (vector bool short)__b;
1551*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(
1552*344a7f5eSAndroid Build Coastguard Worker __ac[1], __ac[3], __ac[5], __ac[7],
1553*344a7f5eSAndroid Build Coastguard Worker __bc[1], __bc[3], __bc[5], __bc[7]);
1554*344a7f5eSAndroid Build Coastguard Worker }
1555*344a7f5eSAndroid Build Coastguard Worker
1556*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_pack(vector unsigned int __a,vector unsigned int __b)1557*344a7f5eSAndroid Build Coastguard Worker vec_pack(vector unsigned int __a, vector unsigned int __b) {
1558*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __ac = (vector unsigned short)__a;
1559*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __bc = (vector unsigned short)__b;
1560*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)(
1561*344a7f5eSAndroid Build Coastguard Worker __ac[1], __ac[3], __ac[5], __ac[7],
1562*344a7f5eSAndroid Build Coastguard Worker __bc[1], __bc[3], __bc[5], __bc[7]);
1563*344a7f5eSAndroid Build Coastguard Worker }
1564*344a7f5eSAndroid Build Coastguard Worker
1565*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_pack(vector signed long long __a,vector signed long long __b)1566*344a7f5eSAndroid Build Coastguard Worker vec_pack(vector signed long long __a, vector signed long long __b) {
1567*344a7f5eSAndroid Build Coastguard Worker vector signed int __ac = (vector signed int)__a;
1568*344a7f5eSAndroid Build Coastguard Worker vector signed int __bc = (vector signed int)__b;
1569*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1570*344a7f5eSAndroid Build Coastguard Worker }
1571*344a7f5eSAndroid Build Coastguard Worker
1572*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_pack(vector bool long long __a,vector bool long long __b)1573*344a7f5eSAndroid Build Coastguard Worker vec_pack(vector bool long long __a, vector bool long long __b) {
1574*344a7f5eSAndroid Build Coastguard Worker vector bool int __ac = (vector bool int)__a;
1575*344a7f5eSAndroid Build Coastguard Worker vector bool int __bc = (vector bool int)__b;
1576*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1577*344a7f5eSAndroid Build Coastguard Worker }
1578*344a7f5eSAndroid Build Coastguard Worker
1579*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_pack(vector unsigned long long __a,vector unsigned long long __b)1580*344a7f5eSAndroid Build Coastguard Worker vec_pack(vector unsigned long long __a, vector unsigned long long __b) {
1581*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __ac = (vector unsigned int)__a;
1582*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __bc = (vector unsigned int)__b;
1583*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1584*344a7f5eSAndroid Build Coastguard Worker }
1585*344a7f5eSAndroid Build Coastguard Worker
1586*344a7f5eSAndroid Build Coastguard Worker /*-- vec_packs --------------------------------------------------------------*/
1587*344a7f5eSAndroid Build Coastguard Worker
1588*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_packs(vector signed short __a,vector signed short __b)1589*344a7f5eSAndroid Build Coastguard Worker vec_packs(vector signed short __a, vector signed short __b) {
1590*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpksh(__a, __b);
1591*344a7f5eSAndroid Build Coastguard Worker }
1592*344a7f5eSAndroid Build Coastguard Worker
1593*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_packs(vector unsigned short __a,vector unsigned short __b)1594*344a7f5eSAndroid Build Coastguard Worker vec_packs(vector unsigned short __a, vector unsigned short __b) {
1595*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsh(__a, __b);
1596*344a7f5eSAndroid Build Coastguard Worker }
1597*344a7f5eSAndroid Build Coastguard Worker
1598*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_packs(vector signed int __a,vector signed int __b)1599*344a7f5eSAndroid Build Coastguard Worker vec_packs(vector signed int __a, vector signed int __b) {
1600*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpksf(__a, __b);
1601*344a7f5eSAndroid Build Coastguard Worker }
1602*344a7f5eSAndroid Build Coastguard Worker
1603*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_packs(vector unsigned int __a,vector unsigned int __b)1604*344a7f5eSAndroid Build Coastguard Worker vec_packs(vector unsigned int __a, vector unsigned int __b) {
1605*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsf(__a, __b);
1606*344a7f5eSAndroid Build Coastguard Worker }
1607*344a7f5eSAndroid Build Coastguard Worker
1608*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_packs(vector signed long long __a,vector signed long long __b)1609*344a7f5eSAndroid Build Coastguard Worker vec_packs(vector signed long long __a, vector signed long long __b) {
1610*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpksg(__a, __b);
1611*344a7f5eSAndroid Build Coastguard Worker }
1612*344a7f5eSAndroid Build Coastguard Worker
1613*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_packs(vector unsigned long long __a,vector unsigned long long __b)1614*344a7f5eSAndroid Build Coastguard Worker vec_packs(vector unsigned long long __a, vector unsigned long long __b) {
1615*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsg(__a, __b);
1616*344a7f5eSAndroid Build Coastguard Worker }
1617*344a7f5eSAndroid Build Coastguard Worker
1618*344a7f5eSAndroid Build Coastguard Worker /*-- vec_packs_cc -----------------------------------------------------------*/
1619*344a7f5eSAndroid Build Coastguard Worker
1620*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_packs_cc(vector signed short __a,vector signed short __b,int * __cc)1621*344a7f5eSAndroid Build Coastguard Worker vec_packs_cc(vector signed short __a, vector signed short __b, int *__cc) {
1622*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpkshs(__a, __b, __cc);
1623*344a7f5eSAndroid Build Coastguard Worker }
1624*344a7f5eSAndroid Build Coastguard Worker
1625*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_packs_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)1626*344a7f5eSAndroid Build Coastguard Worker vec_packs_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
1627*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklshs(__a, __b, __cc);
1628*344a7f5eSAndroid Build Coastguard Worker }
1629*344a7f5eSAndroid Build Coastguard Worker
1630*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_packs_cc(vector signed int __a,vector signed int __b,int * __cc)1631*344a7f5eSAndroid Build Coastguard Worker vec_packs_cc(vector signed int __a, vector signed int __b, int *__cc) {
1632*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpksfs(__a, __b, __cc);
1633*344a7f5eSAndroid Build Coastguard Worker }
1634*344a7f5eSAndroid Build Coastguard Worker
1635*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_packs_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)1636*344a7f5eSAndroid Build Coastguard Worker vec_packs_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
1637*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsfs(__a, __b, __cc);
1638*344a7f5eSAndroid Build Coastguard Worker }
1639*344a7f5eSAndroid Build Coastguard Worker
1640*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_packs_cc(vector signed long long __a,vector signed long long __b,int * __cc)1641*344a7f5eSAndroid Build Coastguard Worker vec_packs_cc(vector signed long long __a, vector signed long long __b,
1642*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
1643*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpksgs(__a, __b, __cc);
1644*344a7f5eSAndroid Build Coastguard Worker }
1645*344a7f5eSAndroid Build Coastguard Worker
1646*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_packs_cc(vector unsigned long long __a,vector unsigned long long __b,int * __cc)1647*344a7f5eSAndroid Build Coastguard Worker vec_packs_cc(vector unsigned long long __a, vector unsigned long long __b,
1648*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
1649*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsgs(__a, __b, __cc);
1650*344a7f5eSAndroid Build Coastguard Worker }
1651*344a7f5eSAndroid Build Coastguard Worker
1652*344a7f5eSAndroid Build Coastguard Worker /*-- vec_packsu -------------------------------------------------------------*/
1653*344a7f5eSAndroid Build Coastguard Worker
1654*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_packsu(vector signed short __a,vector signed short __b)1655*344a7f5eSAndroid Build Coastguard Worker vec_packsu(vector signed short __a, vector signed short __b) {
1656*344a7f5eSAndroid Build Coastguard Worker const vector signed short __zero = (vector signed short)0;
1657*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsh(
1658*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)(__a >= __zero) & (vector unsigned short)__a,
1659*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)(__b >= __zero) & (vector unsigned short)__b);
1660*344a7f5eSAndroid Build Coastguard Worker }
1661*344a7f5eSAndroid Build Coastguard Worker
1662*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_packsu(vector unsigned short __a,vector unsigned short __b)1663*344a7f5eSAndroid Build Coastguard Worker vec_packsu(vector unsigned short __a, vector unsigned short __b) {
1664*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsh(__a, __b);
1665*344a7f5eSAndroid Build Coastguard Worker }
1666*344a7f5eSAndroid Build Coastguard Worker
1667*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_packsu(vector signed int __a,vector signed int __b)1668*344a7f5eSAndroid Build Coastguard Worker vec_packsu(vector signed int __a, vector signed int __b) {
1669*344a7f5eSAndroid Build Coastguard Worker const vector signed int __zero = (vector signed int)0;
1670*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsf(
1671*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)(__a >= __zero) & (vector unsigned int)__a,
1672*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)(__b >= __zero) & (vector unsigned int)__b);
1673*344a7f5eSAndroid Build Coastguard Worker }
1674*344a7f5eSAndroid Build Coastguard Worker
1675*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_packsu(vector unsigned int __a,vector unsigned int __b)1676*344a7f5eSAndroid Build Coastguard Worker vec_packsu(vector unsigned int __a, vector unsigned int __b) {
1677*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsf(__a, __b);
1678*344a7f5eSAndroid Build Coastguard Worker }
1679*344a7f5eSAndroid Build Coastguard Worker
1680*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_packsu(vector signed long long __a,vector signed long long __b)1681*344a7f5eSAndroid Build Coastguard Worker vec_packsu(vector signed long long __a, vector signed long long __b) {
1682*344a7f5eSAndroid Build Coastguard Worker const vector signed long long __zero = (vector signed long long)0;
1683*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsg(
1684*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)(__a >= __zero) &
1685*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__a,
1686*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)(__b >= __zero) &
1687*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__b);
1688*344a7f5eSAndroid Build Coastguard Worker }
1689*344a7f5eSAndroid Build Coastguard Worker
1690*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_packsu(vector unsigned long long __a,vector unsigned long long __b)1691*344a7f5eSAndroid Build Coastguard Worker vec_packsu(vector unsigned long long __a, vector unsigned long long __b) {
1692*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsg(__a, __b);
1693*344a7f5eSAndroid Build Coastguard Worker }
1694*344a7f5eSAndroid Build Coastguard Worker
1695*344a7f5eSAndroid Build Coastguard Worker /*-- vec_packsu_cc ----------------------------------------------------------*/
1696*344a7f5eSAndroid Build Coastguard Worker
1697*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_packsu_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)1698*344a7f5eSAndroid Build Coastguard Worker vec_packsu_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
1699*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklshs(__a, __b, __cc);
1700*344a7f5eSAndroid Build Coastguard Worker }
1701*344a7f5eSAndroid Build Coastguard Worker
1702*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_packsu_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)1703*344a7f5eSAndroid Build Coastguard Worker vec_packsu_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
1704*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsfs(__a, __b, __cc);
1705*344a7f5eSAndroid Build Coastguard Worker }
1706*344a7f5eSAndroid Build Coastguard Worker
1707*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_packsu_cc(vector unsigned long long __a,vector unsigned long long __b,int * __cc)1708*344a7f5eSAndroid Build Coastguard Worker vec_packsu_cc(vector unsigned long long __a, vector unsigned long long __b,
1709*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
1710*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpklsgs(__a, __b, __cc);
1711*344a7f5eSAndroid Build Coastguard Worker }
1712*344a7f5eSAndroid Build Coastguard Worker
1713*344a7f5eSAndroid Build Coastguard Worker /*-- vec_unpackh ------------------------------------------------------------*/
1714*344a7f5eSAndroid Build Coastguard Worker
1715*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_unpackh(vector signed char __a)1716*344a7f5eSAndroid Build Coastguard Worker vec_unpackh(vector signed char __a) {
1717*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vuphb(__a);
1718*344a7f5eSAndroid Build Coastguard Worker }
1719*344a7f5eSAndroid Build Coastguard Worker
1720*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_unpackh(vector bool char __a)1721*344a7f5eSAndroid Build Coastguard Worker vec_unpackh(vector bool char __a) {
1722*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vuphb((vector signed char)__a);
1723*344a7f5eSAndroid Build Coastguard Worker }
1724*344a7f5eSAndroid Build Coastguard Worker
1725*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_unpackh(vector unsigned char __a)1726*344a7f5eSAndroid Build Coastguard Worker vec_unpackh(vector unsigned char __a) {
1727*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vuplhb(__a);
1728*344a7f5eSAndroid Build Coastguard Worker }
1729*344a7f5eSAndroid Build Coastguard Worker
1730*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_unpackh(vector signed short __a)1731*344a7f5eSAndroid Build Coastguard Worker vec_unpackh(vector signed short __a) {
1732*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vuphh(__a);
1733*344a7f5eSAndroid Build Coastguard Worker }
1734*344a7f5eSAndroid Build Coastguard Worker
1735*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_unpackh(vector bool short __a)1736*344a7f5eSAndroid Build Coastguard Worker vec_unpackh(vector bool short __a) {
1737*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vuphh((vector signed short)__a);
1738*344a7f5eSAndroid Build Coastguard Worker }
1739*344a7f5eSAndroid Build Coastguard Worker
1740*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_unpackh(vector unsigned short __a)1741*344a7f5eSAndroid Build Coastguard Worker vec_unpackh(vector unsigned short __a) {
1742*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vuplhh(__a);
1743*344a7f5eSAndroid Build Coastguard Worker }
1744*344a7f5eSAndroid Build Coastguard Worker
1745*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_unpackh(vector signed int __a)1746*344a7f5eSAndroid Build Coastguard Worker vec_unpackh(vector signed int __a) {
1747*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vuphf(__a);
1748*344a7f5eSAndroid Build Coastguard Worker }
1749*344a7f5eSAndroid Build Coastguard Worker
1750*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_unpackh(vector bool int __a)1751*344a7f5eSAndroid Build Coastguard Worker vec_unpackh(vector bool int __a) {
1752*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)__builtin_s390_vuphf((vector signed int)__a);
1753*344a7f5eSAndroid Build Coastguard Worker }
1754*344a7f5eSAndroid Build Coastguard Worker
1755*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_unpackh(vector unsigned int __a)1756*344a7f5eSAndroid Build Coastguard Worker vec_unpackh(vector unsigned int __a) {
1757*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vuplhf(__a);
1758*344a7f5eSAndroid Build Coastguard Worker }
1759*344a7f5eSAndroid Build Coastguard Worker
1760*344a7f5eSAndroid Build Coastguard Worker /*-- vec_unpackl ------------------------------------------------------------*/
1761*344a7f5eSAndroid Build Coastguard Worker
1762*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_unpackl(vector signed char __a)1763*344a7f5eSAndroid Build Coastguard Worker vec_unpackl(vector signed char __a) {
1764*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vuplb(__a);
1765*344a7f5eSAndroid Build Coastguard Worker }
1766*344a7f5eSAndroid Build Coastguard Worker
1767*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_unpackl(vector bool char __a)1768*344a7f5eSAndroid Build Coastguard Worker vec_unpackl(vector bool char __a) {
1769*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vuplb((vector signed char)__a);
1770*344a7f5eSAndroid Build Coastguard Worker }
1771*344a7f5eSAndroid Build Coastguard Worker
1772*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_unpackl(vector unsigned char __a)1773*344a7f5eSAndroid Build Coastguard Worker vec_unpackl(vector unsigned char __a) {
1774*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vupllb(__a);
1775*344a7f5eSAndroid Build Coastguard Worker }
1776*344a7f5eSAndroid Build Coastguard Worker
1777*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_unpackl(vector signed short __a)1778*344a7f5eSAndroid Build Coastguard Worker vec_unpackl(vector signed short __a) {
1779*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vuplhw(__a);
1780*344a7f5eSAndroid Build Coastguard Worker }
1781*344a7f5eSAndroid Build Coastguard Worker
1782*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_unpackl(vector bool short __a)1783*344a7f5eSAndroid Build Coastguard Worker vec_unpackl(vector bool short __a) {
1784*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vuplhw((vector signed short)__a);
1785*344a7f5eSAndroid Build Coastguard Worker }
1786*344a7f5eSAndroid Build Coastguard Worker
1787*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_unpackl(vector unsigned short __a)1788*344a7f5eSAndroid Build Coastguard Worker vec_unpackl(vector unsigned short __a) {
1789*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vupllh(__a);
1790*344a7f5eSAndroid Build Coastguard Worker }
1791*344a7f5eSAndroid Build Coastguard Worker
1792*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_unpackl(vector signed int __a)1793*344a7f5eSAndroid Build Coastguard Worker vec_unpackl(vector signed int __a) {
1794*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vuplf(__a);
1795*344a7f5eSAndroid Build Coastguard Worker }
1796*344a7f5eSAndroid Build Coastguard Worker
1797*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_unpackl(vector bool int __a)1798*344a7f5eSAndroid Build Coastguard Worker vec_unpackl(vector bool int __a) {
1799*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)__builtin_s390_vuplf((vector signed int)__a);
1800*344a7f5eSAndroid Build Coastguard Worker }
1801*344a7f5eSAndroid Build Coastguard Worker
1802*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_unpackl(vector unsigned int __a)1803*344a7f5eSAndroid Build Coastguard Worker vec_unpackl(vector unsigned int __a) {
1804*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vupllf(__a);
1805*344a7f5eSAndroid Build Coastguard Worker }
1806*344a7f5eSAndroid Build Coastguard Worker
1807*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpeq --------------------------------------------------------------*/
1808*344a7f5eSAndroid Build Coastguard Worker
1809*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmpeq(vector bool char __a,vector bool char __b)1810*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector bool char __a, vector bool char __b) {
1811*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(__a == __b);
1812*344a7f5eSAndroid Build Coastguard Worker }
1813*344a7f5eSAndroid Build Coastguard Worker
1814*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmpeq(vector signed char __a,vector signed char __b)1815*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector signed char __a, vector signed char __b) {
1816*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(__a == __b);
1817*344a7f5eSAndroid Build Coastguard Worker }
1818*344a7f5eSAndroid Build Coastguard Worker
1819*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmpeq(vector unsigned char __a,vector unsigned char __b)1820*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector unsigned char __a, vector unsigned char __b) {
1821*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(__a == __b);
1822*344a7f5eSAndroid Build Coastguard Worker }
1823*344a7f5eSAndroid Build Coastguard Worker
1824*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmpeq(vector bool short __a,vector bool short __b)1825*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector bool short __a, vector bool short __b) {
1826*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(__a == __b);
1827*344a7f5eSAndroid Build Coastguard Worker }
1828*344a7f5eSAndroid Build Coastguard Worker
1829*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmpeq(vector signed short __a,vector signed short __b)1830*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector signed short __a, vector signed short __b) {
1831*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(__a == __b);
1832*344a7f5eSAndroid Build Coastguard Worker }
1833*344a7f5eSAndroid Build Coastguard Worker
1834*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmpeq(vector unsigned short __a,vector unsigned short __b)1835*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector unsigned short __a, vector unsigned short __b) {
1836*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(__a == __b);
1837*344a7f5eSAndroid Build Coastguard Worker }
1838*344a7f5eSAndroid Build Coastguard Worker
1839*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmpeq(vector bool int __a,vector bool int __b)1840*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector bool int __a, vector bool int __b) {
1841*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a == __b);
1842*344a7f5eSAndroid Build Coastguard Worker }
1843*344a7f5eSAndroid Build Coastguard Worker
1844*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmpeq(vector signed int __a,vector signed int __b)1845*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector signed int __a, vector signed int __b) {
1846*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a == __b);
1847*344a7f5eSAndroid Build Coastguard Worker }
1848*344a7f5eSAndroid Build Coastguard Worker
1849*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmpeq(vector unsigned int __a,vector unsigned int __b)1850*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector unsigned int __a, vector unsigned int __b) {
1851*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a == __b);
1852*344a7f5eSAndroid Build Coastguard Worker }
1853*344a7f5eSAndroid Build Coastguard Worker
1854*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmpeq(vector bool long long __a,vector bool long long __b)1855*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector bool long long __a, vector bool long long __b) {
1856*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a == __b);
1857*344a7f5eSAndroid Build Coastguard Worker }
1858*344a7f5eSAndroid Build Coastguard Worker
1859*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmpeq(vector signed long long __a,vector signed long long __b)1860*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector signed long long __a, vector signed long long __b) {
1861*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a == __b);
1862*344a7f5eSAndroid Build Coastguard Worker }
1863*344a7f5eSAndroid Build Coastguard Worker
1864*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmpeq(vector unsigned long long __a,vector unsigned long long __b)1865*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) {
1866*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a == __b);
1867*344a7f5eSAndroid Build Coastguard Worker }
1868*344a7f5eSAndroid Build Coastguard Worker
1869*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmpeq(vector double __a,vector double __b)1870*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq(vector double __a, vector double __b) {
1871*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a == __b);
1872*344a7f5eSAndroid Build Coastguard Worker }
1873*344a7f5eSAndroid Build Coastguard Worker
1874*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpge --------------------------------------------------------------*/
1875*344a7f5eSAndroid Build Coastguard Worker
1876*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmpge(vector signed char __a,vector signed char __b)1877*344a7f5eSAndroid Build Coastguard Worker vec_cmpge(vector signed char __a, vector signed char __b) {
1878*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(__a >= __b);
1879*344a7f5eSAndroid Build Coastguard Worker }
1880*344a7f5eSAndroid Build Coastguard Worker
1881*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmpge(vector unsigned char __a,vector unsigned char __b)1882*344a7f5eSAndroid Build Coastguard Worker vec_cmpge(vector unsigned char __a, vector unsigned char __b) {
1883*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(__a >= __b);
1884*344a7f5eSAndroid Build Coastguard Worker }
1885*344a7f5eSAndroid Build Coastguard Worker
1886*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmpge(vector signed short __a,vector signed short __b)1887*344a7f5eSAndroid Build Coastguard Worker vec_cmpge(vector signed short __a, vector signed short __b) {
1888*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(__a >= __b);
1889*344a7f5eSAndroid Build Coastguard Worker }
1890*344a7f5eSAndroid Build Coastguard Worker
1891*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmpge(vector unsigned short __a,vector unsigned short __b)1892*344a7f5eSAndroid Build Coastguard Worker vec_cmpge(vector unsigned short __a, vector unsigned short __b) {
1893*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(__a >= __b);
1894*344a7f5eSAndroid Build Coastguard Worker }
1895*344a7f5eSAndroid Build Coastguard Worker
1896*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmpge(vector signed int __a,vector signed int __b)1897*344a7f5eSAndroid Build Coastguard Worker vec_cmpge(vector signed int __a, vector signed int __b) {
1898*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a >= __b);
1899*344a7f5eSAndroid Build Coastguard Worker }
1900*344a7f5eSAndroid Build Coastguard Worker
1901*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmpge(vector unsigned int __a,vector unsigned int __b)1902*344a7f5eSAndroid Build Coastguard Worker vec_cmpge(vector unsigned int __a, vector unsigned int __b) {
1903*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a >= __b);
1904*344a7f5eSAndroid Build Coastguard Worker }
1905*344a7f5eSAndroid Build Coastguard Worker
1906*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmpge(vector signed long long __a,vector signed long long __b)1907*344a7f5eSAndroid Build Coastguard Worker vec_cmpge(vector signed long long __a, vector signed long long __b) {
1908*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a >= __b);
1909*344a7f5eSAndroid Build Coastguard Worker }
1910*344a7f5eSAndroid Build Coastguard Worker
1911*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmpge(vector unsigned long long __a,vector unsigned long long __b)1912*344a7f5eSAndroid Build Coastguard Worker vec_cmpge(vector unsigned long long __a, vector unsigned long long __b) {
1913*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a >= __b);
1914*344a7f5eSAndroid Build Coastguard Worker }
1915*344a7f5eSAndroid Build Coastguard Worker
1916*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmpge(vector double __a,vector double __b)1917*344a7f5eSAndroid Build Coastguard Worker vec_cmpge(vector double __a, vector double __b) {
1918*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a >= __b);
1919*344a7f5eSAndroid Build Coastguard Worker }
1920*344a7f5eSAndroid Build Coastguard Worker
1921*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpgt --------------------------------------------------------------*/
1922*344a7f5eSAndroid Build Coastguard Worker
1923*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmpgt(vector signed char __a,vector signed char __b)1924*344a7f5eSAndroid Build Coastguard Worker vec_cmpgt(vector signed char __a, vector signed char __b) {
1925*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(__a > __b);
1926*344a7f5eSAndroid Build Coastguard Worker }
1927*344a7f5eSAndroid Build Coastguard Worker
1928*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmpgt(vector unsigned char __a,vector unsigned char __b)1929*344a7f5eSAndroid Build Coastguard Worker vec_cmpgt(vector unsigned char __a, vector unsigned char __b) {
1930*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(__a > __b);
1931*344a7f5eSAndroid Build Coastguard Worker }
1932*344a7f5eSAndroid Build Coastguard Worker
1933*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmpgt(vector signed short __a,vector signed short __b)1934*344a7f5eSAndroid Build Coastguard Worker vec_cmpgt(vector signed short __a, vector signed short __b) {
1935*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(__a > __b);
1936*344a7f5eSAndroid Build Coastguard Worker }
1937*344a7f5eSAndroid Build Coastguard Worker
1938*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmpgt(vector unsigned short __a,vector unsigned short __b)1939*344a7f5eSAndroid Build Coastguard Worker vec_cmpgt(vector unsigned short __a, vector unsigned short __b) {
1940*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(__a > __b);
1941*344a7f5eSAndroid Build Coastguard Worker }
1942*344a7f5eSAndroid Build Coastguard Worker
1943*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmpgt(vector signed int __a,vector signed int __b)1944*344a7f5eSAndroid Build Coastguard Worker vec_cmpgt(vector signed int __a, vector signed int __b) {
1945*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a > __b);
1946*344a7f5eSAndroid Build Coastguard Worker }
1947*344a7f5eSAndroid Build Coastguard Worker
1948*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmpgt(vector unsigned int __a,vector unsigned int __b)1949*344a7f5eSAndroid Build Coastguard Worker vec_cmpgt(vector unsigned int __a, vector unsigned int __b) {
1950*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a > __b);
1951*344a7f5eSAndroid Build Coastguard Worker }
1952*344a7f5eSAndroid Build Coastguard Worker
1953*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmpgt(vector signed long long __a,vector signed long long __b)1954*344a7f5eSAndroid Build Coastguard Worker vec_cmpgt(vector signed long long __a, vector signed long long __b) {
1955*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a > __b);
1956*344a7f5eSAndroid Build Coastguard Worker }
1957*344a7f5eSAndroid Build Coastguard Worker
1958*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmpgt(vector unsigned long long __a,vector unsigned long long __b)1959*344a7f5eSAndroid Build Coastguard Worker vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) {
1960*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a > __b);
1961*344a7f5eSAndroid Build Coastguard Worker }
1962*344a7f5eSAndroid Build Coastguard Worker
1963*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmpgt(vector double __a,vector double __b)1964*344a7f5eSAndroid Build Coastguard Worker vec_cmpgt(vector double __a, vector double __b) {
1965*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a > __b);
1966*344a7f5eSAndroid Build Coastguard Worker }
1967*344a7f5eSAndroid Build Coastguard Worker
1968*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmple --------------------------------------------------------------*/
1969*344a7f5eSAndroid Build Coastguard Worker
1970*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmple(vector signed char __a,vector signed char __b)1971*344a7f5eSAndroid Build Coastguard Worker vec_cmple(vector signed char __a, vector signed char __b) {
1972*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(__a <= __b);
1973*344a7f5eSAndroid Build Coastguard Worker }
1974*344a7f5eSAndroid Build Coastguard Worker
1975*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmple(vector unsigned char __a,vector unsigned char __b)1976*344a7f5eSAndroid Build Coastguard Worker vec_cmple(vector unsigned char __a, vector unsigned char __b) {
1977*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(__a <= __b);
1978*344a7f5eSAndroid Build Coastguard Worker }
1979*344a7f5eSAndroid Build Coastguard Worker
1980*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmple(vector signed short __a,vector signed short __b)1981*344a7f5eSAndroid Build Coastguard Worker vec_cmple(vector signed short __a, vector signed short __b) {
1982*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(__a <= __b);
1983*344a7f5eSAndroid Build Coastguard Worker }
1984*344a7f5eSAndroid Build Coastguard Worker
1985*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmple(vector unsigned short __a,vector unsigned short __b)1986*344a7f5eSAndroid Build Coastguard Worker vec_cmple(vector unsigned short __a, vector unsigned short __b) {
1987*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(__a <= __b);
1988*344a7f5eSAndroid Build Coastguard Worker }
1989*344a7f5eSAndroid Build Coastguard Worker
1990*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmple(vector signed int __a,vector signed int __b)1991*344a7f5eSAndroid Build Coastguard Worker vec_cmple(vector signed int __a, vector signed int __b) {
1992*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a <= __b);
1993*344a7f5eSAndroid Build Coastguard Worker }
1994*344a7f5eSAndroid Build Coastguard Worker
1995*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmple(vector unsigned int __a,vector unsigned int __b)1996*344a7f5eSAndroid Build Coastguard Worker vec_cmple(vector unsigned int __a, vector unsigned int __b) {
1997*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a <= __b);
1998*344a7f5eSAndroid Build Coastguard Worker }
1999*344a7f5eSAndroid Build Coastguard Worker
2000*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmple(vector signed long long __a,vector signed long long __b)2001*344a7f5eSAndroid Build Coastguard Worker vec_cmple(vector signed long long __a, vector signed long long __b) {
2002*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a <= __b);
2003*344a7f5eSAndroid Build Coastguard Worker }
2004*344a7f5eSAndroid Build Coastguard Worker
2005*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmple(vector unsigned long long __a,vector unsigned long long __b)2006*344a7f5eSAndroid Build Coastguard Worker vec_cmple(vector unsigned long long __a, vector unsigned long long __b) {
2007*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a <= __b);
2008*344a7f5eSAndroid Build Coastguard Worker }
2009*344a7f5eSAndroid Build Coastguard Worker
2010*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmple(vector double __a,vector double __b)2011*344a7f5eSAndroid Build Coastguard Worker vec_cmple(vector double __a, vector double __b) {
2012*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a <= __b);
2013*344a7f5eSAndroid Build Coastguard Worker }
2014*344a7f5eSAndroid Build Coastguard Worker
2015*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmplt --------------------------------------------------------------*/
2016*344a7f5eSAndroid Build Coastguard Worker
2017*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmplt(vector signed char __a,vector signed char __b)2018*344a7f5eSAndroid Build Coastguard Worker vec_cmplt(vector signed char __a, vector signed char __b) {
2019*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(__a < __b);
2020*344a7f5eSAndroid Build Coastguard Worker }
2021*344a7f5eSAndroid Build Coastguard Worker
2022*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmplt(vector unsigned char __a,vector unsigned char __b)2023*344a7f5eSAndroid Build Coastguard Worker vec_cmplt(vector unsigned char __a, vector unsigned char __b) {
2024*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)(__a < __b);
2025*344a7f5eSAndroid Build Coastguard Worker }
2026*344a7f5eSAndroid Build Coastguard Worker
2027*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmplt(vector signed short __a,vector signed short __b)2028*344a7f5eSAndroid Build Coastguard Worker vec_cmplt(vector signed short __a, vector signed short __b) {
2029*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(__a < __b);
2030*344a7f5eSAndroid Build Coastguard Worker }
2031*344a7f5eSAndroid Build Coastguard Worker
2032*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmplt(vector unsigned short __a,vector unsigned short __b)2033*344a7f5eSAndroid Build Coastguard Worker vec_cmplt(vector unsigned short __a, vector unsigned short __b) {
2034*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)(__a < __b);
2035*344a7f5eSAndroid Build Coastguard Worker }
2036*344a7f5eSAndroid Build Coastguard Worker
2037*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmplt(vector signed int __a,vector signed int __b)2038*344a7f5eSAndroid Build Coastguard Worker vec_cmplt(vector signed int __a, vector signed int __b) {
2039*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a < __b);
2040*344a7f5eSAndroid Build Coastguard Worker }
2041*344a7f5eSAndroid Build Coastguard Worker
2042*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmplt(vector unsigned int __a,vector unsigned int __b)2043*344a7f5eSAndroid Build Coastguard Worker vec_cmplt(vector unsigned int __a, vector unsigned int __b) {
2044*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)(__a < __b);
2045*344a7f5eSAndroid Build Coastguard Worker }
2046*344a7f5eSAndroid Build Coastguard Worker
2047*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmplt(vector signed long long __a,vector signed long long __b)2048*344a7f5eSAndroid Build Coastguard Worker vec_cmplt(vector signed long long __a, vector signed long long __b) {
2049*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a < __b);
2050*344a7f5eSAndroid Build Coastguard Worker }
2051*344a7f5eSAndroid Build Coastguard Worker
2052*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmplt(vector unsigned long long __a,vector unsigned long long __b)2053*344a7f5eSAndroid Build Coastguard Worker vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) {
2054*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a < __b);
2055*344a7f5eSAndroid Build Coastguard Worker }
2056*344a7f5eSAndroid Build Coastguard Worker
2057*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_cmplt(vector double __a,vector double __b)2058*344a7f5eSAndroid Build Coastguard Worker vec_cmplt(vector double __a, vector double __b) {
2059*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)(__a < __b);
2060*344a7f5eSAndroid Build Coastguard Worker }
2061*344a7f5eSAndroid Build Coastguard Worker
2062*344a7f5eSAndroid Build Coastguard Worker /*-- vec_all_eq -------------------------------------------------------------*/
2063*344a7f5eSAndroid Build Coastguard Worker
2064*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector signed char __a,vector signed char __b)2065*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector signed char __a, vector signed char __b) {
2066*344a7f5eSAndroid Build Coastguard Worker int __cc;
2067*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, __b, &__cc);
2068*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2069*344a7f5eSAndroid Build Coastguard Worker }
2070*344a7f5eSAndroid Build Coastguard Worker
2071*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector signed char __a,vector bool char __b)2072*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector signed char __a, vector bool char __b) {
2073*344a7f5eSAndroid Build Coastguard Worker int __cc;
2074*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2075*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2076*344a7f5eSAndroid Build Coastguard Worker }
2077*344a7f5eSAndroid Build Coastguard Worker
2078*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector bool char __a,vector signed char __b)2079*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector bool char __a, vector signed char __b) {
2080*344a7f5eSAndroid Build Coastguard Worker int __cc;
2081*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2082*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2083*344a7f5eSAndroid Build Coastguard Worker }
2084*344a7f5eSAndroid Build Coastguard Worker
2085*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned char __a,vector unsigned char __b)2086*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector unsigned char __a, vector unsigned char __b) {
2087*344a7f5eSAndroid Build Coastguard Worker int __cc;
2088*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
2089*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
2090*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2091*344a7f5eSAndroid Build Coastguard Worker }
2092*344a7f5eSAndroid Build Coastguard Worker
2093*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned char __a,vector bool char __b)2094*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector unsigned char __a, vector bool char __b) {
2095*344a7f5eSAndroid Build Coastguard Worker int __cc;
2096*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
2097*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
2098*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2099*344a7f5eSAndroid Build Coastguard Worker }
2100*344a7f5eSAndroid Build Coastguard Worker
2101*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector bool char __a,vector unsigned char __b)2102*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector bool char __a, vector unsigned char __b) {
2103*344a7f5eSAndroid Build Coastguard Worker int __cc;
2104*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
2105*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
2106*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2107*344a7f5eSAndroid Build Coastguard Worker }
2108*344a7f5eSAndroid Build Coastguard Worker
2109*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector bool char __a,vector bool char __b)2110*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector bool char __a, vector bool char __b) {
2111*344a7f5eSAndroid Build Coastguard Worker int __cc;
2112*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
2113*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
2114*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2115*344a7f5eSAndroid Build Coastguard Worker }
2116*344a7f5eSAndroid Build Coastguard Worker
2117*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector signed short __a,vector signed short __b)2118*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector signed short __a, vector signed short __b) {
2119*344a7f5eSAndroid Build Coastguard Worker int __cc;
2120*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, __b, &__cc);
2121*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2122*344a7f5eSAndroid Build Coastguard Worker }
2123*344a7f5eSAndroid Build Coastguard Worker
2124*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector signed short __a,vector bool short __b)2125*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector signed short __a, vector bool short __b) {
2126*344a7f5eSAndroid Build Coastguard Worker int __cc;
2127*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2128*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2129*344a7f5eSAndroid Build Coastguard Worker }
2130*344a7f5eSAndroid Build Coastguard Worker
2131*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector bool short __a,vector signed short __b)2132*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector bool short __a, vector signed short __b) {
2133*344a7f5eSAndroid Build Coastguard Worker int __cc;
2134*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2135*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2136*344a7f5eSAndroid Build Coastguard Worker }
2137*344a7f5eSAndroid Build Coastguard Worker
2138*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned short __a,vector unsigned short __b)2139*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector unsigned short __a, vector unsigned short __b) {
2140*344a7f5eSAndroid Build Coastguard Worker int __cc;
2141*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
2142*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
2143*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2144*344a7f5eSAndroid Build Coastguard Worker }
2145*344a7f5eSAndroid Build Coastguard Worker
2146*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned short __a,vector bool short __b)2147*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector unsigned short __a, vector bool short __b) {
2148*344a7f5eSAndroid Build Coastguard Worker int __cc;
2149*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
2150*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
2151*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2152*344a7f5eSAndroid Build Coastguard Worker }
2153*344a7f5eSAndroid Build Coastguard Worker
2154*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector bool short __a,vector unsigned short __b)2155*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector bool short __a, vector unsigned short __b) {
2156*344a7f5eSAndroid Build Coastguard Worker int __cc;
2157*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
2158*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
2159*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2160*344a7f5eSAndroid Build Coastguard Worker }
2161*344a7f5eSAndroid Build Coastguard Worker
2162*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector bool short __a,vector bool short __b)2163*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector bool short __a, vector bool short __b) {
2164*344a7f5eSAndroid Build Coastguard Worker int __cc;
2165*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
2166*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
2167*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2168*344a7f5eSAndroid Build Coastguard Worker }
2169*344a7f5eSAndroid Build Coastguard Worker
2170*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector signed int __a,vector signed int __b)2171*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector signed int __a, vector signed int __b) {
2172*344a7f5eSAndroid Build Coastguard Worker int __cc;
2173*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, __b, &__cc);
2174*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2175*344a7f5eSAndroid Build Coastguard Worker }
2176*344a7f5eSAndroid Build Coastguard Worker
2177*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector signed int __a,vector bool int __b)2178*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector signed int __a, vector bool int __b) {
2179*344a7f5eSAndroid Build Coastguard Worker int __cc;
2180*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2181*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2182*344a7f5eSAndroid Build Coastguard Worker }
2183*344a7f5eSAndroid Build Coastguard Worker
2184*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector bool int __a,vector signed int __b)2185*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector bool int __a, vector signed int __b) {
2186*344a7f5eSAndroid Build Coastguard Worker int __cc;
2187*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2188*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2189*344a7f5eSAndroid Build Coastguard Worker }
2190*344a7f5eSAndroid Build Coastguard Worker
2191*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned int __a,vector unsigned int __b)2192*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector unsigned int __a, vector unsigned int __b) {
2193*344a7f5eSAndroid Build Coastguard Worker int __cc;
2194*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
2195*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
2196*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2197*344a7f5eSAndroid Build Coastguard Worker }
2198*344a7f5eSAndroid Build Coastguard Worker
2199*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned int __a,vector bool int __b)2200*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector unsigned int __a, vector bool int __b) {
2201*344a7f5eSAndroid Build Coastguard Worker int __cc;
2202*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
2203*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
2204*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2205*344a7f5eSAndroid Build Coastguard Worker }
2206*344a7f5eSAndroid Build Coastguard Worker
2207*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector bool int __a,vector unsigned int __b)2208*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector bool int __a, vector unsigned int __b) {
2209*344a7f5eSAndroid Build Coastguard Worker int __cc;
2210*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
2211*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
2212*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2213*344a7f5eSAndroid Build Coastguard Worker }
2214*344a7f5eSAndroid Build Coastguard Worker
2215*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector bool int __a,vector bool int __b)2216*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector bool int __a, vector bool int __b) {
2217*344a7f5eSAndroid Build Coastguard Worker int __cc;
2218*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
2219*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
2220*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2221*344a7f5eSAndroid Build Coastguard Worker }
2222*344a7f5eSAndroid Build Coastguard Worker
2223*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector signed long long __a,vector signed long long __b)2224*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector signed long long __a, vector signed long long __b) {
2225*344a7f5eSAndroid Build Coastguard Worker int __cc;
2226*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, __b, &__cc);
2227*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2228*344a7f5eSAndroid Build Coastguard Worker }
2229*344a7f5eSAndroid Build Coastguard Worker
2230*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector signed long long __a,vector bool long long __b)2231*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector signed long long __a, vector bool long long __b) {
2232*344a7f5eSAndroid Build Coastguard Worker int __cc;
2233*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2234*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2235*344a7f5eSAndroid Build Coastguard Worker }
2236*344a7f5eSAndroid Build Coastguard Worker
2237*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector bool long long __a,vector signed long long __b)2238*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector bool long long __a, vector signed long long __b) {
2239*344a7f5eSAndroid Build Coastguard Worker int __cc;
2240*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2241*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2242*344a7f5eSAndroid Build Coastguard Worker }
2243*344a7f5eSAndroid Build Coastguard Worker
2244*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned long long __a,vector unsigned long long __b)2245*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector unsigned long long __a, vector unsigned long long __b) {
2246*344a7f5eSAndroid Build Coastguard Worker int __cc;
2247*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
2248*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
2249*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2250*344a7f5eSAndroid Build Coastguard Worker }
2251*344a7f5eSAndroid Build Coastguard Worker
2252*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned long long __a,vector bool long long __b)2253*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector unsigned long long __a, vector bool long long __b) {
2254*344a7f5eSAndroid Build Coastguard Worker int __cc;
2255*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
2256*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
2257*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2258*344a7f5eSAndroid Build Coastguard Worker }
2259*344a7f5eSAndroid Build Coastguard Worker
2260*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector bool long long __a,vector unsigned long long __b)2261*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector bool long long __a, vector unsigned long long __b) {
2262*344a7f5eSAndroid Build Coastguard Worker int __cc;
2263*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
2264*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
2265*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2266*344a7f5eSAndroid Build Coastguard Worker }
2267*344a7f5eSAndroid Build Coastguard Worker
2268*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector bool long long __a,vector bool long long __b)2269*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector bool long long __a, vector bool long long __b) {
2270*344a7f5eSAndroid Build Coastguard Worker int __cc;
2271*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
2272*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
2273*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2274*344a7f5eSAndroid Build Coastguard Worker }
2275*344a7f5eSAndroid Build Coastguard Worker
2276*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(vector double __a,vector double __b)2277*344a7f5eSAndroid Build Coastguard Worker vec_all_eq(vector double __a, vector double __b) {
2278*344a7f5eSAndroid Build Coastguard Worker int __cc;
2279*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfcedbs(__a, __b, &__cc);
2280*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2281*344a7f5eSAndroid Build Coastguard Worker }
2282*344a7f5eSAndroid Build Coastguard Worker
2283*344a7f5eSAndroid Build Coastguard Worker /*-- vec_all_ne -------------------------------------------------------------*/
2284*344a7f5eSAndroid Build Coastguard Worker
2285*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector signed char __a,vector signed char __b)2286*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector signed char __a, vector signed char __b) {
2287*344a7f5eSAndroid Build Coastguard Worker int __cc;
2288*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, __b, &__cc);
2289*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2290*344a7f5eSAndroid Build Coastguard Worker }
2291*344a7f5eSAndroid Build Coastguard Worker
2292*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector signed char __a,vector bool char __b)2293*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector signed char __a, vector bool char __b) {
2294*344a7f5eSAndroid Build Coastguard Worker int __cc;
2295*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2296*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2297*344a7f5eSAndroid Build Coastguard Worker }
2298*344a7f5eSAndroid Build Coastguard Worker
2299*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector bool char __a,vector signed char __b)2300*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector bool char __a, vector signed char __b) {
2301*344a7f5eSAndroid Build Coastguard Worker int __cc;
2302*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2303*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2304*344a7f5eSAndroid Build Coastguard Worker }
2305*344a7f5eSAndroid Build Coastguard Worker
2306*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned char __a,vector unsigned char __b)2307*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector unsigned char __a, vector unsigned char __b) {
2308*344a7f5eSAndroid Build Coastguard Worker int __cc;
2309*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
2310*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
2311*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2312*344a7f5eSAndroid Build Coastguard Worker }
2313*344a7f5eSAndroid Build Coastguard Worker
2314*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned char __a,vector bool char __b)2315*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector unsigned char __a, vector bool char __b) {
2316*344a7f5eSAndroid Build Coastguard Worker int __cc;
2317*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
2318*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
2319*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2320*344a7f5eSAndroid Build Coastguard Worker }
2321*344a7f5eSAndroid Build Coastguard Worker
2322*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector bool char __a,vector unsigned char __b)2323*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector bool char __a, vector unsigned char __b) {
2324*344a7f5eSAndroid Build Coastguard Worker int __cc;
2325*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
2326*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
2327*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2328*344a7f5eSAndroid Build Coastguard Worker }
2329*344a7f5eSAndroid Build Coastguard Worker
2330*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector bool char __a,vector bool char __b)2331*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector bool char __a, vector bool char __b) {
2332*344a7f5eSAndroid Build Coastguard Worker int __cc;
2333*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
2334*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
2335*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2336*344a7f5eSAndroid Build Coastguard Worker }
2337*344a7f5eSAndroid Build Coastguard Worker
2338*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector signed short __a,vector signed short __b)2339*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector signed short __a, vector signed short __b) {
2340*344a7f5eSAndroid Build Coastguard Worker int __cc;
2341*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, __b, &__cc);
2342*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2343*344a7f5eSAndroid Build Coastguard Worker }
2344*344a7f5eSAndroid Build Coastguard Worker
2345*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector signed short __a,vector bool short __b)2346*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector signed short __a, vector bool short __b) {
2347*344a7f5eSAndroid Build Coastguard Worker int __cc;
2348*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2349*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2350*344a7f5eSAndroid Build Coastguard Worker }
2351*344a7f5eSAndroid Build Coastguard Worker
2352*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector bool short __a,vector signed short __b)2353*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector bool short __a, vector signed short __b) {
2354*344a7f5eSAndroid Build Coastguard Worker int __cc;
2355*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2356*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2357*344a7f5eSAndroid Build Coastguard Worker }
2358*344a7f5eSAndroid Build Coastguard Worker
2359*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned short __a,vector unsigned short __b)2360*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector unsigned short __a, vector unsigned short __b) {
2361*344a7f5eSAndroid Build Coastguard Worker int __cc;
2362*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
2363*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
2364*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2365*344a7f5eSAndroid Build Coastguard Worker }
2366*344a7f5eSAndroid Build Coastguard Worker
2367*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned short __a,vector bool short __b)2368*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector unsigned short __a, vector bool short __b) {
2369*344a7f5eSAndroid Build Coastguard Worker int __cc;
2370*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
2371*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
2372*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2373*344a7f5eSAndroid Build Coastguard Worker }
2374*344a7f5eSAndroid Build Coastguard Worker
2375*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector bool short __a,vector unsigned short __b)2376*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector bool short __a, vector unsigned short __b) {
2377*344a7f5eSAndroid Build Coastguard Worker int __cc;
2378*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
2379*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
2380*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2381*344a7f5eSAndroid Build Coastguard Worker }
2382*344a7f5eSAndroid Build Coastguard Worker
2383*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector bool short __a,vector bool short __b)2384*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector bool short __a, vector bool short __b) {
2385*344a7f5eSAndroid Build Coastguard Worker int __cc;
2386*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
2387*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
2388*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2389*344a7f5eSAndroid Build Coastguard Worker }
2390*344a7f5eSAndroid Build Coastguard Worker
2391*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector signed int __a,vector signed int __b)2392*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector signed int __a, vector signed int __b) {
2393*344a7f5eSAndroid Build Coastguard Worker int __cc;
2394*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, __b, &__cc);
2395*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2396*344a7f5eSAndroid Build Coastguard Worker }
2397*344a7f5eSAndroid Build Coastguard Worker
2398*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector signed int __a,vector bool int __b)2399*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector signed int __a, vector bool int __b) {
2400*344a7f5eSAndroid Build Coastguard Worker int __cc;
2401*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2402*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2403*344a7f5eSAndroid Build Coastguard Worker }
2404*344a7f5eSAndroid Build Coastguard Worker
2405*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector bool int __a,vector signed int __b)2406*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector bool int __a, vector signed int __b) {
2407*344a7f5eSAndroid Build Coastguard Worker int __cc;
2408*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2409*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2410*344a7f5eSAndroid Build Coastguard Worker }
2411*344a7f5eSAndroid Build Coastguard Worker
2412*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned int __a,vector unsigned int __b)2413*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector unsigned int __a, vector unsigned int __b) {
2414*344a7f5eSAndroid Build Coastguard Worker int __cc;
2415*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
2416*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
2417*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2418*344a7f5eSAndroid Build Coastguard Worker }
2419*344a7f5eSAndroid Build Coastguard Worker
2420*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned int __a,vector bool int __b)2421*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector unsigned int __a, vector bool int __b) {
2422*344a7f5eSAndroid Build Coastguard Worker int __cc;
2423*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
2424*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
2425*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2426*344a7f5eSAndroid Build Coastguard Worker }
2427*344a7f5eSAndroid Build Coastguard Worker
2428*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector bool int __a,vector unsigned int __b)2429*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector bool int __a, vector unsigned int __b) {
2430*344a7f5eSAndroid Build Coastguard Worker int __cc;
2431*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
2432*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
2433*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2434*344a7f5eSAndroid Build Coastguard Worker }
2435*344a7f5eSAndroid Build Coastguard Worker
2436*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector bool int __a,vector bool int __b)2437*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector bool int __a, vector bool int __b) {
2438*344a7f5eSAndroid Build Coastguard Worker int __cc;
2439*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
2440*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
2441*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2442*344a7f5eSAndroid Build Coastguard Worker }
2443*344a7f5eSAndroid Build Coastguard Worker
2444*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector signed long long __a,vector signed long long __b)2445*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector signed long long __a, vector signed long long __b) {
2446*344a7f5eSAndroid Build Coastguard Worker int __cc;
2447*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, __b, &__cc);
2448*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2449*344a7f5eSAndroid Build Coastguard Worker }
2450*344a7f5eSAndroid Build Coastguard Worker
2451*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector signed long long __a,vector bool long long __b)2452*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector signed long long __a, vector bool long long __b) {
2453*344a7f5eSAndroid Build Coastguard Worker int __cc;
2454*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2455*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2456*344a7f5eSAndroid Build Coastguard Worker }
2457*344a7f5eSAndroid Build Coastguard Worker
2458*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector bool long long __a,vector signed long long __b)2459*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector bool long long __a, vector signed long long __b) {
2460*344a7f5eSAndroid Build Coastguard Worker int __cc;
2461*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2462*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2463*344a7f5eSAndroid Build Coastguard Worker }
2464*344a7f5eSAndroid Build Coastguard Worker
2465*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned long long __a,vector unsigned long long __b)2466*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector unsigned long long __a, vector unsigned long long __b) {
2467*344a7f5eSAndroid Build Coastguard Worker int __cc;
2468*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
2469*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
2470*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2471*344a7f5eSAndroid Build Coastguard Worker }
2472*344a7f5eSAndroid Build Coastguard Worker
2473*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned long long __a,vector bool long long __b)2474*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector unsigned long long __a, vector bool long long __b) {
2475*344a7f5eSAndroid Build Coastguard Worker int __cc;
2476*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
2477*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
2478*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2479*344a7f5eSAndroid Build Coastguard Worker }
2480*344a7f5eSAndroid Build Coastguard Worker
2481*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector bool long long __a,vector unsigned long long __b)2482*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector bool long long __a, vector unsigned long long __b) {
2483*344a7f5eSAndroid Build Coastguard Worker int __cc;
2484*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
2485*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
2486*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2487*344a7f5eSAndroid Build Coastguard Worker }
2488*344a7f5eSAndroid Build Coastguard Worker
2489*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector bool long long __a,vector bool long long __b)2490*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector bool long long __a, vector bool long long __b) {
2491*344a7f5eSAndroid Build Coastguard Worker int __cc;
2492*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
2493*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
2494*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2495*344a7f5eSAndroid Build Coastguard Worker }
2496*344a7f5eSAndroid Build Coastguard Worker
2497*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(vector double __a,vector double __b)2498*344a7f5eSAndroid Build Coastguard Worker vec_all_ne(vector double __a, vector double __b) {
2499*344a7f5eSAndroid Build Coastguard Worker int __cc;
2500*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfcedbs(__a, __b, &__cc);
2501*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2502*344a7f5eSAndroid Build Coastguard Worker }
2503*344a7f5eSAndroid Build Coastguard Worker
2504*344a7f5eSAndroid Build Coastguard Worker /*-- vec_all_ge -------------------------------------------------------------*/
2505*344a7f5eSAndroid Build Coastguard Worker
2506*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector signed char __a,vector signed char __b)2507*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector signed char __a, vector signed char __b) {
2508*344a7f5eSAndroid Build Coastguard Worker int __cc;
2509*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, __a, &__cc);
2510*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2511*344a7f5eSAndroid Build Coastguard Worker }
2512*344a7f5eSAndroid Build Coastguard Worker
2513*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector signed char __a,vector bool char __b)2514*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector signed char __a, vector bool char __b) {
2515*344a7f5eSAndroid Build Coastguard Worker int __cc;
2516*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
2517*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2518*344a7f5eSAndroid Build Coastguard Worker }
2519*344a7f5eSAndroid Build Coastguard Worker
2520*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector bool char __a,vector signed char __b)2521*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector bool char __a, vector signed char __b) {
2522*344a7f5eSAndroid Build Coastguard Worker int __cc;
2523*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
2524*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2525*344a7f5eSAndroid Build Coastguard Worker }
2526*344a7f5eSAndroid Build Coastguard Worker
2527*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned char __a,vector unsigned char __b)2528*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector unsigned char __a, vector unsigned char __b) {
2529*344a7f5eSAndroid Build Coastguard Worker int __cc;
2530*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, __a, &__cc);
2531*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2532*344a7f5eSAndroid Build Coastguard Worker }
2533*344a7f5eSAndroid Build Coastguard Worker
2534*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned char __a,vector bool char __b)2535*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector unsigned char __a, vector bool char __b) {
2536*344a7f5eSAndroid Build Coastguard Worker int __cc;
2537*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
2538*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2539*344a7f5eSAndroid Build Coastguard Worker }
2540*344a7f5eSAndroid Build Coastguard Worker
2541*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector bool char __a,vector unsigned char __b)2542*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector bool char __a, vector unsigned char __b) {
2543*344a7f5eSAndroid Build Coastguard Worker int __cc;
2544*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
2545*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2546*344a7f5eSAndroid Build Coastguard Worker }
2547*344a7f5eSAndroid Build Coastguard Worker
2548*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector bool char __a,vector bool char __b)2549*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector bool char __a, vector bool char __b) {
2550*344a7f5eSAndroid Build Coastguard Worker int __cc;
2551*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__b,
2552*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, &__cc);
2553*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2554*344a7f5eSAndroid Build Coastguard Worker }
2555*344a7f5eSAndroid Build Coastguard Worker
2556*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector signed short __a,vector signed short __b)2557*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector signed short __a, vector signed short __b) {
2558*344a7f5eSAndroid Build Coastguard Worker int __cc;
2559*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, __a, &__cc);
2560*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2561*344a7f5eSAndroid Build Coastguard Worker }
2562*344a7f5eSAndroid Build Coastguard Worker
2563*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector signed short __a,vector bool short __b)2564*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector signed short __a, vector bool short __b) {
2565*344a7f5eSAndroid Build Coastguard Worker int __cc;
2566*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
2567*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2568*344a7f5eSAndroid Build Coastguard Worker }
2569*344a7f5eSAndroid Build Coastguard Worker
2570*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector bool short __a,vector signed short __b)2571*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector bool short __a, vector signed short __b) {
2572*344a7f5eSAndroid Build Coastguard Worker int __cc;
2573*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
2574*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2575*344a7f5eSAndroid Build Coastguard Worker }
2576*344a7f5eSAndroid Build Coastguard Worker
2577*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned short __a,vector unsigned short __b)2578*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector unsigned short __a, vector unsigned short __b) {
2579*344a7f5eSAndroid Build Coastguard Worker int __cc;
2580*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, __a, &__cc);
2581*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2582*344a7f5eSAndroid Build Coastguard Worker }
2583*344a7f5eSAndroid Build Coastguard Worker
2584*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned short __a,vector bool short __b)2585*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector unsigned short __a, vector bool short __b) {
2586*344a7f5eSAndroid Build Coastguard Worker int __cc;
2587*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
2588*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2589*344a7f5eSAndroid Build Coastguard Worker }
2590*344a7f5eSAndroid Build Coastguard Worker
2591*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector bool short __a,vector unsigned short __b)2592*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector bool short __a, vector unsigned short __b) {
2593*344a7f5eSAndroid Build Coastguard Worker int __cc;
2594*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
2595*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2596*344a7f5eSAndroid Build Coastguard Worker }
2597*344a7f5eSAndroid Build Coastguard Worker
2598*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector bool short __a,vector bool short __b)2599*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector bool short __a, vector bool short __b) {
2600*344a7f5eSAndroid Build Coastguard Worker int __cc;
2601*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__b,
2602*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__a, &__cc);
2603*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2604*344a7f5eSAndroid Build Coastguard Worker }
2605*344a7f5eSAndroid Build Coastguard Worker
2606*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector signed int __a,vector signed int __b)2607*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector signed int __a, vector signed int __b) {
2608*344a7f5eSAndroid Build Coastguard Worker int __cc;
2609*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, __a, &__cc);
2610*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2611*344a7f5eSAndroid Build Coastguard Worker }
2612*344a7f5eSAndroid Build Coastguard Worker
2613*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector signed int __a,vector bool int __b)2614*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector signed int __a, vector bool int __b) {
2615*344a7f5eSAndroid Build Coastguard Worker int __cc;
2616*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
2617*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2618*344a7f5eSAndroid Build Coastguard Worker }
2619*344a7f5eSAndroid Build Coastguard Worker
2620*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector bool int __a,vector signed int __b)2621*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector bool int __a, vector signed int __b) {
2622*344a7f5eSAndroid Build Coastguard Worker int __cc;
2623*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
2624*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2625*344a7f5eSAndroid Build Coastguard Worker }
2626*344a7f5eSAndroid Build Coastguard Worker
2627*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned int __a,vector unsigned int __b)2628*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector unsigned int __a, vector unsigned int __b) {
2629*344a7f5eSAndroid Build Coastguard Worker int __cc;
2630*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, __a, &__cc);
2631*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2632*344a7f5eSAndroid Build Coastguard Worker }
2633*344a7f5eSAndroid Build Coastguard Worker
2634*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned int __a,vector bool int __b)2635*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector unsigned int __a, vector bool int __b) {
2636*344a7f5eSAndroid Build Coastguard Worker int __cc;
2637*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
2638*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2639*344a7f5eSAndroid Build Coastguard Worker }
2640*344a7f5eSAndroid Build Coastguard Worker
2641*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector bool int __a,vector unsigned int __b)2642*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector bool int __a, vector unsigned int __b) {
2643*344a7f5eSAndroid Build Coastguard Worker int __cc;
2644*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
2645*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2646*344a7f5eSAndroid Build Coastguard Worker }
2647*344a7f5eSAndroid Build Coastguard Worker
2648*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector bool int __a,vector bool int __b)2649*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector bool int __a, vector bool int __b) {
2650*344a7f5eSAndroid Build Coastguard Worker int __cc;
2651*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__b,
2652*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__a, &__cc);
2653*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2654*344a7f5eSAndroid Build Coastguard Worker }
2655*344a7f5eSAndroid Build Coastguard Worker
2656*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector signed long long __a,vector signed long long __b)2657*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector signed long long __a, vector signed long long __b) {
2658*344a7f5eSAndroid Build Coastguard Worker int __cc;
2659*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, __a, &__cc);
2660*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2661*344a7f5eSAndroid Build Coastguard Worker }
2662*344a7f5eSAndroid Build Coastguard Worker
2663*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector signed long long __a,vector bool long long __b)2664*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector signed long long __a, vector bool long long __b) {
2665*344a7f5eSAndroid Build Coastguard Worker int __cc;
2666*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
2667*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2668*344a7f5eSAndroid Build Coastguard Worker }
2669*344a7f5eSAndroid Build Coastguard Worker
2670*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector bool long long __a,vector signed long long __b)2671*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector bool long long __a, vector signed long long __b) {
2672*344a7f5eSAndroid Build Coastguard Worker int __cc;
2673*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
2674*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2675*344a7f5eSAndroid Build Coastguard Worker }
2676*344a7f5eSAndroid Build Coastguard Worker
2677*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned long long __a,vector unsigned long long __b)2678*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector unsigned long long __a, vector unsigned long long __b) {
2679*344a7f5eSAndroid Build Coastguard Worker int __cc;
2680*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, __a, &__cc);
2681*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2682*344a7f5eSAndroid Build Coastguard Worker }
2683*344a7f5eSAndroid Build Coastguard Worker
2684*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned long long __a,vector bool long long __b)2685*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector unsigned long long __a, vector bool long long __b) {
2686*344a7f5eSAndroid Build Coastguard Worker int __cc;
2687*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
2688*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2689*344a7f5eSAndroid Build Coastguard Worker }
2690*344a7f5eSAndroid Build Coastguard Worker
2691*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector bool long long __a,vector unsigned long long __b)2692*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector bool long long __a, vector unsigned long long __b) {
2693*344a7f5eSAndroid Build Coastguard Worker int __cc;
2694*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
2695*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2696*344a7f5eSAndroid Build Coastguard Worker }
2697*344a7f5eSAndroid Build Coastguard Worker
2698*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector bool long long __a,vector bool long long __b)2699*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector bool long long __a, vector bool long long __b) {
2700*344a7f5eSAndroid Build Coastguard Worker int __cc;
2701*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__b,
2702*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__a, &__cc);
2703*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2704*344a7f5eSAndroid Build Coastguard Worker }
2705*344a7f5eSAndroid Build Coastguard Worker
2706*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(vector double __a,vector double __b)2707*344a7f5eSAndroid Build Coastguard Worker vec_all_ge(vector double __a, vector double __b) {
2708*344a7f5eSAndroid Build Coastguard Worker int __cc;
2709*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__a, __b, &__cc);
2710*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2711*344a7f5eSAndroid Build Coastguard Worker }
2712*344a7f5eSAndroid Build Coastguard Worker
2713*344a7f5eSAndroid Build Coastguard Worker /*-- vec_all_gt -------------------------------------------------------------*/
2714*344a7f5eSAndroid Build Coastguard Worker
2715*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector signed char __a,vector signed char __b)2716*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector signed char __a, vector signed char __b) {
2717*344a7f5eSAndroid Build Coastguard Worker int __cc;
2718*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, __b, &__cc);
2719*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2720*344a7f5eSAndroid Build Coastguard Worker }
2721*344a7f5eSAndroid Build Coastguard Worker
2722*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector signed char __a,vector bool char __b)2723*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector signed char __a, vector bool char __b) {
2724*344a7f5eSAndroid Build Coastguard Worker int __cc;
2725*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
2726*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2727*344a7f5eSAndroid Build Coastguard Worker }
2728*344a7f5eSAndroid Build Coastguard Worker
2729*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector bool char __a,vector signed char __b)2730*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector bool char __a, vector signed char __b) {
2731*344a7f5eSAndroid Build Coastguard Worker int __cc;
2732*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
2733*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2734*344a7f5eSAndroid Build Coastguard Worker }
2735*344a7f5eSAndroid Build Coastguard Worker
2736*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned char __a,vector unsigned char __b)2737*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector unsigned char __a, vector unsigned char __b) {
2738*344a7f5eSAndroid Build Coastguard Worker int __cc;
2739*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, __b, &__cc);
2740*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2741*344a7f5eSAndroid Build Coastguard Worker }
2742*344a7f5eSAndroid Build Coastguard Worker
2743*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned char __a,vector bool char __b)2744*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector unsigned char __a, vector bool char __b) {
2745*344a7f5eSAndroid Build Coastguard Worker int __cc;
2746*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
2747*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2748*344a7f5eSAndroid Build Coastguard Worker }
2749*344a7f5eSAndroid Build Coastguard Worker
2750*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector bool char __a,vector unsigned char __b)2751*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector bool char __a, vector unsigned char __b) {
2752*344a7f5eSAndroid Build Coastguard Worker int __cc;
2753*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
2754*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2755*344a7f5eSAndroid Build Coastguard Worker }
2756*344a7f5eSAndroid Build Coastguard Worker
2757*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector bool char __a,vector bool char __b)2758*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector bool char __a, vector bool char __b) {
2759*344a7f5eSAndroid Build Coastguard Worker int __cc;
2760*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__a,
2761*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, &__cc);
2762*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2763*344a7f5eSAndroid Build Coastguard Worker }
2764*344a7f5eSAndroid Build Coastguard Worker
2765*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector signed short __a,vector signed short __b)2766*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector signed short __a, vector signed short __b) {
2767*344a7f5eSAndroid Build Coastguard Worker int __cc;
2768*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, __b, &__cc);
2769*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2770*344a7f5eSAndroid Build Coastguard Worker }
2771*344a7f5eSAndroid Build Coastguard Worker
2772*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector signed short __a,vector bool short __b)2773*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector signed short __a, vector bool short __b) {
2774*344a7f5eSAndroid Build Coastguard Worker int __cc;
2775*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
2776*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2777*344a7f5eSAndroid Build Coastguard Worker }
2778*344a7f5eSAndroid Build Coastguard Worker
2779*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector bool short __a,vector signed short __b)2780*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector bool short __a, vector signed short __b) {
2781*344a7f5eSAndroid Build Coastguard Worker int __cc;
2782*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
2783*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2784*344a7f5eSAndroid Build Coastguard Worker }
2785*344a7f5eSAndroid Build Coastguard Worker
2786*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned short __a,vector unsigned short __b)2787*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector unsigned short __a, vector unsigned short __b) {
2788*344a7f5eSAndroid Build Coastguard Worker int __cc;
2789*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, __b, &__cc);
2790*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2791*344a7f5eSAndroid Build Coastguard Worker }
2792*344a7f5eSAndroid Build Coastguard Worker
2793*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned short __a,vector bool short __b)2794*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector unsigned short __a, vector bool short __b) {
2795*344a7f5eSAndroid Build Coastguard Worker int __cc;
2796*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
2797*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2798*344a7f5eSAndroid Build Coastguard Worker }
2799*344a7f5eSAndroid Build Coastguard Worker
2800*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector bool short __a,vector unsigned short __b)2801*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector bool short __a, vector unsigned short __b) {
2802*344a7f5eSAndroid Build Coastguard Worker int __cc;
2803*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
2804*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2805*344a7f5eSAndroid Build Coastguard Worker }
2806*344a7f5eSAndroid Build Coastguard Worker
2807*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector bool short __a,vector bool short __b)2808*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector bool short __a, vector bool short __b) {
2809*344a7f5eSAndroid Build Coastguard Worker int __cc;
2810*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__a,
2811*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, &__cc);
2812*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2813*344a7f5eSAndroid Build Coastguard Worker }
2814*344a7f5eSAndroid Build Coastguard Worker
2815*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector signed int __a,vector signed int __b)2816*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector signed int __a, vector signed int __b) {
2817*344a7f5eSAndroid Build Coastguard Worker int __cc;
2818*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, __b, &__cc);
2819*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2820*344a7f5eSAndroid Build Coastguard Worker }
2821*344a7f5eSAndroid Build Coastguard Worker
2822*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector signed int __a,vector bool int __b)2823*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector signed int __a, vector bool int __b) {
2824*344a7f5eSAndroid Build Coastguard Worker int __cc;
2825*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
2826*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2827*344a7f5eSAndroid Build Coastguard Worker }
2828*344a7f5eSAndroid Build Coastguard Worker
2829*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector bool int __a,vector signed int __b)2830*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector bool int __a, vector signed int __b) {
2831*344a7f5eSAndroid Build Coastguard Worker int __cc;
2832*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
2833*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2834*344a7f5eSAndroid Build Coastguard Worker }
2835*344a7f5eSAndroid Build Coastguard Worker
2836*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned int __a,vector unsigned int __b)2837*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector unsigned int __a, vector unsigned int __b) {
2838*344a7f5eSAndroid Build Coastguard Worker int __cc;
2839*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, __b, &__cc);
2840*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2841*344a7f5eSAndroid Build Coastguard Worker }
2842*344a7f5eSAndroid Build Coastguard Worker
2843*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned int __a,vector bool int __b)2844*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector unsigned int __a, vector bool int __b) {
2845*344a7f5eSAndroid Build Coastguard Worker int __cc;
2846*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
2847*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2848*344a7f5eSAndroid Build Coastguard Worker }
2849*344a7f5eSAndroid Build Coastguard Worker
2850*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector bool int __a,vector unsigned int __b)2851*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector bool int __a, vector unsigned int __b) {
2852*344a7f5eSAndroid Build Coastguard Worker int __cc;
2853*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
2854*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2855*344a7f5eSAndroid Build Coastguard Worker }
2856*344a7f5eSAndroid Build Coastguard Worker
2857*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector bool int __a,vector bool int __b)2858*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector bool int __a, vector bool int __b) {
2859*344a7f5eSAndroid Build Coastguard Worker int __cc;
2860*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__a,
2861*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, &__cc);
2862*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2863*344a7f5eSAndroid Build Coastguard Worker }
2864*344a7f5eSAndroid Build Coastguard Worker
2865*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector signed long long __a,vector signed long long __b)2866*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector signed long long __a, vector signed long long __b) {
2867*344a7f5eSAndroid Build Coastguard Worker int __cc;
2868*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, __b, &__cc);
2869*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2870*344a7f5eSAndroid Build Coastguard Worker }
2871*344a7f5eSAndroid Build Coastguard Worker
2872*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector signed long long __a,vector bool long long __b)2873*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector signed long long __a, vector bool long long __b) {
2874*344a7f5eSAndroid Build Coastguard Worker int __cc;
2875*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
2876*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2877*344a7f5eSAndroid Build Coastguard Worker }
2878*344a7f5eSAndroid Build Coastguard Worker
2879*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector bool long long __a,vector signed long long __b)2880*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector bool long long __a, vector signed long long __b) {
2881*344a7f5eSAndroid Build Coastguard Worker int __cc;
2882*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
2883*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2884*344a7f5eSAndroid Build Coastguard Worker }
2885*344a7f5eSAndroid Build Coastguard Worker
2886*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned long long __a,vector unsigned long long __b)2887*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector unsigned long long __a, vector unsigned long long __b) {
2888*344a7f5eSAndroid Build Coastguard Worker int __cc;
2889*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, __b, &__cc);
2890*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2891*344a7f5eSAndroid Build Coastguard Worker }
2892*344a7f5eSAndroid Build Coastguard Worker
2893*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned long long __a,vector bool long long __b)2894*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector unsigned long long __a, vector bool long long __b) {
2895*344a7f5eSAndroid Build Coastguard Worker int __cc;
2896*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
2897*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2898*344a7f5eSAndroid Build Coastguard Worker }
2899*344a7f5eSAndroid Build Coastguard Worker
2900*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector bool long long __a,vector unsigned long long __b)2901*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector bool long long __a, vector unsigned long long __b) {
2902*344a7f5eSAndroid Build Coastguard Worker int __cc;
2903*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
2904*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2905*344a7f5eSAndroid Build Coastguard Worker }
2906*344a7f5eSAndroid Build Coastguard Worker
2907*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector bool long long __a,vector bool long long __b)2908*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector bool long long __a, vector bool long long __b) {
2909*344a7f5eSAndroid Build Coastguard Worker int __cc;
2910*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__a,
2911*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__b, &__cc);
2912*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2913*344a7f5eSAndroid Build Coastguard Worker }
2914*344a7f5eSAndroid Build Coastguard Worker
2915*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(vector double __a,vector double __b)2916*344a7f5eSAndroid Build Coastguard Worker vec_all_gt(vector double __a, vector double __b) {
2917*344a7f5eSAndroid Build Coastguard Worker int __cc;
2918*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__a, __b, &__cc);
2919*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
2920*344a7f5eSAndroid Build Coastguard Worker }
2921*344a7f5eSAndroid Build Coastguard Worker
2922*344a7f5eSAndroid Build Coastguard Worker /*-- vec_all_le -------------------------------------------------------------*/
2923*344a7f5eSAndroid Build Coastguard Worker
2924*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector signed char __a,vector signed char __b)2925*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector signed char __a, vector signed char __b) {
2926*344a7f5eSAndroid Build Coastguard Worker int __cc;
2927*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, __b, &__cc);
2928*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2929*344a7f5eSAndroid Build Coastguard Worker }
2930*344a7f5eSAndroid Build Coastguard Worker
2931*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector signed char __a,vector bool char __b)2932*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector signed char __a, vector bool char __b) {
2933*344a7f5eSAndroid Build Coastguard Worker int __cc;
2934*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
2935*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2936*344a7f5eSAndroid Build Coastguard Worker }
2937*344a7f5eSAndroid Build Coastguard Worker
2938*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector bool char __a,vector signed char __b)2939*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector bool char __a, vector signed char __b) {
2940*344a7f5eSAndroid Build Coastguard Worker int __cc;
2941*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
2942*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2943*344a7f5eSAndroid Build Coastguard Worker }
2944*344a7f5eSAndroid Build Coastguard Worker
2945*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector unsigned char __a,vector unsigned char __b)2946*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector unsigned char __a, vector unsigned char __b) {
2947*344a7f5eSAndroid Build Coastguard Worker int __cc;
2948*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, __b, &__cc);
2949*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2950*344a7f5eSAndroid Build Coastguard Worker }
2951*344a7f5eSAndroid Build Coastguard Worker
2952*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector unsigned char __a,vector bool char __b)2953*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector unsigned char __a, vector bool char __b) {
2954*344a7f5eSAndroid Build Coastguard Worker int __cc;
2955*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
2956*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2957*344a7f5eSAndroid Build Coastguard Worker }
2958*344a7f5eSAndroid Build Coastguard Worker
2959*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector bool char __a,vector unsigned char __b)2960*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector bool char __a, vector unsigned char __b) {
2961*344a7f5eSAndroid Build Coastguard Worker int __cc;
2962*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
2963*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2964*344a7f5eSAndroid Build Coastguard Worker }
2965*344a7f5eSAndroid Build Coastguard Worker
2966*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector bool char __a,vector bool char __b)2967*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector bool char __a, vector bool char __b) {
2968*344a7f5eSAndroid Build Coastguard Worker int __cc;
2969*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__a,
2970*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, &__cc);
2971*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2972*344a7f5eSAndroid Build Coastguard Worker }
2973*344a7f5eSAndroid Build Coastguard Worker
2974*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector signed short __a,vector signed short __b)2975*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector signed short __a, vector signed short __b) {
2976*344a7f5eSAndroid Build Coastguard Worker int __cc;
2977*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, __b, &__cc);
2978*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2979*344a7f5eSAndroid Build Coastguard Worker }
2980*344a7f5eSAndroid Build Coastguard Worker
2981*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector signed short __a,vector bool short __b)2982*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector signed short __a, vector bool short __b) {
2983*344a7f5eSAndroid Build Coastguard Worker int __cc;
2984*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
2985*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2986*344a7f5eSAndroid Build Coastguard Worker }
2987*344a7f5eSAndroid Build Coastguard Worker
2988*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector bool short __a,vector signed short __b)2989*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector bool short __a, vector signed short __b) {
2990*344a7f5eSAndroid Build Coastguard Worker int __cc;
2991*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
2992*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
2993*344a7f5eSAndroid Build Coastguard Worker }
2994*344a7f5eSAndroid Build Coastguard Worker
2995*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector unsigned short __a,vector unsigned short __b)2996*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector unsigned short __a, vector unsigned short __b) {
2997*344a7f5eSAndroid Build Coastguard Worker int __cc;
2998*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, __b, &__cc);
2999*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3000*344a7f5eSAndroid Build Coastguard Worker }
3001*344a7f5eSAndroid Build Coastguard Worker
3002*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector unsigned short __a,vector bool short __b)3003*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector unsigned short __a, vector bool short __b) {
3004*344a7f5eSAndroid Build Coastguard Worker int __cc;
3005*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
3006*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3007*344a7f5eSAndroid Build Coastguard Worker }
3008*344a7f5eSAndroid Build Coastguard Worker
3009*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector bool short __a,vector unsigned short __b)3010*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector bool short __a, vector unsigned short __b) {
3011*344a7f5eSAndroid Build Coastguard Worker int __cc;
3012*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
3013*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3014*344a7f5eSAndroid Build Coastguard Worker }
3015*344a7f5eSAndroid Build Coastguard Worker
3016*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector bool short __a,vector bool short __b)3017*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector bool short __a, vector bool short __b) {
3018*344a7f5eSAndroid Build Coastguard Worker int __cc;
3019*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__a,
3020*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, &__cc);
3021*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3022*344a7f5eSAndroid Build Coastguard Worker }
3023*344a7f5eSAndroid Build Coastguard Worker
3024*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector signed int __a,vector signed int __b)3025*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector signed int __a, vector signed int __b) {
3026*344a7f5eSAndroid Build Coastguard Worker int __cc;
3027*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, __b, &__cc);
3028*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3029*344a7f5eSAndroid Build Coastguard Worker }
3030*344a7f5eSAndroid Build Coastguard Worker
3031*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector signed int __a,vector bool int __b)3032*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector signed int __a, vector bool int __b) {
3033*344a7f5eSAndroid Build Coastguard Worker int __cc;
3034*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
3035*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3036*344a7f5eSAndroid Build Coastguard Worker }
3037*344a7f5eSAndroid Build Coastguard Worker
3038*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector bool int __a,vector signed int __b)3039*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector bool int __a, vector signed int __b) {
3040*344a7f5eSAndroid Build Coastguard Worker int __cc;
3041*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
3042*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3043*344a7f5eSAndroid Build Coastguard Worker }
3044*344a7f5eSAndroid Build Coastguard Worker
3045*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector unsigned int __a,vector unsigned int __b)3046*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector unsigned int __a, vector unsigned int __b) {
3047*344a7f5eSAndroid Build Coastguard Worker int __cc;
3048*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, __b, &__cc);
3049*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3050*344a7f5eSAndroid Build Coastguard Worker }
3051*344a7f5eSAndroid Build Coastguard Worker
3052*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector unsigned int __a,vector bool int __b)3053*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector unsigned int __a, vector bool int __b) {
3054*344a7f5eSAndroid Build Coastguard Worker int __cc;
3055*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
3056*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3057*344a7f5eSAndroid Build Coastguard Worker }
3058*344a7f5eSAndroid Build Coastguard Worker
3059*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector bool int __a,vector unsigned int __b)3060*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector bool int __a, vector unsigned int __b) {
3061*344a7f5eSAndroid Build Coastguard Worker int __cc;
3062*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
3063*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3064*344a7f5eSAndroid Build Coastguard Worker }
3065*344a7f5eSAndroid Build Coastguard Worker
3066*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector bool int __a,vector bool int __b)3067*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector bool int __a, vector bool int __b) {
3068*344a7f5eSAndroid Build Coastguard Worker int __cc;
3069*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__a,
3070*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, &__cc);
3071*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3072*344a7f5eSAndroid Build Coastguard Worker }
3073*344a7f5eSAndroid Build Coastguard Worker
3074*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector signed long long __a,vector signed long long __b)3075*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector signed long long __a, vector signed long long __b) {
3076*344a7f5eSAndroid Build Coastguard Worker int __cc;
3077*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, __b, &__cc);
3078*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3079*344a7f5eSAndroid Build Coastguard Worker }
3080*344a7f5eSAndroid Build Coastguard Worker
3081*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector signed long long __a,vector bool long long __b)3082*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector signed long long __a, vector bool long long __b) {
3083*344a7f5eSAndroid Build Coastguard Worker int __cc;
3084*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
3085*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3086*344a7f5eSAndroid Build Coastguard Worker }
3087*344a7f5eSAndroid Build Coastguard Worker
3088*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector bool long long __a,vector signed long long __b)3089*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector bool long long __a, vector signed long long __b) {
3090*344a7f5eSAndroid Build Coastguard Worker int __cc;
3091*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
3092*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3093*344a7f5eSAndroid Build Coastguard Worker }
3094*344a7f5eSAndroid Build Coastguard Worker
3095*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector unsigned long long __a,vector unsigned long long __b)3096*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector unsigned long long __a, vector unsigned long long __b) {
3097*344a7f5eSAndroid Build Coastguard Worker int __cc;
3098*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, __b, &__cc);
3099*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3100*344a7f5eSAndroid Build Coastguard Worker }
3101*344a7f5eSAndroid Build Coastguard Worker
3102*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector unsigned long long __a,vector bool long long __b)3103*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector unsigned long long __a, vector bool long long __b) {
3104*344a7f5eSAndroid Build Coastguard Worker int __cc;
3105*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
3106*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3107*344a7f5eSAndroid Build Coastguard Worker }
3108*344a7f5eSAndroid Build Coastguard Worker
3109*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector bool long long __a,vector unsigned long long __b)3110*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector bool long long __a, vector unsigned long long __b) {
3111*344a7f5eSAndroid Build Coastguard Worker int __cc;
3112*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
3113*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3114*344a7f5eSAndroid Build Coastguard Worker }
3115*344a7f5eSAndroid Build Coastguard Worker
3116*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector bool long long __a,vector bool long long __b)3117*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector bool long long __a, vector bool long long __b) {
3118*344a7f5eSAndroid Build Coastguard Worker int __cc;
3119*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__a,
3120*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__b, &__cc);
3121*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3122*344a7f5eSAndroid Build Coastguard Worker }
3123*344a7f5eSAndroid Build Coastguard Worker
3124*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(vector double __a,vector double __b)3125*344a7f5eSAndroid Build Coastguard Worker vec_all_le(vector double __a, vector double __b) {
3126*344a7f5eSAndroid Build Coastguard Worker int __cc;
3127*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__b, __a, &__cc);
3128*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3129*344a7f5eSAndroid Build Coastguard Worker }
3130*344a7f5eSAndroid Build Coastguard Worker
3131*344a7f5eSAndroid Build Coastguard Worker /*-- vec_all_lt -------------------------------------------------------------*/
3132*344a7f5eSAndroid Build Coastguard Worker
3133*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector signed char __a,vector signed char __b)3134*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector signed char __a, vector signed char __b) {
3135*344a7f5eSAndroid Build Coastguard Worker int __cc;
3136*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, __a, &__cc);
3137*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3138*344a7f5eSAndroid Build Coastguard Worker }
3139*344a7f5eSAndroid Build Coastguard Worker
3140*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector signed char __a,vector bool char __b)3141*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector signed char __a, vector bool char __b) {
3142*344a7f5eSAndroid Build Coastguard Worker int __cc;
3143*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
3144*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3145*344a7f5eSAndroid Build Coastguard Worker }
3146*344a7f5eSAndroid Build Coastguard Worker
3147*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector bool char __a,vector signed char __b)3148*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector bool char __a, vector signed char __b) {
3149*344a7f5eSAndroid Build Coastguard Worker int __cc;
3150*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
3151*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3152*344a7f5eSAndroid Build Coastguard Worker }
3153*344a7f5eSAndroid Build Coastguard Worker
3154*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned char __a,vector unsigned char __b)3155*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector unsigned char __a, vector unsigned char __b) {
3156*344a7f5eSAndroid Build Coastguard Worker int __cc;
3157*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, __a, &__cc);
3158*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3159*344a7f5eSAndroid Build Coastguard Worker }
3160*344a7f5eSAndroid Build Coastguard Worker
3161*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned char __a,vector bool char __b)3162*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector unsigned char __a, vector bool char __b) {
3163*344a7f5eSAndroid Build Coastguard Worker int __cc;
3164*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
3165*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3166*344a7f5eSAndroid Build Coastguard Worker }
3167*344a7f5eSAndroid Build Coastguard Worker
3168*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector bool char __a,vector unsigned char __b)3169*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector bool char __a, vector unsigned char __b) {
3170*344a7f5eSAndroid Build Coastguard Worker int __cc;
3171*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
3172*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3173*344a7f5eSAndroid Build Coastguard Worker }
3174*344a7f5eSAndroid Build Coastguard Worker
3175*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector bool char __a,vector bool char __b)3176*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector bool char __a, vector bool char __b) {
3177*344a7f5eSAndroid Build Coastguard Worker int __cc;
3178*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__b,
3179*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, &__cc);
3180*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3181*344a7f5eSAndroid Build Coastguard Worker }
3182*344a7f5eSAndroid Build Coastguard Worker
3183*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector signed short __a,vector signed short __b)3184*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector signed short __a, vector signed short __b) {
3185*344a7f5eSAndroid Build Coastguard Worker int __cc;
3186*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, __a, &__cc);
3187*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3188*344a7f5eSAndroid Build Coastguard Worker }
3189*344a7f5eSAndroid Build Coastguard Worker
3190*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector signed short __a,vector bool short __b)3191*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector signed short __a, vector bool short __b) {
3192*344a7f5eSAndroid Build Coastguard Worker int __cc;
3193*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
3194*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3195*344a7f5eSAndroid Build Coastguard Worker }
3196*344a7f5eSAndroid Build Coastguard Worker
3197*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector bool short __a,vector signed short __b)3198*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector bool short __a, vector signed short __b) {
3199*344a7f5eSAndroid Build Coastguard Worker int __cc;
3200*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
3201*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3202*344a7f5eSAndroid Build Coastguard Worker }
3203*344a7f5eSAndroid Build Coastguard Worker
3204*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned short __a,vector unsigned short __b)3205*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector unsigned short __a, vector unsigned short __b) {
3206*344a7f5eSAndroid Build Coastguard Worker int __cc;
3207*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, __a, &__cc);
3208*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3209*344a7f5eSAndroid Build Coastguard Worker }
3210*344a7f5eSAndroid Build Coastguard Worker
3211*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned short __a,vector bool short __b)3212*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector unsigned short __a, vector bool short __b) {
3213*344a7f5eSAndroid Build Coastguard Worker int __cc;
3214*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
3215*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3216*344a7f5eSAndroid Build Coastguard Worker }
3217*344a7f5eSAndroid Build Coastguard Worker
3218*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector bool short __a,vector unsigned short __b)3219*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector bool short __a, vector unsigned short __b) {
3220*344a7f5eSAndroid Build Coastguard Worker int __cc;
3221*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
3222*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3223*344a7f5eSAndroid Build Coastguard Worker }
3224*344a7f5eSAndroid Build Coastguard Worker
3225*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector bool short __a,vector bool short __b)3226*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector bool short __a, vector bool short __b) {
3227*344a7f5eSAndroid Build Coastguard Worker int __cc;
3228*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__b,
3229*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__a, &__cc);
3230*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3231*344a7f5eSAndroid Build Coastguard Worker }
3232*344a7f5eSAndroid Build Coastguard Worker
3233*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector signed int __a,vector signed int __b)3234*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector signed int __a, vector signed int __b) {
3235*344a7f5eSAndroid Build Coastguard Worker int __cc;
3236*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, __a, &__cc);
3237*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3238*344a7f5eSAndroid Build Coastguard Worker }
3239*344a7f5eSAndroid Build Coastguard Worker
3240*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector signed int __a,vector bool int __b)3241*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector signed int __a, vector bool int __b) {
3242*344a7f5eSAndroid Build Coastguard Worker int __cc;
3243*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3244*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3245*344a7f5eSAndroid Build Coastguard Worker }
3246*344a7f5eSAndroid Build Coastguard Worker
3247*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector bool int __a,vector signed int __b)3248*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector bool int __a, vector signed int __b) {
3249*344a7f5eSAndroid Build Coastguard Worker int __cc;
3250*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3251*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3252*344a7f5eSAndroid Build Coastguard Worker }
3253*344a7f5eSAndroid Build Coastguard Worker
3254*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned int __a,vector unsigned int __b)3255*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector unsigned int __a, vector unsigned int __b) {
3256*344a7f5eSAndroid Build Coastguard Worker int __cc;
3257*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, __a, &__cc);
3258*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3259*344a7f5eSAndroid Build Coastguard Worker }
3260*344a7f5eSAndroid Build Coastguard Worker
3261*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned int __a,vector bool int __b)3262*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector unsigned int __a, vector bool int __b) {
3263*344a7f5eSAndroid Build Coastguard Worker int __cc;
3264*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3265*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3266*344a7f5eSAndroid Build Coastguard Worker }
3267*344a7f5eSAndroid Build Coastguard Worker
3268*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector bool int __a,vector unsigned int __b)3269*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector bool int __a, vector unsigned int __b) {
3270*344a7f5eSAndroid Build Coastguard Worker int __cc;
3271*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3272*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3273*344a7f5eSAndroid Build Coastguard Worker }
3274*344a7f5eSAndroid Build Coastguard Worker
3275*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector bool int __a,vector bool int __b)3276*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector bool int __a, vector bool int __b) {
3277*344a7f5eSAndroid Build Coastguard Worker int __cc;
3278*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__b,
3279*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__a, &__cc);
3280*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3281*344a7f5eSAndroid Build Coastguard Worker }
3282*344a7f5eSAndroid Build Coastguard Worker
3283*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector signed long long __a,vector signed long long __b)3284*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector signed long long __a, vector signed long long __b) {
3285*344a7f5eSAndroid Build Coastguard Worker int __cc;
3286*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, __a, &__cc);
3287*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3288*344a7f5eSAndroid Build Coastguard Worker }
3289*344a7f5eSAndroid Build Coastguard Worker
3290*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector signed long long __a,vector bool long long __b)3291*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector signed long long __a, vector bool long long __b) {
3292*344a7f5eSAndroid Build Coastguard Worker int __cc;
3293*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3294*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3295*344a7f5eSAndroid Build Coastguard Worker }
3296*344a7f5eSAndroid Build Coastguard Worker
3297*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector bool long long __a,vector signed long long __b)3298*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector bool long long __a, vector signed long long __b) {
3299*344a7f5eSAndroid Build Coastguard Worker int __cc;
3300*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
3301*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3302*344a7f5eSAndroid Build Coastguard Worker }
3303*344a7f5eSAndroid Build Coastguard Worker
3304*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned long long __a,vector unsigned long long __b)3305*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector unsigned long long __a, vector unsigned long long __b) {
3306*344a7f5eSAndroid Build Coastguard Worker int __cc;
3307*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, __a, &__cc);
3308*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3309*344a7f5eSAndroid Build Coastguard Worker }
3310*344a7f5eSAndroid Build Coastguard Worker
3311*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned long long __a,vector bool long long __b)3312*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector unsigned long long __a, vector bool long long __b) {
3313*344a7f5eSAndroid Build Coastguard Worker int __cc;
3314*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
3315*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3316*344a7f5eSAndroid Build Coastguard Worker }
3317*344a7f5eSAndroid Build Coastguard Worker
3318*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector bool long long __a,vector unsigned long long __b)3319*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector bool long long __a, vector unsigned long long __b) {
3320*344a7f5eSAndroid Build Coastguard Worker int __cc;
3321*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
3322*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3323*344a7f5eSAndroid Build Coastguard Worker }
3324*344a7f5eSAndroid Build Coastguard Worker
3325*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector bool long long __a,vector bool long long __b)3326*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector bool long long __a, vector bool long long __b) {
3327*344a7f5eSAndroid Build Coastguard Worker int __cc;
3328*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__b,
3329*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__a, &__cc);
3330*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3331*344a7f5eSAndroid Build Coastguard Worker }
3332*344a7f5eSAndroid Build Coastguard Worker
3333*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(vector double __a,vector double __b)3334*344a7f5eSAndroid Build Coastguard Worker vec_all_lt(vector double __a, vector double __b) {
3335*344a7f5eSAndroid Build Coastguard Worker int __cc;
3336*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__b, __a, &__cc);
3337*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3338*344a7f5eSAndroid Build Coastguard Worker }
3339*344a7f5eSAndroid Build Coastguard Worker
3340*344a7f5eSAndroid Build Coastguard Worker /*-- vec_all_nge ------------------------------------------------------------*/
3341*344a7f5eSAndroid Build Coastguard Worker
3342*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai int
vec_all_nge(vector double __a,vector double __b)3343*344a7f5eSAndroid Build Coastguard Worker vec_all_nge(vector double __a, vector double __b) {
3344*344a7f5eSAndroid Build Coastguard Worker int __cc;
3345*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__a, __b, &__cc);
3346*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3347*344a7f5eSAndroid Build Coastguard Worker }
3348*344a7f5eSAndroid Build Coastguard Worker
3349*344a7f5eSAndroid Build Coastguard Worker /*-- vec_all_ngt ------------------------------------------------------------*/
3350*344a7f5eSAndroid Build Coastguard Worker
3351*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai int
vec_all_ngt(vector double __a,vector double __b)3352*344a7f5eSAndroid Build Coastguard Worker vec_all_ngt(vector double __a, vector double __b) {
3353*344a7f5eSAndroid Build Coastguard Worker int __cc;
3354*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__a, __b, &__cc);
3355*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3356*344a7f5eSAndroid Build Coastguard Worker }
3357*344a7f5eSAndroid Build Coastguard Worker
3358*344a7f5eSAndroid Build Coastguard Worker /*-- vec_all_nle ------------------------------------------------------------*/
3359*344a7f5eSAndroid Build Coastguard Worker
3360*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai int
vec_all_nle(vector double __a,vector double __b)3361*344a7f5eSAndroid Build Coastguard Worker vec_all_nle(vector double __a, vector double __b) {
3362*344a7f5eSAndroid Build Coastguard Worker int __cc;
3363*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__b, __a, &__cc);
3364*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3365*344a7f5eSAndroid Build Coastguard Worker }
3366*344a7f5eSAndroid Build Coastguard Worker
3367*344a7f5eSAndroid Build Coastguard Worker /*-- vec_all_nlt ------------------------------------------------------------*/
3368*344a7f5eSAndroid Build Coastguard Worker
3369*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai int
vec_all_nlt(vector double __a,vector double __b)3370*344a7f5eSAndroid Build Coastguard Worker vec_all_nlt(vector double __a, vector double __b) {
3371*344a7f5eSAndroid Build Coastguard Worker int __cc;
3372*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__b, __a, &__cc);
3373*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3374*344a7f5eSAndroid Build Coastguard Worker }
3375*344a7f5eSAndroid Build Coastguard Worker
3376*344a7f5eSAndroid Build Coastguard Worker /*-- vec_all_nan ------------------------------------------------------------*/
3377*344a7f5eSAndroid Build Coastguard Worker
3378*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai int
vec_all_nan(vector double __a)3379*344a7f5eSAndroid Build Coastguard Worker vec_all_nan(vector double __a) {
3380*344a7f5eSAndroid Build Coastguard Worker int __cc;
3381*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vftcidb(__a, 15, &__cc);
3382*344a7f5eSAndroid Build Coastguard Worker return __cc == 0;
3383*344a7f5eSAndroid Build Coastguard Worker }
3384*344a7f5eSAndroid Build Coastguard Worker
3385*344a7f5eSAndroid Build Coastguard Worker /*-- vec_all_numeric --------------------------------------------------------*/
3386*344a7f5eSAndroid Build Coastguard Worker
3387*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai int
vec_all_numeric(vector double __a)3388*344a7f5eSAndroid Build Coastguard Worker vec_all_numeric(vector double __a) {
3389*344a7f5eSAndroid Build Coastguard Worker int __cc;
3390*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vftcidb(__a, 15, &__cc);
3391*344a7f5eSAndroid Build Coastguard Worker return __cc == 3;
3392*344a7f5eSAndroid Build Coastguard Worker }
3393*344a7f5eSAndroid Build Coastguard Worker
3394*344a7f5eSAndroid Build Coastguard Worker /*-- vec_any_eq -------------------------------------------------------------*/
3395*344a7f5eSAndroid Build Coastguard Worker
3396*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector signed char __a,vector signed char __b)3397*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector signed char __a, vector signed char __b) {
3398*344a7f5eSAndroid Build Coastguard Worker int __cc;
3399*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, __b, &__cc);
3400*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3401*344a7f5eSAndroid Build Coastguard Worker }
3402*344a7f5eSAndroid Build Coastguard Worker
3403*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector signed char __a,vector bool char __b)3404*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector signed char __a, vector bool char __b) {
3405*344a7f5eSAndroid Build Coastguard Worker int __cc;
3406*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
3407*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3408*344a7f5eSAndroid Build Coastguard Worker }
3409*344a7f5eSAndroid Build Coastguard Worker
3410*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector bool char __a,vector signed char __b)3411*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector bool char __a, vector signed char __b) {
3412*344a7f5eSAndroid Build Coastguard Worker int __cc;
3413*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
3414*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3415*344a7f5eSAndroid Build Coastguard Worker }
3416*344a7f5eSAndroid Build Coastguard Worker
3417*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned char __a,vector unsigned char __b)3418*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector unsigned char __a, vector unsigned char __b) {
3419*344a7f5eSAndroid Build Coastguard Worker int __cc;
3420*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
3421*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
3422*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3423*344a7f5eSAndroid Build Coastguard Worker }
3424*344a7f5eSAndroid Build Coastguard Worker
3425*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned char __a,vector bool char __b)3426*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector unsigned char __a, vector bool char __b) {
3427*344a7f5eSAndroid Build Coastguard Worker int __cc;
3428*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
3429*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
3430*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3431*344a7f5eSAndroid Build Coastguard Worker }
3432*344a7f5eSAndroid Build Coastguard Worker
3433*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector bool char __a,vector unsigned char __b)3434*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector bool char __a, vector unsigned char __b) {
3435*344a7f5eSAndroid Build Coastguard Worker int __cc;
3436*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
3437*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
3438*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3439*344a7f5eSAndroid Build Coastguard Worker }
3440*344a7f5eSAndroid Build Coastguard Worker
3441*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector bool char __a,vector bool char __b)3442*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector bool char __a, vector bool char __b) {
3443*344a7f5eSAndroid Build Coastguard Worker int __cc;
3444*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
3445*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
3446*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3447*344a7f5eSAndroid Build Coastguard Worker }
3448*344a7f5eSAndroid Build Coastguard Worker
3449*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector signed short __a,vector signed short __b)3450*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector signed short __a, vector signed short __b) {
3451*344a7f5eSAndroid Build Coastguard Worker int __cc;
3452*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, __b, &__cc);
3453*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3454*344a7f5eSAndroid Build Coastguard Worker }
3455*344a7f5eSAndroid Build Coastguard Worker
3456*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector signed short __a,vector bool short __b)3457*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector signed short __a, vector bool short __b) {
3458*344a7f5eSAndroid Build Coastguard Worker int __cc;
3459*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
3460*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3461*344a7f5eSAndroid Build Coastguard Worker }
3462*344a7f5eSAndroid Build Coastguard Worker
3463*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector bool short __a,vector signed short __b)3464*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector bool short __a, vector signed short __b) {
3465*344a7f5eSAndroid Build Coastguard Worker int __cc;
3466*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
3467*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3468*344a7f5eSAndroid Build Coastguard Worker }
3469*344a7f5eSAndroid Build Coastguard Worker
3470*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned short __a,vector unsigned short __b)3471*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector unsigned short __a, vector unsigned short __b) {
3472*344a7f5eSAndroid Build Coastguard Worker int __cc;
3473*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
3474*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
3475*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3476*344a7f5eSAndroid Build Coastguard Worker }
3477*344a7f5eSAndroid Build Coastguard Worker
3478*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned short __a,vector bool short __b)3479*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector unsigned short __a, vector bool short __b) {
3480*344a7f5eSAndroid Build Coastguard Worker int __cc;
3481*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
3482*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
3483*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3484*344a7f5eSAndroid Build Coastguard Worker }
3485*344a7f5eSAndroid Build Coastguard Worker
3486*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector bool short __a,vector unsigned short __b)3487*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector bool short __a, vector unsigned short __b) {
3488*344a7f5eSAndroid Build Coastguard Worker int __cc;
3489*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
3490*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
3491*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3492*344a7f5eSAndroid Build Coastguard Worker }
3493*344a7f5eSAndroid Build Coastguard Worker
3494*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector bool short __a,vector bool short __b)3495*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector bool short __a, vector bool short __b) {
3496*344a7f5eSAndroid Build Coastguard Worker int __cc;
3497*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
3498*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
3499*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3500*344a7f5eSAndroid Build Coastguard Worker }
3501*344a7f5eSAndroid Build Coastguard Worker
3502*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector signed int __a,vector signed int __b)3503*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector signed int __a, vector signed int __b) {
3504*344a7f5eSAndroid Build Coastguard Worker int __cc;
3505*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, __b, &__cc);
3506*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3507*344a7f5eSAndroid Build Coastguard Worker }
3508*344a7f5eSAndroid Build Coastguard Worker
3509*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector signed int __a,vector bool int __b)3510*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector signed int __a, vector bool int __b) {
3511*344a7f5eSAndroid Build Coastguard Worker int __cc;
3512*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
3513*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3514*344a7f5eSAndroid Build Coastguard Worker }
3515*344a7f5eSAndroid Build Coastguard Worker
3516*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector bool int __a,vector signed int __b)3517*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector bool int __a, vector signed int __b) {
3518*344a7f5eSAndroid Build Coastguard Worker int __cc;
3519*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
3520*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3521*344a7f5eSAndroid Build Coastguard Worker }
3522*344a7f5eSAndroid Build Coastguard Worker
3523*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned int __a,vector unsigned int __b)3524*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector unsigned int __a, vector unsigned int __b) {
3525*344a7f5eSAndroid Build Coastguard Worker int __cc;
3526*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
3527*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
3528*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3529*344a7f5eSAndroid Build Coastguard Worker }
3530*344a7f5eSAndroid Build Coastguard Worker
3531*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned int __a,vector bool int __b)3532*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector unsigned int __a, vector bool int __b) {
3533*344a7f5eSAndroid Build Coastguard Worker int __cc;
3534*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
3535*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
3536*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3537*344a7f5eSAndroid Build Coastguard Worker }
3538*344a7f5eSAndroid Build Coastguard Worker
3539*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector bool int __a,vector unsigned int __b)3540*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector bool int __a, vector unsigned int __b) {
3541*344a7f5eSAndroid Build Coastguard Worker int __cc;
3542*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
3543*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
3544*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3545*344a7f5eSAndroid Build Coastguard Worker }
3546*344a7f5eSAndroid Build Coastguard Worker
3547*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector bool int __a,vector bool int __b)3548*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector bool int __a, vector bool int __b) {
3549*344a7f5eSAndroid Build Coastguard Worker int __cc;
3550*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
3551*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
3552*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3553*344a7f5eSAndroid Build Coastguard Worker }
3554*344a7f5eSAndroid Build Coastguard Worker
3555*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector signed long long __a,vector signed long long __b)3556*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector signed long long __a, vector signed long long __b) {
3557*344a7f5eSAndroid Build Coastguard Worker int __cc;
3558*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, __b, &__cc);
3559*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3560*344a7f5eSAndroid Build Coastguard Worker }
3561*344a7f5eSAndroid Build Coastguard Worker
3562*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector signed long long __a,vector bool long long __b)3563*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector signed long long __a, vector bool long long __b) {
3564*344a7f5eSAndroid Build Coastguard Worker int __cc;
3565*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
3566*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3567*344a7f5eSAndroid Build Coastguard Worker }
3568*344a7f5eSAndroid Build Coastguard Worker
3569*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector bool long long __a,vector signed long long __b)3570*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector bool long long __a, vector signed long long __b) {
3571*344a7f5eSAndroid Build Coastguard Worker int __cc;
3572*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
3573*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3574*344a7f5eSAndroid Build Coastguard Worker }
3575*344a7f5eSAndroid Build Coastguard Worker
3576*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned long long __a,vector unsigned long long __b)3577*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector unsigned long long __a, vector unsigned long long __b) {
3578*344a7f5eSAndroid Build Coastguard Worker int __cc;
3579*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
3580*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
3581*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3582*344a7f5eSAndroid Build Coastguard Worker }
3583*344a7f5eSAndroid Build Coastguard Worker
3584*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned long long __a,vector bool long long __b)3585*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector unsigned long long __a, vector bool long long __b) {
3586*344a7f5eSAndroid Build Coastguard Worker int __cc;
3587*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
3588*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
3589*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3590*344a7f5eSAndroid Build Coastguard Worker }
3591*344a7f5eSAndroid Build Coastguard Worker
3592*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector bool long long __a,vector unsigned long long __b)3593*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector bool long long __a, vector unsigned long long __b) {
3594*344a7f5eSAndroid Build Coastguard Worker int __cc;
3595*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
3596*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
3597*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3598*344a7f5eSAndroid Build Coastguard Worker }
3599*344a7f5eSAndroid Build Coastguard Worker
3600*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector bool long long __a,vector bool long long __b)3601*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector bool long long __a, vector bool long long __b) {
3602*344a7f5eSAndroid Build Coastguard Worker int __cc;
3603*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
3604*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
3605*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3606*344a7f5eSAndroid Build Coastguard Worker }
3607*344a7f5eSAndroid Build Coastguard Worker
3608*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(vector double __a,vector double __b)3609*344a7f5eSAndroid Build Coastguard Worker vec_any_eq(vector double __a, vector double __b) {
3610*344a7f5eSAndroid Build Coastguard Worker int __cc;
3611*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfcedbs(__a, __b, &__cc);
3612*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
3613*344a7f5eSAndroid Build Coastguard Worker }
3614*344a7f5eSAndroid Build Coastguard Worker
3615*344a7f5eSAndroid Build Coastguard Worker /*-- vec_any_ne -------------------------------------------------------------*/
3616*344a7f5eSAndroid Build Coastguard Worker
3617*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector signed char __a,vector signed char __b)3618*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector signed char __a, vector signed char __b) {
3619*344a7f5eSAndroid Build Coastguard Worker int __cc;
3620*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, __b, &__cc);
3621*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3622*344a7f5eSAndroid Build Coastguard Worker }
3623*344a7f5eSAndroid Build Coastguard Worker
3624*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector signed char __a,vector bool char __b)3625*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector signed char __a, vector bool char __b) {
3626*344a7f5eSAndroid Build Coastguard Worker int __cc;
3627*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
3628*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3629*344a7f5eSAndroid Build Coastguard Worker }
3630*344a7f5eSAndroid Build Coastguard Worker
3631*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector bool char __a,vector signed char __b)3632*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector bool char __a, vector signed char __b) {
3633*344a7f5eSAndroid Build Coastguard Worker int __cc;
3634*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
3635*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3636*344a7f5eSAndroid Build Coastguard Worker }
3637*344a7f5eSAndroid Build Coastguard Worker
3638*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned char __a,vector unsigned char __b)3639*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector unsigned char __a, vector unsigned char __b) {
3640*344a7f5eSAndroid Build Coastguard Worker int __cc;
3641*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
3642*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
3643*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3644*344a7f5eSAndroid Build Coastguard Worker }
3645*344a7f5eSAndroid Build Coastguard Worker
3646*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned char __a,vector bool char __b)3647*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector unsigned char __a, vector bool char __b) {
3648*344a7f5eSAndroid Build Coastguard Worker int __cc;
3649*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
3650*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
3651*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3652*344a7f5eSAndroid Build Coastguard Worker }
3653*344a7f5eSAndroid Build Coastguard Worker
3654*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector bool char __a,vector unsigned char __b)3655*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector bool char __a, vector unsigned char __b) {
3656*344a7f5eSAndroid Build Coastguard Worker int __cc;
3657*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
3658*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
3659*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3660*344a7f5eSAndroid Build Coastguard Worker }
3661*344a7f5eSAndroid Build Coastguard Worker
3662*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector bool char __a,vector bool char __b)3663*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector bool char __a, vector bool char __b) {
3664*344a7f5eSAndroid Build Coastguard Worker int __cc;
3665*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqbs((vector signed char)__a,
3666*344a7f5eSAndroid Build Coastguard Worker (vector signed char)__b, &__cc);
3667*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3668*344a7f5eSAndroid Build Coastguard Worker }
3669*344a7f5eSAndroid Build Coastguard Worker
3670*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector signed short __a,vector signed short __b)3671*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector signed short __a, vector signed short __b) {
3672*344a7f5eSAndroid Build Coastguard Worker int __cc;
3673*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, __b, &__cc);
3674*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3675*344a7f5eSAndroid Build Coastguard Worker }
3676*344a7f5eSAndroid Build Coastguard Worker
3677*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector signed short __a,vector bool short __b)3678*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector signed short __a, vector bool short __b) {
3679*344a7f5eSAndroid Build Coastguard Worker int __cc;
3680*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
3681*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3682*344a7f5eSAndroid Build Coastguard Worker }
3683*344a7f5eSAndroid Build Coastguard Worker
3684*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector bool short __a,vector signed short __b)3685*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector bool short __a, vector signed short __b) {
3686*344a7f5eSAndroid Build Coastguard Worker int __cc;
3687*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
3688*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3689*344a7f5eSAndroid Build Coastguard Worker }
3690*344a7f5eSAndroid Build Coastguard Worker
3691*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned short __a,vector unsigned short __b)3692*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector unsigned short __a, vector unsigned short __b) {
3693*344a7f5eSAndroid Build Coastguard Worker int __cc;
3694*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
3695*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
3696*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3697*344a7f5eSAndroid Build Coastguard Worker }
3698*344a7f5eSAndroid Build Coastguard Worker
3699*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned short __a,vector bool short __b)3700*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector unsigned short __a, vector bool short __b) {
3701*344a7f5eSAndroid Build Coastguard Worker int __cc;
3702*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
3703*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
3704*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3705*344a7f5eSAndroid Build Coastguard Worker }
3706*344a7f5eSAndroid Build Coastguard Worker
3707*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector bool short __a,vector unsigned short __b)3708*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector bool short __a, vector unsigned short __b) {
3709*344a7f5eSAndroid Build Coastguard Worker int __cc;
3710*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
3711*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
3712*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3713*344a7f5eSAndroid Build Coastguard Worker }
3714*344a7f5eSAndroid Build Coastguard Worker
3715*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector bool short __a,vector bool short __b)3716*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector bool short __a, vector bool short __b) {
3717*344a7f5eSAndroid Build Coastguard Worker int __cc;
3718*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqhs((vector signed short)__a,
3719*344a7f5eSAndroid Build Coastguard Worker (vector signed short)__b, &__cc);
3720*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3721*344a7f5eSAndroid Build Coastguard Worker }
3722*344a7f5eSAndroid Build Coastguard Worker
3723*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector signed int __a,vector signed int __b)3724*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector signed int __a, vector signed int __b) {
3725*344a7f5eSAndroid Build Coastguard Worker int __cc;
3726*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, __b, &__cc);
3727*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3728*344a7f5eSAndroid Build Coastguard Worker }
3729*344a7f5eSAndroid Build Coastguard Worker
3730*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector signed int __a,vector bool int __b)3731*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector signed int __a, vector bool int __b) {
3732*344a7f5eSAndroid Build Coastguard Worker int __cc;
3733*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
3734*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3735*344a7f5eSAndroid Build Coastguard Worker }
3736*344a7f5eSAndroid Build Coastguard Worker
3737*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector bool int __a,vector signed int __b)3738*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector bool int __a, vector signed int __b) {
3739*344a7f5eSAndroid Build Coastguard Worker int __cc;
3740*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
3741*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3742*344a7f5eSAndroid Build Coastguard Worker }
3743*344a7f5eSAndroid Build Coastguard Worker
3744*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned int __a,vector unsigned int __b)3745*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector unsigned int __a, vector unsigned int __b) {
3746*344a7f5eSAndroid Build Coastguard Worker int __cc;
3747*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
3748*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
3749*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3750*344a7f5eSAndroid Build Coastguard Worker }
3751*344a7f5eSAndroid Build Coastguard Worker
3752*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned int __a,vector bool int __b)3753*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector unsigned int __a, vector bool int __b) {
3754*344a7f5eSAndroid Build Coastguard Worker int __cc;
3755*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
3756*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
3757*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3758*344a7f5eSAndroid Build Coastguard Worker }
3759*344a7f5eSAndroid Build Coastguard Worker
3760*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector bool int __a,vector unsigned int __b)3761*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector bool int __a, vector unsigned int __b) {
3762*344a7f5eSAndroid Build Coastguard Worker int __cc;
3763*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
3764*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
3765*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3766*344a7f5eSAndroid Build Coastguard Worker }
3767*344a7f5eSAndroid Build Coastguard Worker
3768*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector bool int __a,vector bool int __b)3769*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector bool int __a, vector bool int __b) {
3770*344a7f5eSAndroid Build Coastguard Worker int __cc;
3771*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqfs((vector signed int)__a,
3772*344a7f5eSAndroid Build Coastguard Worker (vector signed int)__b, &__cc);
3773*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3774*344a7f5eSAndroid Build Coastguard Worker }
3775*344a7f5eSAndroid Build Coastguard Worker
3776*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector signed long long __a,vector signed long long __b)3777*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector signed long long __a, vector signed long long __b) {
3778*344a7f5eSAndroid Build Coastguard Worker int __cc;
3779*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, __b, &__cc);
3780*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3781*344a7f5eSAndroid Build Coastguard Worker }
3782*344a7f5eSAndroid Build Coastguard Worker
3783*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector signed long long __a,vector bool long long __b)3784*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector signed long long __a, vector bool long long __b) {
3785*344a7f5eSAndroid Build Coastguard Worker int __cc;
3786*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
3787*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3788*344a7f5eSAndroid Build Coastguard Worker }
3789*344a7f5eSAndroid Build Coastguard Worker
3790*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector bool long long __a,vector signed long long __b)3791*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector bool long long __a, vector signed long long __b) {
3792*344a7f5eSAndroid Build Coastguard Worker int __cc;
3793*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
3794*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3795*344a7f5eSAndroid Build Coastguard Worker }
3796*344a7f5eSAndroid Build Coastguard Worker
3797*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned long long __a,vector unsigned long long __b)3798*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector unsigned long long __a, vector unsigned long long __b) {
3799*344a7f5eSAndroid Build Coastguard Worker int __cc;
3800*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
3801*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
3802*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3803*344a7f5eSAndroid Build Coastguard Worker }
3804*344a7f5eSAndroid Build Coastguard Worker
3805*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned long long __a,vector bool long long __b)3806*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector unsigned long long __a, vector bool long long __b) {
3807*344a7f5eSAndroid Build Coastguard Worker int __cc;
3808*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
3809*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
3810*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3811*344a7f5eSAndroid Build Coastguard Worker }
3812*344a7f5eSAndroid Build Coastguard Worker
3813*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector bool long long __a,vector unsigned long long __b)3814*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector bool long long __a, vector unsigned long long __b) {
3815*344a7f5eSAndroid Build Coastguard Worker int __cc;
3816*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
3817*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
3818*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3819*344a7f5eSAndroid Build Coastguard Worker }
3820*344a7f5eSAndroid Build Coastguard Worker
3821*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector bool long long __a,vector bool long long __b)3822*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector bool long long __a, vector bool long long __b) {
3823*344a7f5eSAndroid Build Coastguard Worker int __cc;
3824*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vceqgs((vector signed long long)__a,
3825*344a7f5eSAndroid Build Coastguard Worker (vector signed long long)__b, &__cc);
3826*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3827*344a7f5eSAndroid Build Coastguard Worker }
3828*344a7f5eSAndroid Build Coastguard Worker
3829*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(vector double __a,vector double __b)3830*344a7f5eSAndroid Build Coastguard Worker vec_any_ne(vector double __a, vector double __b) {
3831*344a7f5eSAndroid Build Coastguard Worker int __cc;
3832*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfcedbs(__a, __b, &__cc);
3833*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3834*344a7f5eSAndroid Build Coastguard Worker }
3835*344a7f5eSAndroid Build Coastguard Worker
3836*344a7f5eSAndroid Build Coastguard Worker /*-- vec_any_ge -------------------------------------------------------------*/
3837*344a7f5eSAndroid Build Coastguard Worker
3838*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector signed char __a,vector signed char __b)3839*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector signed char __a, vector signed char __b) {
3840*344a7f5eSAndroid Build Coastguard Worker int __cc;
3841*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, __a, &__cc);
3842*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3843*344a7f5eSAndroid Build Coastguard Worker }
3844*344a7f5eSAndroid Build Coastguard Worker
3845*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector signed char __a,vector bool char __b)3846*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector signed char __a, vector bool char __b) {
3847*344a7f5eSAndroid Build Coastguard Worker int __cc;
3848*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
3849*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3850*344a7f5eSAndroid Build Coastguard Worker }
3851*344a7f5eSAndroid Build Coastguard Worker
3852*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector bool char __a,vector signed char __b)3853*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector bool char __a, vector signed char __b) {
3854*344a7f5eSAndroid Build Coastguard Worker int __cc;
3855*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
3856*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3857*344a7f5eSAndroid Build Coastguard Worker }
3858*344a7f5eSAndroid Build Coastguard Worker
3859*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned char __a,vector unsigned char __b)3860*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector unsigned char __a, vector unsigned char __b) {
3861*344a7f5eSAndroid Build Coastguard Worker int __cc;
3862*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, __a, &__cc);
3863*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3864*344a7f5eSAndroid Build Coastguard Worker }
3865*344a7f5eSAndroid Build Coastguard Worker
3866*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned char __a,vector bool char __b)3867*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector unsigned char __a, vector bool char __b) {
3868*344a7f5eSAndroid Build Coastguard Worker int __cc;
3869*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
3870*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3871*344a7f5eSAndroid Build Coastguard Worker }
3872*344a7f5eSAndroid Build Coastguard Worker
3873*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector bool char __a,vector unsigned char __b)3874*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector bool char __a, vector unsigned char __b) {
3875*344a7f5eSAndroid Build Coastguard Worker int __cc;
3876*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
3877*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3878*344a7f5eSAndroid Build Coastguard Worker }
3879*344a7f5eSAndroid Build Coastguard Worker
3880*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector bool char __a,vector bool char __b)3881*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector bool char __a, vector bool char __b) {
3882*344a7f5eSAndroid Build Coastguard Worker int __cc;
3883*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__b,
3884*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, &__cc);
3885*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3886*344a7f5eSAndroid Build Coastguard Worker }
3887*344a7f5eSAndroid Build Coastguard Worker
3888*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector signed short __a,vector signed short __b)3889*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector signed short __a, vector signed short __b) {
3890*344a7f5eSAndroid Build Coastguard Worker int __cc;
3891*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, __a, &__cc);
3892*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3893*344a7f5eSAndroid Build Coastguard Worker }
3894*344a7f5eSAndroid Build Coastguard Worker
3895*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector signed short __a,vector bool short __b)3896*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector signed short __a, vector bool short __b) {
3897*344a7f5eSAndroid Build Coastguard Worker int __cc;
3898*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
3899*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3900*344a7f5eSAndroid Build Coastguard Worker }
3901*344a7f5eSAndroid Build Coastguard Worker
3902*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector bool short __a,vector signed short __b)3903*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector bool short __a, vector signed short __b) {
3904*344a7f5eSAndroid Build Coastguard Worker int __cc;
3905*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
3906*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3907*344a7f5eSAndroid Build Coastguard Worker }
3908*344a7f5eSAndroid Build Coastguard Worker
3909*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned short __a,vector unsigned short __b)3910*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector unsigned short __a, vector unsigned short __b) {
3911*344a7f5eSAndroid Build Coastguard Worker int __cc;
3912*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, __a, &__cc);
3913*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3914*344a7f5eSAndroid Build Coastguard Worker }
3915*344a7f5eSAndroid Build Coastguard Worker
3916*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned short __a,vector bool short __b)3917*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector unsigned short __a, vector bool short __b) {
3918*344a7f5eSAndroid Build Coastguard Worker int __cc;
3919*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
3920*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3921*344a7f5eSAndroid Build Coastguard Worker }
3922*344a7f5eSAndroid Build Coastguard Worker
3923*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector bool short __a,vector unsigned short __b)3924*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector bool short __a, vector unsigned short __b) {
3925*344a7f5eSAndroid Build Coastguard Worker int __cc;
3926*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
3927*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3928*344a7f5eSAndroid Build Coastguard Worker }
3929*344a7f5eSAndroid Build Coastguard Worker
3930*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector bool short __a,vector bool short __b)3931*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector bool short __a, vector bool short __b) {
3932*344a7f5eSAndroid Build Coastguard Worker int __cc;
3933*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__b,
3934*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__a, &__cc);
3935*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3936*344a7f5eSAndroid Build Coastguard Worker }
3937*344a7f5eSAndroid Build Coastguard Worker
3938*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector signed int __a,vector signed int __b)3939*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector signed int __a, vector signed int __b) {
3940*344a7f5eSAndroid Build Coastguard Worker int __cc;
3941*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, __a, &__cc);
3942*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3943*344a7f5eSAndroid Build Coastguard Worker }
3944*344a7f5eSAndroid Build Coastguard Worker
3945*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector signed int __a,vector bool int __b)3946*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector signed int __a, vector bool int __b) {
3947*344a7f5eSAndroid Build Coastguard Worker int __cc;
3948*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3949*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3950*344a7f5eSAndroid Build Coastguard Worker }
3951*344a7f5eSAndroid Build Coastguard Worker
3952*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector bool int __a,vector signed int __b)3953*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector bool int __a, vector signed int __b) {
3954*344a7f5eSAndroid Build Coastguard Worker int __cc;
3955*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3956*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3957*344a7f5eSAndroid Build Coastguard Worker }
3958*344a7f5eSAndroid Build Coastguard Worker
3959*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned int __a,vector unsigned int __b)3960*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector unsigned int __a, vector unsigned int __b) {
3961*344a7f5eSAndroid Build Coastguard Worker int __cc;
3962*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, __a, &__cc);
3963*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3964*344a7f5eSAndroid Build Coastguard Worker }
3965*344a7f5eSAndroid Build Coastguard Worker
3966*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned int __a,vector bool int __b)3967*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector unsigned int __a, vector bool int __b) {
3968*344a7f5eSAndroid Build Coastguard Worker int __cc;
3969*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3970*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3971*344a7f5eSAndroid Build Coastguard Worker }
3972*344a7f5eSAndroid Build Coastguard Worker
3973*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector bool int __a,vector unsigned int __b)3974*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector bool int __a, vector unsigned int __b) {
3975*344a7f5eSAndroid Build Coastguard Worker int __cc;
3976*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3977*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3978*344a7f5eSAndroid Build Coastguard Worker }
3979*344a7f5eSAndroid Build Coastguard Worker
3980*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector bool int __a,vector bool int __b)3981*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector bool int __a, vector bool int __b) {
3982*344a7f5eSAndroid Build Coastguard Worker int __cc;
3983*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__b,
3984*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__a, &__cc);
3985*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3986*344a7f5eSAndroid Build Coastguard Worker }
3987*344a7f5eSAndroid Build Coastguard Worker
3988*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector signed long long __a,vector signed long long __b)3989*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector signed long long __a, vector signed long long __b) {
3990*344a7f5eSAndroid Build Coastguard Worker int __cc;
3991*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, __a, &__cc);
3992*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
3993*344a7f5eSAndroid Build Coastguard Worker }
3994*344a7f5eSAndroid Build Coastguard Worker
3995*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector signed long long __a,vector bool long long __b)3996*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector signed long long __a, vector bool long long __b) {
3997*344a7f5eSAndroid Build Coastguard Worker int __cc;
3998*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3999*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4000*344a7f5eSAndroid Build Coastguard Worker }
4001*344a7f5eSAndroid Build Coastguard Worker
4002*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector bool long long __a,vector signed long long __b)4003*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector bool long long __a, vector signed long long __b) {
4004*344a7f5eSAndroid Build Coastguard Worker int __cc;
4005*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
4006*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4007*344a7f5eSAndroid Build Coastguard Worker }
4008*344a7f5eSAndroid Build Coastguard Worker
4009*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned long long __a,vector unsigned long long __b)4010*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector unsigned long long __a, vector unsigned long long __b) {
4011*344a7f5eSAndroid Build Coastguard Worker int __cc;
4012*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, __a, &__cc);
4013*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4014*344a7f5eSAndroid Build Coastguard Worker }
4015*344a7f5eSAndroid Build Coastguard Worker
4016*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned long long __a,vector bool long long __b)4017*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector unsigned long long __a, vector bool long long __b) {
4018*344a7f5eSAndroid Build Coastguard Worker int __cc;
4019*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
4020*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4021*344a7f5eSAndroid Build Coastguard Worker }
4022*344a7f5eSAndroid Build Coastguard Worker
4023*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector bool long long __a,vector unsigned long long __b)4024*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector bool long long __a, vector unsigned long long __b) {
4025*344a7f5eSAndroid Build Coastguard Worker int __cc;
4026*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
4027*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4028*344a7f5eSAndroid Build Coastguard Worker }
4029*344a7f5eSAndroid Build Coastguard Worker
4030*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector bool long long __a,vector bool long long __b)4031*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector bool long long __a, vector bool long long __b) {
4032*344a7f5eSAndroid Build Coastguard Worker int __cc;
4033*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__b,
4034*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__a, &__cc);
4035*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4036*344a7f5eSAndroid Build Coastguard Worker }
4037*344a7f5eSAndroid Build Coastguard Worker
4038*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(vector double __a,vector double __b)4039*344a7f5eSAndroid Build Coastguard Worker vec_any_ge(vector double __a, vector double __b) {
4040*344a7f5eSAndroid Build Coastguard Worker int __cc;
4041*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__a, __b, &__cc);
4042*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4043*344a7f5eSAndroid Build Coastguard Worker }
4044*344a7f5eSAndroid Build Coastguard Worker
4045*344a7f5eSAndroid Build Coastguard Worker /*-- vec_any_gt -------------------------------------------------------------*/
4046*344a7f5eSAndroid Build Coastguard Worker
4047*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector signed char __a,vector signed char __b)4048*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector signed char __a, vector signed char __b) {
4049*344a7f5eSAndroid Build Coastguard Worker int __cc;
4050*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, __b, &__cc);
4051*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4052*344a7f5eSAndroid Build Coastguard Worker }
4053*344a7f5eSAndroid Build Coastguard Worker
4054*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector signed char __a,vector bool char __b)4055*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector signed char __a, vector bool char __b) {
4056*344a7f5eSAndroid Build Coastguard Worker int __cc;
4057*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
4058*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4059*344a7f5eSAndroid Build Coastguard Worker }
4060*344a7f5eSAndroid Build Coastguard Worker
4061*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector bool char __a,vector signed char __b)4062*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector bool char __a, vector signed char __b) {
4063*344a7f5eSAndroid Build Coastguard Worker int __cc;
4064*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
4065*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4066*344a7f5eSAndroid Build Coastguard Worker }
4067*344a7f5eSAndroid Build Coastguard Worker
4068*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned char __a,vector unsigned char __b)4069*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector unsigned char __a, vector unsigned char __b) {
4070*344a7f5eSAndroid Build Coastguard Worker int __cc;
4071*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, __b, &__cc);
4072*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4073*344a7f5eSAndroid Build Coastguard Worker }
4074*344a7f5eSAndroid Build Coastguard Worker
4075*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned char __a,vector bool char __b)4076*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector unsigned char __a, vector bool char __b) {
4077*344a7f5eSAndroid Build Coastguard Worker int __cc;
4078*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
4079*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4080*344a7f5eSAndroid Build Coastguard Worker }
4081*344a7f5eSAndroid Build Coastguard Worker
4082*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector bool char __a,vector unsigned char __b)4083*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector bool char __a, vector unsigned char __b) {
4084*344a7f5eSAndroid Build Coastguard Worker int __cc;
4085*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
4086*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4087*344a7f5eSAndroid Build Coastguard Worker }
4088*344a7f5eSAndroid Build Coastguard Worker
4089*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector bool char __a,vector bool char __b)4090*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector bool char __a, vector bool char __b) {
4091*344a7f5eSAndroid Build Coastguard Worker int __cc;
4092*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__a,
4093*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, &__cc);
4094*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4095*344a7f5eSAndroid Build Coastguard Worker }
4096*344a7f5eSAndroid Build Coastguard Worker
4097*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector signed short __a,vector signed short __b)4098*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector signed short __a, vector signed short __b) {
4099*344a7f5eSAndroid Build Coastguard Worker int __cc;
4100*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, __b, &__cc);
4101*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4102*344a7f5eSAndroid Build Coastguard Worker }
4103*344a7f5eSAndroid Build Coastguard Worker
4104*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector signed short __a,vector bool short __b)4105*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector signed short __a, vector bool short __b) {
4106*344a7f5eSAndroid Build Coastguard Worker int __cc;
4107*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
4108*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4109*344a7f5eSAndroid Build Coastguard Worker }
4110*344a7f5eSAndroid Build Coastguard Worker
4111*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector bool short __a,vector signed short __b)4112*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector bool short __a, vector signed short __b) {
4113*344a7f5eSAndroid Build Coastguard Worker int __cc;
4114*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
4115*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4116*344a7f5eSAndroid Build Coastguard Worker }
4117*344a7f5eSAndroid Build Coastguard Worker
4118*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned short __a,vector unsigned short __b)4119*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector unsigned short __a, vector unsigned short __b) {
4120*344a7f5eSAndroid Build Coastguard Worker int __cc;
4121*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, __b, &__cc);
4122*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4123*344a7f5eSAndroid Build Coastguard Worker }
4124*344a7f5eSAndroid Build Coastguard Worker
4125*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned short __a,vector bool short __b)4126*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector unsigned short __a, vector bool short __b) {
4127*344a7f5eSAndroid Build Coastguard Worker int __cc;
4128*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
4129*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4130*344a7f5eSAndroid Build Coastguard Worker }
4131*344a7f5eSAndroid Build Coastguard Worker
4132*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector bool short __a,vector unsigned short __b)4133*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector bool short __a, vector unsigned short __b) {
4134*344a7f5eSAndroid Build Coastguard Worker int __cc;
4135*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
4136*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4137*344a7f5eSAndroid Build Coastguard Worker }
4138*344a7f5eSAndroid Build Coastguard Worker
4139*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector bool short __a,vector bool short __b)4140*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector bool short __a, vector bool short __b) {
4141*344a7f5eSAndroid Build Coastguard Worker int __cc;
4142*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__a,
4143*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, &__cc);
4144*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4145*344a7f5eSAndroid Build Coastguard Worker }
4146*344a7f5eSAndroid Build Coastguard Worker
4147*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector signed int __a,vector signed int __b)4148*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector signed int __a, vector signed int __b) {
4149*344a7f5eSAndroid Build Coastguard Worker int __cc;
4150*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, __b, &__cc);
4151*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4152*344a7f5eSAndroid Build Coastguard Worker }
4153*344a7f5eSAndroid Build Coastguard Worker
4154*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector signed int __a,vector bool int __b)4155*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector signed int __a, vector bool int __b) {
4156*344a7f5eSAndroid Build Coastguard Worker int __cc;
4157*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
4158*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4159*344a7f5eSAndroid Build Coastguard Worker }
4160*344a7f5eSAndroid Build Coastguard Worker
4161*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector bool int __a,vector signed int __b)4162*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector bool int __a, vector signed int __b) {
4163*344a7f5eSAndroid Build Coastguard Worker int __cc;
4164*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
4165*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4166*344a7f5eSAndroid Build Coastguard Worker }
4167*344a7f5eSAndroid Build Coastguard Worker
4168*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned int __a,vector unsigned int __b)4169*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector unsigned int __a, vector unsigned int __b) {
4170*344a7f5eSAndroid Build Coastguard Worker int __cc;
4171*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, __b, &__cc);
4172*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4173*344a7f5eSAndroid Build Coastguard Worker }
4174*344a7f5eSAndroid Build Coastguard Worker
4175*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned int __a,vector bool int __b)4176*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector unsigned int __a, vector bool int __b) {
4177*344a7f5eSAndroid Build Coastguard Worker int __cc;
4178*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
4179*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4180*344a7f5eSAndroid Build Coastguard Worker }
4181*344a7f5eSAndroid Build Coastguard Worker
4182*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector bool int __a,vector unsigned int __b)4183*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector bool int __a, vector unsigned int __b) {
4184*344a7f5eSAndroid Build Coastguard Worker int __cc;
4185*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
4186*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4187*344a7f5eSAndroid Build Coastguard Worker }
4188*344a7f5eSAndroid Build Coastguard Worker
4189*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector bool int __a,vector bool int __b)4190*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector bool int __a, vector bool int __b) {
4191*344a7f5eSAndroid Build Coastguard Worker int __cc;
4192*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__a,
4193*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, &__cc);
4194*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4195*344a7f5eSAndroid Build Coastguard Worker }
4196*344a7f5eSAndroid Build Coastguard Worker
4197*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector signed long long __a,vector signed long long __b)4198*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector signed long long __a, vector signed long long __b) {
4199*344a7f5eSAndroid Build Coastguard Worker int __cc;
4200*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, __b, &__cc);
4201*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4202*344a7f5eSAndroid Build Coastguard Worker }
4203*344a7f5eSAndroid Build Coastguard Worker
4204*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector signed long long __a,vector bool long long __b)4205*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector signed long long __a, vector bool long long __b) {
4206*344a7f5eSAndroid Build Coastguard Worker int __cc;
4207*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
4208*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4209*344a7f5eSAndroid Build Coastguard Worker }
4210*344a7f5eSAndroid Build Coastguard Worker
4211*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector bool long long __a,vector signed long long __b)4212*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector bool long long __a, vector signed long long __b) {
4213*344a7f5eSAndroid Build Coastguard Worker int __cc;
4214*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
4215*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4216*344a7f5eSAndroid Build Coastguard Worker }
4217*344a7f5eSAndroid Build Coastguard Worker
4218*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned long long __a,vector unsigned long long __b)4219*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector unsigned long long __a, vector unsigned long long __b) {
4220*344a7f5eSAndroid Build Coastguard Worker int __cc;
4221*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, __b, &__cc);
4222*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4223*344a7f5eSAndroid Build Coastguard Worker }
4224*344a7f5eSAndroid Build Coastguard Worker
4225*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned long long __a,vector bool long long __b)4226*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector unsigned long long __a, vector bool long long __b) {
4227*344a7f5eSAndroid Build Coastguard Worker int __cc;
4228*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
4229*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4230*344a7f5eSAndroid Build Coastguard Worker }
4231*344a7f5eSAndroid Build Coastguard Worker
4232*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector bool long long __a,vector unsigned long long __b)4233*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector bool long long __a, vector unsigned long long __b) {
4234*344a7f5eSAndroid Build Coastguard Worker int __cc;
4235*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
4236*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4237*344a7f5eSAndroid Build Coastguard Worker }
4238*344a7f5eSAndroid Build Coastguard Worker
4239*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector bool long long __a,vector bool long long __b)4240*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector bool long long __a, vector bool long long __b) {
4241*344a7f5eSAndroid Build Coastguard Worker int __cc;
4242*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__a,
4243*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__b, &__cc);
4244*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4245*344a7f5eSAndroid Build Coastguard Worker }
4246*344a7f5eSAndroid Build Coastguard Worker
4247*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(vector double __a,vector double __b)4248*344a7f5eSAndroid Build Coastguard Worker vec_any_gt(vector double __a, vector double __b) {
4249*344a7f5eSAndroid Build Coastguard Worker int __cc;
4250*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__a, __b, &__cc);
4251*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4252*344a7f5eSAndroid Build Coastguard Worker }
4253*344a7f5eSAndroid Build Coastguard Worker
4254*344a7f5eSAndroid Build Coastguard Worker /*-- vec_any_le -------------------------------------------------------------*/
4255*344a7f5eSAndroid Build Coastguard Worker
4256*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector signed char __a,vector signed char __b)4257*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector signed char __a, vector signed char __b) {
4258*344a7f5eSAndroid Build Coastguard Worker int __cc;
4259*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, __b, &__cc);
4260*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4261*344a7f5eSAndroid Build Coastguard Worker }
4262*344a7f5eSAndroid Build Coastguard Worker
4263*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector signed char __a,vector bool char __b)4264*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector signed char __a, vector bool char __b) {
4265*344a7f5eSAndroid Build Coastguard Worker int __cc;
4266*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
4267*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4268*344a7f5eSAndroid Build Coastguard Worker }
4269*344a7f5eSAndroid Build Coastguard Worker
4270*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector bool char __a,vector signed char __b)4271*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector bool char __a, vector signed char __b) {
4272*344a7f5eSAndroid Build Coastguard Worker int __cc;
4273*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
4274*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4275*344a7f5eSAndroid Build Coastguard Worker }
4276*344a7f5eSAndroid Build Coastguard Worker
4277*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector unsigned char __a,vector unsigned char __b)4278*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector unsigned char __a, vector unsigned char __b) {
4279*344a7f5eSAndroid Build Coastguard Worker int __cc;
4280*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, __b, &__cc);
4281*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4282*344a7f5eSAndroid Build Coastguard Worker }
4283*344a7f5eSAndroid Build Coastguard Worker
4284*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector unsigned char __a,vector bool char __b)4285*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector unsigned char __a, vector bool char __b) {
4286*344a7f5eSAndroid Build Coastguard Worker int __cc;
4287*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
4288*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4289*344a7f5eSAndroid Build Coastguard Worker }
4290*344a7f5eSAndroid Build Coastguard Worker
4291*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector bool char __a,vector unsigned char __b)4292*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector bool char __a, vector unsigned char __b) {
4293*344a7f5eSAndroid Build Coastguard Worker int __cc;
4294*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
4295*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4296*344a7f5eSAndroid Build Coastguard Worker }
4297*344a7f5eSAndroid Build Coastguard Worker
4298*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector bool char __a,vector bool char __b)4299*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector bool char __a, vector bool char __b) {
4300*344a7f5eSAndroid Build Coastguard Worker int __cc;
4301*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__a,
4302*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, &__cc);
4303*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4304*344a7f5eSAndroid Build Coastguard Worker }
4305*344a7f5eSAndroid Build Coastguard Worker
4306*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector signed short __a,vector signed short __b)4307*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector signed short __a, vector signed short __b) {
4308*344a7f5eSAndroid Build Coastguard Worker int __cc;
4309*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, __b, &__cc);
4310*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4311*344a7f5eSAndroid Build Coastguard Worker }
4312*344a7f5eSAndroid Build Coastguard Worker
4313*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector signed short __a,vector bool short __b)4314*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector signed short __a, vector bool short __b) {
4315*344a7f5eSAndroid Build Coastguard Worker int __cc;
4316*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
4317*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4318*344a7f5eSAndroid Build Coastguard Worker }
4319*344a7f5eSAndroid Build Coastguard Worker
4320*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector bool short __a,vector signed short __b)4321*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector bool short __a, vector signed short __b) {
4322*344a7f5eSAndroid Build Coastguard Worker int __cc;
4323*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
4324*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4325*344a7f5eSAndroid Build Coastguard Worker }
4326*344a7f5eSAndroid Build Coastguard Worker
4327*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector unsigned short __a,vector unsigned short __b)4328*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector unsigned short __a, vector unsigned short __b) {
4329*344a7f5eSAndroid Build Coastguard Worker int __cc;
4330*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, __b, &__cc);
4331*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4332*344a7f5eSAndroid Build Coastguard Worker }
4333*344a7f5eSAndroid Build Coastguard Worker
4334*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector unsigned short __a,vector bool short __b)4335*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector unsigned short __a, vector bool short __b) {
4336*344a7f5eSAndroid Build Coastguard Worker int __cc;
4337*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
4338*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4339*344a7f5eSAndroid Build Coastguard Worker }
4340*344a7f5eSAndroid Build Coastguard Worker
4341*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector bool short __a,vector unsigned short __b)4342*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector bool short __a, vector unsigned short __b) {
4343*344a7f5eSAndroid Build Coastguard Worker int __cc;
4344*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
4345*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4346*344a7f5eSAndroid Build Coastguard Worker }
4347*344a7f5eSAndroid Build Coastguard Worker
4348*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector bool short __a,vector bool short __b)4349*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector bool short __a, vector bool short __b) {
4350*344a7f5eSAndroid Build Coastguard Worker int __cc;
4351*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__a,
4352*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, &__cc);
4353*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4354*344a7f5eSAndroid Build Coastguard Worker }
4355*344a7f5eSAndroid Build Coastguard Worker
4356*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector signed int __a,vector signed int __b)4357*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector signed int __a, vector signed int __b) {
4358*344a7f5eSAndroid Build Coastguard Worker int __cc;
4359*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, __b, &__cc);
4360*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4361*344a7f5eSAndroid Build Coastguard Worker }
4362*344a7f5eSAndroid Build Coastguard Worker
4363*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector signed int __a,vector bool int __b)4364*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector signed int __a, vector bool int __b) {
4365*344a7f5eSAndroid Build Coastguard Worker int __cc;
4366*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
4367*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4368*344a7f5eSAndroid Build Coastguard Worker }
4369*344a7f5eSAndroid Build Coastguard Worker
4370*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector bool int __a,vector signed int __b)4371*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector bool int __a, vector signed int __b) {
4372*344a7f5eSAndroid Build Coastguard Worker int __cc;
4373*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
4374*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4375*344a7f5eSAndroid Build Coastguard Worker }
4376*344a7f5eSAndroid Build Coastguard Worker
4377*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector unsigned int __a,vector unsigned int __b)4378*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector unsigned int __a, vector unsigned int __b) {
4379*344a7f5eSAndroid Build Coastguard Worker int __cc;
4380*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, __b, &__cc);
4381*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4382*344a7f5eSAndroid Build Coastguard Worker }
4383*344a7f5eSAndroid Build Coastguard Worker
4384*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector unsigned int __a,vector bool int __b)4385*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector unsigned int __a, vector bool int __b) {
4386*344a7f5eSAndroid Build Coastguard Worker int __cc;
4387*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
4388*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4389*344a7f5eSAndroid Build Coastguard Worker }
4390*344a7f5eSAndroid Build Coastguard Worker
4391*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector bool int __a,vector unsigned int __b)4392*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector bool int __a, vector unsigned int __b) {
4393*344a7f5eSAndroid Build Coastguard Worker int __cc;
4394*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
4395*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4396*344a7f5eSAndroid Build Coastguard Worker }
4397*344a7f5eSAndroid Build Coastguard Worker
4398*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector bool int __a,vector bool int __b)4399*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector bool int __a, vector bool int __b) {
4400*344a7f5eSAndroid Build Coastguard Worker int __cc;
4401*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__a,
4402*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, &__cc);
4403*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4404*344a7f5eSAndroid Build Coastguard Worker }
4405*344a7f5eSAndroid Build Coastguard Worker
4406*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector signed long long __a,vector signed long long __b)4407*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector signed long long __a, vector signed long long __b) {
4408*344a7f5eSAndroid Build Coastguard Worker int __cc;
4409*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, __b, &__cc);
4410*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4411*344a7f5eSAndroid Build Coastguard Worker }
4412*344a7f5eSAndroid Build Coastguard Worker
4413*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector signed long long __a,vector bool long long __b)4414*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector signed long long __a, vector bool long long __b) {
4415*344a7f5eSAndroid Build Coastguard Worker int __cc;
4416*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
4417*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4418*344a7f5eSAndroid Build Coastguard Worker }
4419*344a7f5eSAndroid Build Coastguard Worker
4420*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector bool long long __a,vector signed long long __b)4421*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector bool long long __a, vector signed long long __b) {
4422*344a7f5eSAndroid Build Coastguard Worker int __cc;
4423*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
4424*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4425*344a7f5eSAndroid Build Coastguard Worker }
4426*344a7f5eSAndroid Build Coastguard Worker
4427*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector unsigned long long __a,vector unsigned long long __b)4428*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector unsigned long long __a, vector unsigned long long __b) {
4429*344a7f5eSAndroid Build Coastguard Worker int __cc;
4430*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, __b, &__cc);
4431*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4432*344a7f5eSAndroid Build Coastguard Worker }
4433*344a7f5eSAndroid Build Coastguard Worker
4434*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector unsigned long long __a,vector bool long long __b)4435*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector unsigned long long __a, vector bool long long __b) {
4436*344a7f5eSAndroid Build Coastguard Worker int __cc;
4437*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
4438*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4439*344a7f5eSAndroid Build Coastguard Worker }
4440*344a7f5eSAndroid Build Coastguard Worker
4441*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector bool long long __a,vector unsigned long long __b)4442*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector bool long long __a, vector unsigned long long __b) {
4443*344a7f5eSAndroid Build Coastguard Worker int __cc;
4444*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
4445*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4446*344a7f5eSAndroid Build Coastguard Worker }
4447*344a7f5eSAndroid Build Coastguard Worker
4448*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector bool long long __a,vector bool long long __b)4449*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector bool long long __a, vector bool long long __b) {
4450*344a7f5eSAndroid Build Coastguard Worker int __cc;
4451*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__a,
4452*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__b, &__cc);
4453*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4454*344a7f5eSAndroid Build Coastguard Worker }
4455*344a7f5eSAndroid Build Coastguard Worker
4456*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(vector double __a,vector double __b)4457*344a7f5eSAndroid Build Coastguard Worker vec_any_le(vector double __a, vector double __b) {
4458*344a7f5eSAndroid Build Coastguard Worker int __cc;
4459*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__b, __a, &__cc);
4460*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4461*344a7f5eSAndroid Build Coastguard Worker }
4462*344a7f5eSAndroid Build Coastguard Worker
4463*344a7f5eSAndroid Build Coastguard Worker /*-- vec_any_lt -------------------------------------------------------------*/
4464*344a7f5eSAndroid Build Coastguard Worker
4465*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector signed char __a,vector signed char __b)4466*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector signed char __a, vector signed char __b) {
4467*344a7f5eSAndroid Build Coastguard Worker int __cc;
4468*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, __a, &__cc);
4469*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4470*344a7f5eSAndroid Build Coastguard Worker }
4471*344a7f5eSAndroid Build Coastguard Worker
4472*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector signed char __a,vector bool char __b)4473*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector signed char __a, vector bool char __b) {
4474*344a7f5eSAndroid Build Coastguard Worker int __cc;
4475*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
4476*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4477*344a7f5eSAndroid Build Coastguard Worker }
4478*344a7f5eSAndroid Build Coastguard Worker
4479*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector bool char __a,vector signed char __b)4480*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector bool char __a, vector signed char __b) {
4481*344a7f5eSAndroid Build Coastguard Worker int __cc;
4482*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
4483*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4484*344a7f5eSAndroid Build Coastguard Worker }
4485*344a7f5eSAndroid Build Coastguard Worker
4486*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned char __a,vector unsigned char __b)4487*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector unsigned char __a, vector unsigned char __b) {
4488*344a7f5eSAndroid Build Coastguard Worker int __cc;
4489*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, __a, &__cc);
4490*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4491*344a7f5eSAndroid Build Coastguard Worker }
4492*344a7f5eSAndroid Build Coastguard Worker
4493*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned char __a,vector bool char __b)4494*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector unsigned char __a, vector bool char __b) {
4495*344a7f5eSAndroid Build Coastguard Worker int __cc;
4496*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
4497*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4498*344a7f5eSAndroid Build Coastguard Worker }
4499*344a7f5eSAndroid Build Coastguard Worker
4500*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector bool char __a,vector unsigned char __b)4501*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector bool char __a, vector unsigned char __b) {
4502*344a7f5eSAndroid Build Coastguard Worker int __cc;
4503*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
4504*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4505*344a7f5eSAndroid Build Coastguard Worker }
4506*344a7f5eSAndroid Build Coastguard Worker
4507*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector bool char __a,vector bool char __b)4508*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector bool char __a, vector bool char __b) {
4509*344a7f5eSAndroid Build Coastguard Worker int __cc;
4510*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlbs((vector unsigned char)__b,
4511*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, &__cc);
4512*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4513*344a7f5eSAndroid Build Coastguard Worker }
4514*344a7f5eSAndroid Build Coastguard Worker
4515*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector signed short __a,vector signed short __b)4516*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector signed short __a, vector signed short __b) {
4517*344a7f5eSAndroid Build Coastguard Worker int __cc;
4518*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, __a, &__cc);
4519*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4520*344a7f5eSAndroid Build Coastguard Worker }
4521*344a7f5eSAndroid Build Coastguard Worker
4522*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector signed short __a,vector bool short __b)4523*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector signed short __a, vector bool short __b) {
4524*344a7f5eSAndroid Build Coastguard Worker int __cc;
4525*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
4526*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4527*344a7f5eSAndroid Build Coastguard Worker }
4528*344a7f5eSAndroid Build Coastguard Worker
4529*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector bool short __a,vector signed short __b)4530*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector bool short __a, vector signed short __b) {
4531*344a7f5eSAndroid Build Coastguard Worker int __cc;
4532*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
4533*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4534*344a7f5eSAndroid Build Coastguard Worker }
4535*344a7f5eSAndroid Build Coastguard Worker
4536*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned short __a,vector unsigned short __b)4537*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector unsigned short __a, vector unsigned short __b) {
4538*344a7f5eSAndroid Build Coastguard Worker int __cc;
4539*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, __a, &__cc);
4540*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4541*344a7f5eSAndroid Build Coastguard Worker }
4542*344a7f5eSAndroid Build Coastguard Worker
4543*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned short __a,vector bool short __b)4544*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector unsigned short __a, vector bool short __b) {
4545*344a7f5eSAndroid Build Coastguard Worker int __cc;
4546*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
4547*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4548*344a7f5eSAndroid Build Coastguard Worker }
4549*344a7f5eSAndroid Build Coastguard Worker
4550*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector bool short __a,vector unsigned short __b)4551*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector bool short __a, vector unsigned short __b) {
4552*344a7f5eSAndroid Build Coastguard Worker int __cc;
4553*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
4554*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4555*344a7f5eSAndroid Build Coastguard Worker }
4556*344a7f5eSAndroid Build Coastguard Worker
4557*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector bool short __a,vector bool short __b)4558*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector bool short __a, vector bool short __b) {
4559*344a7f5eSAndroid Build Coastguard Worker int __cc;
4560*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlhs((vector unsigned short)__b,
4561*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__a, &__cc);
4562*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4563*344a7f5eSAndroid Build Coastguard Worker }
4564*344a7f5eSAndroid Build Coastguard Worker
4565*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector signed int __a,vector signed int __b)4566*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector signed int __a, vector signed int __b) {
4567*344a7f5eSAndroid Build Coastguard Worker int __cc;
4568*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, __a, &__cc);
4569*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4570*344a7f5eSAndroid Build Coastguard Worker }
4571*344a7f5eSAndroid Build Coastguard Worker
4572*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector signed int __a,vector bool int __b)4573*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector signed int __a, vector bool int __b) {
4574*344a7f5eSAndroid Build Coastguard Worker int __cc;
4575*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
4576*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4577*344a7f5eSAndroid Build Coastguard Worker }
4578*344a7f5eSAndroid Build Coastguard Worker
4579*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector bool int __a,vector signed int __b)4580*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector bool int __a, vector signed int __b) {
4581*344a7f5eSAndroid Build Coastguard Worker int __cc;
4582*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
4583*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4584*344a7f5eSAndroid Build Coastguard Worker }
4585*344a7f5eSAndroid Build Coastguard Worker
4586*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned int __a,vector unsigned int __b)4587*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector unsigned int __a, vector unsigned int __b) {
4588*344a7f5eSAndroid Build Coastguard Worker int __cc;
4589*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, __a, &__cc);
4590*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4591*344a7f5eSAndroid Build Coastguard Worker }
4592*344a7f5eSAndroid Build Coastguard Worker
4593*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned int __a,vector bool int __b)4594*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector unsigned int __a, vector bool int __b) {
4595*344a7f5eSAndroid Build Coastguard Worker int __cc;
4596*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
4597*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4598*344a7f5eSAndroid Build Coastguard Worker }
4599*344a7f5eSAndroid Build Coastguard Worker
4600*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector bool int __a,vector unsigned int __b)4601*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector bool int __a, vector unsigned int __b) {
4602*344a7f5eSAndroid Build Coastguard Worker int __cc;
4603*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
4604*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4605*344a7f5eSAndroid Build Coastguard Worker }
4606*344a7f5eSAndroid Build Coastguard Worker
4607*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector bool int __a,vector bool int __b)4608*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector bool int __a, vector bool int __b) {
4609*344a7f5eSAndroid Build Coastguard Worker int __cc;
4610*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlfs((vector unsigned int)__b,
4611*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__a, &__cc);
4612*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4613*344a7f5eSAndroid Build Coastguard Worker }
4614*344a7f5eSAndroid Build Coastguard Worker
4615*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector signed long long __a,vector signed long long __b)4616*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector signed long long __a, vector signed long long __b) {
4617*344a7f5eSAndroid Build Coastguard Worker int __cc;
4618*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, __a, &__cc);
4619*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4620*344a7f5eSAndroid Build Coastguard Worker }
4621*344a7f5eSAndroid Build Coastguard Worker
4622*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector signed long long __a,vector bool long long __b)4623*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector signed long long __a, vector bool long long __b) {
4624*344a7f5eSAndroid Build Coastguard Worker int __cc;
4625*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
4626*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4627*344a7f5eSAndroid Build Coastguard Worker }
4628*344a7f5eSAndroid Build Coastguard Worker
4629*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector bool long long __a,vector signed long long __b)4630*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector bool long long __a, vector signed long long __b) {
4631*344a7f5eSAndroid Build Coastguard Worker int __cc;
4632*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
4633*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4634*344a7f5eSAndroid Build Coastguard Worker }
4635*344a7f5eSAndroid Build Coastguard Worker
4636*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned long long __a,vector unsigned long long __b)4637*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector unsigned long long __a, vector unsigned long long __b) {
4638*344a7f5eSAndroid Build Coastguard Worker int __cc;
4639*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, __a, &__cc);
4640*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4641*344a7f5eSAndroid Build Coastguard Worker }
4642*344a7f5eSAndroid Build Coastguard Worker
4643*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned long long __a,vector bool long long __b)4644*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector unsigned long long __a, vector bool long long __b) {
4645*344a7f5eSAndroid Build Coastguard Worker int __cc;
4646*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
4647*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4648*344a7f5eSAndroid Build Coastguard Worker }
4649*344a7f5eSAndroid Build Coastguard Worker
4650*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector bool long long __a,vector unsigned long long __b)4651*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector bool long long __a, vector unsigned long long __b) {
4652*344a7f5eSAndroid Build Coastguard Worker int __cc;
4653*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
4654*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4655*344a7f5eSAndroid Build Coastguard Worker }
4656*344a7f5eSAndroid Build Coastguard Worker
4657*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector bool long long __a,vector bool long long __b)4658*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector bool long long __a, vector bool long long __b) {
4659*344a7f5eSAndroid Build Coastguard Worker int __cc;
4660*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vchlgs((vector unsigned long long)__b,
4661*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__a, &__cc);
4662*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4663*344a7f5eSAndroid Build Coastguard Worker }
4664*344a7f5eSAndroid Build Coastguard Worker
4665*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(vector double __a,vector double __b)4666*344a7f5eSAndroid Build Coastguard Worker vec_any_lt(vector double __a, vector double __b) {
4667*344a7f5eSAndroid Build Coastguard Worker int __cc;
4668*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__b, __a, &__cc);
4669*344a7f5eSAndroid Build Coastguard Worker return __cc <= 1;
4670*344a7f5eSAndroid Build Coastguard Worker }
4671*344a7f5eSAndroid Build Coastguard Worker
4672*344a7f5eSAndroid Build Coastguard Worker /*-- vec_any_nge ------------------------------------------------------------*/
4673*344a7f5eSAndroid Build Coastguard Worker
4674*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai int
vec_any_nge(vector double __a,vector double __b)4675*344a7f5eSAndroid Build Coastguard Worker vec_any_nge(vector double __a, vector double __b) {
4676*344a7f5eSAndroid Build Coastguard Worker int __cc;
4677*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__a, __b, &__cc);
4678*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4679*344a7f5eSAndroid Build Coastguard Worker }
4680*344a7f5eSAndroid Build Coastguard Worker
4681*344a7f5eSAndroid Build Coastguard Worker /*-- vec_any_ngt ------------------------------------------------------------*/
4682*344a7f5eSAndroid Build Coastguard Worker
4683*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai int
vec_any_ngt(vector double __a,vector double __b)4684*344a7f5eSAndroid Build Coastguard Worker vec_any_ngt(vector double __a, vector double __b) {
4685*344a7f5eSAndroid Build Coastguard Worker int __cc;
4686*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__a, __b, &__cc);
4687*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4688*344a7f5eSAndroid Build Coastguard Worker }
4689*344a7f5eSAndroid Build Coastguard Worker
4690*344a7f5eSAndroid Build Coastguard Worker /*-- vec_any_nle ------------------------------------------------------------*/
4691*344a7f5eSAndroid Build Coastguard Worker
4692*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai int
vec_any_nle(vector double __a,vector double __b)4693*344a7f5eSAndroid Build Coastguard Worker vec_any_nle(vector double __a, vector double __b) {
4694*344a7f5eSAndroid Build Coastguard Worker int __cc;
4695*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__b, __a, &__cc);
4696*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4697*344a7f5eSAndroid Build Coastguard Worker }
4698*344a7f5eSAndroid Build Coastguard Worker
4699*344a7f5eSAndroid Build Coastguard Worker /*-- vec_any_nlt ------------------------------------------------------------*/
4700*344a7f5eSAndroid Build Coastguard Worker
4701*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai int
vec_any_nlt(vector double __a,vector double __b)4702*344a7f5eSAndroid Build Coastguard Worker vec_any_nlt(vector double __a, vector double __b) {
4703*344a7f5eSAndroid Build Coastguard Worker int __cc;
4704*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__b, __a, &__cc);
4705*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4706*344a7f5eSAndroid Build Coastguard Worker }
4707*344a7f5eSAndroid Build Coastguard Worker
4708*344a7f5eSAndroid Build Coastguard Worker /*-- vec_any_nan ------------------------------------------------------------*/
4709*344a7f5eSAndroid Build Coastguard Worker
4710*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai int
vec_any_nan(vector double __a)4711*344a7f5eSAndroid Build Coastguard Worker vec_any_nan(vector double __a) {
4712*344a7f5eSAndroid Build Coastguard Worker int __cc;
4713*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vftcidb(__a, 15, &__cc);
4714*344a7f5eSAndroid Build Coastguard Worker return __cc != 3;
4715*344a7f5eSAndroid Build Coastguard Worker }
4716*344a7f5eSAndroid Build Coastguard Worker
4717*344a7f5eSAndroid Build Coastguard Worker /*-- vec_any_numeric --------------------------------------------------------*/
4718*344a7f5eSAndroid Build Coastguard Worker
4719*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai int
vec_any_numeric(vector double __a)4720*344a7f5eSAndroid Build Coastguard Worker vec_any_numeric(vector double __a) {
4721*344a7f5eSAndroid Build Coastguard Worker int __cc;
4722*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vftcidb(__a, 15, &__cc);
4723*344a7f5eSAndroid Build Coastguard Worker return __cc != 0;
4724*344a7f5eSAndroid Build Coastguard Worker }
4725*344a7f5eSAndroid Build Coastguard Worker
4726*344a7f5eSAndroid Build Coastguard Worker /*-- vec_andc ---------------------------------------------------------------*/
4727*344a7f5eSAndroid Build Coastguard Worker
4728*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_andc(vector bool char __a,vector bool char __b)4729*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool char __a, vector bool char __b) {
4730*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4731*344a7f5eSAndroid Build Coastguard Worker }
4732*344a7f5eSAndroid Build Coastguard Worker
4733*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_andc(vector signed char __a,vector signed char __b)4734*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector signed char __a, vector signed char __b) {
4735*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4736*344a7f5eSAndroid Build Coastguard Worker }
4737*344a7f5eSAndroid Build Coastguard Worker
4738*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_andc(vector bool char __a,vector signed char __b)4739*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool char __a, vector signed char __b) {
4740*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4741*344a7f5eSAndroid Build Coastguard Worker }
4742*344a7f5eSAndroid Build Coastguard Worker
4743*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_andc(vector signed char __a,vector bool char __b)4744*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector signed char __a, vector bool char __b) {
4745*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4746*344a7f5eSAndroid Build Coastguard Worker }
4747*344a7f5eSAndroid Build Coastguard Worker
4748*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_andc(vector unsigned char __a,vector unsigned char __b)4749*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector unsigned char __a, vector unsigned char __b) {
4750*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4751*344a7f5eSAndroid Build Coastguard Worker }
4752*344a7f5eSAndroid Build Coastguard Worker
4753*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_andc(vector bool char __a,vector unsigned char __b)4754*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool char __a, vector unsigned char __b) {
4755*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4756*344a7f5eSAndroid Build Coastguard Worker }
4757*344a7f5eSAndroid Build Coastguard Worker
4758*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_andc(vector unsigned char __a,vector bool char __b)4759*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector unsigned char __a, vector bool char __b) {
4760*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4761*344a7f5eSAndroid Build Coastguard Worker }
4762*344a7f5eSAndroid Build Coastguard Worker
4763*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_andc(vector bool short __a,vector bool short __b)4764*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool short __a, vector bool short __b) {
4765*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4766*344a7f5eSAndroid Build Coastguard Worker }
4767*344a7f5eSAndroid Build Coastguard Worker
4768*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_andc(vector signed short __a,vector signed short __b)4769*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector signed short __a, vector signed short __b) {
4770*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4771*344a7f5eSAndroid Build Coastguard Worker }
4772*344a7f5eSAndroid Build Coastguard Worker
4773*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_andc(vector bool short __a,vector signed short __b)4774*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool short __a, vector signed short __b) {
4775*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4776*344a7f5eSAndroid Build Coastguard Worker }
4777*344a7f5eSAndroid Build Coastguard Worker
4778*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_andc(vector signed short __a,vector bool short __b)4779*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector signed short __a, vector bool short __b) {
4780*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4781*344a7f5eSAndroid Build Coastguard Worker }
4782*344a7f5eSAndroid Build Coastguard Worker
4783*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_andc(vector unsigned short __a,vector unsigned short __b)4784*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector unsigned short __a, vector unsigned short __b) {
4785*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4786*344a7f5eSAndroid Build Coastguard Worker }
4787*344a7f5eSAndroid Build Coastguard Worker
4788*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_andc(vector bool short __a,vector unsigned short __b)4789*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool short __a, vector unsigned short __b) {
4790*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4791*344a7f5eSAndroid Build Coastguard Worker }
4792*344a7f5eSAndroid Build Coastguard Worker
4793*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_andc(vector unsigned short __a,vector bool short __b)4794*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector unsigned short __a, vector bool short __b) {
4795*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4796*344a7f5eSAndroid Build Coastguard Worker }
4797*344a7f5eSAndroid Build Coastguard Worker
4798*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_andc(vector bool int __a,vector bool int __b)4799*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool int __a, vector bool int __b) {
4800*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4801*344a7f5eSAndroid Build Coastguard Worker }
4802*344a7f5eSAndroid Build Coastguard Worker
4803*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_andc(vector signed int __a,vector signed int __b)4804*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector signed int __a, vector signed int __b) {
4805*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4806*344a7f5eSAndroid Build Coastguard Worker }
4807*344a7f5eSAndroid Build Coastguard Worker
4808*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_andc(vector bool int __a,vector signed int __b)4809*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool int __a, vector signed int __b) {
4810*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4811*344a7f5eSAndroid Build Coastguard Worker }
4812*344a7f5eSAndroid Build Coastguard Worker
4813*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_andc(vector signed int __a,vector bool int __b)4814*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector signed int __a, vector bool int __b) {
4815*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4816*344a7f5eSAndroid Build Coastguard Worker }
4817*344a7f5eSAndroid Build Coastguard Worker
4818*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_andc(vector unsigned int __a,vector unsigned int __b)4819*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector unsigned int __a, vector unsigned int __b) {
4820*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4821*344a7f5eSAndroid Build Coastguard Worker }
4822*344a7f5eSAndroid Build Coastguard Worker
4823*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_andc(vector bool int __a,vector unsigned int __b)4824*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool int __a, vector unsigned int __b) {
4825*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4826*344a7f5eSAndroid Build Coastguard Worker }
4827*344a7f5eSAndroid Build Coastguard Worker
4828*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_andc(vector unsigned int __a,vector bool int __b)4829*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector unsigned int __a, vector bool int __b) {
4830*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4831*344a7f5eSAndroid Build Coastguard Worker }
4832*344a7f5eSAndroid Build Coastguard Worker
4833*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_andc(vector bool long long __a,vector bool long long __b)4834*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool long long __a, vector bool long long __b) {
4835*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4836*344a7f5eSAndroid Build Coastguard Worker }
4837*344a7f5eSAndroid Build Coastguard Worker
4838*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_andc(vector signed long long __a,vector signed long long __b)4839*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector signed long long __a, vector signed long long __b) {
4840*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4841*344a7f5eSAndroid Build Coastguard Worker }
4842*344a7f5eSAndroid Build Coastguard Worker
4843*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_andc(vector bool long long __a,vector signed long long __b)4844*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool long long __a, vector signed long long __b) {
4845*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4846*344a7f5eSAndroid Build Coastguard Worker }
4847*344a7f5eSAndroid Build Coastguard Worker
4848*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_andc(vector signed long long __a,vector bool long long __b)4849*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector signed long long __a, vector bool long long __b) {
4850*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4851*344a7f5eSAndroid Build Coastguard Worker }
4852*344a7f5eSAndroid Build Coastguard Worker
4853*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_andc(vector unsigned long long __a,vector unsigned long long __b)4854*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector unsigned long long __a, vector unsigned long long __b) {
4855*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4856*344a7f5eSAndroid Build Coastguard Worker }
4857*344a7f5eSAndroid Build Coastguard Worker
4858*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_andc(vector bool long long __a,vector unsigned long long __b)4859*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool long long __a, vector unsigned long long __b) {
4860*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4861*344a7f5eSAndroid Build Coastguard Worker }
4862*344a7f5eSAndroid Build Coastguard Worker
4863*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_andc(vector unsigned long long __a,vector bool long long __b)4864*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector unsigned long long __a, vector bool long long __b) {
4865*344a7f5eSAndroid Build Coastguard Worker return __a & ~__b;
4866*344a7f5eSAndroid Build Coastguard Worker }
4867*344a7f5eSAndroid Build Coastguard Worker
4868*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_andc(vector double __a,vector double __b)4869*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector double __a, vector double __b) {
4870*344a7f5eSAndroid Build Coastguard Worker return (vector double)((vector unsigned long long)__a &
4871*344a7f5eSAndroid Build Coastguard Worker ~(vector unsigned long long)__b);
4872*344a7f5eSAndroid Build Coastguard Worker }
4873*344a7f5eSAndroid Build Coastguard Worker
4874*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_andc(vector bool long long __a,vector double __b)4875*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector bool long long __a, vector double __b) {
4876*344a7f5eSAndroid Build Coastguard Worker return (vector double)((vector unsigned long long)__a &
4877*344a7f5eSAndroid Build Coastguard Worker ~(vector unsigned long long)__b);
4878*344a7f5eSAndroid Build Coastguard Worker }
4879*344a7f5eSAndroid Build Coastguard Worker
4880*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_andc(vector double __a,vector bool long long __b)4881*344a7f5eSAndroid Build Coastguard Worker vec_andc(vector double __a, vector bool long long __b) {
4882*344a7f5eSAndroid Build Coastguard Worker return (vector double)((vector unsigned long long)__a &
4883*344a7f5eSAndroid Build Coastguard Worker ~(vector unsigned long long)__b);
4884*344a7f5eSAndroid Build Coastguard Worker }
4885*344a7f5eSAndroid Build Coastguard Worker
4886*344a7f5eSAndroid Build Coastguard Worker /*-- vec_nor ----------------------------------------------------------------*/
4887*344a7f5eSAndroid Build Coastguard Worker
4888*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_nor(vector bool char __a,vector bool char __b)4889*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool char __a, vector bool char __b) {
4890*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4891*344a7f5eSAndroid Build Coastguard Worker }
4892*344a7f5eSAndroid Build Coastguard Worker
4893*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_nor(vector signed char __a,vector signed char __b)4894*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector signed char __a, vector signed char __b) {
4895*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4896*344a7f5eSAndroid Build Coastguard Worker }
4897*344a7f5eSAndroid Build Coastguard Worker
4898*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_nor(vector bool char __a,vector signed char __b)4899*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool char __a, vector signed char __b) {
4900*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4901*344a7f5eSAndroid Build Coastguard Worker }
4902*344a7f5eSAndroid Build Coastguard Worker
4903*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_nor(vector signed char __a,vector bool char __b)4904*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector signed char __a, vector bool char __b) {
4905*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4906*344a7f5eSAndroid Build Coastguard Worker }
4907*344a7f5eSAndroid Build Coastguard Worker
4908*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_nor(vector unsigned char __a,vector unsigned char __b)4909*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector unsigned char __a, vector unsigned char __b) {
4910*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4911*344a7f5eSAndroid Build Coastguard Worker }
4912*344a7f5eSAndroid Build Coastguard Worker
4913*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_nor(vector bool char __a,vector unsigned char __b)4914*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool char __a, vector unsigned char __b) {
4915*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4916*344a7f5eSAndroid Build Coastguard Worker }
4917*344a7f5eSAndroid Build Coastguard Worker
4918*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_nor(vector unsigned char __a,vector bool char __b)4919*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector unsigned char __a, vector bool char __b) {
4920*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4921*344a7f5eSAndroid Build Coastguard Worker }
4922*344a7f5eSAndroid Build Coastguard Worker
4923*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_nor(vector bool short __a,vector bool short __b)4924*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool short __a, vector bool short __b) {
4925*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4926*344a7f5eSAndroid Build Coastguard Worker }
4927*344a7f5eSAndroid Build Coastguard Worker
4928*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_nor(vector signed short __a,vector signed short __b)4929*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector signed short __a, vector signed short __b) {
4930*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4931*344a7f5eSAndroid Build Coastguard Worker }
4932*344a7f5eSAndroid Build Coastguard Worker
4933*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_nor(vector bool short __a,vector signed short __b)4934*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool short __a, vector signed short __b) {
4935*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4936*344a7f5eSAndroid Build Coastguard Worker }
4937*344a7f5eSAndroid Build Coastguard Worker
4938*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_nor(vector signed short __a,vector bool short __b)4939*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector signed short __a, vector bool short __b) {
4940*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4941*344a7f5eSAndroid Build Coastguard Worker }
4942*344a7f5eSAndroid Build Coastguard Worker
4943*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_nor(vector unsigned short __a,vector unsigned short __b)4944*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector unsigned short __a, vector unsigned short __b) {
4945*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4946*344a7f5eSAndroid Build Coastguard Worker }
4947*344a7f5eSAndroid Build Coastguard Worker
4948*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_nor(vector bool short __a,vector unsigned short __b)4949*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool short __a, vector unsigned short __b) {
4950*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4951*344a7f5eSAndroid Build Coastguard Worker }
4952*344a7f5eSAndroid Build Coastguard Worker
4953*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_nor(vector unsigned short __a,vector bool short __b)4954*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector unsigned short __a, vector bool short __b) {
4955*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4956*344a7f5eSAndroid Build Coastguard Worker }
4957*344a7f5eSAndroid Build Coastguard Worker
4958*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_nor(vector bool int __a,vector bool int __b)4959*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool int __a, vector bool int __b) {
4960*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4961*344a7f5eSAndroid Build Coastguard Worker }
4962*344a7f5eSAndroid Build Coastguard Worker
4963*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_nor(vector signed int __a,vector signed int __b)4964*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector signed int __a, vector signed int __b) {
4965*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4966*344a7f5eSAndroid Build Coastguard Worker }
4967*344a7f5eSAndroid Build Coastguard Worker
4968*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_nor(vector bool int __a,vector signed int __b)4969*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool int __a, vector signed int __b) {
4970*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4971*344a7f5eSAndroid Build Coastguard Worker }
4972*344a7f5eSAndroid Build Coastguard Worker
4973*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_nor(vector signed int __a,vector bool int __b)4974*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector signed int __a, vector bool int __b) {
4975*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4976*344a7f5eSAndroid Build Coastguard Worker }
4977*344a7f5eSAndroid Build Coastguard Worker
4978*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_nor(vector unsigned int __a,vector unsigned int __b)4979*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector unsigned int __a, vector unsigned int __b) {
4980*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4981*344a7f5eSAndroid Build Coastguard Worker }
4982*344a7f5eSAndroid Build Coastguard Worker
4983*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_nor(vector bool int __a,vector unsigned int __b)4984*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool int __a, vector unsigned int __b) {
4985*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4986*344a7f5eSAndroid Build Coastguard Worker }
4987*344a7f5eSAndroid Build Coastguard Worker
4988*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_nor(vector unsigned int __a,vector bool int __b)4989*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector unsigned int __a, vector bool int __b) {
4990*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4991*344a7f5eSAndroid Build Coastguard Worker }
4992*344a7f5eSAndroid Build Coastguard Worker
4993*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_nor(vector bool long long __a,vector bool long long __b)4994*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool long long __a, vector bool long long __b) {
4995*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
4996*344a7f5eSAndroid Build Coastguard Worker }
4997*344a7f5eSAndroid Build Coastguard Worker
4998*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_nor(vector signed long long __a,vector signed long long __b)4999*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector signed long long __a, vector signed long long __b) {
5000*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
5001*344a7f5eSAndroid Build Coastguard Worker }
5002*344a7f5eSAndroid Build Coastguard Worker
5003*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_nor(vector bool long long __a,vector signed long long __b)5004*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool long long __a, vector signed long long __b) {
5005*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
5006*344a7f5eSAndroid Build Coastguard Worker }
5007*344a7f5eSAndroid Build Coastguard Worker
5008*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_nor(vector signed long long __a,vector bool long long __b)5009*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector signed long long __a, vector bool long long __b) {
5010*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
5011*344a7f5eSAndroid Build Coastguard Worker }
5012*344a7f5eSAndroid Build Coastguard Worker
5013*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_nor(vector unsigned long long __a,vector unsigned long long __b)5014*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector unsigned long long __a, vector unsigned long long __b) {
5015*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
5016*344a7f5eSAndroid Build Coastguard Worker }
5017*344a7f5eSAndroid Build Coastguard Worker
5018*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_nor(vector bool long long __a,vector unsigned long long __b)5019*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool long long __a, vector unsigned long long __b) {
5020*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
5021*344a7f5eSAndroid Build Coastguard Worker }
5022*344a7f5eSAndroid Build Coastguard Worker
5023*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_nor(vector unsigned long long __a,vector bool long long __b)5024*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector unsigned long long __a, vector bool long long __b) {
5025*344a7f5eSAndroid Build Coastguard Worker return ~(__a | __b);
5026*344a7f5eSAndroid Build Coastguard Worker }
5027*344a7f5eSAndroid Build Coastguard Worker
5028*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_nor(vector double __a,vector double __b)5029*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector double __a, vector double __b) {
5030*344a7f5eSAndroid Build Coastguard Worker return (vector double)~((vector unsigned long long)__a |
5031*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__b);
5032*344a7f5eSAndroid Build Coastguard Worker }
5033*344a7f5eSAndroid Build Coastguard Worker
5034*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_nor(vector bool long long __a,vector double __b)5035*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector bool long long __a, vector double __b) {
5036*344a7f5eSAndroid Build Coastguard Worker return (vector double)~((vector unsigned long long)__a |
5037*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__b);
5038*344a7f5eSAndroid Build Coastguard Worker }
5039*344a7f5eSAndroid Build Coastguard Worker
5040*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_nor(vector double __a,vector bool long long __b)5041*344a7f5eSAndroid Build Coastguard Worker vec_nor(vector double __a, vector bool long long __b) {
5042*344a7f5eSAndroid Build Coastguard Worker return (vector double)~((vector unsigned long long)__a |
5043*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__b);
5044*344a7f5eSAndroid Build Coastguard Worker }
5045*344a7f5eSAndroid Build Coastguard Worker
5046*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cntlz --------------------------------------------------------------*/
5047*344a7f5eSAndroid Build Coastguard Worker
5048*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cntlz(vector signed char __a)5049*344a7f5eSAndroid Build Coastguard Worker vec_cntlz(vector signed char __a) {
5050*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vclzb((vector unsigned char)__a);
5051*344a7f5eSAndroid Build Coastguard Worker }
5052*344a7f5eSAndroid Build Coastguard Worker
5053*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cntlz(vector unsigned char __a)5054*344a7f5eSAndroid Build Coastguard Worker vec_cntlz(vector unsigned char __a) {
5055*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vclzb(__a);
5056*344a7f5eSAndroid Build Coastguard Worker }
5057*344a7f5eSAndroid Build Coastguard Worker
5058*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cntlz(vector signed short __a)5059*344a7f5eSAndroid Build Coastguard Worker vec_cntlz(vector signed short __a) {
5060*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vclzh((vector unsigned short)__a);
5061*344a7f5eSAndroid Build Coastguard Worker }
5062*344a7f5eSAndroid Build Coastguard Worker
5063*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cntlz(vector unsigned short __a)5064*344a7f5eSAndroid Build Coastguard Worker vec_cntlz(vector unsigned short __a) {
5065*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vclzh(__a);
5066*344a7f5eSAndroid Build Coastguard Worker }
5067*344a7f5eSAndroid Build Coastguard Worker
5068*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cntlz(vector signed int __a)5069*344a7f5eSAndroid Build Coastguard Worker vec_cntlz(vector signed int __a) {
5070*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vclzf((vector unsigned int)__a);
5071*344a7f5eSAndroid Build Coastguard Worker }
5072*344a7f5eSAndroid Build Coastguard Worker
5073*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cntlz(vector unsigned int __a)5074*344a7f5eSAndroid Build Coastguard Worker vec_cntlz(vector unsigned int __a) {
5075*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vclzf(__a);
5076*344a7f5eSAndroid Build Coastguard Worker }
5077*344a7f5eSAndroid Build Coastguard Worker
5078*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_cntlz(vector signed long long __a)5079*344a7f5eSAndroid Build Coastguard Worker vec_cntlz(vector signed long long __a) {
5080*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vclzg((vector unsigned long long)__a);
5081*344a7f5eSAndroid Build Coastguard Worker }
5082*344a7f5eSAndroid Build Coastguard Worker
5083*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_cntlz(vector unsigned long long __a)5084*344a7f5eSAndroid Build Coastguard Worker vec_cntlz(vector unsigned long long __a) {
5085*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vclzg(__a);
5086*344a7f5eSAndroid Build Coastguard Worker }
5087*344a7f5eSAndroid Build Coastguard Worker
5088*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cnttz --------------------------------------------------------------*/
5089*344a7f5eSAndroid Build Coastguard Worker
5090*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cnttz(vector signed char __a)5091*344a7f5eSAndroid Build Coastguard Worker vec_cnttz(vector signed char __a) {
5092*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vctzb((vector unsigned char)__a);
5093*344a7f5eSAndroid Build Coastguard Worker }
5094*344a7f5eSAndroid Build Coastguard Worker
5095*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cnttz(vector unsigned char __a)5096*344a7f5eSAndroid Build Coastguard Worker vec_cnttz(vector unsigned char __a) {
5097*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vctzb(__a);
5098*344a7f5eSAndroid Build Coastguard Worker }
5099*344a7f5eSAndroid Build Coastguard Worker
5100*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cnttz(vector signed short __a)5101*344a7f5eSAndroid Build Coastguard Worker vec_cnttz(vector signed short __a) {
5102*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vctzh((vector unsigned short)__a);
5103*344a7f5eSAndroid Build Coastguard Worker }
5104*344a7f5eSAndroid Build Coastguard Worker
5105*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cnttz(vector unsigned short __a)5106*344a7f5eSAndroid Build Coastguard Worker vec_cnttz(vector unsigned short __a) {
5107*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vctzh(__a);
5108*344a7f5eSAndroid Build Coastguard Worker }
5109*344a7f5eSAndroid Build Coastguard Worker
5110*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cnttz(vector signed int __a)5111*344a7f5eSAndroid Build Coastguard Worker vec_cnttz(vector signed int __a) {
5112*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vctzf((vector unsigned int)__a);
5113*344a7f5eSAndroid Build Coastguard Worker }
5114*344a7f5eSAndroid Build Coastguard Worker
5115*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cnttz(vector unsigned int __a)5116*344a7f5eSAndroid Build Coastguard Worker vec_cnttz(vector unsigned int __a) {
5117*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vctzf(__a);
5118*344a7f5eSAndroid Build Coastguard Worker }
5119*344a7f5eSAndroid Build Coastguard Worker
5120*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_cnttz(vector signed long long __a)5121*344a7f5eSAndroid Build Coastguard Worker vec_cnttz(vector signed long long __a) {
5122*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vctzg((vector unsigned long long)__a);
5123*344a7f5eSAndroid Build Coastguard Worker }
5124*344a7f5eSAndroid Build Coastguard Worker
5125*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_cnttz(vector unsigned long long __a)5126*344a7f5eSAndroid Build Coastguard Worker vec_cnttz(vector unsigned long long __a) {
5127*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vctzg(__a);
5128*344a7f5eSAndroid Build Coastguard Worker }
5129*344a7f5eSAndroid Build Coastguard Worker
5130*344a7f5eSAndroid Build Coastguard Worker /*-- vec_popcnt -------------------------------------------------------------*/
5131*344a7f5eSAndroid Build Coastguard Worker
5132*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_popcnt(vector signed char __a)5133*344a7f5eSAndroid Build Coastguard Worker vec_popcnt(vector signed char __a) {
5134*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpopctb((vector unsigned char)__a);
5135*344a7f5eSAndroid Build Coastguard Worker }
5136*344a7f5eSAndroid Build Coastguard Worker
5137*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_popcnt(vector unsigned char __a)5138*344a7f5eSAndroid Build Coastguard Worker vec_popcnt(vector unsigned char __a) {
5139*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpopctb(__a);
5140*344a7f5eSAndroid Build Coastguard Worker }
5141*344a7f5eSAndroid Build Coastguard Worker
5142*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_popcnt(vector signed short __a)5143*344a7f5eSAndroid Build Coastguard Worker vec_popcnt(vector signed short __a) {
5144*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpopcth((vector unsigned short)__a);
5145*344a7f5eSAndroid Build Coastguard Worker }
5146*344a7f5eSAndroid Build Coastguard Worker
5147*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_popcnt(vector unsigned short __a)5148*344a7f5eSAndroid Build Coastguard Worker vec_popcnt(vector unsigned short __a) {
5149*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpopcth(__a);
5150*344a7f5eSAndroid Build Coastguard Worker }
5151*344a7f5eSAndroid Build Coastguard Worker
5152*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_popcnt(vector signed int __a)5153*344a7f5eSAndroid Build Coastguard Worker vec_popcnt(vector signed int __a) {
5154*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpopctf((vector unsigned int)__a);
5155*344a7f5eSAndroid Build Coastguard Worker }
5156*344a7f5eSAndroid Build Coastguard Worker
5157*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_popcnt(vector unsigned int __a)5158*344a7f5eSAndroid Build Coastguard Worker vec_popcnt(vector unsigned int __a) {
5159*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpopctf(__a);
5160*344a7f5eSAndroid Build Coastguard Worker }
5161*344a7f5eSAndroid Build Coastguard Worker
5162*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_popcnt(vector signed long long __a)5163*344a7f5eSAndroid Build Coastguard Worker vec_popcnt(vector signed long long __a) {
5164*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpopctg((vector unsigned long long)__a);
5165*344a7f5eSAndroid Build Coastguard Worker }
5166*344a7f5eSAndroid Build Coastguard Worker
5167*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_popcnt(vector unsigned long long __a)5168*344a7f5eSAndroid Build Coastguard Worker vec_popcnt(vector unsigned long long __a) {
5169*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vpopctg(__a);
5170*344a7f5eSAndroid Build Coastguard Worker }
5171*344a7f5eSAndroid Build Coastguard Worker
5172*344a7f5eSAndroid Build Coastguard Worker /*-- vec_rl -----------------------------------------------------------------*/
5173*344a7f5eSAndroid Build Coastguard Worker
5174*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_rl(vector signed char __a,vector unsigned char __b)5175*344a7f5eSAndroid Build Coastguard Worker vec_rl(vector signed char __a, vector unsigned char __b) {
5176*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_verllvb(
5177*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5178*344a7f5eSAndroid Build Coastguard Worker }
5179*344a7f5eSAndroid Build Coastguard Worker
5180*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_rl(vector unsigned char __a,vector unsigned char __b)5181*344a7f5eSAndroid Build Coastguard Worker vec_rl(vector unsigned char __a, vector unsigned char __b) {
5182*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_verllvb(__a, __b);
5183*344a7f5eSAndroid Build Coastguard Worker }
5184*344a7f5eSAndroid Build Coastguard Worker
5185*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_rl(vector signed short __a,vector unsigned short __b)5186*344a7f5eSAndroid Build Coastguard Worker vec_rl(vector signed short __a, vector unsigned short __b) {
5187*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_verllvh(
5188*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__a, __b);
5189*344a7f5eSAndroid Build Coastguard Worker }
5190*344a7f5eSAndroid Build Coastguard Worker
5191*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_rl(vector unsigned short __a,vector unsigned short __b)5192*344a7f5eSAndroid Build Coastguard Worker vec_rl(vector unsigned short __a, vector unsigned short __b) {
5193*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_verllvh(__a, __b);
5194*344a7f5eSAndroid Build Coastguard Worker }
5195*344a7f5eSAndroid Build Coastguard Worker
5196*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_rl(vector signed int __a,vector unsigned int __b)5197*344a7f5eSAndroid Build Coastguard Worker vec_rl(vector signed int __a, vector unsigned int __b) {
5198*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_verllvf(
5199*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__a, __b);
5200*344a7f5eSAndroid Build Coastguard Worker }
5201*344a7f5eSAndroid Build Coastguard Worker
5202*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_rl(vector unsigned int __a,vector unsigned int __b)5203*344a7f5eSAndroid Build Coastguard Worker vec_rl(vector unsigned int __a, vector unsigned int __b) {
5204*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_verllvf(__a, __b);
5205*344a7f5eSAndroid Build Coastguard Worker }
5206*344a7f5eSAndroid Build Coastguard Worker
5207*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_rl(vector signed long long __a,vector unsigned long long __b)5208*344a7f5eSAndroid Build Coastguard Worker vec_rl(vector signed long long __a, vector unsigned long long __b) {
5209*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_verllvg(
5210*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__a, __b);
5211*344a7f5eSAndroid Build Coastguard Worker }
5212*344a7f5eSAndroid Build Coastguard Worker
5213*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_rl(vector unsigned long long __a,vector unsigned long long __b)5214*344a7f5eSAndroid Build Coastguard Worker vec_rl(vector unsigned long long __a, vector unsigned long long __b) {
5215*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_verllvg(__a, __b);
5216*344a7f5eSAndroid Build Coastguard Worker }
5217*344a7f5eSAndroid Build Coastguard Worker
5218*344a7f5eSAndroid Build Coastguard Worker /*-- vec_rli ----------------------------------------------------------------*/
5219*344a7f5eSAndroid Build Coastguard Worker
5220*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_rli(vector signed char __a,unsigned long __b)5221*344a7f5eSAndroid Build Coastguard Worker vec_rli(vector signed char __a, unsigned long __b) {
5222*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_verllb(
5223*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (int)__b);
5224*344a7f5eSAndroid Build Coastguard Worker }
5225*344a7f5eSAndroid Build Coastguard Worker
5226*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_rli(vector unsigned char __a,unsigned long __b)5227*344a7f5eSAndroid Build Coastguard Worker vec_rli(vector unsigned char __a, unsigned long __b) {
5228*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_verllb(__a, (int)__b);
5229*344a7f5eSAndroid Build Coastguard Worker }
5230*344a7f5eSAndroid Build Coastguard Worker
5231*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_rli(vector signed short __a,unsigned long __b)5232*344a7f5eSAndroid Build Coastguard Worker vec_rli(vector signed short __a, unsigned long __b) {
5233*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_verllh(
5234*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__a, (int)__b);
5235*344a7f5eSAndroid Build Coastguard Worker }
5236*344a7f5eSAndroid Build Coastguard Worker
5237*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_rli(vector unsigned short __a,unsigned long __b)5238*344a7f5eSAndroid Build Coastguard Worker vec_rli(vector unsigned short __a, unsigned long __b) {
5239*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_verllh(__a, (int)__b);
5240*344a7f5eSAndroid Build Coastguard Worker }
5241*344a7f5eSAndroid Build Coastguard Worker
5242*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_rli(vector signed int __a,unsigned long __b)5243*344a7f5eSAndroid Build Coastguard Worker vec_rli(vector signed int __a, unsigned long __b) {
5244*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_verllf(
5245*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__a, (int)__b);
5246*344a7f5eSAndroid Build Coastguard Worker }
5247*344a7f5eSAndroid Build Coastguard Worker
5248*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_rli(vector unsigned int __a,unsigned long __b)5249*344a7f5eSAndroid Build Coastguard Worker vec_rli(vector unsigned int __a, unsigned long __b) {
5250*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_verllf(__a, (int)__b);
5251*344a7f5eSAndroid Build Coastguard Worker }
5252*344a7f5eSAndroid Build Coastguard Worker
5253*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_rli(vector signed long long __a,unsigned long __b)5254*344a7f5eSAndroid Build Coastguard Worker vec_rli(vector signed long long __a, unsigned long __b) {
5255*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_verllg(
5256*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__a, (int)__b);
5257*344a7f5eSAndroid Build Coastguard Worker }
5258*344a7f5eSAndroid Build Coastguard Worker
5259*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_rli(vector unsigned long long __a,unsigned long __b)5260*344a7f5eSAndroid Build Coastguard Worker vec_rli(vector unsigned long long __a, unsigned long __b) {
5261*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_verllg(__a, (int)__b);
5262*344a7f5eSAndroid Build Coastguard Worker }
5263*344a7f5eSAndroid Build Coastguard Worker
5264*344a7f5eSAndroid Build Coastguard Worker /*-- vec_rl_mask ------------------------------------------------------------*/
5265*344a7f5eSAndroid Build Coastguard Worker
5266*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed char
5267*344a7f5eSAndroid Build Coastguard Worker vec_rl_mask(vector signed char __a, vector unsigned char __b,
5268*344a7f5eSAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
5269*344a7f5eSAndroid Build Coastguard Worker
5270*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned char
5271*344a7f5eSAndroid Build Coastguard Worker vec_rl_mask(vector unsigned char __a, vector unsigned char __b,
5272*344a7f5eSAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
5273*344a7f5eSAndroid Build Coastguard Worker
5274*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed short
5275*344a7f5eSAndroid Build Coastguard Worker vec_rl_mask(vector signed short __a, vector unsigned short __b,
5276*344a7f5eSAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
5277*344a7f5eSAndroid Build Coastguard Worker
5278*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned short
5279*344a7f5eSAndroid Build Coastguard Worker vec_rl_mask(vector unsigned short __a, vector unsigned short __b,
5280*344a7f5eSAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
5281*344a7f5eSAndroid Build Coastguard Worker
5282*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed int
5283*344a7f5eSAndroid Build Coastguard Worker vec_rl_mask(vector signed int __a, vector unsigned int __b,
5284*344a7f5eSAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
5285*344a7f5eSAndroid Build Coastguard Worker
5286*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned int
5287*344a7f5eSAndroid Build Coastguard Worker vec_rl_mask(vector unsigned int __a, vector unsigned int __b,
5288*344a7f5eSAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
5289*344a7f5eSAndroid Build Coastguard Worker
5290*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed long long
5291*344a7f5eSAndroid Build Coastguard Worker vec_rl_mask(vector signed long long __a, vector unsigned long long __b,
5292*344a7f5eSAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
5293*344a7f5eSAndroid Build Coastguard Worker
5294*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned long long
5295*344a7f5eSAndroid Build Coastguard Worker vec_rl_mask(vector unsigned long long __a, vector unsigned long long __b,
5296*344a7f5eSAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
5297*344a7f5eSAndroid Build Coastguard Worker
5298*344a7f5eSAndroid Build Coastguard Worker #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
5299*344a7f5eSAndroid Build Coastguard Worker __extension__ ({ \
5300*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __res; \
5301*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __x = (vector unsigned char)(X); \
5302*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __y = (vector unsigned char)(Y); \
5303*344a7f5eSAndroid Build Coastguard Worker switch (sizeof ((X)[0])) { \
5304*344a7f5eSAndroid Build Coastguard Worker case 1: __res = (vector unsigned char) __builtin_s390_verimb( \
5305*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__x, (vector unsigned char)__x, \
5306*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__y, (Z)); break; \
5307*344a7f5eSAndroid Build Coastguard Worker case 2: __res = (vector unsigned char) __builtin_s390_verimh( \
5308*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__x, (vector unsigned short)__x, \
5309*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__y, (Z)); break; \
5310*344a7f5eSAndroid Build Coastguard Worker case 4: __res = (vector unsigned char) __builtin_s390_verimf( \
5311*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__x, (vector unsigned int)__x, \
5312*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__y, (Z)); break; \
5313*344a7f5eSAndroid Build Coastguard Worker default: __res = (vector unsigned char) __builtin_s390_verimg( \
5314*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__x, (vector unsigned long long)__x, \
5315*344a7f5eSAndroid Build Coastguard Worker (vector unsigned long long)__y, (Z)); break; \
5316*344a7f5eSAndroid Build Coastguard Worker } __res; }))
5317*344a7f5eSAndroid Build Coastguard Worker
5318*344a7f5eSAndroid Build Coastguard Worker /*-- vec_sll ----------------------------------------------------------------*/
5319*344a7f5eSAndroid Build Coastguard Worker
5320*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_sll(vector signed char __a,vector unsigned char __b)5321*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector signed char __a, vector unsigned char __b) {
5322*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsl(
5323*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5324*344a7f5eSAndroid Build Coastguard Worker }
5325*344a7f5eSAndroid Build Coastguard Worker
5326*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_sll(vector signed char __a,vector unsigned short __b)5327*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector signed char __a, vector unsigned short __b) {
5328*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsl(
5329*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5330*344a7f5eSAndroid Build Coastguard Worker }
5331*344a7f5eSAndroid Build Coastguard Worker
5332*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_sll(vector signed char __a,vector unsigned int __b)5333*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector signed char __a, vector unsigned int __b) {
5334*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsl(
5335*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5336*344a7f5eSAndroid Build Coastguard Worker }
5337*344a7f5eSAndroid Build Coastguard Worker
5338*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_sll(vector bool char __a,vector unsigned char __b)5339*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector bool char __a, vector unsigned char __b) {
5340*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vsl(
5341*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5342*344a7f5eSAndroid Build Coastguard Worker }
5343*344a7f5eSAndroid Build Coastguard Worker
5344*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_sll(vector bool char __a,vector unsigned short __b)5345*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector bool char __a, vector unsigned short __b) {
5346*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vsl(
5347*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5348*344a7f5eSAndroid Build Coastguard Worker }
5349*344a7f5eSAndroid Build Coastguard Worker
5350*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_sll(vector bool char __a,vector unsigned int __b)5351*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector bool char __a, vector unsigned int __b) {
5352*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vsl(
5353*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5354*344a7f5eSAndroid Build Coastguard Worker }
5355*344a7f5eSAndroid Build Coastguard Worker
5356*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_sll(vector unsigned char __a,vector unsigned char __b)5357*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector unsigned char __a, vector unsigned char __b) {
5358*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsl(__a, __b);
5359*344a7f5eSAndroid Build Coastguard Worker }
5360*344a7f5eSAndroid Build Coastguard Worker
5361*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_sll(vector unsigned char __a,vector unsigned short __b)5362*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector unsigned char __a, vector unsigned short __b) {
5363*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsl(__a, (vector unsigned char)__b);
5364*344a7f5eSAndroid Build Coastguard Worker }
5365*344a7f5eSAndroid Build Coastguard Worker
5366*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_sll(vector unsigned char __a,vector unsigned int __b)5367*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector unsigned char __a, vector unsigned int __b) {
5368*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsl(__a, (vector unsigned char)__b);
5369*344a7f5eSAndroid Build Coastguard Worker }
5370*344a7f5eSAndroid Build Coastguard Worker
5371*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_sll(vector signed short __a,vector unsigned char __b)5372*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector signed short __a, vector unsigned char __b) {
5373*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsl(
5374*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5375*344a7f5eSAndroid Build Coastguard Worker }
5376*344a7f5eSAndroid Build Coastguard Worker
5377*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_sll(vector signed short __a,vector unsigned short __b)5378*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector signed short __a, vector unsigned short __b) {
5379*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsl(
5380*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5381*344a7f5eSAndroid Build Coastguard Worker }
5382*344a7f5eSAndroid Build Coastguard Worker
5383*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_sll(vector signed short __a,vector unsigned int __b)5384*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector signed short __a, vector unsigned int __b) {
5385*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsl(
5386*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5387*344a7f5eSAndroid Build Coastguard Worker }
5388*344a7f5eSAndroid Build Coastguard Worker
5389*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_sll(vector bool short __a,vector unsigned char __b)5390*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector bool short __a, vector unsigned char __b) {
5391*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vsl(
5392*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5393*344a7f5eSAndroid Build Coastguard Worker }
5394*344a7f5eSAndroid Build Coastguard Worker
5395*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_sll(vector bool short __a,vector unsigned short __b)5396*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector bool short __a, vector unsigned short __b) {
5397*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vsl(
5398*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5399*344a7f5eSAndroid Build Coastguard Worker }
5400*344a7f5eSAndroid Build Coastguard Worker
5401*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_sll(vector bool short __a,vector unsigned int __b)5402*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector bool short __a, vector unsigned int __b) {
5403*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vsl(
5404*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5405*344a7f5eSAndroid Build Coastguard Worker }
5406*344a7f5eSAndroid Build Coastguard Worker
5407*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_sll(vector unsigned short __a,vector unsigned char __b)5408*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector unsigned short __a, vector unsigned char __b) {
5409*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsl(
5410*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5411*344a7f5eSAndroid Build Coastguard Worker }
5412*344a7f5eSAndroid Build Coastguard Worker
5413*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_sll(vector unsigned short __a,vector unsigned short __b)5414*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector unsigned short __a, vector unsigned short __b) {
5415*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsl(
5416*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5417*344a7f5eSAndroid Build Coastguard Worker }
5418*344a7f5eSAndroid Build Coastguard Worker
5419*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_sll(vector unsigned short __a,vector unsigned int __b)5420*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector unsigned short __a, vector unsigned int __b) {
5421*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsl(
5422*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5423*344a7f5eSAndroid Build Coastguard Worker }
5424*344a7f5eSAndroid Build Coastguard Worker
5425*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_sll(vector signed int __a,vector unsigned char __b)5426*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector signed int __a, vector unsigned char __b) {
5427*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsl(
5428*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5429*344a7f5eSAndroid Build Coastguard Worker }
5430*344a7f5eSAndroid Build Coastguard Worker
5431*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_sll(vector signed int __a,vector unsigned short __b)5432*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector signed int __a, vector unsigned short __b) {
5433*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsl(
5434*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5435*344a7f5eSAndroid Build Coastguard Worker }
5436*344a7f5eSAndroid Build Coastguard Worker
5437*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_sll(vector signed int __a,vector unsigned int __b)5438*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector signed int __a, vector unsigned int __b) {
5439*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsl(
5440*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5441*344a7f5eSAndroid Build Coastguard Worker }
5442*344a7f5eSAndroid Build Coastguard Worker
5443*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_sll(vector bool int __a,vector unsigned char __b)5444*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector bool int __a, vector unsigned char __b) {
5445*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vsl(
5446*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5447*344a7f5eSAndroid Build Coastguard Worker }
5448*344a7f5eSAndroid Build Coastguard Worker
5449*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_sll(vector bool int __a,vector unsigned short __b)5450*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector bool int __a, vector unsigned short __b) {
5451*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vsl(
5452*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5453*344a7f5eSAndroid Build Coastguard Worker }
5454*344a7f5eSAndroid Build Coastguard Worker
5455*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_sll(vector bool int __a,vector unsigned int __b)5456*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector bool int __a, vector unsigned int __b) {
5457*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vsl(
5458*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5459*344a7f5eSAndroid Build Coastguard Worker }
5460*344a7f5eSAndroid Build Coastguard Worker
5461*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_sll(vector unsigned int __a,vector unsigned char __b)5462*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector unsigned int __a, vector unsigned char __b) {
5463*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsl(
5464*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5465*344a7f5eSAndroid Build Coastguard Worker }
5466*344a7f5eSAndroid Build Coastguard Worker
5467*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_sll(vector unsigned int __a,vector unsigned short __b)5468*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector unsigned int __a, vector unsigned short __b) {
5469*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsl(
5470*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5471*344a7f5eSAndroid Build Coastguard Worker }
5472*344a7f5eSAndroid Build Coastguard Worker
5473*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_sll(vector unsigned int __a,vector unsigned int __b)5474*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector unsigned int __a, vector unsigned int __b) {
5475*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsl(
5476*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5477*344a7f5eSAndroid Build Coastguard Worker }
5478*344a7f5eSAndroid Build Coastguard Worker
5479*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_sll(vector signed long long __a,vector unsigned char __b)5480*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector signed long long __a, vector unsigned char __b) {
5481*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsl(
5482*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5483*344a7f5eSAndroid Build Coastguard Worker }
5484*344a7f5eSAndroid Build Coastguard Worker
5485*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_sll(vector signed long long __a,vector unsigned short __b)5486*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector signed long long __a, vector unsigned short __b) {
5487*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsl(
5488*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5489*344a7f5eSAndroid Build Coastguard Worker }
5490*344a7f5eSAndroid Build Coastguard Worker
5491*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_sll(vector signed long long __a,vector unsigned int __b)5492*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector signed long long __a, vector unsigned int __b) {
5493*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsl(
5494*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5495*344a7f5eSAndroid Build Coastguard Worker }
5496*344a7f5eSAndroid Build Coastguard Worker
5497*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_sll(vector bool long long __a,vector unsigned char __b)5498*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector bool long long __a, vector unsigned char __b) {
5499*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)__builtin_s390_vsl(
5500*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5501*344a7f5eSAndroid Build Coastguard Worker }
5502*344a7f5eSAndroid Build Coastguard Worker
5503*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_sll(vector bool long long __a,vector unsigned short __b)5504*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector bool long long __a, vector unsigned short __b) {
5505*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)__builtin_s390_vsl(
5506*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5507*344a7f5eSAndroid Build Coastguard Worker }
5508*344a7f5eSAndroid Build Coastguard Worker
5509*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_sll(vector bool long long __a,vector unsigned int __b)5510*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector bool long long __a, vector unsigned int __b) {
5511*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)__builtin_s390_vsl(
5512*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5513*344a7f5eSAndroid Build Coastguard Worker }
5514*344a7f5eSAndroid Build Coastguard Worker
5515*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_sll(vector unsigned long long __a,vector unsigned char __b)5516*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector unsigned long long __a, vector unsigned char __b) {
5517*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsl(
5518*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5519*344a7f5eSAndroid Build Coastguard Worker }
5520*344a7f5eSAndroid Build Coastguard Worker
5521*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_sll(vector unsigned long long __a,vector unsigned short __b)5522*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector unsigned long long __a, vector unsigned short __b) {
5523*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsl(
5524*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5525*344a7f5eSAndroid Build Coastguard Worker }
5526*344a7f5eSAndroid Build Coastguard Worker
5527*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_sll(vector unsigned long long __a,vector unsigned int __b)5528*344a7f5eSAndroid Build Coastguard Worker vec_sll(vector unsigned long long __a, vector unsigned int __b) {
5529*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsl(
5530*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5531*344a7f5eSAndroid Build Coastguard Worker }
5532*344a7f5eSAndroid Build Coastguard Worker
5533*344a7f5eSAndroid Build Coastguard Worker /*-- vec_slb ----------------------------------------------------------------*/
5534*344a7f5eSAndroid Build Coastguard Worker
5535*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_slb(vector signed char __a,vector signed char __b)5536*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector signed char __a, vector signed char __b) {
5537*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vslb(
5538*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5539*344a7f5eSAndroid Build Coastguard Worker }
5540*344a7f5eSAndroid Build Coastguard Worker
5541*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_slb(vector signed char __a,vector unsigned char __b)5542*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector signed char __a, vector unsigned char __b) {
5543*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vslb(
5544*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5545*344a7f5eSAndroid Build Coastguard Worker }
5546*344a7f5eSAndroid Build Coastguard Worker
5547*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_slb(vector unsigned char __a,vector signed char __b)5548*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector unsigned char __a, vector signed char __b) {
5549*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vslb(__a, (vector unsigned char)__b);
5550*344a7f5eSAndroid Build Coastguard Worker }
5551*344a7f5eSAndroid Build Coastguard Worker
5552*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_slb(vector unsigned char __a,vector unsigned char __b)5553*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector unsigned char __a, vector unsigned char __b) {
5554*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vslb(__a, __b);
5555*344a7f5eSAndroid Build Coastguard Worker }
5556*344a7f5eSAndroid Build Coastguard Worker
5557*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_slb(vector signed short __a,vector signed short __b)5558*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector signed short __a, vector signed short __b) {
5559*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vslb(
5560*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5561*344a7f5eSAndroid Build Coastguard Worker }
5562*344a7f5eSAndroid Build Coastguard Worker
5563*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_slb(vector signed short __a,vector unsigned short __b)5564*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector signed short __a, vector unsigned short __b) {
5565*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vslb(
5566*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5567*344a7f5eSAndroid Build Coastguard Worker }
5568*344a7f5eSAndroid Build Coastguard Worker
5569*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_slb(vector unsigned short __a,vector signed short __b)5570*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector unsigned short __a, vector signed short __b) {
5571*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vslb(
5572*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5573*344a7f5eSAndroid Build Coastguard Worker }
5574*344a7f5eSAndroid Build Coastguard Worker
5575*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_slb(vector unsigned short __a,vector unsigned short __b)5576*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector unsigned short __a, vector unsigned short __b) {
5577*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vslb(
5578*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5579*344a7f5eSAndroid Build Coastguard Worker }
5580*344a7f5eSAndroid Build Coastguard Worker
5581*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_slb(vector signed int __a,vector signed int __b)5582*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector signed int __a, vector signed int __b) {
5583*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vslb(
5584*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5585*344a7f5eSAndroid Build Coastguard Worker }
5586*344a7f5eSAndroid Build Coastguard Worker
5587*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_slb(vector signed int __a,vector unsigned int __b)5588*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector signed int __a, vector unsigned int __b) {
5589*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vslb(
5590*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5591*344a7f5eSAndroid Build Coastguard Worker }
5592*344a7f5eSAndroid Build Coastguard Worker
5593*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_slb(vector unsigned int __a,vector signed int __b)5594*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector unsigned int __a, vector signed int __b) {
5595*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vslb(
5596*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5597*344a7f5eSAndroid Build Coastguard Worker }
5598*344a7f5eSAndroid Build Coastguard Worker
5599*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_slb(vector unsigned int __a,vector unsigned int __b)5600*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector unsigned int __a, vector unsigned int __b) {
5601*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vslb(
5602*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5603*344a7f5eSAndroid Build Coastguard Worker }
5604*344a7f5eSAndroid Build Coastguard Worker
5605*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_slb(vector signed long long __a,vector signed long long __b)5606*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector signed long long __a, vector signed long long __b) {
5607*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vslb(
5608*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5609*344a7f5eSAndroid Build Coastguard Worker }
5610*344a7f5eSAndroid Build Coastguard Worker
5611*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_slb(vector signed long long __a,vector unsigned long long __b)5612*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector signed long long __a, vector unsigned long long __b) {
5613*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vslb(
5614*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5615*344a7f5eSAndroid Build Coastguard Worker }
5616*344a7f5eSAndroid Build Coastguard Worker
5617*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_slb(vector unsigned long long __a,vector signed long long __b)5618*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector unsigned long long __a, vector signed long long __b) {
5619*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vslb(
5620*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5621*344a7f5eSAndroid Build Coastguard Worker }
5622*344a7f5eSAndroid Build Coastguard Worker
5623*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_slb(vector unsigned long long __a,vector unsigned long long __b)5624*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector unsigned long long __a, vector unsigned long long __b) {
5625*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vslb(
5626*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5627*344a7f5eSAndroid Build Coastguard Worker }
5628*344a7f5eSAndroid Build Coastguard Worker
5629*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_slb(vector double __a,vector signed long long __b)5630*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector double __a, vector signed long long __b) {
5631*344a7f5eSAndroid Build Coastguard Worker return (vector double)__builtin_s390_vslb(
5632*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5633*344a7f5eSAndroid Build Coastguard Worker }
5634*344a7f5eSAndroid Build Coastguard Worker
5635*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_slb(vector double __a,vector unsigned long long __b)5636*344a7f5eSAndroid Build Coastguard Worker vec_slb(vector double __a, vector unsigned long long __b) {
5637*344a7f5eSAndroid Build Coastguard Worker return (vector double)__builtin_s390_vslb(
5638*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5639*344a7f5eSAndroid Build Coastguard Worker }
5640*344a7f5eSAndroid Build Coastguard Worker
5641*344a7f5eSAndroid Build Coastguard Worker /*-- vec_sld ----------------------------------------------------------------*/
5642*344a7f5eSAndroid Build Coastguard Worker
5643*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed char
5644*344a7f5eSAndroid Build Coastguard Worker vec_sld(vector signed char __a, vector signed char __b, int __c)
5645*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
5646*344a7f5eSAndroid Build Coastguard Worker
5647*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned char
5648*344a7f5eSAndroid Build Coastguard Worker vec_sld(vector unsigned char __a, vector unsigned char __b, int __c)
5649*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
5650*344a7f5eSAndroid Build Coastguard Worker
5651*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed short
5652*344a7f5eSAndroid Build Coastguard Worker vec_sld(vector signed short __a, vector signed short __b, int __c)
5653*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
5654*344a7f5eSAndroid Build Coastguard Worker
5655*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned short
5656*344a7f5eSAndroid Build Coastguard Worker vec_sld(vector unsigned short __a, vector unsigned short __b, int __c)
5657*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
5658*344a7f5eSAndroid Build Coastguard Worker
5659*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed int
5660*344a7f5eSAndroid Build Coastguard Worker vec_sld(vector signed int __a, vector signed int __b, int __c)
5661*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
5662*344a7f5eSAndroid Build Coastguard Worker
5663*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned int
5664*344a7f5eSAndroid Build Coastguard Worker vec_sld(vector unsigned int __a, vector unsigned int __b, int __c)
5665*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
5666*344a7f5eSAndroid Build Coastguard Worker
5667*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed long long
5668*344a7f5eSAndroid Build Coastguard Worker vec_sld(vector signed long long __a, vector signed long long __b, int __c)
5669*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
5670*344a7f5eSAndroid Build Coastguard Worker
5671*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned long long
5672*344a7f5eSAndroid Build Coastguard Worker vec_sld(vector unsigned long long __a, vector unsigned long long __b, int __c)
5673*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
5674*344a7f5eSAndroid Build Coastguard Worker
5675*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector double
5676*344a7f5eSAndroid Build Coastguard Worker vec_sld(vector double __a, vector double __b, int __c)
5677*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
5678*344a7f5eSAndroid Build Coastguard Worker
5679*344a7f5eSAndroid Build Coastguard Worker #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
5680*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vsldb((vector unsigned char)(X), \
5681*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)(Y), (Z)))
5682*344a7f5eSAndroid Build Coastguard Worker
5683*344a7f5eSAndroid Build Coastguard Worker /*-- vec_sldw ---------------------------------------------------------------*/
5684*344a7f5eSAndroid Build Coastguard Worker
5685*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed char
5686*344a7f5eSAndroid Build Coastguard Worker vec_sldw(vector signed char __a, vector signed char __b, int __c)
5687*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
5688*344a7f5eSAndroid Build Coastguard Worker
5689*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned char
5690*344a7f5eSAndroid Build Coastguard Worker vec_sldw(vector unsigned char __a, vector unsigned char __b, int __c)
5691*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
5692*344a7f5eSAndroid Build Coastguard Worker
5693*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed short
5694*344a7f5eSAndroid Build Coastguard Worker vec_sldw(vector signed short __a, vector signed short __b, int __c)
5695*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
5696*344a7f5eSAndroid Build Coastguard Worker
5697*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned short
5698*344a7f5eSAndroid Build Coastguard Worker vec_sldw(vector unsigned short __a, vector unsigned short __b, int __c)
5699*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
5700*344a7f5eSAndroid Build Coastguard Worker
5701*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed int
5702*344a7f5eSAndroid Build Coastguard Worker vec_sldw(vector signed int __a, vector signed int __b, int __c)
5703*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
5704*344a7f5eSAndroid Build Coastguard Worker
5705*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned int
5706*344a7f5eSAndroid Build Coastguard Worker vec_sldw(vector unsigned int __a, vector unsigned int __b, int __c)
5707*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
5708*344a7f5eSAndroid Build Coastguard Worker
5709*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector signed long long
5710*344a7f5eSAndroid Build Coastguard Worker vec_sldw(vector signed long long __a, vector signed long long __b, int __c)
5711*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
5712*344a7f5eSAndroid Build Coastguard Worker
5713*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector unsigned long long
5714*344a7f5eSAndroid Build Coastguard Worker vec_sldw(vector unsigned long long __a, vector unsigned long long __b, int __c)
5715*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
5716*344a7f5eSAndroid Build Coastguard Worker
5717*344a7f5eSAndroid Build Coastguard Worker extern __ATTRS_o vector double
5718*344a7f5eSAndroid Build Coastguard Worker vec_sldw(vector double __a, vector double __b, int __c)
5719*344a7f5eSAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
5720*344a7f5eSAndroid Build Coastguard Worker
5721*344a7f5eSAndroid Build Coastguard Worker #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
5722*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vsldb((vector unsigned char)(X), \
5723*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)(Y), (Z) * 4))
5724*344a7f5eSAndroid Build Coastguard Worker
5725*344a7f5eSAndroid Build Coastguard Worker /*-- vec_sral ---------------------------------------------------------------*/
5726*344a7f5eSAndroid Build Coastguard Worker
5727*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_sral(vector signed char __a,vector unsigned char __b)5728*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector signed char __a, vector unsigned char __b) {
5729*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsra(
5730*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5731*344a7f5eSAndroid Build Coastguard Worker }
5732*344a7f5eSAndroid Build Coastguard Worker
5733*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_sral(vector signed char __a,vector unsigned short __b)5734*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector signed char __a, vector unsigned short __b) {
5735*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsra(
5736*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5737*344a7f5eSAndroid Build Coastguard Worker }
5738*344a7f5eSAndroid Build Coastguard Worker
5739*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_sral(vector signed char __a,vector unsigned int __b)5740*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector signed char __a, vector unsigned int __b) {
5741*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsra(
5742*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5743*344a7f5eSAndroid Build Coastguard Worker }
5744*344a7f5eSAndroid Build Coastguard Worker
5745*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_sral(vector bool char __a,vector unsigned char __b)5746*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector bool char __a, vector unsigned char __b) {
5747*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vsra(
5748*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5749*344a7f5eSAndroid Build Coastguard Worker }
5750*344a7f5eSAndroid Build Coastguard Worker
5751*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_sral(vector bool char __a,vector unsigned short __b)5752*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector bool char __a, vector unsigned short __b) {
5753*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vsra(
5754*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5755*344a7f5eSAndroid Build Coastguard Worker }
5756*344a7f5eSAndroid Build Coastguard Worker
5757*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_sral(vector bool char __a,vector unsigned int __b)5758*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector bool char __a, vector unsigned int __b) {
5759*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vsra(
5760*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5761*344a7f5eSAndroid Build Coastguard Worker }
5762*344a7f5eSAndroid Build Coastguard Worker
5763*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_sral(vector unsigned char __a,vector unsigned char __b)5764*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector unsigned char __a, vector unsigned char __b) {
5765*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsra(__a, __b);
5766*344a7f5eSAndroid Build Coastguard Worker }
5767*344a7f5eSAndroid Build Coastguard Worker
5768*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_sral(vector unsigned char __a,vector unsigned short __b)5769*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector unsigned char __a, vector unsigned short __b) {
5770*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsra(__a, (vector unsigned char)__b);
5771*344a7f5eSAndroid Build Coastguard Worker }
5772*344a7f5eSAndroid Build Coastguard Worker
5773*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_sral(vector unsigned char __a,vector unsigned int __b)5774*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector unsigned char __a, vector unsigned int __b) {
5775*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsra(__a, (vector unsigned char)__b);
5776*344a7f5eSAndroid Build Coastguard Worker }
5777*344a7f5eSAndroid Build Coastguard Worker
5778*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_sral(vector signed short __a,vector unsigned char __b)5779*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector signed short __a, vector unsigned char __b) {
5780*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsra(
5781*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5782*344a7f5eSAndroid Build Coastguard Worker }
5783*344a7f5eSAndroid Build Coastguard Worker
5784*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_sral(vector signed short __a,vector unsigned short __b)5785*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector signed short __a, vector unsigned short __b) {
5786*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsra(
5787*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5788*344a7f5eSAndroid Build Coastguard Worker }
5789*344a7f5eSAndroid Build Coastguard Worker
5790*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_sral(vector signed short __a,vector unsigned int __b)5791*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector signed short __a, vector unsigned int __b) {
5792*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsra(
5793*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5794*344a7f5eSAndroid Build Coastguard Worker }
5795*344a7f5eSAndroid Build Coastguard Worker
5796*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_sral(vector bool short __a,vector unsigned char __b)5797*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector bool short __a, vector unsigned char __b) {
5798*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vsra(
5799*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5800*344a7f5eSAndroid Build Coastguard Worker }
5801*344a7f5eSAndroid Build Coastguard Worker
5802*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_sral(vector bool short __a,vector unsigned short __b)5803*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector bool short __a, vector unsigned short __b) {
5804*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vsra(
5805*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5806*344a7f5eSAndroid Build Coastguard Worker }
5807*344a7f5eSAndroid Build Coastguard Worker
5808*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_sral(vector bool short __a,vector unsigned int __b)5809*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector bool short __a, vector unsigned int __b) {
5810*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vsra(
5811*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5812*344a7f5eSAndroid Build Coastguard Worker }
5813*344a7f5eSAndroid Build Coastguard Worker
5814*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_sral(vector unsigned short __a,vector unsigned char __b)5815*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector unsigned short __a, vector unsigned char __b) {
5816*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsra(
5817*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5818*344a7f5eSAndroid Build Coastguard Worker }
5819*344a7f5eSAndroid Build Coastguard Worker
5820*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_sral(vector unsigned short __a,vector unsigned short __b)5821*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector unsigned short __a, vector unsigned short __b) {
5822*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsra(
5823*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5824*344a7f5eSAndroid Build Coastguard Worker }
5825*344a7f5eSAndroid Build Coastguard Worker
5826*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_sral(vector unsigned short __a,vector unsigned int __b)5827*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector unsigned short __a, vector unsigned int __b) {
5828*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsra(
5829*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5830*344a7f5eSAndroid Build Coastguard Worker }
5831*344a7f5eSAndroid Build Coastguard Worker
5832*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_sral(vector signed int __a,vector unsigned char __b)5833*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector signed int __a, vector unsigned char __b) {
5834*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsra(
5835*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5836*344a7f5eSAndroid Build Coastguard Worker }
5837*344a7f5eSAndroid Build Coastguard Worker
5838*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_sral(vector signed int __a,vector unsigned short __b)5839*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector signed int __a, vector unsigned short __b) {
5840*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsra(
5841*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5842*344a7f5eSAndroid Build Coastguard Worker }
5843*344a7f5eSAndroid Build Coastguard Worker
5844*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_sral(vector signed int __a,vector unsigned int __b)5845*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector signed int __a, vector unsigned int __b) {
5846*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsra(
5847*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5848*344a7f5eSAndroid Build Coastguard Worker }
5849*344a7f5eSAndroid Build Coastguard Worker
5850*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_sral(vector bool int __a,vector unsigned char __b)5851*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector bool int __a, vector unsigned char __b) {
5852*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vsra(
5853*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5854*344a7f5eSAndroid Build Coastguard Worker }
5855*344a7f5eSAndroid Build Coastguard Worker
5856*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_sral(vector bool int __a,vector unsigned short __b)5857*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector bool int __a, vector unsigned short __b) {
5858*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vsra(
5859*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5860*344a7f5eSAndroid Build Coastguard Worker }
5861*344a7f5eSAndroid Build Coastguard Worker
5862*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_sral(vector bool int __a,vector unsigned int __b)5863*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector bool int __a, vector unsigned int __b) {
5864*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vsra(
5865*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5866*344a7f5eSAndroid Build Coastguard Worker }
5867*344a7f5eSAndroid Build Coastguard Worker
5868*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_sral(vector unsigned int __a,vector unsigned char __b)5869*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector unsigned int __a, vector unsigned char __b) {
5870*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsra(
5871*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5872*344a7f5eSAndroid Build Coastguard Worker }
5873*344a7f5eSAndroid Build Coastguard Worker
5874*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_sral(vector unsigned int __a,vector unsigned short __b)5875*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector unsigned int __a, vector unsigned short __b) {
5876*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsra(
5877*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5878*344a7f5eSAndroid Build Coastguard Worker }
5879*344a7f5eSAndroid Build Coastguard Worker
5880*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_sral(vector unsigned int __a,vector unsigned int __b)5881*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector unsigned int __a, vector unsigned int __b) {
5882*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsra(
5883*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5884*344a7f5eSAndroid Build Coastguard Worker }
5885*344a7f5eSAndroid Build Coastguard Worker
5886*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_sral(vector signed long long __a,vector unsigned char __b)5887*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector signed long long __a, vector unsigned char __b) {
5888*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsra(
5889*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5890*344a7f5eSAndroid Build Coastguard Worker }
5891*344a7f5eSAndroid Build Coastguard Worker
5892*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_sral(vector signed long long __a,vector unsigned short __b)5893*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector signed long long __a, vector unsigned short __b) {
5894*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsra(
5895*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5896*344a7f5eSAndroid Build Coastguard Worker }
5897*344a7f5eSAndroid Build Coastguard Worker
5898*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_sral(vector signed long long __a,vector unsigned int __b)5899*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector signed long long __a, vector unsigned int __b) {
5900*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsra(
5901*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5902*344a7f5eSAndroid Build Coastguard Worker }
5903*344a7f5eSAndroid Build Coastguard Worker
5904*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_sral(vector bool long long __a,vector unsigned char __b)5905*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector bool long long __a, vector unsigned char __b) {
5906*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)__builtin_s390_vsra(
5907*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5908*344a7f5eSAndroid Build Coastguard Worker }
5909*344a7f5eSAndroid Build Coastguard Worker
5910*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_sral(vector bool long long __a,vector unsigned short __b)5911*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector bool long long __a, vector unsigned short __b) {
5912*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)__builtin_s390_vsra(
5913*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5914*344a7f5eSAndroid Build Coastguard Worker }
5915*344a7f5eSAndroid Build Coastguard Worker
5916*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_sral(vector bool long long __a,vector unsigned int __b)5917*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector bool long long __a, vector unsigned int __b) {
5918*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)__builtin_s390_vsra(
5919*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5920*344a7f5eSAndroid Build Coastguard Worker }
5921*344a7f5eSAndroid Build Coastguard Worker
5922*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_sral(vector unsigned long long __a,vector unsigned char __b)5923*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector unsigned long long __a, vector unsigned char __b) {
5924*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsra(
5925*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5926*344a7f5eSAndroid Build Coastguard Worker }
5927*344a7f5eSAndroid Build Coastguard Worker
5928*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_sral(vector unsigned long long __a,vector unsigned short __b)5929*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector unsigned long long __a, vector unsigned short __b) {
5930*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsra(
5931*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5932*344a7f5eSAndroid Build Coastguard Worker }
5933*344a7f5eSAndroid Build Coastguard Worker
5934*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_sral(vector unsigned long long __a,vector unsigned int __b)5935*344a7f5eSAndroid Build Coastguard Worker vec_sral(vector unsigned long long __a, vector unsigned int __b) {
5936*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsra(
5937*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5938*344a7f5eSAndroid Build Coastguard Worker }
5939*344a7f5eSAndroid Build Coastguard Worker
5940*344a7f5eSAndroid Build Coastguard Worker /*-- vec_srab ---------------------------------------------------------------*/
5941*344a7f5eSAndroid Build Coastguard Worker
5942*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_srab(vector signed char __a,vector signed char __b)5943*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector signed char __a, vector signed char __b) {
5944*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsrab(
5945*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5946*344a7f5eSAndroid Build Coastguard Worker }
5947*344a7f5eSAndroid Build Coastguard Worker
5948*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_srab(vector signed char __a,vector unsigned char __b)5949*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector signed char __a, vector unsigned char __b) {
5950*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsrab(
5951*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
5952*344a7f5eSAndroid Build Coastguard Worker }
5953*344a7f5eSAndroid Build Coastguard Worker
5954*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_srab(vector unsigned char __a,vector signed char __b)5955*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector unsigned char __a, vector signed char __b) {
5956*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsrab(__a, (vector unsigned char)__b);
5957*344a7f5eSAndroid Build Coastguard Worker }
5958*344a7f5eSAndroid Build Coastguard Worker
5959*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_srab(vector unsigned char __a,vector unsigned char __b)5960*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector unsigned char __a, vector unsigned char __b) {
5961*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsrab(__a, __b);
5962*344a7f5eSAndroid Build Coastguard Worker }
5963*344a7f5eSAndroid Build Coastguard Worker
5964*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_srab(vector signed short __a,vector signed short __b)5965*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector signed short __a, vector signed short __b) {
5966*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsrab(
5967*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5968*344a7f5eSAndroid Build Coastguard Worker }
5969*344a7f5eSAndroid Build Coastguard Worker
5970*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_srab(vector signed short __a,vector unsigned short __b)5971*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector signed short __a, vector unsigned short __b) {
5972*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsrab(
5973*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5974*344a7f5eSAndroid Build Coastguard Worker }
5975*344a7f5eSAndroid Build Coastguard Worker
5976*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_srab(vector unsigned short __a,vector signed short __b)5977*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector unsigned short __a, vector signed short __b) {
5978*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsrab(
5979*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5980*344a7f5eSAndroid Build Coastguard Worker }
5981*344a7f5eSAndroid Build Coastguard Worker
5982*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_srab(vector unsigned short __a,vector unsigned short __b)5983*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector unsigned short __a, vector unsigned short __b) {
5984*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsrab(
5985*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5986*344a7f5eSAndroid Build Coastguard Worker }
5987*344a7f5eSAndroid Build Coastguard Worker
5988*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_srab(vector signed int __a,vector signed int __b)5989*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector signed int __a, vector signed int __b) {
5990*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsrab(
5991*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5992*344a7f5eSAndroid Build Coastguard Worker }
5993*344a7f5eSAndroid Build Coastguard Worker
5994*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_srab(vector signed int __a,vector unsigned int __b)5995*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector signed int __a, vector unsigned int __b) {
5996*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsrab(
5997*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
5998*344a7f5eSAndroid Build Coastguard Worker }
5999*344a7f5eSAndroid Build Coastguard Worker
6000*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_srab(vector unsigned int __a,vector signed int __b)6001*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector unsigned int __a, vector signed int __b) {
6002*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsrab(
6003*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6004*344a7f5eSAndroid Build Coastguard Worker }
6005*344a7f5eSAndroid Build Coastguard Worker
6006*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_srab(vector unsigned int __a,vector unsigned int __b)6007*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector unsigned int __a, vector unsigned int __b) {
6008*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsrab(
6009*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6010*344a7f5eSAndroid Build Coastguard Worker }
6011*344a7f5eSAndroid Build Coastguard Worker
6012*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_srab(vector signed long long __a,vector signed long long __b)6013*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector signed long long __a, vector signed long long __b) {
6014*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsrab(
6015*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6016*344a7f5eSAndroid Build Coastguard Worker }
6017*344a7f5eSAndroid Build Coastguard Worker
6018*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_srab(vector signed long long __a,vector unsigned long long __b)6019*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector signed long long __a, vector unsigned long long __b) {
6020*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsrab(
6021*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6022*344a7f5eSAndroid Build Coastguard Worker }
6023*344a7f5eSAndroid Build Coastguard Worker
6024*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_srab(vector unsigned long long __a,vector signed long long __b)6025*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector unsigned long long __a, vector signed long long __b) {
6026*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsrab(
6027*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6028*344a7f5eSAndroid Build Coastguard Worker }
6029*344a7f5eSAndroid Build Coastguard Worker
6030*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_srab(vector unsigned long long __a,vector unsigned long long __b)6031*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector unsigned long long __a, vector unsigned long long __b) {
6032*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsrab(
6033*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6034*344a7f5eSAndroid Build Coastguard Worker }
6035*344a7f5eSAndroid Build Coastguard Worker
6036*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_srab(vector double __a,vector signed long long __b)6037*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector double __a, vector signed long long __b) {
6038*344a7f5eSAndroid Build Coastguard Worker return (vector double)__builtin_s390_vsrab(
6039*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6040*344a7f5eSAndroid Build Coastguard Worker }
6041*344a7f5eSAndroid Build Coastguard Worker
6042*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_srab(vector double __a,vector unsigned long long __b)6043*344a7f5eSAndroid Build Coastguard Worker vec_srab(vector double __a, vector unsigned long long __b) {
6044*344a7f5eSAndroid Build Coastguard Worker return (vector double)__builtin_s390_vsrab(
6045*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6046*344a7f5eSAndroid Build Coastguard Worker }
6047*344a7f5eSAndroid Build Coastguard Worker
6048*344a7f5eSAndroid Build Coastguard Worker /*-- vec_srl ----------------------------------------------------------------*/
6049*344a7f5eSAndroid Build Coastguard Worker
6050*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_srl(vector signed char __a,vector unsigned char __b)6051*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector signed char __a, vector unsigned char __b) {
6052*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsrl(
6053*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
6054*344a7f5eSAndroid Build Coastguard Worker }
6055*344a7f5eSAndroid Build Coastguard Worker
6056*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_srl(vector signed char __a,vector unsigned short __b)6057*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector signed char __a, vector unsigned short __b) {
6058*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsrl(
6059*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6060*344a7f5eSAndroid Build Coastguard Worker }
6061*344a7f5eSAndroid Build Coastguard Worker
6062*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_srl(vector signed char __a,vector unsigned int __b)6063*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector signed char __a, vector unsigned int __b) {
6064*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsrl(
6065*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6066*344a7f5eSAndroid Build Coastguard Worker }
6067*344a7f5eSAndroid Build Coastguard Worker
6068*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_srl(vector bool char __a,vector unsigned char __b)6069*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector bool char __a, vector unsigned char __b) {
6070*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vsrl(
6071*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
6072*344a7f5eSAndroid Build Coastguard Worker }
6073*344a7f5eSAndroid Build Coastguard Worker
6074*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_srl(vector bool char __a,vector unsigned short __b)6075*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector bool char __a, vector unsigned short __b) {
6076*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vsrl(
6077*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6078*344a7f5eSAndroid Build Coastguard Worker }
6079*344a7f5eSAndroid Build Coastguard Worker
6080*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_srl(vector bool char __a,vector unsigned int __b)6081*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector bool char __a, vector unsigned int __b) {
6082*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vsrl(
6083*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6084*344a7f5eSAndroid Build Coastguard Worker }
6085*344a7f5eSAndroid Build Coastguard Worker
6086*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_srl(vector unsigned char __a,vector unsigned char __b)6087*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector unsigned char __a, vector unsigned char __b) {
6088*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsrl(__a, __b);
6089*344a7f5eSAndroid Build Coastguard Worker }
6090*344a7f5eSAndroid Build Coastguard Worker
6091*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_srl(vector unsigned char __a,vector unsigned short __b)6092*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector unsigned char __a, vector unsigned short __b) {
6093*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
6094*344a7f5eSAndroid Build Coastguard Worker }
6095*344a7f5eSAndroid Build Coastguard Worker
6096*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_srl(vector unsigned char __a,vector unsigned int __b)6097*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector unsigned char __a, vector unsigned int __b) {
6098*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
6099*344a7f5eSAndroid Build Coastguard Worker }
6100*344a7f5eSAndroid Build Coastguard Worker
6101*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_srl(vector signed short __a,vector unsigned char __b)6102*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector signed short __a, vector unsigned char __b) {
6103*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsrl(
6104*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
6105*344a7f5eSAndroid Build Coastguard Worker }
6106*344a7f5eSAndroid Build Coastguard Worker
6107*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_srl(vector signed short __a,vector unsigned short __b)6108*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector signed short __a, vector unsigned short __b) {
6109*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsrl(
6110*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6111*344a7f5eSAndroid Build Coastguard Worker }
6112*344a7f5eSAndroid Build Coastguard Worker
6113*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_srl(vector signed short __a,vector unsigned int __b)6114*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector signed short __a, vector unsigned int __b) {
6115*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsrl(
6116*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6117*344a7f5eSAndroid Build Coastguard Worker }
6118*344a7f5eSAndroid Build Coastguard Worker
6119*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_srl(vector bool short __a,vector unsigned char __b)6120*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector bool short __a, vector unsigned char __b) {
6121*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vsrl(
6122*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
6123*344a7f5eSAndroid Build Coastguard Worker }
6124*344a7f5eSAndroid Build Coastguard Worker
6125*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_srl(vector bool short __a,vector unsigned short __b)6126*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector bool short __a, vector unsigned short __b) {
6127*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vsrl(
6128*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6129*344a7f5eSAndroid Build Coastguard Worker }
6130*344a7f5eSAndroid Build Coastguard Worker
6131*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_srl(vector bool short __a,vector unsigned int __b)6132*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector bool short __a, vector unsigned int __b) {
6133*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vsrl(
6134*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6135*344a7f5eSAndroid Build Coastguard Worker }
6136*344a7f5eSAndroid Build Coastguard Worker
6137*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_srl(vector unsigned short __a,vector unsigned char __b)6138*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector unsigned short __a, vector unsigned char __b) {
6139*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsrl(
6140*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
6141*344a7f5eSAndroid Build Coastguard Worker }
6142*344a7f5eSAndroid Build Coastguard Worker
6143*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_srl(vector unsigned short __a,vector unsigned short __b)6144*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector unsigned short __a, vector unsigned short __b) {
6145*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsrl(
6146*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6147*344a7f5eSAndroid Build Coastguard Worker }
6148*344a7f5eSAndroid Build Coastguard Worker
6149*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_srl(vector unsigned short __a,vector unsigned int __b)6150*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector unsigned short __a, vector unsigned int __b) {
6151*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsrl(
6152*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6153*344a7f5eSAndroid Build Coastguard Worker }
6154*344a7f5eSAndroid Build Coastguard Worker
6155*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_srl(vector signed int __a,vector unsigned char __b)6156*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector signed int __a, vector unsigned char __b) {
6157*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsrl(
6158*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
6159*344a7f5eSAndroid Build Coastguard Worker }
6160*344a7f5eSAndroid Build Coastguard Worker
6161*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_srl(vector signed int __a,vector unsigned short __b)6162*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector signed int __a, vector unsigned short __b) {
6163*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsrl(
6164*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6165*344a7f5eSAndroid Build Coastguard Worker }
6166*344a7f5eSAndroid Build Coastguard Worker
6167*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_srl(vector signed int __a,vector unsigned int __b)6168*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector signed int __a, vector unsigned int __b) {
6169*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsrl(
6170*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6171*344a7f5eSAndroid Build Coastguard Worker }
6172*344a7f5eSAndroid Build Coastguard Worker
6173*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_srl(vector bool int __a,vector unsigned char __b)6174*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector bool int __a, vector unsigned char __b) {
6175*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vsrl(
6176*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
6177*344a7f5eSAndroid Build Coastguard Worker }
6178*344a7f5eSAndroid Build Coastguard Worker
6179*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_srl(vector bool int __a,vector unsigned short __b)6180*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector bool int __a, vector unsigned short __b) {
6181*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vsrl(
6182*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6183*344a7f5eSAndroid Build Coastguard Worker }
6184*344a7f5eSAndroid Build Coastguard Worker
6185*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_srl(vector bool int __a,vector unsigned int __b)6186*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector bool int __a, vector unsigned int __b) {
6187*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vsrl(
6188*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6189*344a7f5eSAndroid Build Coastguard Worker }
6190*344a7f5eSAndroid Build Coastguard Worker
6191*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_srl(vector unsigned int __a,vector unsigned char __b)6192*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector unsigned int __a, vector unsigned char __b) {
6193*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsrl(
6194*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
6195*344a7f5eSAndroid Build Coastguard Worker }
6196*344a7f5eSAndroid Build Coastguard Worker
6197*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_srl(vector unsigned int __a,vector unsigned short __b)6198*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector unsigned int __a, vector unsigned short __b) {
6199*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsrl(
6200*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6201*344a7f5eSAndroid Build Coastguard Worker }
6202*344a7f5eSAndroid Build Coastguard Worker
6203*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_srl(vector unsigned int __a,vector unsigned int __b)6204*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector unsigned int __a, vector unsigned int __b) {
6205*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsrl(
6206*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6207*344a7f5eSAndroid Build Coastguard Worker }
6208*344a7f5eSAndroid Build Coastguard Worker
6209*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_srl(vector signed long long __a,vector unsigned char __b)6210*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector signed long long __a, vector unsigned char __b) {
6211*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsrl(
6212*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
6213*344a7f5eSAndroid Build Coastguard Worker }
6214*344a7f5eSAndroid Build Coastguard Worker
6215*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_srl(vector signed long long __a,vector unsigned short __b)6216*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector signed long long __a, vector unsigned short __b) {
6217*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsrl(
6218*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6219*344a7f5eSAndroid Build Coastguard Worker }
6220*344a7f5eSAndroid Build Coastguard Worker
6221*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_srl(vector signed long long __a,vector unsigned int __b)6222*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector signed long long __a, vector unsigned int __b) {
6223*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsrl(
6224*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6225*344a7f5eSAndroid Build Coastguard Worker }
6226*344a7f5eSAndroid Build Coastguard Worker
6227*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_srl(vector bool long long __a,vector unsigned char __b)6228*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector bool long long __a, vector unsigned char __b) {
6229*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)__builtin_s390_vsrl(
6230*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
6231*344a7f5eSAndroid Build Coastguard Worker }
6232*344a7f5eSAndroid Build Coastguard Worker
6233*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_srl(vector bool long long __a,vector unsigned short __b)6234*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector bool long long __a, vector unsigned short __b) {
6235*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)__builtin_s390_vsrl(
6236*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6237*344a7f5eSAndroid Build Coastguard Worker }
6238*344a7f5eSAndroid Build Coastguard Worker
6239*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool long long
vec_srl(vector bool long long __a,vector unsigned int __b)6240*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector bool long long __a, vector unsigned int __b) {
6241*344a7f5eSAndroid Build Coastguard Worker return (vector bool long long)__builtin_s390_vsrl(
6242*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6243*344a7f5eSAndroid Build Coastguard Worker }
6244*344a7f5eSAndroid Build Coastguard Worker
6245*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_srl(vector unsigned long long __a,vector unsigned char __b)6246*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector unsigned long long __a, vector unsigned char __b) {
6247*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsrl(
6248*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
6249*344a7f5eSAndroid Build Coastguard Worker }
6250*344a7f5eSAndroid Build Coastguard Worker
6251*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_srl(vector unsigned long long __a,vector unsigned short __b)6252*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector unsigned long long __a, vector unsigned short __b) {
6253*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsrl(
6254*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6255*344a7f5eSAndroid Build Coastguard Worker }
6256*344a7f5eSAndroid Build Coastguard Worker
6257*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_srl(vector unsigned long long __a,vector unsigned int __b)6258*344a7f5eSAndroid Build Coastguard Worker vec_srl(vector unsigned long long __a, vector unsigned int __b) {
6259*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsrl(
6260*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6261*344a7f5eSAndroid Build Coastguard Worker }
6262*344a7f5eSAndroid Build Coastguard Worker
6263*344a7f5eSAndroid Build Coastguard Worker /*-- vec_srb ----------------------------------------------------------------*/
6264*344a7f5eSAndroid Build Coastguard Worker
6265*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_srb(vector signed char __a,vector signed char __b)6266*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector signed char __a, vector signed char __b) {
6267*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsrlb(
6268*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6269*344a7f5eSAndroid Build Coastguard Worker }
6270*344a7f5eSAndroid Build Coastguard Worker
6271*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_srb(vector signed char __a,vector unsigned char __b)6272*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector signed char __a, vector unsigned char __b) {
6273*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vsrlb(
6274*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, __b);
6275*344a7f5eSAndroid Build Coastguard Worker }
6276*344a7f5eSAndroid Build Coastguard Worker
6277*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_srb(vector unsigned char __a,vector signed char __b)6278*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector unsigned char __a, vector signed char __b) {
6279*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsrlb(__a, (vector unsigned char)__b);
6280*344a7f5eSAndroid Build Coastguard Worker }
6281*344a7f5eSAndroid Build Coastguard Worker
6282*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_srb(vector unsigned char __a,vector unsigned char __b)6283*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector unsigned char __a, vector unsigned char __b) {
6284*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsrlb(__a, __b);
6285*344a7f5eSAndroid Build Coastguard Worker }
6286*344a7f5eSAndroid Build Coastguard Worker
6287*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_srb(vector signed short __a,vector signed short __b)6288*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector signed short __a, vector signed short __b) {
6289*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsrlb(
6290*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6291*344a7f5eSAndroid Build Coastguard Worker }
6292*344a7f5eSAndroid Build Coastguard Worker
6293*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_srb(vector signed short __a,vector unsigned short __b)6294*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector signed short __a, vector unsigned short __b) {
6295*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vsrlb(
6296*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6297*344a7f5eSAndroid Build Coastguard Worker }
6298*344a7f5eSAndroid Build Coastguard Worker
6299*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_srb(vector unsigned short __a,vector signed short __b)6300*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector unsigned short __a, vector signed short __b) {
6301*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsrlb(
6302*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6303*344a7f5eSAndroid Build Coastguard Worker }
6304*344a7f5eSAndroid Build Coastguard Worker
6305*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_srb(vector unsigned short __a,vector unsigned short __b)6306*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector unsigned short __a, vector unsigned short __b) {
6307*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned short)__builtin_s390_vsrlb(
6308*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6309*344a7f5eSAndroid Build Coastguard Worker }
6310*344a7f5eSAndroid Build Coastguard Worker
6311*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_srb(vector signed int __a,vector signed int __b)6312*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector signed int __a, vector signed int __b) {
6313*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsrlb(
6314*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6315*344a7f5eSAndroid Build Coastguard Worker }
6316*344a7f5eSAndroid Build Coastguard Worker
6317*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_srb(vector signed int __a,vector unsigned int __b)6318*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector signed int __a, vector unsigned int __b) {
6319*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vsrlb(
6320*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6321*344a7f5eSAndroid Build Coastguard Worker }
6322*344a7f5eSAndroid Build Coastguard Worker
6323*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_srb(vector unsigned int __a,vector signed int __b)6324*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector unsigned int __a, vector signed int __b) {
6325*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsrlb(
6326*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6327*344a7f5eSAndroid Build Coastguard Worker }
6328*344a7f5eSAndroid Build Coastguard Worker
6329*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_srb(vector unsigned int __a,vector unsigned int __b)6330*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector unsigned int __a, vector unsigned int __b) {
6331*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned int)__builtin_s390_vsrlb(
6332*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6333*344a7f5eSAndroid Build Coastguard Worker }
6334*344a7f5eSAndroid Build Coastguard Worker
6335*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_srb(vector signed long long __a,vector signed long long __b)6336*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector signed long long __a, vector signed long long __b) {
6337*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsrlb(
6338*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6339*344a7f5eSAndroid Build Coastguard Worker }
6340*344a7f5eSAndroid Build Coastguard Worker
6341*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_srb(vector signed long long __a,vector unsigned long long __b)6342*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector signed long long __a, vector unsigned long long __b) {
6343*344a7f5eSAndroid Build Coastguard Worker return (vector signed long long)__builtin_s390_vsrlb(
6344*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6345*344a7f5eSAndroid Build Coastguard Worker }
6346*344a7f5eSAndroid Build Coastguard Worker
6347*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_srb(vector unsigned long long __a,vector signed long long __b)6348*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector unsigned long long __a, vector signed long long __b) {
6349*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsrlb(
6350*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6351*344a7f5eSAndroid Build Coastguard Worker }
6352*344a7f5eSAndroid Build Coastguard Worker
6353*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_srb(vector unsigned long long __a,vector unsigned long long __b)6354*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector unsigned long long __a, vector unsigned long long __b) {
6355*344a7f5eSAndroid Build Coastguard Worker return (vector unsigned long long)__builtin_s390_vsrlb(
6356*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6357*344a7f5eSAndroid Build Coastguard Worker }
6358*344a7f5eSAndroid Build Coastguard Worker
6359*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_srb(vector double __a,vector signed long long __b)6360*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector double __a, vector signed long long __b) {
6361*344a7f5eSAndroid Build Coastguard Worker return (vector double)__builtin_s390_vsrlb(
6362*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6363*344a7f5eSAndroid Build Coastguard Worker }
6364*344a7f5eSAndroid Build Coastguard Worker
6365*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_srb(vector double __a,vector unsigned long long __b)6366*344a7f5eSAndroid Build Coastguard Worker vec_srb(vector double __a, vector unsigned long long __b) {
6367*344a7f5eSAndroid Build Coastguard Worker return (vector double)__builtin_s390_vsrlb(
6368*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__a, (vector unsigned char)__b);
6369*344a7f5eSAndroid Build Coastguard Worker }
6370*344a7f5eSAndroid Build Coastguard Worker
6371*344a7f5eSAndroid Build Coastguard Worker /*-- vec_abs ----------------------------------------------------------------*/
6372*344a7f5eSAndroid Build Coastguard Worker
6373*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_abs(vector signed char __a)6374*344a7f5eSAndroid Build Coastguard Worker vec_abs(vector signed char __a) {
6375*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed char)0));
6376*344a7f5eSAndroid Build Coastguard Worker }
6377*344a7f5eSAndroid Build Coastguard Worker
6378*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_abs(vector signed short __a)6379*344a7f5eSAndroid Build Coastguard Worker vec_abs(vector signed short __a) {
6380*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed short)0));
6381*344a7f5eSAndroid Build Coastguard Worker }
6382*344a7f5eSAndroid Build Coastguard Worker
6383*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_abs(vector signed int __a)6384*344a7f5eSAndroid Build Coastguard Worker vec_abs(vector signed int __a) {
6385*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed int)0));
6386*344a7f5eSAndroid Build Coastguard Worker }
6387*344a7f5eSAndroid Build Coastguard Worker
6388*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_abs(vector signed long long __a)6389*344a7f5eSAndroid Build Coastguard Worker vec_abs(vector signed long long __a) {
6390*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed long long)0));
6391*344a7f5eSAndroid Build Coastguard Worker }
6392*344a7f5eSAndroid Build Coastguard Worker
6393*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_abs(vector double __a)6394*344a7f5eSAndroid Build Coastguard Worker vec_abs(vector double __a) {
6395*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vflpdb(__a);
6396*344a7f5eSAndroid Build Coastguard Worker }
6397*344a7f5eSAndroid Build Coastguard Worker
6398*344a7f5eSAndroid Build Coastguard Worker /*-- vec_nabs ---------------------------------------------------------------*/
6399*344a7f5eSAndroid Build Coastguard Worker
6400*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_nabs(vector double __a)6401*344a7f5eSAndroid Build Coastguard Worker vec_nabs(vector double __a) {
6402*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vflndb(__a);
6403*344a7f5eSAndroid Build Coastguard Worker }
6404*344a7f5eSAndroid Build Coastguard Worker
6405*344a7f5eSAndroid Build Coastguard Worker /*-- vec_max ----------------------------------------------------------------*/
6406*344a7f5eSAndroid Build Coastguard Worker
6407*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_max(vector signed char __a,vector signed char __b)6408*344a7f5eSAndroid Build Coastguard Worker vec_max(vector signed char __a, vector signed char __b) {
6409*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6410*344a7f5eSAndroid Build Coastguard Worker }
6411*344a7f5eSAndroid Build Coastguard Worker
6412*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_max(vector signed char __a,vector bool char __b)6413*344a7f5eSAndroid Build Coastguard Worker vec_max(vector signed char __a, vector bool char __b) {
6414*344a7f5eSAndroid Build Coastguard Worker vector signed char __bc = (vector signed char)__b;
6415*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6416*344a7f5eSAndroid Build Coastguard Worker }
6417*344a7f5eSAndroid Build Coastguard Worker
6418*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_max(vector bool char __a,vector signed char __b)6419*344a7f5eSAndroid Build Coastguard Worker vec_max(vector bool char __a, vector signed char __b) {
6420*344a7f5eSAndroid Build Coastguard Worker vector signed char __ac = (vector signed char)__a;
6421*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6422*344a7f5eSAndroid Build Coastguard Worker }
6423*344a7f5eSAndroid Build Coastguard Worker
6424*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_max(vector unsigned char __a,vector unsigned char __b)6425*344a7f5eSAndroid Build Coastguard Worker vec_max(vector unsigned char __a, vector unsigned char __b) {
6426*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6427*344a7f5eSAndroid Build Coastguard Worker }
6428*344a7f5eSAndroid Build Coastguard Worker
6429*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_max(vector unsigned char __a,vector bool char __b)6430*344a7f5eSAndroid Build Coastguard Worker vec_max(vector unsigned char __a, vector bool char __b) {
6431*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __bc = (vector unsigned char)__b;
6432*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6433*344a7f5eSAndroid Build Coastguard Worker }
6434*344a7f5eSAndroid Build Coastguard Worker
6435*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_max(vector bool char __a,vector unsigned char __b)6436*344a7f5eSAndroid Build Coastguard Worker vec_max(vector bool char __a, vector unsigned char __b) {
6437*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __ac = (vector unsigned char)__a;
6438*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6439*344a7f5eSAndroid Build Coastguard Worker }
6440*344a7f5eSAndroid Build Coastguard Worker
6441*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_max(vector signed short __a,vector signed short __b)6442*344a7f5eSAndroid Build Coastguard Worker vec_max(vector signed short __a, vector signed short __b) {
6443*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6444*344a7f5eSAndroid Build Coastguard Worker }
6445*344a7f5eSAndroid Build Coastguard Worker
6446*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_max(vector signed short __a,vector bool short __b)6447*344a7f5eSAndroid Build Coastguard Worker vec_max(vector signed short __a, vector bool short __b) {
6448*344a7f5eSAndroid Build Coastguard Worker vector signed short __bc = (vector signed short)__b;
6449*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6450*344a7f5eSAndroid Build Coastguard Worker }
6451*344a7f5eSAndroid Build Coastguard Worker
6452*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_max(vector bool short __a,vector signed short __b)6453*344a7f5eSAndroid Build Coastguard Worker vec_max(vector bool short __a, vector signed short __b) {
6454*344a7f5eSAndroid Build Coastguard Worker vector signed short __ac = (vector signed short)__a;
6455*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6456*344a7f5eSAndroid Build Coastguard Worker }
6457*344a7f5eSAndroid Build Coastguard Worker
6458*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_max(vector unsigned short __a,vector unsigned short __b)6459*344a7f5eSAndroid Build Coastguard Worker vec_max(vector unsigned short __a, vector unsigned short __b) {
6460*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6461*344a7f5eSAndroid Build Coastguard Worker }
6462*344a7f5eSAndroid Build Coastguard Worker
6463*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_max(vector unsigned short __a,vector bool short __b)6464*344a7f5eSAndroid Build Coastguard Worker vec_max(vector unsigned short __a, vector bool short __b) {
6465*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __bc = (vector unsigned short)__b;
6466*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6467*344a7f5eSAndroid Build Coastguard Worker }
6468*344a7f5eSAndroid Build Coastguard Worker
6469*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_max(vector bool short __a,vector unsigned short __b)6470*344a7f5eSAndroid Build Coastguard Worker vec_max(vector bool short __a, vector unsigned short __b) {
6471*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __ac = (vector unsigned short)__a;
6472*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6473*344a7f5eSAndroid Build Coastguard Worker }
6474*344a7f5eSAndroid Build Coastguard Worker
6475*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_max(vector signed int __a,vector signed int __b)6476*344a7f5eSAndroid Build Coastguard Worker vec_max(vector signed int __a, vector signed int __b) {
6477*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6478*344a7f5eSAndroid Build Coastguard Worker }
6479*344a7f5eSAndroid Build Coastguard Worker
6480*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_max(vector signed int __a,vector bool int __b)6481*344a7f5eSAndroid Build Coastguard Worker vec_max(vector signed int __a, vector bool int __b) {
6482*344a7f5eSAndroid Build Coastguard Worker vector signed int __bc = (vector signed int)__b;
6483*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6484*344a7f5eSAndroid Build Coastguard Worker }
6485*344a7f5eSAndroid Build Coastguard Worker
6486*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_max(vector bool int __a,vector signed int __b)6487*344a7f5eSAndroid Build Coastguard Worker vec_max(vector bool int __a, vector signed int __b) {
6488*344a7f5eSAndroid Build Coastguard Worker vector signed int __ac = (vector signed int)__a;
6489*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6490*344a7f5eSAndroid Build Coastguard Worker }
6491*344a7f5eSAndroid Build Coastguard Worker
6492*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_max(vector unsigned int __a,vector unsigned int __b)6493*344a7f5eSAndroid Build Coastguard Worker vec_max(vector unsigned int __a, vector unsigned int __b) {
6494*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6495*344a7f5eSAndroid Build Coastguard Worker }
6496*344a7f5eSAndroid Build Coastguard Worker
6497*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_max(vector unsigned int __a,vector bool int __b)6498*344a7f5eSAndroid Build Coastguard Worker vec_max(vector unsigned int __a, vector bool int __b) {
6499*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __bc = (vector unsigned int)__b;
6500*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6501*344a7f5eSAndroid Build Coastguard Worker }
6502*344a7f5eSAndroid Build Coastguard Worker
6503*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_max(vector bool int __a,vector unsigned int __b)6504*344a7f5eSAndroid Build Coastguard Worker vec_max(vector bool int __a, vector unsigned int __b) {
6505*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __ac = (vector unsigned int)__a;
6506*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6507*344a7f5eSAndroid Build Coastguard Worker }
6508*344a7f5eSAndroid Build Coastguard Worker
6509*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_max(vector signed long long __a,vector signed long long __b)6510*344a7f5eSAndroid Build Coastguard Worker vec_max(vector signed long long __a, vector signed long long __b) {
6511*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6512*344a7f5eSAndroid Build Coastguard Worker }
6513*344a7f5eSAndroid Build Coastguard Worker
6514*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_max(vector signed long long __a,vector bool long long __b)6515*344a7f5eSAndroid Build Coastguard Worker vec_max(vector signed long long __a, vector bool long long __b) {
6516*344a7f5eSAndroid Build Coastguard Worker vector signed long long __bc = (vector signed long long)__b;
6517*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6518*344a7f5eSAndroid Build Coastguard Worker }
6519*344a7f5eSAndroid Build Coastguard Worker
6520*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_max(vector bool long long __a,vector signed long long __b)6521*344a7f5eSAndroid Build Coastguard Worker vec_max(vector bool long long __a, vector signed long long __b) {
6522*344a7f5eSAndroid Build Coastguard Worker vector signed long long __ac = (vector signed long long)__a;
6523*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6524*344a7f5eSAndroid Build Coastguard Worker }
6525*344a7f5eSAndroid Build Coastguard Worker
6526*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_max(vector unsigned long long __a,vector unsigned long long __b)6527*344a7f5eSAndroid Build Coastguard Worker vec_max(vector unsigned long long __a, vector unsigned long long __b) {
6528*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6529*344a7f5eSAndroid Build Coastguard Worker }
6530*344a7f5eSAndroid Build Coastguard Worker
6531*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_max(vector unsigned long long __a,vector bool long long __b)6532*344a7f5eSAndroid Build Coastguard Worker vec_max(vector unsigned long long __a, vector bool long long __b) {
6533*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __bc = (vector unsigned long long)__b;
6534*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6535*344a7f5eSAndroid Build Coastguard Worker }
6536*344a7f5eSAndroid Build Coastguard Worker
6537*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_max(vector bool long long __a,vector unsigned long long __b)6538*344a7f5eSAndroid Build Coastguard Worker vec_max(vector bool long long __a, vector unsigned long long __b) {
6539*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __ac = (vector unsigned long long)__a;
6540*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6541*344a7f5eSAndroid Build Coastguard Worker }
6542*344a7f5eSAndroid Build Coastguard Worker
6543*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_max(vector double __a,vector double __b)6544*344a7f5eSAndroid Build Coastguard Worker vec_max(vector double __a, vector double __b) {
6545*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6546*344a7f5eSAndroid Build Coastguard Worker }
6547*344a7f5eSAndroid Build Coastguard Worker
6548*344a7f5eSAndroid Build Coastguard Worker /*-- vec_min ----------------------------------------------------------------*/
6549*344a7f5eSAndroid Build Coastguard Worker
6550*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_min(vector signed char __a,vector signed char __b)6551*344a7f5eSAndroid Build Coastguard Worker vec_min(vector signed char __a, vector signed char __b) {
6552*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6553*344a7f5eSAndroid Build Coastguard Worker }
6554*344a7f5eSAndroid Build Coastguard Worker
6555*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_min(vector signed char __a,vector bool char __b)6556*344a7f5eSAndroid Build Coastguard Worker vec_min(vector signed char __a, vector bool char __b) {
6557*344a7f5eSAndroid Build Coastguard Worker vector signed char __bc = (vector signed char)__b;
6558*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6559*344a7f5eSAndroid Build Coastguard Worker }
6560*344a7f5eSAndroid Build Coastguard Worker
6561*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_min(vector bool char __a,vector signed char __b)6562*344a7f5eSAndroid Build Coastguard Worker vec_min(vector bool char __a, vector signed char __b) {
6563*344a7f5eSAndroid Build Coastguard Worker vector signed char __ac = (vector signed char)__a;
6564*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6565*344a7f5eSAndroid Build Coastguard Worker }
6566*344a7f5eSAndroid Build Coastguard Worker
6567*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_min(vector unsigned char __a,vector unsigned char __b)6568*344a7f5eSAndroid Build Coastguard Worker vec_min(vector unsigned char __a, vector unsigned char __b) {
6569*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6570*344a7f5eSAndroid Build Coastguard Worker }
6571*344a7f5eSAndroid Build Coastguard Worker
6572*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_min(vector unsigned char __a,vector bool char __b)6573*344a7f5eSAndroid Build Coastguard Worker vec_min(vector unsigned char __a, vector bool char __b) {
6574*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __bc = (vector unsigned char)__b;
6575*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6576*344a7f5eSAndroid Build Coastguard Worker }
6577*344a7f5eSAndroid Build Coastguard Worker
6578*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_min(vector bool char __a,vector unsigned char __b)6579*344a7f5eSAndroid Build Coastguard Worker vec_min(vector bool char __a, vector unsigned char __b) {
6580*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __ac = (vector unsigned char)__a;
6581*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6582*344a7f5eSAndroid Build Coastguard Worker }
6583*344a7f5eSAndroid Build Coastguard Worker
6584*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_min(vector signed short __a,vector signed short __b)6585*344a7f5eSAndroid Build Coastguard Worker vec_min(vector signed short __a, vector signed short __b) {
6586*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6587*344a7f5eSAndroid Build Coastguard Worker }
6588*344a7f5eSAndroid Build Coastguard Worker
6589*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_min(vector signed short __a,vector bool short __b)6590*344a7f5eSAndroid Build Coastguard Worker vec_min(vector signed short __a, vector bool short __b) {
6591*344a7f5eSAndroid Build Coastguard Worker vector signed short __bc = (vector signed short)__b;
6592*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6593*344a7f5eSAndroid Build Coastguard Worker }
6594*344a7f5eSAndroid Build Coastguard Worker
6595*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_min(vector bool short __a,vector signed short __b)6596*344a7f5eSAndroid Build Coastguard Worker vec_min(vector bool short __a, vector signed short __b) {
6597*344a7f5eSAndroid Build Coastguard Worker vector signed short __ac = (vector signed short)__a;
6598*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6599*344a7f5eSAndroid Build Coastguard Worker }
6600*344a7f5eSAndroid Build Coastguard Worker
6601*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_min(vector unsigned short __a,vector unsigned short __b)6602*344a7f5eSAndroid Build Coastguard Worker vec_min(vector unsigned short __a, vector unsigned short __b) {
6603*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6604*344a7f5eSAndroid Build Coastguard Worker }
6605*344a7f5eSAndroid Build Coastguard Worker
6606*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_min(vector unsigned short __a,vector bool short __b)6607*344a7f5eSAndroid Build Coastguard Worker vec_min(vector unsigned short __a, vector bool short __b) {
6608*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __bc = (vector unsigned short)__b;
6609*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6610*344a7f5eSAndroid Build Coastguard Worker }
6611*344a7f5eSAndroid Build Coastguard Worker
6612*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_min(vector bool short __a,vector unsigned short __b)6613*344a7f5eSAndroid Build Coastguard Worker vec_min(vector bool short __a, vector unsigned short __b) {
6614*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __ac = (vector unsigned short)__a;
6615*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6616*344a7f5eSAndroid Build Coastguard Worker }
6617*344a7f5eSAndroid Build Coastguard Worker
6618*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_min(vector signed int __a,vector signed int __b)6619*344a7f5eSAndroid Build Coastguard Worker vec_min(vector signed int __a, vector signed int __b) {
6620*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6621*344a7f5eSAndroid Build Coastguard Worker }
6622*344a7f5eSAndroid Build Coastguard Worker
6623*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_min(vector signed int __a,vector bool int __b)6624*344a7f5eSAndroid Build Coastguard Worker vec_min(vector signed int __a, vector bool int __b) {
6625*344a7f5eSAndroid Build Coastguard Worker vector signed int __bc = (vector signed int)__b;
6626*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6627*344a7f5eSAndroid Build Coastguard Worker }
6628*344a7f5eSAndroid Build Coastguard Worker
6629*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_min(vector bool int __a,vector signed int __b)6630*344a7f5eSAndroid Build Coastguard Worker vec_min(vector bool int __a, vector signed int __b) {
6631*344a7f5eSAndroid Build Coastguard Worker vector signed int __ac = (vector signed int)__a;
6632*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6633*344a7f5eSAndroid Build Coastguard Worker }
6634*344a7f5eSAndroid Build Coastguard Worker
6635*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_min(vector unsigned int __a,vector unsigned int __b)6636*344a7f5eSAndroid Build Coastguard Worker vec_min(vector unsigned int __a, vector unsigned int __b) {
6637*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6638*344a7f5eSAndroid Build Coastguard Worker }
6639*344a7f5eSAndroid Build Coastguard Worker
6640*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_min(vector unsigned int __a,vector bool int __b)6641*344a7f5eSAndroid Build Coastguard Worker vec_min(vector unsigned int __a, vector bool int __b) {
6642*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __bc = (vector unsigned int)__b;
6643*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6644*344a7f5eSAndroid Build Coastguard Worker }
6645*344a7f5eSAndroid Build Coastguard Worker
6646*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_min(vector bool int __a,vector unsigned int __b)6647*344a7f5eSAndroid Build Coastguard Worker vec_min(vector bool int __a, vector unsigned int __b) {
6648*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __ac = (vector unsigned int)__a;
6649*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6650*344a7f5eSAndroid Build Coastguard Worker }
6651*344a7f5eSAndroid Build Coastguard Worker
6652*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_min(vector signed long long __a,vector signed long long __b)6653*344a7f5eSAndroid Build Coastguard Worker vec_min(vector signed long long __a, vector signed long long __b) {
6654*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6655*344a7f5eSAndroid Build Coastguard Worker }
6656*344a7f5eSAndroid Build Coastguard Worker
6657*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_min(vector signed long long __a,vector bool long long __b)6658*344a7f5eSAndroid Build Coastguard Worker vec_min(vector signed long long __a, vector bool long long __b) {
6659*344a7f5eSAndroid Build Coastguard Worker vector signed long long __bc = (vector signed long long)__b;
6660*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6661*344a7f5eSAndroid Build Coastguard Worker }
6662*344a7f5eSAndroid Build Coastguard Worker
6663*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_min(vector bool long long __a,vector signed long long __b)6664*344a7f5eSAndroid Build Coastguard Worker vec_min(vector bool long long __a, vector signed long long __b) {
6665*344a7f5eSAndroid Build Coastguard Worker vector signed long long __ac = (vector signed long long)__a;
6666*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6667*344a7f5eSAndroid Build Coastguard Worker }
6668*344a7f5eSAndroid Build Coastguard Worker
6669*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_min(vector unsigned long long __a,vector unsigned long long __b)6670*344a7f5eSAndroid Build Coastguard Worker vec_min(vector unsigned long long __a, vector unsigned long long __b) {
6671*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6672*344a7f5eSAndroid Build Coastguard Worker }
6673*344a7f5eSAndroid Build Coastguard Worker
6674*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_min(vector unsigned long long __a,vector bool long long __b)6675*344a7f5eSAndroid Build Coastguard Worker vec_min(vector unsigned long long __a, vector bool long long __b) {
6676*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __bc = (vector unsigned long long)__b;
6677*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6678*344a7f5eSAndroid Build Coastguard Worker }
6679*344a7f5eSAndroid Build Coastguard Worker
6680*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_min(vector bool long long __a,vector unsigned long long __b)6681*344a7f5eSAndroid Build Coastguard Worker vec_min(vector bool long long __a, vector unsigned long long __b) {
6682*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __ac = (vector unsigned long long)__a;
6683*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6684*344a7f5eSAndroid Build Coastguard Worker }
6685*344a7f5eSAndroid Build Coastguard Worker
6686*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_min(vector double __a,vector double __b)6687*344a7f5eSAndroid Build Coastguard Worker vec_min(vector double __a, vector double __b) {
6688*344a7f5eSAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6689*344a7f5eSAndroid Build Coastguard Worker }
6690*344a7f5eSAndroid Build Coastguard Worker
6691*344a7f5eSAndroid Build Coastguard Worker /*-- vec_add_u128 -----------------------------------------------------------*/
6692*344a7f5eSAndroid Build Coastguard Worker
6693*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned char
vec_add_u128(vector unsigned char __a,vector unsigned char __b)6694*344a7f5eSAndroid Build Coastguard Worker vec_add_u128(vector unsigned char __a, vector unsigned char __b) {
6695*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vaq(__a, __b);
6696*344a7f5eSAndroid Build Coastguard Worker }
6697*344a7f5eSAndroid Build Coastguard Worker
6698*344a7f5eSAndroid Build Coastguard Worker /*-- vec_addc ---------------------------------------------------------------*/
6699*344a7f5eSAndroid Build Coastguard Worker
6700*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_addc(vector unsigned char __a,vector unsigned char __b)6701*344a7f5eSAndroid Build Coastguard Worker vec_addc(vector unsigned char __a, vector unsigned char __b) {
6702*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vaccb(__a, __b);
6703*344a7f5eSAndroid Build Coastguard Worker }
6704*344a7f5eSAndroid Build Coastguard Worker
6705*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_addc(vector unsigned short __a,vector unsigned short __b)6706*344a7f5eSAndroid Build Coastguard Worker vec_addc(vector unsigned short __a, vector unsigned short __b) {
6707*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vacch(__a, __b);
6708*344a7f5eSAndroid Build Coastguard Worker }
6709*344a7f5eSAndroid Build Coastguard Worker
6710*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_addc(vector unsigned int __a,vector unsigned int __b)6711*344a7f5eSAndroid Build Coastguard Worker vec_addc(vector unsigned int __a, vector unsigned int __b) {
6712*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vaccf(__a, __b);
6713*344a7f5eSAndroid Build Coastguard Worker }
6714*344a7f5eSAndroid Build Coastguard Worker
6715*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_addc(vector unsigned long long __a,vector unsigned long long __b)6716*344a7f5eSAndroid Build Coastguard Worker vec_addc(vector unsigned long long __a, vector unsigned long long __b) {
6717*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vaccg(__a, __b);
6718*344a7f5eSAndroid Build Coastguard Worker }
6719*344a7f5eSAndroid Build Coastguard Worker
6720*344a7f5eSAndroid Build Coastguard Worker /*-- vec_addc_u128 ----------------------------------------------------------*/
6721*344a7f5eSAndroid Build Coastguard Worker
6722*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned char
vec_addc_u128(vector unsigned char __a,vector unsigned char __b)6723*344a7f5eSAndroid Build Coastguard Worker vec_addc_u128(vector unsigned char __a, vector unsigned char __b) {
6724*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vaccq(__a, __b);
6725*344a7f5eSAndroid Build Coastguard Worker }
6726*344a7f5eSAndroid Build Coastguard Worker
6727*344a7f5eSAndroid Build Coastguard Worker /*-- vec_adde_u128 ----------------------------------------------------------*/
6728*344a7f5eSAndroid Build Coastguard Worker
6729*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned char
vec_adde_u128(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)6730*344a7f5eSAndroid Build Coastguard Worker vec_adde_u128(vector unsigned char __a, vector unsigned char __b,
6731*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
6732*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vacq(__a, __b, __c);
6733*344a7f5eSAndroid Build Coastguard Worker }
6734*344a7f5eSAndroid Build Coastguard Worker
6735*344a7f5eSAndroid Build Coastguard Worker /*-- vec_addec_u128 ---------------------------------------------------------*/
6736*344a7f5eSAndroid Build Coastguard Worker
6737*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned char
vec_addec_u128(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)6738*344a7f5eSAndroid Build Coastguard Worker vec_addec_u128(vector unsigned char __a, vector unsigned char __b,
6739*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
6740*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vacccq(__a, __b, __c);
6741*344a7f5eSAndroid Build Coastguard Worker }
6742*344a7f5eSAndroid Build Coastguard Worker
6743*344a7f5eSAndroid Build Coastguard Worker /*-- vec_avg ----------------------------------------------------------------*/
6744*344a7f5eSAndroid Build Coastguard Worker
6745*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_avg(vector signed char __a,vector signed char __b)6746*344a7f5eSAndroid Build Coastguard Worker vec_avg(vector signed char __a, vector signed char __b) {
6747*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vavgb(__a, __b);
6748*344a7f5eSAndroid Build Coastguard Worker }
6749*344a7f5eSAndroid Build Coastguard Worker
6750*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_avg(vector signed short __a,vector signed short __b)6751*344a7f5eSAndroid Build Coastguard Worker vec_avg(vector signed short __a, vector signed short __b) {
6752*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vavgh(__a, __b);
6753*344a7f5eSAndroid Build Coastguard Worker }
6754*344a7f5eSAndroid Build Coastguard Worker
6755*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_avg(vector signed int __a,vector signed int __b)6756*344a7f5eSAndroid Build Coastguard Worker vec_avg(vector signed int __a, vector signed int __b) {
6757*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vavgf(__a, __b);
6758*344a7f5eSAndroid Build Coastguard Worker }
6759*344a7f5eSAndroid Build Coastguard Worker
6760*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_avg(vector signed long long __a,vector signed long long __b)6761*344a7f5eSAndroid Build Coastguard Worker vec_avg(vector signed long long __a, vector signed long long __b) {
6762*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vavgg(__a, __b);
6763*344a7f5eSAndroid Build Coastguard Worker }
6764*344a7f5eSAndroid Build Coastguard Worker
6765*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_avg(vector unsigned char __a,vector unsigned char __b)6766*344a7f5eSAndroid Build Coastguard Worker vec_avg(vector unsigned char __a, vector unsigned char __b) {
6767*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vavglb(__a, __b);
6768*344a7f5eSAndroid Build Coastguard Worker }
6769*344a7f5eSAndroid Build Coastguard Worker
6770*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_avg(vector unsigned short __a,vector unsigned short __b)6771*344a7f5eSAndroid Build Coastguard Worker vec_avg(vector unsigned short __a, vector unsigned short __b) {
6772*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vavglh(__a, __b);
6773*344a7f5eSAndroid Build Coastguard Worker }
6774*344a7f5eSAndroid Build Coastguard Worker
6775*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_avg(vector unsigned int __a,vector unsigned int __b)6776*344a7f5eSAndroid Build Coastguard Worker vec_avg(vector unsigned int __a, vector unsigned int __b) {
6777*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vavglf(__a, __b);
6778*344a7f5eSAndroid Build Coastguard Worker }
6779*344a7f5eSAndroid Build Coastguard Worker
6780*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_avg(vector unsigned long long __a,vector unsigned long long __b)6781*344a7f5eSAndroid Build Coastguard Worker vec_avg(vector unsigned long long __a, vector unsigned long long __b) {
6782*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vavglg(__a, __b);
6783*344a7f5eSAndroid Build Coastguard Worker }
6784*344a7f5eSAndroid Build Coastguard Worker
6785*344a7f5eSAndroid Build Coastguard Worker /*-- vec_checksum -----------------------------------------------------------*/
6786*344a7f5eSAndroid Build Coastguard Worker
6787*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned int
vec_checksum(vector unsigned int __a,vector unsigned int __b)6788*344a7f5eSAndroid Build Coastguard Worker vec_checksum(vector unsigned int __a, vector unsigned int __b) {
6789*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vcksm(__a, __b);
6790*344a7f5eSAndroid Build Coastguard Worker }
6791*344a7f5eSAndroid Build Coastguard Worker
6792*344a7f5eSAndroid Build Coastguard Worker /*-- vec_gfmsum -------------------------------------------------------------*/
6793*344a7f5eSAndroid Build Coastguard Worker
6794*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_gfmsum(vector unsigned char __a,vector unsigned char __b)6795*344a7f5eSAndroid Build Coastguard Worker vec_gfmsum(vector unsigned char __a, vector unsigned char __b) {
6796*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vgfmb(__a, __b);
6797*344a7f5eSAndroid Build Coastguard Worker }
6798*344a7f5eSAndroid Build Coastguard Worker
6799*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_gfmsum(vector unsigned short __a,vector unsigned short __b)6800*344a7f5eSAndroid Build Coastguard Worker vec_gfmsum(vector unsigned short __a, vector unsigned short __b) {
6801*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vgfmh(__a, __b);
6802*344a7f5eSAndroid Build Coastguard Worker }
6803*344a7f5eSAndroid Build Coastguard Worker
6804*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_gfmsum(vector unsigned int __a,vector unsigned int __b)6805*344a7f5eSAndroid Build Coastguard Worker vec_gfmsum(vector unsigned int __a, vector unsigned int __b) {
6806*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vgfmf(__a, __b);
6807*344a7f5eSAndroid Build Coastguard Worker }
6808*344a7f5eSAndroid Build Coastguard Worker
6809*344a7f5eSAndroid Build Coastguard Worker /*-- vec_gfmsum_128 ---------------------------------------------------------*/
6810*344a7f5eSAndroid Build Coastguard Worker
6811*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_gfmsum_128(vector unsigned long long __a,vector unsigned long long __b)6812*344a7f5eSAndroid Build Coastguard Worker vec_gfmsum_128(vector unsigned long long __a, vector unsigned long long __b) {
6813*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vgfmg(__a, __b);
6814*344a7f5eSAndroid Build Coastguard Worker }
6815*344a7f5eSAndroid Build Coastguard Worker
6816*344a7f5eSAndroid Build Coastguard Worker /*-- vec_gfmsum_accum -------------------------------------------------------*/
6817*344a7f5eSAndroid Build Coastguard Worker
6818*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_gfmsum_accum(vector unsigned char __a,vector unsigned char __b,vector unsigned short __c)6819*344a7f5eSAndroid Build Coastguard Worker vec_gfmsum_accum(vector unsigned char __a, vector unsigned char __b,
6820*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
6821*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vgfmab(__a, __b, __c);
6822*344a7f5eSAndroid Build Coastguard Worker }
6823*344a7f5eSAndroid Build Coastguard Worker
6824*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_gfmsum_accum(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)6825*344a7f5eSAndroid Build Coastguard Worker vec_gfmsum_accum(vector unsigned short __a, vector unsigned short __b,
6826*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
6827*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vgfmah(__a, __b, __c);
6828*344a7f5eSAndroid Build Coastguard Worker }
6829*344a7f5eSAndroid Build Coastguard Worker
6830*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_gfmsum_accum(vector unsigned int __a,vector unsigned int __b,vector unsigned long long __c)6831*344a7f5eSAndroid Build Coastguard Worker vec_gfmsum_accum(vector unsigned int __a, vector unsigned int __b,
6832*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __c) {
6833*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vgfmaf(__a, __b, __c);
6834*344a7f5eSAndroid Build Coastguard Worker }
6835*344a7f5eSAndroid Build Coastguard Worker
6836*344a7f5eSAndroid Build Coastguard Worker /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
6837*344a7f5eSAndroid Build Coastguard Worker
6838*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_gfmsum_accum_128(vector unsigned long long __a,vector unsigned long long __b,vector unsigned char __c)6839*344a7f5eSAndroid Build Coastguard Worker vec_gfmsum_accum_128(vector unsigned long long __a,
6840*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __b,
6841*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
6842*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vgfmag(__a, __b, __c);
6843*344a7f5eSAndroid Build Coastguard Worker }
6844*344a7f5eSAndroid Build Coastguard Worker
6845*344a7f5eSAndroid Build Coastguard Worker /*-- vec_mladd --------------------------------------------------------------*/
6846*344a7f5eSAndroid Build Coastguard Worker
6847*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_mladd(vector signed char __a,vector signed char __b,vector signed char __c)6848*344a7f5eSAndroid Build Coastguard Worker vec_mladd(vector signed char __a, vector signed char __b,
6849*344a7f5eSAndroid Build Coastguard Worker vector signed char __c) {
6850*344a7f5eSAndroid Build Coastguard Worker return __a * __b + __c;
6851*344a7f5eSAndroid Build Coastguard Worker }
6852*344a7f5eSAndroid Build Coastguard Worker
6853*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_mladd(vector unsigned char __a,vector signed char __b,vector signed char __c)6854*344a7f5eSAndroid Build Coastguard Worker vec_mladd(vector unsigned char __a, vector signed char __b,
6855*344a7f5eSAndroid Build Coastguard Worker vector signed char __c) {
6856*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__a * __b + __c;
6857*344a7f5eSAndroid Build Coastguard Worker }
6858*344a7f5eSAndroid Build Coastguard Worker
6859*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_mladd(vector signed char __a,vector unsigned char __b,vector unsigned char __c)6860*344a7f5eSAndroid Build Coastguard Worker vec_mladd(vector signed char __a, vector unsigned char __b,
6861*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
6862*344a7f5eSAndroid Build Coastguard Worker return __a * (vector signed char)__b + (vector signed char)__c;
6863*344a7f5eSAndroid Build Coastguard Worker }
6864*344a7f5eSAndroid Build Coastguard Worker
6865*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_mladd(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)6866*344a7f5eSAndroid Build Coastguard Worker vec_mladd(vector unsigned char __a, vector unsigned char __b,
6867*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
6868*344a7f5eSAndroid Build Coastguard Worker return __a * __b + __c;
6869*344a7f5eSAndroid Build Coastguard Worker }
6870*344a7f5eSAndroid Build Coastguard Worker
6871*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_mladd(vector signed short __a,vector signed short __b,vector signed short __c)6872*344a7f5eSAndroid Build Coastguard Worker vec_mladd(vector signed short __a, vector signed short __b,
6873*344a7f5eSAndroid Build Coastguard Worker vector signed short __c) {
6874*344a7f5eSAndroid Build Coastguard Worker return __a * __b + __c;
6875*344a7f5eSAndroid Build Coastguard Worker }
6876*344a7f5eSAndroid Build Coastguard Worker
6877*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_mladd(vector unsigned short __a,vector signed short __b,vector signed short __c)6878*344a7f5eSAndroid Build Coastguard Worker vec_mladd(vector unsigned short __a, vector signed short __b,
6879*344a7f5eSAndroid Build Coastguard Worker vector signed short __c) {
6880*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__a * __b + __c;
6881*344a7f5eSAndroid Build Coastguard Worker }
6882*344a7f5eSAndroid Build Coastguard Worker
6883*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_mladd(vector signed short __a,vector unsigned short __b,vector unsigned short __c)6884*344a7f5eSAndroid Build Coastguard Worker vec_mladd(vector signed short __a, vector unsigned short __b,
6885*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
6886*344a7f5eSAndroid Build Coastguard Worker return __a * (vector signed short)__b + (vector signed short)__c;
6887*344a7f5eSAndroid Build Coastguard Worker }
6888*344a7f5eSAndroid Build Coastguard Worker
6889*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_mladd(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)6890*344a7f5eSAndroid Build Coastguard Worker vec_mladd(vector unsigned short __a, vector unsigned short __b,
6891*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
6892*344a7f5eSAndroid Build Coastguard Worker return __a * __b + __c;
6893*344a7f5eSAndroid Build Coastguard Worker }
6894*344a7f5eSAndroid Build Coastguard Worker
6895*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_mladd(vector signed int __a,vector signed int __b,vector signed int __c)6896*344a7f5eSAndroid Build Coastguard Worker vec_mladd(vector signed int __a, vector signed int __b,
6897*344a7f5eSAndroid Build Coastguard Worker vector signed int __c) {
6898*344a7f5eSAndroid Build Coastguard Worker return __a * __b + __c;
6899*344a7f5eSAndroid Build Coastguard Worker }
6900*344a7f5eSAndroid Build Coastguard Worker
6901*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_mladd(vector unsigned int __a,vector signed int __b,vector signed int __c)6902*344a7f5eSAndroid Build Coastguard Worker vec_mladd(vector unsigned int __a, vector signed int __b,
6903*344a7f5eSAndroid Build Coastguard Worker vector signed int __c) {
6904*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__a * __b + __c;
6905*344a7f5eSAndroid Build Coastguard Worker }
6906*344a7f5eSAndroid Build Coastguard Worker
6907*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_mladd(vector signed int __a,vector unsigned int __b,vector unsigned int __c)6908*344a7f5eSAndroid Build Coastguard Worker vec_mladd(vector signed int __a, vector unsigned int __b,
6909*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
6910*344a7f5eSAndroid Build Coastguard Worker return __a * (vector signed int)__b + (vector signed int)__c;
6911*344a7f5eSAndroid Build Coastguard Worker }
6912*344a7f5eSAndroid Build Coastguard Worker
6913*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_mladd(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)6914*344a7f5eSAndroid Build Coastguard Worker vec_mladd(vector unsigned int __a, vector unsigned int __b,
6915*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
6916*344a7f5eSAndroid Build Coastguard Worker return __a * __b + __c;
6917*344a7f5eSAndroid Build Coastguard Worker }
6918*344a7f5eSAndroid Build Coastguard Worker
6919*344a7f5eSAndroid Build Coastguard Worker /*-- vec_mhadd --------------------------------------------------------------*/
6920*344a7f5eSAndroid Build Coastguard Worker
6921*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_mhadd(vector signed char __a,vector signed char __b,vector signed char __c)6922*344a7f5eSAndroid Build Coastguard Worker vec_mhadd(vector signed char __a, vector signed char __b,
6923*344a7f5eSAndroid Build Coastguard Worker vector signed char __c) {
6924*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmahb(__a, __b, __c);
6925*344a7f5eSAndroid Build Coastguard Worker }
6926*344a7f5eSAndroid Build Coastguard Worker
6927*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_mhadd(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)6928*344a7f5eSAndroid Build Coastguard Worker vec_mhadd(vector unsigned char __a, vector unsigned char __b,
6929*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
6930*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmalhb(__a, __b, __c);
6931*344a7f5eSAndroid Build Coastguard Worker }
6932*344a7f5eSAndroid Build Coastguard Worker
6933*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_mhadd(vector signed short __a,vector signed short __b,vector signed short __c)6934*344a7f5eSAndroid Build Coastguard Worker vec_mhadd(vector signed short __a, vector signed short __b,
6935*344a7f5eSAndroid Build Coastguard Worker vector signed short __c) {
6936*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmahh(__a, __b, __c);
6937*344a7f5eSAndroid Build Coastguard Worker }
6938*344a7f5eSAndroid Build Coastguard Worker
6939*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_mhadd(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)6940*344a7f5eSAndroid Build Coastguard Worker vec_mhadd(vector unsigned short __a, vector unsigned short __b,
6941*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
6942*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmalhh(__a, __b, __c);
6943*344a7f5eSAndroid Build Coastguard Worker }
6944*344a7f5eSAndroid Build Coastguard Worker
6945*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_mhadd(vector signed int __a,vector signed int __b,vector signed int __c)6946*344a7f5eSAndroid Build Coastguard Worker vec_mhadd(vector signed int __a, vector signed int __b,
6947*344a7f5eSAndroid Build Coastguard Worker vector signed int __c) {
6948*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmahf(__a, __b, __c);
6949*344a7f5eSAndroid Build Coastguard Worker }
6950*344a7f5eSAndroid Build Coastguard Worker
6951*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_mhadd(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)6952*344a7f5eSAndroid Build Coastguard Worker vec_mhadd(vector unsigned int __a, vector unsigned int __b,
6953*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
6954*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmalhf(__a, __b, __c);
6955*344a7f5eSAndroid Build Coastguard Worker }
6956*344a7f5eSAndroid Build Coastguard Worker
6957*344a7f5eSAndroid Build Coastguard Worker /*-- vec_meadd --------------------------------------------------------------*/
6958*344a7f5eSAndroid Build Coastguard Worker
6959*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_meadd(vector signed char __a,vector signed char __b,vector signed short __c)6960*344a7f5eSAndroid Build Coastguard Worker vec_meadd(vector signed char __a, vector signed char __b,
6961*344a7f5eSAndroid Build Coastguard Worker vector signed short __c) {
6962*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmaeb(__a, __b, __c);
6963*344a7f5eSAndroid Build Coastguard Worker }
6964*344a7f5eSAndroid Build Coastguard Worker
6965*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_meadd(vector unsigned char __a,vector unsigned char __b,vector unsigned short __c)6966*344a7f5eSAndroid Build Coastguard Worker vec_meadd(vector unsigned char __a, vector unsigned char __b,
6967*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
6968*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmaleb(__a, __b, __c);
6969*344a7f5eSAndroid Build Coastguard Worker }
6970*344a7f5eSAndroid Build Coastguard Worker
6971*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_meadd(vector signed short __a,vector signed short __b,vector signed int __c)6972*344a7f5eSAndroid Build Coastguard Worker vec_meadd(vector signed short __a, vector signed short __b,
6973*344a7f5eSAndroid Build Coastguard Worker vector signed int __c) {
6974*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmaeh(__a, __b, __c);
6975*344a7f5eSAndroid Build Coastguard Worker }
6976*344a7f5eSAndroid Build Coastguard Worker
6977*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_meadd(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)6978*344a7f5eSAndroid Build Coastguard Worker vec_meadd(vector unsigned short __a, vector unsigned short __b,
6979*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
6980*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmaleh(__a, __b, __c);
6981*344a7f5eSAndroid Build Coastguard Worker }
6982*344a7f5eSAndroid Build Coastguard Worker
6983*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_meadd(vector signed int __a,vector signed int __b,vector signed long long __c)6984*344a7f5eSAndroid Build Coastguard Worker vec_meadd(vector signed int __a, vector signed int __b,
6985*344a7f5eSAndroid Build Coastguard Worker vector signed long long __c) {
6986*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmaef(__a, __b, __c);
6987*344a7f5eSAndroid Build Coastguard Worker }
6988*344a7f5eSAndroid Build Coastguard Worker
6989*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_meadd(vector unsigned int __a,vector unsigned int __b,vector unsigned long long __c)6990*344a7f5eSAndroid Build Coastguard Worker vec_meadd(vector unsigned int __a, vector unsigned int __b,
6991*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __c) {
6992*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmalef(__a, __b, __c);
6993*344a7f5eSAndroid Build Coastguard Worker }
6994*344a7f5eSAndroid Build Coastguard Worker
6995*344a7f5eSAndroid Build Coastguard Worker /*-- vec_moadd --------------------------------------------------------------*/
6996*344a7f5eSAndroid Build Coastguard Worker
6997*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_moadd(vector signed char __a,vector signed char __b,vector signed short __c)6998*344a7f5eSAndroid Build Coastguard Worker vec_moadd(vector signed char __a, vector signed char __b,
6999*344a7f5eSAndroid Build Coastguard Worker vector signed short __c) {
7000*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmaob(__a, __b, __c);
7001*344a7f5eSAndroid Build Coastguard Worker }
7002*344a7f5eSAndroid Build Coastguard Worker
7003*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_moadd(vector unsigned char __a,vector unsigned char __b,vector unsigned short __c)7004*344a7f5eSAndroid Build Coastguard Worker vec_moadd(vector unsigned char __a, vector unsigned char __b,
7005*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
7006*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmalob(__a, __b, __c);
7007*344a7f5eSAndroid Build Coastguard Worker }
7008*344a7f5eSAndroid Build Coastguard Worker
7009*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_moadd(vector signed short __a,vector signed short __b,vector signed int __c)7010*344a7f5eSAndroid Build Coastguard Worker vec_moadd(vector signed short __a, vector signed short __b,
7011*344a7f5eSAndroid Build Coastguard Worker vector signed int __c) {
7012*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmaoh(__a, __b, __c);
7013*344a7f5eSAndroid Build Coastguard Worker }
7014*344a7f5eSAndroid Build Coastguard Worker
7015*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_moadd(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)7016*344a7f5eSAndroid Build Coastguard Worker vec_moadd(vector unsigned short __a, vector unsigned short __b,
7017*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
7018*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmaloh(__a, __b, __c);
7019*344a7f5eSAndroid Build Coastguard Worker }
7020*344a7f5eSAndroid Build Coastguard Worker
7021*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_moadd(vector signed int __a,vector signed int __b,vector signed long long __c)7022*344a7f5eSAndroid Build Coastguard Worker vec_moadd(vector signed int __a, vector signed int __b,
7023*344a7f5eSAndroid Build Coastguard Worker vector signed long long __c) {
7024*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmaof(__a, __b, __c);
7025*344a7f5eSAndroid Build Coastguard Worker }
7026*344a7f5eSAndroid Build Coastguard Worker
7027*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_moadd(vector unsigned int __a,vector unsigned int __b,vector unsigned long long __c)7028*344a7f5eSAndroid Build Coastguard Worker vec_moadd(vector unsigned int __a, vector unsigned int __b,
7029*344a7f5eSAndroid Build Coastguard Worker vector unsigned long long __c) {
7030*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmalof(__a, __b, __c);
7031*344a7f5eSAndroid Build Coastguard Worker }
7032*344a7f5eSAndroid Build Coastguard Worker
7033*344a7f5eSAndroid Build Coastguard Worker /*-- vec_mulh ---------------------------------------------------------------*/
7034*344a7f5eSAndroid Build Coastguard Worker
7035*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_mulh(vector signed char __a,vector signed char __b)7036*344a7f5eSAndroid Build Coastguard Worker vec_mulh(vector signed char __a, vector signed char __b) {
7037*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmhb(__a, __b);
7038*344a7f5eSAndroid Build Coastguard Worker }
7039*344a7f5eSAndroid Build Coastguard Worker
7040*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_mulh(vector unsigned char __a,vector unsigned char __b)7041*344a7f5eSAndroid Build Coastguard Worker vec_mulh(vector unsigned char __a, vector unsigned char __b) {
7042*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmlhb(__a, __b);
7043*344a7f5eSAndroid Build Coastguard Worker }
7044*344a7f5eSAndroid Build Coastguard Worker
7045*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_mulh(vector signed short __a,vector signed short __b)7046*344a7f5eSAndroid Build Coastguard Worker vec_mulh(vector signed short __a, vector signed short __b) {
7047*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmhh(__a, __b);
7048*344a7f5eSAndroid Build Coastguard Worker }
7049*344a7f5eSAndroid Build Coastguard Worker
7050*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_mulh(vector unsigned short __a,vector unsigned short __b)7051*344a7f5eSAndroid Build Coastguard Worker vec_mulh(vector unsigned short __a, vector unsigned short __b) {
7052*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmlhh(__a, __b);
7053*344a7f5eSAndroid Build Coastguard Worker }
7054*344a7f5eSAndroid Build Coastguard Worker
7055*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_mulh(vector signed int __a,vector signed int __b)7056*344a7f5eSAndroid Build Coastguard Worker vec_mulh(vector signed int __a, vector signed int __b) {
7057*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmhf(__a, __b);
7058*344a7f5eSAndroid Build Coastguard Worker }
7059*344a7f5eSAndroid Build Coastguard Worker
7060*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_mulh(vector unsigned int __a,vector unsigned int __b)7061*344a7f5eSAndroid Build Coastguard Worker vec_mulh(vector unsigned int __a, vector unsigned int __b) {
7062*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmlhf(__a, __b);
7063*344a7f5eSAndroid Build Coastguard Worker }
7064*344a7f5eSAndroid Build Coastguard Worker
7065*344a7f5eSAndroid Build Coastguard Worker /*-- vec_mule ---------------------------------------------------------------*/
7066*344a7f5eSAndroid Build Coastguard Worker
7067*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_mule(vector signed char __a,vector signed char __b)7068*344a7f5eSAndroid Build Coastguard Worker vec_mule(vector signed char __a, vector signed char __b) {
7069*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmeb(__a, __b);
7070*344a7f5eSAndroid Build Coastguard Worker }
7071*344a7f5eSAndroid Build Coastguard Worker
7072*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_mule(vector unsigned char __a,vector unsigned char __b)7073*344a7f5eSAndroid Build Coastguard Worker vec_mule(vector unsigned char __a, vector unsigned char __b) {
7074*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmleb(__a, __b);
7075*344a7f5eSAndroid Build Coastguard Worker }
7076*344a7f5eSAndroid Build Coastguard Worker
7077*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_mule(vector signed short __a,vector signed short __b)7078*344a7f5eSAndroid Build Coastguard Worker vec_mule(vector signed short __a, vector signed short __b) {
7079*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmeh(__a, __b);
7080*344a7f5eSAndroid Build Coastguard Worker }
7081*344a7f5eSAndroid Build Coastguard Worker
7082*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_mule(vector unsigned short __a,vector unsigned short __b)7083*344a7f5eSAndroid Build Coastguard Worker vec_mule(vector unsigned short __a, vector unsigned short __b) {
7084*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmleh(__a, __b);
7085*344a7f5eSAndroid Build Coastguard Worker }
7086*344a7f5eSAndroid Build Coastguard Worker
7087*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_mule(vector signed int __a,vector signed int __b)7088*344a7f5eSAndroid Build Coastguard Worker vec_mule(vector signed int __a, vector signed int __b) {
7089*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmef(__a, __b);
7090*344a7f5eSAndroid Build Coastguard Worker }
7091*344a7f5eSAndroid Build Coastguard Worker
7092*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_mule(vector unsigned int __a,vector unsigned int __b)7093*344a7f5eSAndroid Build Coastguard Worker vec_mule(vector unsigned int __a, vector unsigned int __b) {
7094*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmlef(__a, __b);
7095*344a7f5eSAndroid Build Coastguard Worker }
7096*344a7f5eSAndroid Build Coastguard Worker
7097*344a7f5eSAndroid Build Coastguard Worker /*-- vec_mulo ---------------------------------------------------------------*/
7098*344a7f5eSAndroid Build Coastguard Worker
7099*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_mulo(vector signed char __a,vector signed char __b)7100*344a7f5eSAndroid Build Coastguard Worker vec_mulo(vector signed char __a, vector signed char __b) {
7101*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmob(__a, __b);
7102*344a7f5eSAndroid Build Coastguard Worker }
7103*344a7f5eSAndroid Build Coastguard Worker
7104*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_mulo(vector unsigned char __a,vector unsigned char __b)7105*344a7f5eSAndroid Build Coastguard Worker vec_mulo(vector unsigned char __a, vector unsigned char __b) {
7106*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmlob(__a, __b);
7107*344a7f5eSAndroid Build Coastguard Worker }
7108*344a7f5eSAndroid Build Coastguard Worker
7109*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_mulo(vector signed short __a,vector signed short __b)7110*344a7f5eSAndroid Build Coastguard Worker vec_mulo(vector signed short __a, vector signed short __b) {
7111*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmoh(__a, __b);
7112*344a7f5eSAndroid Build Coastguard Worker }
7113*344a7f5eSAndroid Build Coastguard Worker
7114*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_mulo(vector unsigned short __a,vector unsigned short __b)7115*344a7f5eSAndroid Build Coastguard Worker vec_mulo(vector unsigned short __a, vector unsigned short __b) {
7116*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmloh(__a, __b);
7117*344a7f5eSAndroid Build Coastguard Worker }
7118*344a7f5eSAndroid Build Coastguard Worker
7119*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_mulo(vector signed int __a,vector signed int __b)7120*344a7f5eSAndroid Build Coastguard Worker vec_mulo(vector signed int __a, vector signed int __b) {
7121*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmof(__a, __b);
7122*344a7f5eSAndroid Build Coastguard Worker }
7123*344a7f5eSAndroid Build Coastguard Worker
7124*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_mulo(vector unsigned int __a,vector unsigned int __b)7125*344a7f5eSAndroid Build Coastguard Worker vec_mulo(vector unsigned int __a, vector unsigned int __b) {
7126*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vmlof(__a, __b);
7127*344a7f5eSAndroid Build Coastguard Worker }
7128*344a7f5eSAndroid Build Coastguard Worker
7129*344a7f5eSAndroid Build Coastguard Worker /*-- vec_sub_u128 -----------------------------------------------------------*/
7130*344a7f5eSAndroid Build Coastguard Worker
7131*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned char
vec_sub_u128(vector unsigned char __a,vector unsigned char __b)7132*344a7f5eSAndroid Build Coastguard Worker vec_sub_u128(vector unsigned char __a, vector unsigned char __b) {
7133*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsq(__a, __b);
7134*344a7f5eSAndroid Build Coastguard Worker }
7135*344a7f5eSAndroid Build Coastguard Worker
7136*344a7f5eSAndroid Build Coastguard Worker /*-- vec_subc ---------------------------------------------------------------*/
7137*344a7f5eSAndroid Build Coastguard Worker
7138*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_subc(vector unsigned char __a,vector unsigned char __b)7139*344a7f5eSAndroid Build Coastguard Worker vec_subc(vector unsigned char __a, vector unsigned char __b) {
7140*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vscbib(__a, __b);
7141*344a7f5eSAndroid Build Coastguard Worker }
7142*344a7f5eSAndroid Build Coastguard Worker
7143*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_subc(vector unsigned short __a,vector unsigned short __b)7144*344a7f5eSAndroid Build Coastguard Worker vec_subc(vector unsigned short __a, vector unsigned short __b) {
7145*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vscbih(__a, __b);
7146*344a7f5eSAndroid Build Coastguard Worker }
7147*344a7f5eSAndroid Build Coastguard Worker
7148*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_subc(vector unsigned int __a,vector unsigned int __b)7149*344a7f5eSAndroid Build Coastguard Worker vec_subc(vector unsigned int __a, vector unsigned int __b) {
7150*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vscbif(__a, __b);
7151*344a7f5eSAndroid Build Coastguard Worker }
7152*344a7f5eSAndroid Build Coastguard Worker
7153*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_subc(vector unsigned long long __a,vector unsigned long long __b)7154*344a7f5eSAndroid Build Coastguard Worker vec_subc(vector unsigned long long __a, vector unsigned long long __b) {
7155*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vscbig(__a, __b);
7156*344a7f5eSAndroid Build Coastguard Worker }
7157*344a7f5eSAndroid Build Coastguard Worker
7158*344a7f5eSAndroid Build Coastguard Worker /*-- vec_subc_u128 ----------------------------------------------------------*/
7159*344a7f5eSAndroid Build Coastguard Worker
7160*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned char
vec_subc_u128(vector unsigned char __a,vector unsigned char __b)7161*344a7f5eSAndroid Build Coastguard Worker vec_subc_u128(vector unsigned char __a, vector unsigned char __b) {
7162*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vscbiq(__a, __b);
7163*344a7f5eSAndroid Build Coastguard Worker }
7164*344a7f5eSAndroid Build Coastguard Worker
7165*344a7f5eSAndroid Build Coastguard Worker /*-- vec_sube_u128 ----------------------------------------------------------*/
7166*344a7f5eSAndroid Build Coastguard Worker
7167*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned char
vec_sube_u128(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)7168*344a7f5eSAndroid Build Coastguard Worker vec_sube_u128(vector unsigned char __a, vector unsigned char __b,
7169*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
7170*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsbiq(__a, __b, __c);
7171*344a7f5eSAndroid Build Coastguard Worker }
7172*344a7f5eSAndroid Build Coastguard Worker
7173*344a7f5eSAndroid Build Coastguard Worker /*-- vec_subec_u128 ---------------------------------------------------------*/
7174*344a7f5eSAndroid Build Coastguard Worker
7175*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector unsigned char
vec_subec_u128(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)7176*344a7f5eSAndroid Build Coastguard Worker vec_subec_u128(vector unsigned char __a, vector unsigned char __b,
7177*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
7178*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsbcbiq(__a, __b, __c);
7179*344a7f5eSAndroid Build Coastguard Worker }
7180*344a7f5eSAndroid Build Coastguard Worker
7181*344a7f5eSAndroid Build Coastguard Worker /*-- vec_sum2 ---------------------------------------------------------------*/
7182*344a7f5eSAndroid Build Coastguard Worker
7183*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_sum2(vector unsigned short __a,vector unsigned short __b)7184*344a7f5eSAndroid Build Coastguard Worker vec_sum2(vector unsigned short __a, vector unsigned short __b) {
7185*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsumgh(__a, __b);
7186*344a7f5eSAndroid Build Coastguard Worker }
7187*344a7f5eSAndroid Build Coastguard Worker
7188*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_sum2(vector unsigned int __a,vector unsigned int __b)7189*344a7f5eSAndroid Build Coastguard Worker vec_sum2(vector unsigned int __a, vector unsigned int __b) {
7190*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsumgf(__a, __b);
7191*344a7f5eSAndroid Build Coastguard Worker }
7192*344a7f5eSAndroid Build Coastguard Worker
7193*344a7f5eSAndroid Build Coastguard Worker /*-- vec_sum_u128 -----------------------------------------------------------*/
7194*344a7f5eSAndroid Build Coastguard Worker
7195*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_sum_u128(vector unsigned int __a,vector unsigned int __b)7196*344a7f5eSAndroid Build Coastguard Worker vec_sum_u128(vector unsigned int __a, vector unsigned int __b) {
7197*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsumqf(__a, __b);
7198*344a7f5eSAndroid Build Coastguard Worker }
7199*344a7f5eSAndroid Build Coastguard Worker
7200*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_sum_u128(vector unsigned long long __a,vector unsigned long long __b)7201*344a7f5eSAndroid Build Coastguard Worker vec_sum_u128(vector unsigned long long __a, vector unsigned long long __b) {
7202*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsumqg(__a, __b);
7203*344a7f5eSAndroid Build Coastguard Worker }
7204*344a7f5eSAndroid Build Coastguard Worker
7205*344a7f5eSAndroid Build Coastguard Worker /*-- vec_sum4 ---------------------------------------------------------------*/
7206*344a7f5eSAndroid Build Coastguard Worker
7207*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_sum4(vector unsigned char __a,vector unsigned char __b)7208*344a7f5eSAndroid Build Coastguard Worker vec_sum4(vector unsigned char __a, vector unsigned char __b) {
7209*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsumb(__a, __b);
7210*344a7f5eSAndroid Build Coastguard Worker }
7211*344a7f5eSAndroid Build Coastguard Worker
7212*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_sum4(vector unsigned short __a,vector unsigned short __b)7213*344a7f5eSAndroid Build Coastguard Worker vec_sum4(vector unsigned short __a, vector unsigned short __b) {
7214*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vsumh(__a, __b);
7215*344a7f5eSAndroid Build Coastguard Worker }
7216*344a7f5eSAndroid Build Coastguard Worker
7217*344a7f5eSAndroid Build Coastguard Worker /*-- vec_test_mask ----------------------------------------------------------*/
7218*344a7f5eSAndroid Build Coastguard Worker
7219*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(vector signed char __a,vector unsigned char __b)7220*344a7f5eSAndroid Build Coastguard Worker vec_test_mask(vector signed char __a, vector unsigned char __b) {
7221*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vtm((vector unsigned char)__a,
7222*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7223*344a7f5eSAndroid Build Coastguard Worker }
7224*344a7f5eSAndroid Build Coastguard Worker
7225*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(vector unsigned char __a,vector unsigned char __b)7226*344a7f5eSAndroid Build Coastguard Worker vec_test_mask(vector unsigned char __a, vector unsigned char __b) {
7227*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vtm(__a, __b);
7228*344a7f5eSAndroid Build Coastguard Worker }
7229*344a7f5eSAndroid Build Coastguard Worker
7230*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(vector signed short __a,vector unsigned short __b)7231*344a7f5eSAndroid Build Coastguard Worker vec_test_mask(vector signed short __a, vector unsigned short __b) {
7232*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vtm((vector unsigned char)__a,
7233*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7234*344a7f5eSAndroid Build Coastguard Worker }
7235*344a7f5eSAndroid Build Coastguard Worker
7236*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(vector unsigned short __a,vector unsigned short __b)7237*344a7f5eSAndroid Build Coastguard Worker vec_test_mask(vector unsigned short __a, vector unsigned short __b) {
7238*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vtm((vector unsigned char)__a,
7239*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7240*344a7f5eSAndroid Build Coastguard Worker }
7241*344a7f5eSAndroid Build Coastguard Worker
7242*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(vector signed int __a,vector unsigned int __b)7243*344a7f5eSAndroid Build Coastguard Worker vec_test_mask(vector signed int __a, vector unsigned int __b) {
7244*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vtm((vector unsigned char)__a,
7245*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7246*344a7f5eSAndroid Build Coastguard Worker }
7247*344a7f5eSAndroid Build Coastguard Worker
7248*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(vector unsigned int __a,vector unsigned int __b)7249*344a7f5eSAndroid Build Coastguard Worker vec_test_mask(vector unsigned int __a, vector unsigned int __b) {
7250*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vtm((vector unsigned char)__a,
7251*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7252*344a7f5eSAndroid Build Coastguard Worker }
7253*344a7f5eSAndroid Build Coastguard Worker
7254*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(vector signed long long __a,vector unsigned long long __b)7255*344a7f5eSAndroid Build Coastguard Worker vec_test_mask(vector signed long long __a, vector unsigned long long __b) {
7256*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vtm((vector unsigned char)__a,
7257*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7258*344a7f5eSAndroid Build Coastguard Worker }
7259*344a7f5eSAndroid Build Coastguard Worker
7260*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(vector unsigned long long __a,vector unsigned long long __b)7261*344a7f5eSAndroid Build Coastguard Worker vec_test_mask(vector unsigned long long __a, vector unsigned long long __b) {
7262*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vtm((vector unsigned char)__a,
7263*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7264*344a7f5eSAndroid Build Coastguard Worker }
7265*344a7f5eSAndroid Build Coastguard Worker
7266*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(vector double __a,vector unsigned long long __b)7267*344a7f5eSAndroid Build Coastguard Worker vec_test_mask(vector double __a, vector unsigned long long __b) {
7268*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vtm((vector unsigned char)__a,
7269*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7270*344a7f5eSAndroid Build Coastguard Worker }
7271*344a7f5eSAndroid Build Coastguard Worker
7272*344a7f5eSAndroid Build Coastguard Worker /*-- vec_madd ---------------------------------------------------------------*/
7273*344a7f5eSAndroid Build Coastguard Worker
7274*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_madd(vector double __a,vector double __b,vector double __c)7275*344a7f5eSAndroid Build Coastguard Worker vec_madd(vector double __a, vector double __b, vector double __c) {
7276*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfmadb(__a, __b, __c);
7277*344a7f5eSAndroid Build Coastguard Worker }
7278*344a7f5eSAndroid Build Coastguard Worker
7279*344a7f5eSAndroid Build Coastguard Worker /*-- vec_msub ---------------------------------------------------------------*/
7280*344a7f5eSAndroid Build Coastguard Worker
7281*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_msub(vector double __a,vector double __b,vector double __c)7282*344a7f5eSAndroid Build Coastguard Worker vec_msub(vector double __a, vector double __b, vector double __c) {
7283*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfmsdb(__a, __b, __c);
7284*344a7f5eSAndroid Build Coastguard Worker }
7285*344a7f5eSAndroid Build Coastguard Worker
7286*344a7f5eSAndroid Build Coastguard Worker /*-- vec_sqrt ---------------------------------------------------------------*/
7287*344a7f5eSAndroid Build Coastguard Worker
7288*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_sqrt(vector double __a)7289*344a7f5eSAndroid Build Coastguard Worker vec_sqrt(vector double __a) {
7290*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfsqdb(__a);
7291*344a7f5eSAndroid Build Coastguard Worker }
7292*344a7f5eSAndroid Build Coastguard Worker
7293*344a7f5eSAndroid Build Coastguard Worker /*-- vec_ld2f ---------------------------------------------------------------*/
7294*344a7f5eSAndroid Build Coastguard Worker
7295*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_ld2f(const float * __ptr)7296*344a7f5eSAndroid Build Coastguard Worker vec_ld2f(const float *__ptr) {
7297*344a7f5eSAndroid Build Coastguard Worker typedef float __v2f32 __attribute__((__vector_size__(8)));
7298*344a7f5eSAndroid Build Coastguard Worker return __builtin_convertvector(*(const __v2f32 *)__ptr, vector double);
7299*344a7f5eSAndroid Build Coastguard Worker }
7300*344a7f5eSAndroid Build Coastguard Worker
7301*344a7f5eSAndroid Build Coastguard Worker /*-- vec_st2f ---------------------------------------------------------------*/
7302*344a7f5eSAndroid Build Coastguard Worker
7303*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai void
vec_st2f(vector double __a,float * __ptr)7304*344a7f5eSAndroid Build Coastguard Worker vec_st2f(vector double __a, float *__ptr) {
7305*344a7f5eSAndroid Build Coastguard Worker typedef float __v2f32 __attribute__((__vector_size__(8)));
7306*344a7f5eSAndroid Build Coastguard Worker *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
7307*344a7f5eSAndroid Build Coastguard Worker }
7308*344a7f5eSAndroid Build Coastguard Worker
7309*344a7f5eSAndroid Build Coastguard Worker /*-- vec_ctd ----------------------------------------------------------------*/
7310*344a7f5eSAndroid Build Coastguard Worker
7311*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_ctd(vector signed long long __a,int __b)7312*344a7f5eSAndroid Build Coastguard Worker vec_ctd(vector signed long long __a, int __b)
7313*344a7f5eSAndroid Build Coastguard Worker __constant_range(__b, 0, 31) {
7314*344a7f5eSAndroid Build Coastguard Worker vector double __conv = __builtin_convertvector(__a, vector double);
7315*344a7f5eSAndroid Build Coastguard Worker __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
7316*344a7f5eSAndroid Build Coastguard Worker return __conv;
7317*344a7f5eSAndroid Build Coastguard Worker }
7318*344a7f5eSAndroid Build Coastguard Worker
7319*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector double
vec_ctd(vector unsigned long long __a,int __b)7320*344a7f5eSAndroid Build Coastguard Worker vec_ctd(vector unsigned long long __a, int __b)
7321*344a7f5eSAndroid Build Coastguard Worker __constant_range(__b, 0, 31) {
7322*344a7f5eSAndroid Build Coastguard Worker vector double __conv = __builtin_convertvector(__a, vector double);
7323*344a7f5eSAndroid Build Coastguard Worker __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
7324*344a7f5eSAndroid Build Coastguard Worker return __conv;
7325*344a7f5eSAndroid Build Coastguard Worker }
7326*344a7f5eSAndroid Build Coastguard Worker
7327*344a7f5eSAndroid Build Coastguard Worker /*-- vec_ctsl ---------------------------------------------------------------*/
7328*344a7f5eSAndroid Build Coastguard Worker
7329*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed long long
vec_ctsl(vector double __a,int __b)7330*344a7f5eSAndroid Build Coastguard Worker vec_ctsl(vector double __a, int __b)
7331*344a7f5eSAndroid Build Coastguard Worker __constant_range(__b, 0, 31) {
7332*344a7f5eSAndroid Build Coastguard Worker __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
7333*344a7f5eSAndroid Build Coastguard Worker return __builtin_convertvector(__a, vector signed long long);
7334*344a7f5eSAndroid Build Coastguard Worker }
7335*344a7f5eSAndroid Build Coastguard Worker
7336*344a7f5eSAndroid Build Coastguard Worker /*-- vec_ctul ---------------------------------------------------------------*/
7337*344a7f5eSAndroid Build Coastguard Worker
7338*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned long long
vec_ctul(vector double __a,int __b)7339*344a7f5eSAndroid Build Coastguard Worker vec_ctul(vector double __a, int __b)
7340*344a7f5eSAndroid Build Coastguard Worker __constant_range(__b, 0, 31) {
7341*344a7f5eSAndroid Build Coastguard Worker __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
7342*344a7f5eSAndroid Build Coastguard Worker return __builtin_convertvector(__a, vector unsigned long long);
7343*344a7f5eSAndroid Build Coastguard Worker }
7344*344a7f5eSAndroid Build Coastguard Worker
7345*344a7f5eSAndroid Build Coastguard Worker /*-- vec_roundp -------------------------------------------------------------*/
7346*344a7f5eSAndroid Build Coastguard Worker
7347*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_roundp(vector double __a)7348*344a7f5eSAndroid Build Coastguard Worker vec_roundp(vector double __a) {
7349*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 6);
7350*344a7f5eSAndroid Build Coastguard Worker }
7351*344a7f5eSAndroid Build Coastguard Worker
7352*344a7f5eSAndroid Build Coastguard Worker /*-- vec_ceil ---------------------------------------------------------------*/
7353*344a7f5eSAndroid Build Coastguard Worker
7354*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_ceil(vector double __a)7355*344a7f5eSAndroid Build Coastguard Worker vec_ceil(vector double __a) {
7356*344a7f5eSAndroid Build Coastguard Worker // On this platform, vec_ceil never triggers the IEEE-inexact exception.
7357*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 6);
7358*344a7f5eSAndroid Build Coastguard Worker }
7359*344a7f5eSAndroid Build Coastguard Worker
7360*344a7f5eSAndroid Build Coastguard Worker /*-- vec_roundm -------------------------------------------------------------*/
7361*344a7f5eSAndroid Build Coastguard Worker
7362*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_roundm(vector double __a)7363*344a7f5eSAndroid Build Coastguard Worker vec_roundm(vector double __a) {
7364*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 7);
7365*344a7f5eSAndroid Build Coastguard Worker }
7366*344a7f5eSAndroid Build Coastguard Worker
7367*344a7f5eSAndroid Build Coastguard Worker /*-- vec_floor --------------------------------------------------------------*/
7368*344a7f5eSAndroid Build Coastguard Worker
7369*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_floor(vector double __a)7370*344a7f5eSAndroid Build Coastguard Worker vec_floor(vector double __a) {
7371*344a7f5eSAndroid Build Coastguard Worker // On this platform, vec_floor never triggers the IEEE-inexact exception.
7372*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 7);
7373*344a7f5eSAndroid Build Coastguard Worker }
7374*344a7f5eSAndroid Build Coastguard Worker
7375*344a7f5eSAndroid Build Coastguard Worker /*-- vec_roundz -------------------------------------------------------------*/
7376*344a7f5eSAndroid Build Coastguard Worker
7377*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_roundz(vector double __a)7378*344a7f5eSAndroid Build Coastguard Worker vec_roundz(vector double __a) {
7379*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 5);
7380*344a7f5eSAndroid Build Coastguard Worker }
7381*344a7f5eSAndroid Build Coastguard Worker
7382*344a7f5eSAndroid Build Coastguard Worker /*-- vec_trunc --------------------------------------------------------------*/
7383*344a7f5eSAndroid Build Coastguard Worker
7384*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_trunc(vector double __a)7385*344a7f5eSAndroid Build Coastguard Worker vec_trunc(vector double __a) {
7386*344a7f5eSAndroid Build Coastguard Worker // On this platform, vec_trunc never triggers the IEEE-inexact exception.
7387*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 5);
7388*344a7f5eSAndroid Build Coastguard Worker }
7389*344a7f5eSAndroid Build Coastguard Worker
7390*344a7f5eSAndroid Build Coastguard Worker /*-- vec_roundc -------------------------------------------------------------*/
7391*344a7f5eSAndroid Build Coastguard Worker
7392*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_roundc(vector double __a)7393*344a7f5eSAndroid Build Coastguard Worker vec_roundc(vector double __a) {
7394*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 0);
7395*344a7f5eSAndroid Build Coastguard Worker }
7396*344a7f5eSAndroid Build Coastguard Worker
7397*344a7f5eSAndroid Build Coastguard Worker /*-- vec_round --------------------------------------------------------------*/
7398*344a7f5eSAndroid Build Coastguard Worker
7399*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_ai vector double
vec_round(vector double __a)7400*344a7f5eSAndroid Build Coastguard Worker vec_round(vector double __a) {
7401*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 4);
7402*344a7f5eSAndroid Build Coastguard Worker }
7403*344a7f5eSAndroid Build Coastguard Worker
7404*344a7f5eSAndroid Build Coastguard Worker /*-- vec_fp_test_data_class -------------------------------------------------*/
7405*344a7f5eSAndroid Build Coastguard Worker
7406*344a7f5eSAndroid Build Coastguard Worker #define vec_fp_test_data_class(X, Y, Z) \
7407*344a7f5eSAndroid Build Coastguard Worker ((vector bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
7408*344a7f5eSAndroid Build Coastguard Worker
7409*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cp_until_zero ------------------------------------------------------*/
7410*344a7f5eSAndroid Build Coastguard Worker
7411*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_cp_until_zero(vector signed char __a)7412*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero(vector signed char __a) {
7413*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)__builtin_s390_vistrb((vector unsigned char)__a);
7414*344a7f5eSAndroid Build Coastguard Worker }
7415*344a7f5eSAndroid Build Coastguard Worker
7416*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cp_until_zero(vector bool char __a)7417*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero(vector bool char __a) {
7418*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vistrb((vector unsigned char)__a);
7419*344a7f5eSAndroid Build Coastguard Worker }
7420*344a7f5eSAndroid Build Coastguard Worker
7421*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cp_until_zero(vector unsigned char __a)7422*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero(vector unsigned char __a) {
7423*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vistrb(__a);
7424*344a7f5eSAndroid Build Coastguard Worker }
7425*344a7f5eSAndroid Build Coastguard Worker
7426*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_cp_until_zero(vector signed short __a)7427*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero(vector signed short __a) {
7428*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)__builtin_s390_vistrh((vector unsigned short)__a);
7429*344a7f5eSAndroid Build Coastguard Worker }
7430*344a7f5eSAndroid Build Coastguard Worker
7431*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cp_until_zero(vector bool short __a)7432*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero(vector bool short __a) {
7433*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vistrh((vector unsigned short)__a);
7434*344a7f5eSAndroid Build Coastguard Worker }
7435*344a7f5eSAndroid Build Coastguard Worker
7436*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cp_until_zero(vector unsigned short __a)7437*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero(vector unsigned short __a) {
7438*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vistrh(__a);
7439*344a7f5eSAndroid Build Coastguard Worker }
7440*344a7f5eSAndroid Build Coastguard Worker
7441*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_cp_until_zero(vector signed int __a)7442*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero(vector signed int __a) {
7443*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)__builtin_s390_vistrf((vector unsigned int)__a);
7444*344a7f5eSAndroid Build Coastguard Worker }
7445*344a7f5eSAndroid Build Coastguard Worker
7446*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cp_until_zero(vector bool int __a)7447*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero(vector bool int __a) {
7448*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vistrf((vector unsigned int)__a);
7449*344a7f5eSAndroid Build Coastguard Worker }
7450*344a7f5eSAndroid Build Coastguard Worker
7451*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cp_until_zero(vector unsigned int __a)7452*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero(vector unsigned int __a) {
7453*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vistrf(__a);
7454*344a7f5eSAndroid Build Coastguard Worker }
7455*344a7f5eSAndroid Build Coastguard Worker
7456*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
7457*344a7f5eSAndroid Build Coastguard Worker
7458*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_cp_until_zero_cc(vector signed char __a,int * __cc)7459*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero_cc(vector signed char __a, int *__cc) {
7460*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
7461*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
7462*344a7f5eSAndroid Build Coastguard Worker }
7463*344a7f5eSAndroid Build Coastguard Worker
7464*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cp_until_zero_cc(vector bool char __a,int * __cc)7465*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero_cc(vector bool char __a, int *__cc) {
7466*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)
7467*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
7468*344a7f5eSAndroid Build Coastguard Worker }
7469*344a7f5eSAndroid Build Coastguard Worker
7470*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cp_until_zero_cc(vector unsigned char __a,int * __cc)7471*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero_cc(vector unsigned char __a, int *__cc) {
7472*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vistrbs(__a, __cc);
7473*344a7f5eSAndroid Build Coastguard Worker }
7474*344a7f5eSAndroid Build Coastguard Worker
7475*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_cp_until_zero_cc(vector signed short __a,int * __cc)7476*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero_cc(vector signed short __a, int *__cc) {
7477*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
7478*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
7479*344a7f5eSAndroid Build Coastguard Worker }
7480*344a7f5eSAndroid Build Coastguard Worker
7481*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cp_until_zero_cc(vector bool short __a,int * __cc)7482*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero_cc(vector bool short __a, int *__cc) {
7483*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)
7484*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
7485*344a7f5eSAndroid Build Coastguard Worker }
7486*344a7f5eSAndroid Build Coastguard Worker
7487*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cp_until_zero_cc(vector unsigned short __a,int * __cc)7488*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero_cc(vector unsigned short __a, int *__cc) {
7489*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vistrhs(__a, __cc);
7490*344a7f5eSAndroid Build Coastguard Worker }
7491*344a7f5eSAndroid Build Coastguard Worker
7492*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_cp_until_zero_cc(vector signed int __a,int * __cc)7493*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero_cc(vector signed int __a, int *__cc) {
7494*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
7495*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vistrfs((vector unsigned int)__a, __cc);
7496*344a7f5eSAndroid Build Coastguard Worker }
7497*344a7f5eSAndroid Build Coastguard Worker
7498*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cp_until_zero_cc(vector bool int __a,int * __cc)7499*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero_cc(vector bool int __a, int *__cc) {
7500*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vistrfs((vector unsigned int)__a,
7501*344a7f5eSAndroid Build Coastguard Worker __cc);
7502*344a7f5eSAndroid Build Coastguard Worker }
7503*344a7f5eSAndroid Build Coastguard Worker
7504*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cp_until_zero_cc(vector unsigned int __a,int * __cc)7505*344a7f5eSAndroid Build Coastguard Worker vec_cp_until_zero_cc(vector unsigned int __a, int *__cc) {
7506*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vistrfs(__a, __cc);
7507*344a7f5eSAndroid Build Coastguard Worker }
7508*344a7f5eSAndroid Build Coastguard Worker
7509*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpeq_idx ----------------------------------------------------------*/
7510*344a7f5eSAndroid Build Coastguard Worker
7511*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_cmpeq_idx(vector signed char __a,vector signed char __b)7512*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx(vector signed char __a, vector signed char __b) {
7513*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
7514*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeeb((vector unsigned char)__a,
7515*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7516*344a7f5eSAndroid Build Coastguard Worker }
7517*344a7f5eSAndroid Build Coastguard Worker
7518*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_idx(vector bool char __a,vector bool char __b)7519*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx(vector bool char __a, vector bool char __b) {
7520*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeeb((vector unsigned char)__a,
7521*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7522*344a7f5eSAndroid Build Coastguard Worker }
7523*344a7f5eSAndroid Build Coastguard Worker
7524*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_idx(vector unsigned char __a,vector unsigned char __b)7525*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx(vector unsigned char __a, vector unsigned char __b) {
7526*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeeb(__a, __b);
7527*344a7f5eSAndroid Build Coastguard Worker }
7528*344a7f5eSAndroid Build Coastguard Worker
7529*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_cmpeq_idx(vector signed short __a,vector signed short __b)7530*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx(vector signed short __a, vector signed short __b) {
7531*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
7532*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeeh((vector unsigned short)__a,
7533*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b);
7534*344a7f5eSAndroid Build Coastguard Worker }
7535*344a7f5eSAndroid Build Coastguard Worker
7536*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_idx(vector bool short __a,vector bool short __b)7537*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx(vector bool short __a, vector bool short __b) {
7538*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeeh((vector unsigned short)__a,
7539*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b);
7540*344a7f5eSAndroid Build Coastguard Worker }
7541*344a7f5eSAndroid Build Coastguard Worker
7542*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_idx(vector unsigned short __a,vector unsigned short __b)7543*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx(vector unsigned short __a, vector unsigned short __b) {
7544*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeeh(__a, __b);
7545*344a7f5eSAndroid Build Coastguard Worker }
7546*344a7f5eSAndroid Build Coastguard Worker
7547*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_cmpeq_idx(vector signed int __a,vector signed int __b)7548*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx(vector signed int __a, vector signed int __b) {
7549*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
7550*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeef((vector unsigned int)__a,
7551*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b);
7552*344a7f5eSAndroid Build Coastguard Worker }
7553*344a7f5eSAndroid Build Coastguard Worker
7554*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_idx(vector bool int __a,vector bool int __b)7555*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx(vector bool int __a, vector bool int __b) {
7556*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeef((vector unsigned int)__a,
7557*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b);
7558*344a7f5eSAndroid Build Coastguard Worker }
7559*344a7f5eSAndroid Build Coastguard Worker
7560*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_idx(vector unsigned int __a,vector unsigned int __b)7561*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx(vector unsigned int __a, vector unsigned int __b) {
7562*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeef(__a, __b);
7563*344a7f5eSAndroid Build Coastguard Worker }
7564*344a7f5eSAndroid Build Coastguard Worker
7565*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
7566*344a7f5eSAndroid Build Coastguard Worker
7567*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_cmpeq_idx_cc(vector signed char __a,vector signed char __b,int * __cc)7568*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
7569*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
7570*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeebs((vector unsigned char)__a,
7571*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, __cc);
7572*344a7f5eSAndroid Build Coastguard Worker }
7573*344a7f5eSAndroid Build Coastguard Worker
7574*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_idx_cc(vector bool char __a,vector bool char __b,int * __cc)7575*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
7576*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeebs((vector unsigned char)__a,
7577*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, __cc);
7578*344a7f5eSAndroid Build Coastguard Worker }
7579*344a7f5eSAndroid Build Coastguard Worker
7580*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)7581*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx_cc(vector unsigned char __a, vector unsigned char __b,
7582*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7583*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeebs(__a, __b, __cc);
7584*344a7f5eSAndroid Build Coastguard Worker }
7585*344a7f5eSAndroid Build Coastguard Worker
7586*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_cmpeq_idx_cc(vector signed short __a,vector signed short __b,int * __cc)7587*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
7588*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
7589*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeehs((vector unsigned short)__a,
7590*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, __cc);
7591*344a7f5eSAndroid Build Coastguard Worker }
7592*344a7f5eSAndroid Build Coastguard Worker
7593*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_idx_cc(vector bool short __a,vector bool short __b,int * __cc)7594*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
7595*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeehs((vector unsigned short)__a,
7596*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, __cc);
7597*344a7f5eSAndroid Build Coastguard Worker }
7598*344a7f5eSAndroid Build Coastguard Worker
7599*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)7600*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx_cc(vector unsigned short __a, vector unsigned short __b,
7601*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7602*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeehs(__a, __b, __cc);
7603*344a7f5eSAndroid Build Coastguard Worker }
7604*344a7f5eSAndroid Build Coastguard Worker
7605*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_cmpeq_idx_cc(vector signed int __a,vector signed int __b,int * __cc)7606*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
7607*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
7608*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeefs((vector unsigned int)__a,
7609*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, __cc);
7610*344a7f5eSAndroid Build Coastguard Worker }
7611*344a7f5eSAndroid Build Coastguard Worker
7612*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_idx_cc(vector bool int __a,vector bool int __b,int * __cc)7613*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
7614*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeefs((vector unsigned int)__a,
7615*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, __cc);
7616*344a7f5eSAndroid Build Coastguard Worker }
7617*344a7f5eSAndroid Build Coastguard Worker
7618*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)7619*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
7620*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeefs(__a, __b, __cc);
7621*344a7f5eSAndroid Build Coastguard Worker }
7622*344a7f5eSAndroid Build Coastguard Worker
7623*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
7624*344a7f5eSAndroid Build Coastguard Worker
7625*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_cmpeq_or_0_idx(vector signed char __a,vector signed char __b)7626*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(vector signed char __a, vector signed char __b) {
7627*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
7628*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeezb((vector unsigned char)__a,
7629*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7630*344a7f5eSAndroid Build Coastguard Worker }
7631*344a7f5eSAndroid Build Coastguard Worker
7632*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_or_0_idx(vector bool char __a,vector bool char __b)7633*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(vector bool char __a, vector bool char __b) {
7634*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeezb((vector unsigned char)__a,
7635*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7636*344a7f5eSAndroid Build Coastguard Worker }
7637*344a7f5eSAndroid Build Coastguard Worker
7638*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_or_0_idx(vector unsigned char __a,vector unsigned char __b)7639*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
7640*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeezb(__a, __b);
7641*344a7f5eSAndroid Build Coastguard Worker }
7642*344a7f5eSAndroid Build Coastguard Worker
7643*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_cmpeq_or_0_idx(vector signed short __a,vector signed short __b)7644*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(vector signed short __a, vector signed short __b) {
7645*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
7646*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeezh((vector unsigned short)__a,
7647*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b);
7648*344a7f5eSAndroid Build Coastguard Worker }
7649*344a7f5eSAndroid Build Coastguard Worker
7650*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_or_0_idx(vector bool short __a,vector bool short __b)7651*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(vector bool short __a, vector bool short __b) {
7652*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeezh((vector unsigned short)__a,
7653*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b);
7654*344a7f5eSAndroid Build Coastguard Worker }
7655*344a7f5eSAndroid Build Coastguard Worker
7656*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_or_0_idx(vector unsigned short __a,vector unsigned short __b)7657*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
7658*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeezh(__a, __b);
7659*344a7f5eSAndroid Build Coastguard Worker }
7660*344a7f5eSAndroid Build Coastguard Worker
7661*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_cmpeq_or_0_idx(vector signed int __a,vector signed int __b)7662*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(vector signed int __a, vector signed int __b) {
7663*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
7664*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeezf((vector unsigned int)__a,
7665*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b);
7666*344a7f5eSAndroid Build Coastguard Worker }
7667*344a7f5eSAndroid Build Coastguard Worker
7668*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_or_0_idx(vector bool int __a,vector bool int __b)7669*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(vector bool int __a, vector bool int __b) {
7670*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeezf((vector unsigned int)__a,
7671*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b);
7672*344a7f5eSAndroid Build Coastguard Worker }
7673*344a7f5eSAndroid Build Coastguard Worker
7674*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_or_0_idx(vector unsigned int __a,vector unsigned int __b)7675*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
7676*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeezf(__a, __b);
7677*344a7f5eSAndroid Build Coastguard Worker }
7678*344a7f5eSAndroid Build Coastguard Worker
7679*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
7680*344a7f5eSAndroid Build Coastguard Worker
7681*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_cmpeq_or_0_idx_cc(vector signed char __a,vector signed char __b,int * __cc)7682*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(vector signed char __a, vector signed char __b,
7683*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7684*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
7685*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeezbs((vector unsigned char)__a,
7686*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, __cc);
7687*344a7f5eSAndroid Build Coastguard Worker }
7688*344a7f5eSAndroid Build Coastguard Worker
7689*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_or_0_idx_cc(vector bool char __a,vector bool char __b,int * __cc)7690*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
7691*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeezbs((vector unsigned char)__a,
7692*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, __cc);
7693*344a7f5eSAndroid Build Coastguard Worker }
7694*344a7f5eSAndroid Build Coastguard Worker
7695*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_or_0_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)7696*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
7697*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7698*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeezbs(__a, __b, __cc);
7699*344a7f5eSAndroid Build Coastguard Worker }
7700*344a7f5eSAndroid Build Coastguard Worker
7701*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_cmpeq_or_0_idx_cc(vector signed short __a,vector signed short __b,int * __cc)7702*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(vector signed short __a, vector signed short __b,
7703*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7704*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
7705*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeezhs((vector unsigned short)__a,
7706*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, __cc);
7707*344a7f5eSAndroid Build Coastguard Worker }
7708*344a7f5eSAndroid Build Coastguard Worker
7709*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_or_0_idx_cc(vector bool short __a,vector bool short __b,int * __cc)7710*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
7711*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeezhs((vector unsigned short)__a,
7712*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, __cc);
7713*344a7f5eSAndroid Build Coastguard Worker }
7714*344a7f5eSAndroid Build Coastguard Worker
7715*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_or_0_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)7716*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
7717*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7718*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeezhs(__a, __b, __cc);
7719*344a7f5eSAndroid Build Coastguard Worker }
7720*344a7f5eSAndroid Build Coastguard Worker
7721*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_cmpeq_or_0_idx_cc(vector signed int __a,vector signed int __b,int * __cc)7722*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
7723*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
7724*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeezfs((vector unsigned int)__a,
7725*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, __cc);
7726*344a7f5eSAndroid Build Coastguard Worker }
7727*344a7f5eSAndroid Build Coastguard Worker
7728*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_or_0_idx_cc(vector bool int __a,vector bool int __b,int * __cc)7729*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
7730*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeezfs((vector unsigned int)__a,
7731*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, __cc);
7732*344a7f5eSAndroid Build Coastguard Worker }
7733*344a7f5eSAndroid Build Coastguard Worker
7734*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_or_0_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)7735*344a7f5eSAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
7736*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7737*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeezfs(__a, __b, __cc);
7738*344a7f5eSAndroid Build Coastguard Worker }
7739*344a7f5eSAndroid Build Coastguard Worker
7740*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpne_idx ----------------------------------------------------------*/
7741*344a7f5eSAndroid Build Coastguard Worker
7742*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_cmpne_idx(vector signed char __a,vector signed char __b)7743*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx(vector signed char __a, vector signed char __b) {
7744*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
7745*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeneb((vector unsigned char)__a,
7746*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7747*344a7f5eSAndroid Build Coastguard Worker }
7748*344a7f5eSAndroid Build Coastguard Worker
7749*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_idx(vector bool char __a,vector bool char __b)7750*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx(vector bool char __a, vector bool char __b) {
7751*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeneb((vector unsigned char)__a,
7752*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7753*344a7f5eSAndroid Build Coastguard Worker }
7754*344a7f5eSAndroid Build Coastguard Worker
7755*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_idx(vector unsigned char __a,vector unsigned char __b)7756*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx(vector unsigned char __a, vector unsigned char __b) {
7757*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeneb(__a, __b);
7758*344a7f5eSAndroid Build Coastguard Worker }
7759*344a7f5eSAndroid Build Coastguard Worker
7760*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_cmpne_idx(vector signed short __a,vector signed short __b)7761*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx(vector signed short __a, vector signed short __b) {
7762*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
7763*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfeneh((vector unsigned short)__a,
7764*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b);
7765*344a7f5eSAndroid Build Coastguard Worker }
7766*344a7f5eSAndroid Build Coastguard Worker
7767*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_idx(vector bool short __a,vector bool short __b)7768*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx(vector bool short __a, vector bool short __b) {
7769*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeneh((vector unsigned short)__a,
7770*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b);
7771*344a7f5eSAndroid Build Coastguard Worker }
7772*344a7f5eSAndroid Build Coastguard Worker
7773*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_idx(vector unsigned short __a,vector unsigned short __b)7774*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx(vector unsigned short __a, vector unsigned short __b) {
7775*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfeneh(__a, __b);
7776*344a7f5eSAndroid Build Coastguard Worker }
7777*344a7f5eSAndroid Build Coastguard Worker
7778*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_cmpne_idx(vector signed int __a,vector signed int __b)7779*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx(vector signed int __a, vector signed int __b) {
7780*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
7781*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfenef((vector unsigned int)__a,
7782*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b);
7783*344a7f5eSAndroid Build Coastguard Worker }
7784*344a7f5eSAndroid Build Coastguard Worker
7785*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_idx(vector bool int __a,vector bool int __b)7786*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx(vector bool int __a, vector bool int __b) {
7787*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenef((vector unsigned int)__a,
7788*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b);
7789*344a7f5eSAndroid Build Coastguard Worker }
7790*344a7f5eSAndroid Build Coastguard Worker
7791*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_idx(vector unsigned int __a,vector unsigned int __b)7792*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx(vector unsigned int __a, vector unsigned int __b) {
7793*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenef(__a, __b);
7794*344a7f5eSAndroid Build Coastguard Worker }
7795*344a7f5eSAndroid Build Coastguard Worker
7796*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
7797*344a7f5eSAndroid Build Coastguard Worker
7798*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_cmpne_idx_cc(vector signed char __a,vector signed char __b,int * __cc)7799*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
7800*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
7801*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfenebs((vector unsigned char)__a,
7802*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, __cc);
7803*344a7f5eSAndroid Build Coastguard Worker }
7804*344a7f5eSAndroid Build Coastguard Worker
7805*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_idx_cc(vector bool char __a,vector bool char __b,int * __cc)7806*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
7807*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenebs((vector unsigned char)__a,
7808*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, __cc);
7809*344a7f5eSAndroid Build Coastguard Worker }
7810*344a7f5eSAndroid Build Coastguard Worker
7811*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)7812*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx_cc(vector unsigned char __a, vector unsigned char __b,
7813*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7814*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenebs(__a, __b, __cc);
7815*344a7f5eSAndroid Build Coastguard Worker }
7816*344a7f5eSAndroid Build Coastguard Worker
7817*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_cmpne_idx_cc(vector signed short __a,vector signed short __b,int * __cc)7818*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
7819*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
7820*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfenehs((vector unsigned short)__a,
7821*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, __cc);
7822*344a7f5eSAndroid Build Coastguard Worker }
7823*344a7f5eSAndroid Build Coastguard Worker
7824*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_idx_cc(vector bool short __a,vector bool short __b,int * __cc)7825*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
7826*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenehs((vector unsigned short)__a,
7827*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, __cc);
7828*344a7f5eSAndroid Build Coastguard Worker }
7829*344a7f5eSAndroid Build Coastguard Worker
7830*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)7831*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx_cc(vector unsigned short __a, vector unsigned short __b,
7832*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7833*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenehs(__a, __b, __cc);
7834*344a7f5eSAndroid Build Coastguard Worker }
7835*344a7f5eSAndroid Build Coastguard Worker
7836*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_cmpne_idx_cc(vector signed int __a,vector signed int __b,int * __cc)7837*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
7838*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
7839*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfenefs((vector unsigned int)__a,
7840*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, __cc);
7841*344a7f5eSAndroid Build Coastguard Worker }
7842*344a7f5eSAndroid Build Coastguard Worker
7843*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_idx_cc(vector bool int __a,vector bool int __b,int * __cc)7844*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
7845*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenefs((vector unsigned int)__a,
7846*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, __cc);
7847*344a7f5eSAndroid Build Coastguard Worker }
7848*344a7f5eSAndroid Build Coastguard Worker
7849*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)7850*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
7851*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenefs(__a, __b, __cc);
7852*344a7f5eSAndroid Build Coastguard Worker }
7853*344a7f5eSAndroid Build Coastguard Worker
7854*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
7855*344a7f5eSAndroid Build Coastguard Worker
7856*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_cmpne_or_0_idx(vector signed char __a,vector signed char __b)7857*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx(vector signed char __a, vector signed char __b) {
7858*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
7859*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfenezb((vector unsigned char)__a,
7860*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7861*344a7f5eSAndroid Build Coastguard Worker }
7862*344a7f5eSAndroid Build Coastguard Worker
7863*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_or_0_idx(vector bool char __a,vector bool char __b)7864*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx(vector bool char __a, vector bool char __b) {
7865*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenezb((vector unsigned char)__a,
7866*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b);
7867*344a7f5eSAndroid Build Coastguard Worker }
7868*344a7f5eSAndroid Build Coastguard Worker
7869*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_or_0_idx(vector unsigned char __a,vector unsigned char __b)7870*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
7871*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenezb(__a, __b);
7872*344a7f5eSAndroid Build Coastguard Worker }
7873*344a7f5eSAndroid Build Coastguard Worker
7874*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_cmpne_or_0_idx(vector signed short __a,vector signed short __b)7875*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx(vector signed short __a, vector signed short __b) {
7876*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
7877*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfenezh((vector unsigned short)__a,
7878*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b);
7879*344a7f5eSAndroid Build Coastguard Worker }
7880*344a7f5eSAndroid Build Coastguard Worker
7881*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_or_0_idx(vector bool short __a,vector bool short __b)7882*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx(vector bool short __a, vector bool short __b) {
7883*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenezh((vector unsigned short)__a,
7884*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b);
7885*344a7f5eSAndroid Build Coastguard Worker }
7886*344a7f5eSAndroid Build Coastguard Worker
7887*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_or_0_idx(vector unsigned short __a,vector unsigned short __b)7888*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
7889*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenezh(__a, __b);
7890*344a7f5eSAndroid Build Coastguard Worker }
7891*344a7f5eSAndroid Build Coastguard Worker
7892*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_cmpne_or_0_idx(vector signed int __a,vector signed int __b)7893*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx(vector signed int __a, vector signed int __b) {
7894*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
7895*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfenezf((vector unsigned int)__a,
7896*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b);
7897*344a7f5eSAndroid Build Coastguard Worker }
7898*344a7f5eSAndroid Build Coastguard Worker
7899*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_or_0_idx(vector bool int __a,vector bool int __b)7900*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx(vector bool int __a, vector bool int __b) {
7901*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenezf((vector unsigned int)__a,
7902*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b);
7903*344a7f5eSAndroid Build Coastguard Worker }
7904*344a7f5eSAndroid Build Coastguard Worker
7905*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_or_0_idx(vector unsigned int __a,vector unsigned int __b)7906*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
7907*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenezf(__a, __b);
7908*344a7f5eSAndroid Build Coastguard Worker }
7909*344a7f5eSAndroid Build Coastguard Worker
7910*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
7911*344a7f5eSAndroid Build Coastguard Worker
7912*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_cmpne_or_0_idx_cc(vector signed char __a,vector signed char __b,int * __cc)7913*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(vector signed char __a, vector signed char __b,
7914*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7915*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
7916*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfenezbs((vector unsigned char)__a,
7917*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, __cc);
7918*344a7f5eSAndroid Build Coastguard Worker }
7919*344a7f5eSAndroid Build Coastguard Worker
7920*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_or_0_idx_cc(vector bool char __a,vector bool char __b,int * __cc)7921*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
7922*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenezbs((vector unsigned char)__a,
7923*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, __cc);
7924*344a7f5eSAndroid Build Coastguard Worker }
7925*344a7f5eSAndroid Build Coastguard Worker
7926*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_or_0_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)7927*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
7928*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7929*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenezbs(__a, __b, __cc);
7930*344a7f5eSAndroid Build Coastguard Worker }
7931*344a7f5eSAndroid Build Coastguard Worker
7932*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_cmpne_or_0_idx_cc(vector signed short __a,vector signed short __b,int * __cc)7933*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(vector signed short __a, vector signed short __b,
7934*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7935*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
7936*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfenezhs((vector unsigned short)__a,
7937*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, __cc);
7938*344a7f5eSAndroid Build Coastguard Worker }
7939*344a7f5eSAndroid Build Coastguard Worker
7940*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_or_0_idx_cc(vector bool short __a,vector bool short __b,int * __cc)7941*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
7942*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenezhs((vector unsigned short)__a,
7943*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, __cc);
7944*344a7f5eSAndroid Build Coastguard Worker }
7945*344a7f5eSAndroid Build Coastguard Worker
7946*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_or_0_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)7947*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
7948*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7949*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenezhs(__a, __b, __cc);
7950*344a7f5eSAndroid Build Coastguard Worker }
7951*344a7f5eSAndroid Build Coastguard Worker
7952*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_cmpne_or_0_idx_cc(vector signed int __a,vector signed int __b,int * __cc)7953*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
7954*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
7955*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfenezfs((vector unsigned int)__a,
7956*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, __cc);
7957*344a7f5eSAndroid Build Coastguard Worker }
7958*344a7f5eSAndroid Build Coastguard Worker
7959*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_or_0_idx_cc(vector bool int __a,vector bool int __b,int * __cc)7960*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
7961*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenezfs((vector unsigned int)__a,
7962*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, __cc);
7963*344a7f5eSAndroid Build Coastguard Worker }
7964*344a7f5eSAndroid Build Coastguard Worker
7965*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_or_0_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)7966*344a7f5eSAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
7967*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
7968*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfenezfs(__a, __b, __cc);
7969*344a7f5eSAndroid Build Coastguard Worker }
7970*344a7f5eSAndroid Build Coastguard Worker
7971*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmprg --------------------------------------------------------------*/
7972*344a7f5eSAndroid Build Coastguard Worker
7973*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmprg(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)7974*344a7f5eSAndroid Build Coastguard Worker vec_cmprg(vector unsigned char __a, vector unsigned char __b,
7975*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
7976*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
7977*344a7f5eSAndroid Build Coastguard Worker }
7978*344a7f5eSAndroid Build Coastguard Worker
7979*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmprg(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)7980*344a7f5eSAndroid Build Coastguard Worker vec_cmprg(vector unsigned short __a, vector unsigned short __b,
7981*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
7982*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
7983*344a7f5eSAndroid Build Coastguard Worker }
7984*344a7f5eSAndroid Build Coastguard Worker
7985*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmprg(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)7986*344a7f5eSAndroid Build Coastguard Worker vec_cmprg(vector unsigned int __a, vector unsigned int __b,
7987*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
7988*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
7989*344a7f5eSAndroid Build Coastguard Worker }
7990*344a7f5eSAndroid Build Coastguard Worker
7991*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmprg_cc -----------------------------------------------------------*/
7992*344a7f5eSAndroid Build Coastguard Worker
7993*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmprg_cc(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c,int * __cc)7994*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_cc(vector unsigned char __a, vector unsigned char __b,
7995*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c, int *__cc) {
7996*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
7997*344a7f5eSAndroid Build Coastguard Worker }
7998*344a7f5eSAndroid Build Coastguard Worker
7999*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmprg_cc(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c,int * __cc)8000*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_cc(vector unsigned short __a, vector unsigned short __b,
8001*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c, int *__cc) {
8002*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
8003*344a7f5eSAndroid Build Coastguard Worker }
8004*344a7f5eSAndroid Build Coastguard Worker
8005*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmprg_cc(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c,int * __cc)8006*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_cc(vector unsigned int __a, vector unsigned int __b,
8007*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c, int *__cc) {
8008*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
8009*344a7f5eSAndroid Build Coastguard Worker }
8010*344a7f5eSAndroid Build Coastguard Worker
8011*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmprg_idx ----------------------------------------------------------*/
8012*344a7f5eSAndroid Build Coastguard Worker
8013*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmprg_idx(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8014*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_idx(vector unsigned char __a, vector unsigned char __b,
8015*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
8016*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrcb(__a, __b, __c, 0);
8017*344a7f5eSAndroid Build Coastguard Worker }
8018*344a7f5eSAndroid Build Coastguard Worker
8019*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmprg_idx(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)8020*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_idx(vector unsigned short __a, vector unsigned short __b,
8021*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
8022*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrch(__a, __b, __c, 0);
8023*344a7f5eSAndroid Build Coastguard Worker }
8024*344a7f5eSAndroid Build Coastguard Worker
8025*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmprg_idx(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)8026*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_idx(vector unsigned int __a, vector unsigned int __b,
8027*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
8028*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrcf(__a, __b, __c, 0);
8029*344a7f5eSAndroid Build Coastguard Worker }
8030*344a7f5eSAndroid Build Coastguard Worker
8031*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
8032*344a7f5eSAndroid Build Coastguard Worker
8033*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmprg_idx_cc(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c,int * __cc)8034*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_idx_cc(vector unsigned char __a, vector unsigned char __b,
8035*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c, int *__cc) {
8036*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
8037*344a7f5eSAndroid Build Coastguard Worker }
8038*344a7f5eSAndroid Build Coastguard Worker
8039*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmprg_idx_cc(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c,int * __cc)8040*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_idx_cc(vector unsigned short __a, vector unsigned short __b,
8041*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c, int *__cc) {
8042*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
8043*344a7f5eSAndroid Build Coastguard Worker }
8044*344a7f5eSAndroid Build Coastguard Worker
8045*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmprg_idx_cc(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c,int * __cc)8046*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_idx_cc(vector unsigned int __a, vector unsigned int __b,
8047*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c, int *__cc) {
8048*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
8049*344a7f5eSAndroid Build Coastguard Worker }
8050*344a7f5eSAndroid Build Coastguard Worker
8051*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
8052*344a7f5eSAndroid Build Coastguard Worker
8053*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmprg_or_0_idx(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8054*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
8055*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
8056*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrczb(__a, __b, __c, 0);
8057*344a7f5eSAndroid Build Coastguard Worker }
8058*344a7f5eSAndroid Build Coastguard Worker
8059*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmprg_or_0_idx(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)8060*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
8061*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
8062*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrczh(__a, __b, __c, 0);
8063*344a7f5eSAndroid Build Coastguard Worker }
8064*344a7f5eSAndroid Build Coastguard Worker
8065*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmprg_or_0_idx(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)8066*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
8067*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
8068*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrczf(__a, __b, __c, 0);
8069*344a7f5eSAndroid Build Coastguard Worker }
8070*344a7f5eSAndroid Build Coastguard Worker
8071*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
8072*344a7f5eSAndroid Build Coastguard Worker
8073*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmprg_or_0_idx_cc(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c,int * __cc)8074*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
8075*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c, int *__cc) {
8076*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
8077*344a7f5eSAndroid Build Coastguard Worker }
8078*344a7f5eSAndroid Build Coastguard Worker
8079*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmprg_or_0_idx_cc(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c,int * __cc)8080*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
8081*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c, int *__cc) {
8082*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
8083*344a7f5eSAndroid Build Coastguard Worker }
8084*344a7f5eSAndroid Build Coastguard Worker
8085*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmprg_or_0_idx_cc(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c,int * __cc)8086*344a7f5eSAndroid Build Coastguard Worker vec_cmprg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
8087*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c, int *__cc) {
8088*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
8089*344a7f5eSAndroid Build Coastguard Worker }
8090*344a7f5eSAndroid Build Coastguard Worker
8091*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpnrg -------------------------------------------------------------*/
8092*344a7f5eSAndroid Build Coastguard Worker
8093*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmpnrg(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8094*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg(vector unsigned char __a, vector unsigned char __b,
8095*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
8096*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
8097*344a7f5eSAndroid Build Coastguard Worker }
8098*344a7f5eSAndroid Build Coastguard Worker
8099*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmpnrg(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)8100*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg(vector unsigned short __a, vector unsigned short __b,
8101*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
8102*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
8103*344a7f5eSAndroid Build Coastguard Worker }
8104*344a7f5eSAndroid Build Coastguard Worker
8105*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmpnrg(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)8106*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg(vector unsigned int __a, vector unsigned int __b,
8107*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
8108*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
8109*344a7f5eSAndroid Build Coastguard Worker }
8110*344a7f5eSAndroid Build Coastguard Worker
8111*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
8112*344a7f5eSAndroid Build Coastguard Worker
8113*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_cmpnrg_cc(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c,int * __cc)8114*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_cc(vector unsigned char __a, vector unsigned char __b,
8115*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c, int *__cc) {
8116*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
8117*344a7f5eSAndroid Build Coastguard Worker }
8118*344a7f5eSAndroid Build Coastguard Worker
8119*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_cmpnrg_cc(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c,int * __cc)8120*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_cc(vector unsigned short __a, vector unsigned short __b,
8121*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c, int *__cc) {
8122*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
8123*344a7f5eSAndroid Build Coastguard Worker }
8124*344a7f5eSAndroid Build Coastguard Worker
8125*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_cmpnrg_cc(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c,int * __cc)8126*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_cc(vector unsigned int __a, vector unsigned int __b,
8127*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c, int *__cc) {
8128*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
8129*344a7f5eSAndroid Build Coastguard Worker }
8130*344a7f5eSAndroid Build Coastguard Worker
8131*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
8132*344a7f5eSAndroid Build Coastguard Worker
8133*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpnrg_idx(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8134*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_idx(vector unsigned char __a, vector unsigned char __b,
8135*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
8136*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrcb(__a, __b, __c, 8);
8137*344a7f5eSAndroid Build Coastguard Worker }
8138*344a7f5eSAndroid Build Coastguard Worker
8139*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpnrg_idx(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)8140*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_idx(vector unsigned short __a, vector unsigned short __b,
8141*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
8142*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrch(__a, __b, __c, 8);
8143*344a7f5eSAndroid Build Coastguard Worker }
8144*344a7f5eSAndroid Build Coastguard Worker
8145*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpnrg_idx(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)8146*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_idx(vector unsigned int __a, vector unsigned int __b,
8147*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
8148*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrcf(__a, __b, __c, 8);
8149*344a7f5eSAndroid Build Coastguard Worker }
8150*344a7f5eSAndroid Build Coastguard Worker
8151*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
8152*344a7f5eSAndroid Build Coastguard Worker
8153*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpnrg_idx_cc(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c,int * __cc)8154*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_idx_cc(vector unsigned char __a, vector unsigned char __b,
8155*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c, int *__cc) {
8156*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
8157*344a7f5eSAndroid Build Coastguard Worker }
8158*344a7f5eSAndroid Build Coastguard Worker
8159*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpnrg_idx_cc(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c,int * __cc)8160*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_idx_cc(vector unsigned short __a, vector unsigned short __b,
8161*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c, int *__cc) {
8162*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
8163*344a7f5eSAndroid Build Coastguard Worker }
8164*344a7f5eSAndroid Build Coastguard Worker
8165*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpnrg_idx_cc(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c,int * __cc)8166*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_idx_cc(vector unsigned int __a, vector unsigned int __b,
8167*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c, int *__cc) {
8168*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
8169*344a7f5eSAndroid Build Coastguard Worker }
8170*344a7f5eSAndroid Build Coastguard Worker
8171*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
8172*344a7f5eSAndroid Build Coastguard Worker
8173*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpnrg_or_0_idx(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8174*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
8175*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c) {
8176*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrczb(__a, __b, __c, 8);
8177*344a7f5eSAndroid Build Coastguard Worker }
8178*344a7f5eSAndroid Build Coastguard Worker
8179*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpnrg_or_0_idx(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)8180*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
8181*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c) {
8182*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrczh(__a, __b, __c, 8);
8183*344a7f5eSAndroid Build Coastguard Worker }
8184*344a7f5eSAndroid Build Coastguard Worker
8185*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpnrg_or_0_idx(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)8186*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
8187*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c) {
8188*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrczf(__a, __b, __c, 8);
8189*344a7f5eSAndroid Build Coastguard Worker }
8190*344a7f5eSAndroid Build Coastguard Worker
8191*344a7f5eSAndroid Build Coastguard Worker /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
8192*344a7f5eSAndroid Build Coastguard Worker
8193*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_cmpnrg_or_0_idx_cc(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c,int * __cc)8194*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
8195*344a7f5eSAndroid Build Coastguard Worker vector unsigned char __c, int *__cc) {
8196*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
8197*344a7f5eSAndroid Build Coastguard Worker }
8198*344a7f5eSAndroid Build Coastguard Worker
8199*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_cmpnrg_or_0_idx_cc(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c,int * __cc)8200*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
8201*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __c, int *__cc) {
8202*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
8203*344a7f5eSAndroid Build Coastguard Worker }
8204*344a7f5eSAndroid Build Coastguard Worker
8205*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_cmpnrg_or_0_idx_cc(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c,int * __cc)8206*344a7f5eSAndroid Build Coastguard Worker vec_cmpnrg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
8207*344a7f5eSAndroid Build Coastguard Worker vector unsigned int __c, int *__cc) {
8208*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
8209*344a7f5eSAndroid Build Coastguard Worker }
8210*344a7f5eSAndroid Build Coastguard Worker
8211*344a7f5eSAndroid Build Coastguard Worker /*-- vec_find_any_eq --------------------------------------------------------*/
8212*344a7f5eSAndroid Build Coastguard Worker
8213*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_find_any_eq(vector signed char __a,vector signed char __b)8214*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq(vector signed char __a, vector signed char __b) {
8215*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)
8216*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaeb((vector unsigned char)__a,
8217*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 4);
8218*344a7f5eSAndroid Build Coastguard Worker }
8219*344a7f5eSAndroid Build Coastguard Worker
8220*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_find_any_eq(vector bool char __a,vector bool char __b)8221*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq(vector bool char __a, vector bool char __b) {
8222*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)
8223*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaeb((vector unsigned char)__a,
8224*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 4);
8225*344a7f5eSAndroid Build Coastguard Worker }
8226*344a7f5eSAndroid Build Coastguard Worker
8227*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_find_any_eq(vector unsigned char __a,vector unsigned char __b)8228*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq(vector unsigned char __a, vector unsigned char __b) {
8229*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vfaeb(__a, __b, 4);
8230*344a7f5eSAndroid Build Coastguard Worker }
8231*344a7f5eSAndroid Build Coastguard Worker
8232*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_find_any_eq(vector signed short __a,vector signed short __b)8233*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq(vector signed short __a, vector signed short __b) {
8234*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)
8235*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaeh((vector unsigned short)__a,
8236*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 4);
8237*344a7f5eSAndroid Build Coastguard Worker }
8238*344a7f5eSAndroid Build Coastguard Worker
8239*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_find_any_eq(vector bool short __a,vector bool short __b)8240*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq(vector bool short __a, vector bool short __b) {
8241*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)
8242*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaeh((vector unsigned short)__a,
8243*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 4);
8244*344a7f5eSAndroid Build Coastguard Worker }
8245*344a7f5eSAndroid Build Coastguard Worker
8246*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_find_any_eq(vector unsigned short __a,vector unsigned short __b)8247*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq(vector unsigned short __a, vector unsigned short __b) {
8248*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vfaeh(__a, __b, 4);
8249*344a7f5eSAndroid Build Coastguard Worker }
8250*344a7f5eSAndroid Build Coastguard Worker
8251*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_find_any_eq(vector signed int __a,vector signed int __b)8252*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq(vector signed int __a, vector signed int __b) {
8253*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)
8254*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaef((vector unsigned int)__a,
8255*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 4);
8256*344a7f5eSAndroid Build Coastguard Worker }
8257*344a7f5eSAndroid Build Coastguard Worker
8258*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_find_any_eq(vector bool int __a,vector bool int __b)8259*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq(vector bool int __a, vector bool int __b) {
8260*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)
8261*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaef((vector unsigned int)__a,
8262*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 4);
8263*344a7f5eSAndroid Build Coastguard Worker }
8264*344a7f5eSAndroid Build Coastguard Worker
8265*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_find_any_eq(vector unsigned int __a,vector unsigned int __b)8266*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq(vector unsigned int __a, vector unsigned int __b) {
8267*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vfaef(__a, __b, 4);
8268*344a7f5eSAndroid Build Coastguard Worker }
8269*344a7f5eSAndroid Build Coastguard Worker
8270*344a7f5eSAndroid Build Coastguard Worker /*-- vec_find_any_eq_cc -----------------------------------------------------*/
8271*344a7f5eSAndroid Build Coastguard Worker
8272*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_find_any_eq_cc(vector signed char __a,vector signed char __b,int * __cc)8273*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_cc(vector signed char __a, vector signed char __b, int *__cc) {
8274*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)
8275*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaebs((vector unsigned char)__a,
8276*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 4, __cc);
8277*344a7f5eSAndroid Build Coastguard Worker }
8278*344a7f5eSAndroid Build Coastguard Worker
8279*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_find_any_eq_cc(vector bool char __a,vector bool char __b,int * __cc)8280*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_cc(vector bool char __a, vector bool char __b, int *__cc) {
8281*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)
8282*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaebs((vector unsigned char)__a,
8283*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 4, __cc);
8284*344a7f5eSAndroid Build Coastguard Worker }
8285*344a7f5eSAndroid Build Coastguard Worker
8286*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_find_any_eq_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)8287*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_cc(vector unsigned char __a, vector unsigned char __b,
8288*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8289*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
8290*344a7f5eSAndroid Build Coastguard Worker }
8291*344a7f5eSAndroid Build Coastguard Worker
8292*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_find_any_eq_cc(vector signed short __a,vector signed short __b,int * __cc)8293*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_cc(vector signed short __a, vector signed short __b,
8294*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8295*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)
8296*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaehs((vector unsigned short)__a,
8297*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 4, __cc);
8298*344a7f5eSAndroid Build Coastguard Worker }
8299*344a7f5eSAndroid Build Coastguard Worker
8300*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_find_any_eq_cc(vector bool short __a,vector bool short __b,int * __cc)8301*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_cc(vector bool short __a, vector bool short __b, int *__cc) {
8302*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)
8303*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaehs((vector unsigned short)__a,
8304*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 4, __cc);
8305*344a7f5eSAndroid Build Coastguard Worker }
8306*344a7f5eSAndroid Build Coastguard Worker
8307*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_find_any_eq_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)8308*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_cc(vector unsigned short __a, vector unsigned short __b,
8309*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8310*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
8311*344a7f5eSAndroid Build Coastguard Worker }
8312*344a7f5eSAndroid Build Coastguard Worker
8313*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_find_any_eq_cc(vector signed int __a,vector signed int __b,int * __cc)8314*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_cc(vector signed int __a, vector signed int __b, int *__cc) {
8315*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)
8316*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaefs((vector unsigned int)__a,
8317*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 4, __cc);
8318*344a7f5eSAndroid Build Coastguard Worker }
8319*344a7f5eSAndroid Build Coastguard Worker
8320*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_find_any_eq_cc(vector bool int __a,vector bool int __b,int * __cc)8321*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_cc(vector bool int __a, vector bool int __b, int *__cc) {
8322*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)
8323*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaefs((vector unsigned int)__a,
8324*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 4, __cc);
8325*344a7f5eSAndroid Build Coastguard Worker }
8326*344a7f5eSAndroid Build Coastguard Worker
8327*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_find_any_eq_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)8328*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_cc(vector unsigned int __a, vector unsigned int __b,
8329*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8330*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
8331*344a7f5eSAndroid Build Coastguard Worker }
8332*344a7f5eSAndroid Build Coastguard Worker
8333*344a7f5eSAndroid Build Coastguard Worker /*-- vec_find_any_eq_idx ----------------------------------------------------*/
8334*344a7f5eSAndroid Build Coastguard Worker
8335*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_find_any_eq_idx(vector signed char __a,vector signed char __b)8336*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx(vector signed char __a, vector signed char __b) {
8337*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
8338*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaeb((vector unsigned char)__a,
8339*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 0);
8340*344a7f5eSAndroid Build Coastguard Worker }
8341*344a7f5eSAndroid Build Coastguard Worker
8342*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_idx(vector bool char __a,vector bool char __b)8343*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx(vector bool char __a, vector bool char __b) {
8344*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaeb((vector unsigned char)__a,
8345*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 0);
8346*344a7f5eSAndroid Build Coastguard Worker }
8347*344a7f5eSAndroid Build Coastguard Worker
8348*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_idx(vector unsigned char __a,vector unsigned char __b)8349*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx(vector unsigned char __a, vector unsigned char __b) {
8350*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaeb(__a, __b, 0);
8351*344a7f5eSAndroid Build Coastguard Worker }
8352*344a7f5eSAndroid Build Coastguard Worker
8353*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_find_any_eq_idx(vector signed short __a,vector signed short __b)8354*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx(vector signed short __a, vector signed short __b) {
8355*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
8356*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaeh((vector unsigned short)__a,
8357*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 0);
8358*344a7f5eSAndroid Build Coastguard Worker }
8359*344a7f5eSAndroid Build Coastguard Worker
8360*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_idx(vector bool short __a,vector bool short __b)8361*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx(vector bool short __a, vector bool short __b) {
8362*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaeh((vector unsigned short)__a,
8363*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 0);
8364*344a7f5eSAndroid Build Coastguard Worker }
8365*344a7f5eSAndroid Build Coastguard Worker
8366*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_idx(vector unsigned short __a,vector unsigned short __b)8367*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx(vector unsigned short __a, vector unsigned short __b) {
8368*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaeh(__a, __b, 0);
8369*344a7f5eSAndroid Build Coastguard Worker }
8370*344a7f5eSAndroid Build Coastguard Worker
8371*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_find_any_eq_idx(vector signed int __a,vector signed int __b)8372*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx(vector signed int __a, vector signed int __b) {
8373*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
8374*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaef((vector unsigned int)__a,
8375*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 0);
8376*344a7f5eSAndroid Build Coastguard Worker }
8377*344a7f5eSAndroid Build Coastguard Worker
8378*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_idx(vector bool int __a,vector bool int __b)8379*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx(vector bool int __a, vector bool int __b) {
8380*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaef((vector unsigned int)__a,
8381*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 0);
8382*344a7f5eSAndroid Build Coastguard Worker }
8383*344a7f5eSAndroid Build Coastguard Worker
8384*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_idx(vector unsigned int __a,vector unsigned int __b)8385*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx(vector unsigned int __a, vector unsigned int __b) {
8386*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaef(__a, __b, 0);
8387*344a7f5eSAndroid Build Coastguard Worker }
8388*344a7f5eSAndroid Build Coastguard Worker
8389*344a7f5eSAndroid Build Coastguard Worker /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
8390*344a7f5eSAndroid Build Coastguard Worker
8391*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_find_any_eq_idx_cc(vector signed char __a,vector signed char __b,int * __cc)8392*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(vector signed char __a, vector signed char __b,
8393*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8394*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
8395*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaebs((vector unsigned char)__a,
8396*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 0, __cc);
8397*344a7f5eSAndroid Build Coastguard Worker }
8398*344a7f5eSAndroid Build Coastguard Worker
8399*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_idx_cc(vector bool char __a,vector bool char __b,int * __cc)8400*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
8401*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaebs((vector unsigned char)__a,
8402*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 0, __cc);
8403*344a7f5eSAndroid Build Coastguard Worker }
8404*344a7f5eSAndroid Build Coastguard Worker
8405*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)8406*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(vector unsigned char __a, vector unsigned char __b,
8407*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8408*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaebs(__a, __b, 0, __cc);
8409*344a7f5eSAndroid Build Coastguard Worker }
8410*344a7f5eSAndroid Build Coastguard Worker
8411*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_find_any_eq_idx_cc(vector signed short __a,vector signed short __b,int * __cc)8412*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(vector signed short __a, vector signed short __b,
8413*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8414*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
8415*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaehs((vector unsigned short)__a,
8416*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 0, __cc);
8417*344a7f5eSAndroid Build Coastguard Worker }
8418*344a7f5eSAndroid Build Coastguard Worker
8419*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_idx_cc(vector bool short __a,vector bool short __b,int * __cc)8420*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(vector bool short __a, vector bool short __b,
8421*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8422*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaehs((vector unsigned short)__a,
8423*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 0, __cc);
8424*344a7f5eSAndroid Build Coastguard Worker }
8425*344a7f5eSAndroid Build Coastguard Worker
8426*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)8427*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(vector unsigned short __a, vector unsigned short __b,
8428*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8429*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaehs(__a, __b, 0, __cc);
8430*344a7f5eSAndroid Build Coastguard Worker }
8431*344a7f5eSAndroid Build Coastguard Worker
8432*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_find_any_eq_idx_cc(vector signed int __a,vector signed int __b,int * __cc)8433*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(vector signed int __a, vector signed int __b,
8434*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8435*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
8436*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaefs((vector unsigned int)__a,
8437*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 0, __cc);
8438*344a7f5eSAndroid Build Coastguard Worker }
8439*344a7f5eSAndroid Build Coastguard Worker
8440*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_idx_cc(vector bool int __a,vector bool int __b,int * __cc)8441*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
8442*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaefs((vector unsigned int)__a,
8443*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 0, __cc);
8444*344a7f5eSAndroid Build Coastguard Worker }
8445*344a7f5eSAndroid Build Coastguard Worker
8446*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)8447*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(vector unsigned int __a, vector unsigned int __b,
8448*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8449*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaefs(__a, __b, 0, __cc);
8450*344a7f5eSAndroid Build Coastguard Worker }
8451*344a7f5eSAndroid Build Coastguard Worker
8452*344a7f5eSAndroid Build Coastguard Worker /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
8453*344a7f5eSAndroid Build Coastguard Worker
8454*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_find_any_eq_or_0_idx(vector signed char __a,vector signed char __b)8455*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(vector signed char __a, vector signed char __b) {
8456*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
8457*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaezb((vector unsigned char)__a,
8458*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 0);
8459*344a7f5eSAndroid Build Coastguard Worker }
8460*344a7f5eSAndroid Build Coastguard Worker
8461*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_or_0_idx(vector bool char __a,vector bool char __b)8462*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(vector bool char __a, vector bool char __b) {
8463*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezb((vector unsigned char)__a,
8464*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 0);
8465*344a7f5eSAndroid Build Coastguard Worker }
8466*344a7f5eSAndroid Build Coastguard Worker
8467*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_or_0_idx(vector unsigned char __a,vector unsigned char __b)8468*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
8469*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezb(__a, __b, 0);
8470*344a7f5eSAndroid Build Coastguard Worker }
8471*344a7f5eSAndroid Build Coastguard Worker
8472*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_find_any_eq_or_0_idx(vector signed short __a,vector signed short __b)8473*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(vector signed short __a, vector signed short __b) {
8474*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
8475*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaezh((vector unsigned short)__a,
8476*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 0);
8477*344a7f5eSAndroid Build Coastguard Worker }
8478*344a7f5eSAndroid Build Coastguard Worker
8479*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_or_0_idx(vector bool short __a,vector bool short __b)8480*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(vector bool short __a, vector bool short __b) {
8481*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezh((vector unsigned short)__a,
8482*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 0);
8483*344a7f5eSAndroid Build Coastguard Worker }
8484*344a7f5eSAndroid Build Coastguard Worker
8485*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_or_0_idx(vector unsigned short __a,vector unsigned short __b)8486*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
8487*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezh(__a, __b, 0);
8488*344a7f5eSAndroid Build Coastguard Worker }
8489*344a7f5eSAndroid Build Coastguard Worker
8490*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_find_any_eq_or_0_idx(vector signed int __a,vector signed int __b)8491*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(vector signed int __a, vector signed int __b) {
8492*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
8493*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaezf((vector unsigned int)__a,
8494*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 0);
8495*344a7f5eSAndroid Build Coastguard Worker }
8496*344a7f5eSAndroid Build Coastguard Worker
8497*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_or_0_idx(vector bool int __a,vector bool int __b)8498*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(vector bool int __a, vector bool int __b) {
8499*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezf((vector unsigned int)__a,
8500*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 0);
8501*344a7f5eSAndroid Build Coastguard Worker }
8502*344a7f5eSAndroid Build Coastguard Worker
8503*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_or_0_idx(vector unsigned int __a,vector unsigned int __b)8504*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
8505*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezf(__a, __b, 0);
8506*344a7f5eSAndroid Build Coastguard Worker }
8507*344a7f5eSAndroid Build Coastguard Worker
8508*344a7f5eSAndroid Build Coastguard Worker /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
8509*344a7f5eSAndroid Build Coastguard Worker
8510*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_find_any_eq_or_0_idx_cc(vector signed char __a,vector signed char __b,int * __cc)8511*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(vector signed char __a, vector signed char __b,
8512*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8513*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
8514*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaezbs((vector unsigned char)__a,
8515*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 0, __cc);
8516*344a7f5eSAndroid Build Coastguard Worker }
8517*344a7f5eSAndroid Build Coastguard Worker
8518*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_or_0_idx_cc(vector bool char __a,vector bool char __b,int * __cc)8519*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(vector bool char __a, vector bool char __b,
8520*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8521*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezbs((vector unsigned char)__a,
8522*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 0, __cc);
8523*344a7f5eSAndroid Build Coastguard Worker }
8524*344a7f5eSAndroid Build Coastguard Worker
8525*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_or_0_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)8526*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
8527*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8528*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
8529*344a7f5eSAndroid Build Coastguard Worker }
8530*344a7f5eSAndroid Build Coastguard Worker
8531*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_find_any_eq_or_0_idx_cc(vector signed short __a,vector signed short __b,int * __cc)8532*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(vector signed short __a, vector signed short __b,
8533*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8534*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
8535*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaezhs((vector unsigned short)__a,
8536*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 0, __cc);
8537*344a7f5eSAndroid Build Coastguard Worker }
8538*344a7f5eSAndroid Build Coastguard Worker
8539*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_or_0_idx_cc(vector bool short __a,vector bool short __b,int * __cc)8540*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(vector bool short __a, vector bool short __b,
8541*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8542*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezhs((vector unsigned short)__a,
8543*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 0, __cc);
8544*344a7f5eSAndroid Build Coastguard Worker }
8545*344a7f5eSAndroid Build Coastguard Worker
8546*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_or_0_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)8547*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(vector unsigned short __a,
8548*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __b, int *__cc) {
8549*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
8550*344a7f5eSAndroid Build Coastguard Worker }
8551*344a7f5eSAndroid Build Coastguard Worker
8552*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_find_any_eq_or_0_idx_cc(vector signed int __a,vector signed int __b,int * __cc)8553*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(vector signed int __a, vector signed int __b,
8554*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8555*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
8556*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaezfs((vector unsigned int)__a,
8557*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 0, __cc);
8558*344a7f5eSAndroid Build Coastguard Worker }
8559*344a7f5eSAndroid Build Coastguard Worker
8560*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_or_0_idx_cc(vector bool int __a,vector bool int __b,int * __cc)8561*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(vector bool int __a, vector bool int __b,
8562*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8563*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezfs((vector unsigned int)__a,
8564*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 0, __cc);
8565*344a7f5eSAndroid Build Coastguard Worker }
8566*344a7f5eSAndroid Build Coastguard Worker
8567*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_or_0_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)8568*344a7f5eSAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
8569*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8570*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
8571*344a7f5eSAndroid Build Coastguard Worker }
8572*344a7f5eSAndroid Build Coastguard Worker
8573*344a7f5eSAndroid Build Coastguard Worker /*-- vec_find_any_ne --------------------------------------------------------*/
8574*344a7f5eSAndroid Build Coastguard Worker
8575*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_find_any_ne(vector signed char __a,vector signed char __b)8576*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne(vector signed char __a, vector signed char __b) {
8577*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)
8578*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaeb((vector unsigned char)__a,
8579*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 12);
8580*344a7f5eSAndroid Build Coastguard Worker }
8581*344a7f5eSAndroid Build Coastguard Worker
8582*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_find_any_ne(vector bool char __a,vector bool char __b)8583*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne(vector bool char __a, vector bool char __b) {
8584*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)
8585*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaeb((vector unsigned char)__a,
8586*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 12);
8587*344a7f5eSAndroid Build Coastguard Worker }
8588*344a7f5eSAndroid Build Coastguard Worker
8589*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_find_any_ne(vector unsigned char __a,vector unsigned char __b)8590*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne(vector unsigned char __a, vector unsigned char __b) {
8591*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vfaeb(__a, __b, 12);
8592*344a7f5eSAndroid Build Coastguard Worker }
8593*344a7f5eSAndroid Build Coastguard Worker
8594*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_find_any_ne(vector signed short __a,vector signed short __b)8595*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne(vector signed short __a, vector signed short __b) {
8596*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)
8597*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaeh((vector unsigned short)__a,
8598*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 12);
8599*344a7f5eSAndroid Build Coastguard Worker }
8600*344a7f5eSAndroid Build Coastguard Worker
8601*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_find_any_ne(vector bool short __a,vector bool short __b)8602*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne(vector bool short __a, vector bool short __b) {
8603*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)
8604*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaeh((vector unsigned short)__a,
8605*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 12);
8606*344a7f5eSAndroid Build Coastguard Worker }
8607*344a7f5eSAndroid Build Coastguard Worker
8608*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_find_any_ne(vector unsigned short __a,vector unsigned short __b)8609*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne(vector unsigned short __a, vector unsigned short __b) {
8610*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vfaeh(__a, __b, 12);
8611*344a7f5eSAndroid Build Coastguard Worker }
8612*344a7f5eSAndroid Build Coastguard Worker
8613*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_find_any_ne(vector signed int __a,vector signed int __b)8614*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne(vector signed int __a, vector signed int __b) {
8615*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)
8616*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaef((vector unsigned int)__a,
8617*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 12);
8618*344a7f5eSAndroid Build Coastguard Worker }
8619*344a7f5eSAndroid Build Coastguard Worker
8620*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_find_any_ne(vector bool int __a,vector bool int __b)8621*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne(vector bool int __a, vector bool int __b) {
8622*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)
8623*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaef((vector unsigned int)__a,
8624*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 12);
8625*344a7f5eSAndroid Build Coastguard Worker }
8626*344a7f5eSAndroid Build Coastguard Worker
8627*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_find_any_ne(vector unsigned int __a,vector unsigned int __b)8628*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne(vector unsigned int __a, vector unsigned int __b) {
8629*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vfaef(__a, __b, 12);
8630*344a7f5eSAndroid Build Coastguard Worker }
8631*344a7f5eSAndroid Build Coastguard Worker
8632*344a7f5eSAndroid Build Coastguard Worker /*-- vec_find_any_ne_cc -----------------------------------------------------*/
8633*344a7f5eSAndroid Build Coastguard Worker
8634*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_find_any_ne_cc(vector signed char __a,vector signed char __b,int * __cc)8635*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_cc(vector signed char __a, vector signed char __b, int *__cc) {
8636*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)
8637*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaebs((vector unsigned char)__a,
8638*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 12, __cc);
8639*344a7f5eSAndroid Build Coastguard Worker }
8640*344a7f5eSAndroid Build Coastguard Worker
8641*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_find_any_ne_cc(vector bool char __a,vector bool char __b,int * __cc)8642*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_cc(vector bool char __a, vector bool char __b, int *__cc) {
8643*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)
8644*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaebs((vector unsigned char)__a,
8645*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 12, __cc);
8646*344a7f5eSAndroid Build Coastguard Worker }
8647*344a7f5eSAndroid Build Coastguard Worker
8648*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool char
vec_find_any_ne_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)8649*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_cc(vector unsigned char __a, vector unsigned char __b,
8650*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8651*344a7f5eSAndroid Build Coastguard Worker return (vector bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
8652*344a7f5eSAndroid Build Coastguard Worker }
8653*344a7f5eSAndroid Build Coastguard Worker
8654*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_find_any_ne_cc(vector signed short __a,vector signed short __b,int * __cc)8655*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_cc(vector signed short __a, vector signed short __b,
8656*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8657*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)
8658*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaehs((vector unsigned short)__a,
8659*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 12, __cc);
8660*344a7f5eSAndroid Build Coastguard Worker }
8661*344a7f5eSAndroid Build Coastguard Worker
8662*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_find_any_ne_cc(vector bool short __a,vector bool short __b,int * __cc)8663*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_cc(vector bool short __a, vector bool short __b, int *__cc) {
8664*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)
8665*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaehs((vector unsigned short)__a,
8666*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 12, __cc);
8667*344a7f5eSAndroid Build Coastguard Worker }
8668*344a7f5eSAndroid Build Coastguard Worker
8669*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool short
vec_find_any_ne_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)8670*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_cc(vector unsigned short __a, vector unsigned short __b,
8671*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8672*344a7f5eSAndroid Build Coastguard Worker return (vector bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
8673*344a7f5eSAndroid Build Coastguard Worker }
8674*344a7f5eSAndroid Build Coastguard Worker
8675*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_find_any_ne_cc(vector signed int __a,vector signed int __b,int * __cc)8676*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_cc(vector signed int __a, vector signed int __b, int *__cc) {
8677*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)
8678*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaefs((vector unsigned int)__a,
8679*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 12, __cc);
8680*344a7f5eSAndroid Build Coastguard Worker }
8681*344a7f5eSAndroid Build Coastguard Worker
8682*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_find_any_ne_cc(vector bool int __a,vector bool int __b,int * __cc)8683*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_cc(vector bool int __a, vector bool int __b, int *__cc) {
8684*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)
8685*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaefs((vector unsigned int)__a,
8686*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 12, __cc);
8687*344a7f5eSAndroid Build Coastguard Worker }
8688*344a7f5eSAndroid Build Coastguard Worker
8689*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector bool int
vec_find_any_ne_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)8690*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_cc(vector unsigned int __a, vector unsigned int __b,
8691*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8692*344a7f5eSAndroid Build Coastguard Worker return (vector bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
8693*344a7f5eSAndroid Build Coastguard Worker }
8694*344a7f5eSAndroid Build Coastguard Worker
8695*344a7f5eSAndroid Build Coastguard Worker /*-- vec_find_any_ne_idx ----------------------------------------------------*/
8696*344a7f5eSAndroid Build Coastguard Worker
8697*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_find_any_ne_idx(vector signed char __a,vector signed char __b)8698*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx(vector signed char __a, vector signed char __b) {
8699*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
8700*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaeb((vector unsigned char)__a,
8701*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 8);
8702*344a7f5eSAndroid Build Coastguard Worker }
8703*344a7f5eSAndroid Build Coastguard Worker
8704*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_idx(vector bool char __a,vector bool char __b)8705*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx(vector bool char __a, vector bool char __b) {
8706*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaeb((vector unsigned char)__a,
8707*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 8);
8708*344a7f5eSAndroid Build Coastguard Worker }
8709*344a7f5eSAndroid Build Coastguard Worker
8710*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_idx(vector unsigned char __a,vector unsigned char __b)8711*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx(vector unsigned char __a, vector unsigned char __b) {
8712*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaeb(__a, __b, 8);
8713*344a7f5eSAndroid Build Coastguard Worker }
8714*344a7f5eSAndroid Build Coastguard Worker
8715*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_find_any_ne_idx(vector signed short __a,vector signed short __b)8716*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx(vector signed short __a, vector signed short __b) {
8717*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
8718*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaeh((vector unsigned short)__a,
8719*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 8);
8720*344a7f5eSAndroid Build Coastguard Worker }
8721*344a7f5eSAndroid Build Coastguard Worker
8722*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_idx(vector bool short __a,vector bool short __b)8723*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx(vector bool short __a, vector bool short __b) {
8724*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaeh((vector unsigned short)__a,
8725*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 8);
8726*344a7f5eSAndroid Build Coastguard Worker }
8727*344a7f5eSAndroid Build Coastguard Worker
8728*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_idx(vector unsigned short __a,vector unsigned short __b)8729*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx(vector unsigned short __a, vector unsigned short __b) {
8730*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaeh(__a, __b, 8);
8731*344a7f5eSAndroid Build Coastguard Worker }
8732*344a7f5eSAndroid Build Coastguard Worker
8733*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_find_any_ne_idx(vector signed int __a,vector signed int __b)8734*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx(vector signed int __a, vector signed int __b) {
8735*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
8736*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaef((vector unsigned int)__a,
8737*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 8);
8738*344a7f5eSAndroid Build Coastguard Worker }
8739*344a7f5eSAndroid Build Coastguard Worker
8740*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_idx(vector bool int __a,vector bool int __b)8741*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx(vector bool int __a, vector bool int __b) {
8742*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaef((vector unsigned int)__a,
8743*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 8);
8744*344a7f5eSAndroid Build Coastguard Worker }
8745*344a7f5eSAndroid Build Coastguard Worker
8746*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_idx(vector unsigned int __a,vector unsigned int __b)8747*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx(vector unsigned int __a, vector unsigned int __b) {
8748*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaef(__a, __b, 8);
8749*344a7f5eSAndroid Build Coastguard Worker }
8750*344a7f5eSAndroid Build Coastguard Worker
8751*344a7f5eSAndroid Build Coastguard Worker /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
8752*344a7f5eSAndroid Build Coastguard Worker
8753*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_find_any_ne_idx_cc(vector signed char __a,vector signed char __b,int * __cc)8754*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(vector signed char __a, vector signed char __b,
8755*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8756*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
8757*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaebs((vector unsigned char)__a,
8758*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 8, __cc);
8759*344a7f5eSAndroid Build Coastguard Worker }
8760*344a7f5eSAndroid Build Coastguard Worker
8761*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_idx_cc(vector bool char __a,vector bool char __b,int * __cc)8762*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
8763*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaebs((vector unsigned char)__a,
8764*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 8, __cc);
8765*344a7f5eSAndroid Build Coastguard Worker }
8766*344a7f5eSAndroid Build Coastguard Worker
8767*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)8768*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(vector unsigned char __a, vector unsigned char __b,
8769*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8770*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaebs(__a, __b, 8, __cc);
8771*344a7f5eSAndroid Build Coastguard Worker }
8772*344a7f5eSAndroid Build Coastguard Worker
8773*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_find_any_ne_idx_cc(vector signed short __a,vector signed short __b,int * __cc)8774*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(vector signed short __a, vector signed short __b,
8775*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8776*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
8777*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaehs((vector unsigned short)__a,
8778*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 8, __cc);
8779*344a7f5eSAndroid Build Coastguard Worker }
8780*344a7f5eSAndroid Build Coastguard Worker
8781*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_idx_cc(vector bool short __a,vector bool short __b,int * __cc)8782*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(vector bool short __a, vector bool short __b,
8783*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8784*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaehs((vector unsigned short)__a,
8785*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 8, __cc);
8786*344a7f5eSAndroid Build Coastguard Worker }
8787*344a7f5eSAndroid Build Coastguard Worker
8788*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)8789*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(vector unsigned short __a, vector unsigned short __b,
8790*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8791*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaehs(__a, __b, 8, __cc);
8792*344a7f5eSAndroid Build Coastguard Worker }
8793*344a7f5eSAndroid Build Coastguard Worker
8794*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_find_any_ne_idx_cc(vector signed int __a,vector signed int __b,int * __cc)8795*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(vector signed int __a, vector signed int __b,
8796*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8797*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
8798*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaefs((vector unsigned int)__a,
8799*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 8, __cc);
8800*344a7f5eSAndroid Build Coastguard Worker }
8801*344a7f5eSAndroid Build Coastguard Worker
8802*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_idx_cc(vector bool int __a,vector bool int __b,int * __cc)8803*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
8804*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaefs((vector unsigned int)__a,
8805*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 8, __cc);
8806*344a7f5eSAndroid Build Coastguard Worker }
8807*344a7f5eSAndroid Build Coastguard Worker
8808*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)8809*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(vector unsigned int __a, vector unsigned int __b,
8810*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8811*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaefs(__a, __b, 8, __cc);
8812*344a7f5eSAndroid Build Coastguard Worker }
8813*344a7f5eSAndroid Build Coastguard Worker
8814*344a7f5eSAndroid Build Coastguard Worker /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
8815*344a7f5eSAndroid Build Coastguard Worker
8816*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_find_any_ne_or_0_idx(vector signed char __a,vector signed char __b)8817*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(vector signed char __a, vector signed char __b) {
8818*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
8819*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaezb((vector unsigned char)__a,
8820*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 8);
8821*344a7f5eSAndroid Build Coastguard Worker }
8822*344a7f5eSAndroid Build Coastguard Worker
8823*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_or_0_idx(vector bool char __a,vector bool char __b)8824*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(vector bool char __a, vector bool char __b) {
8825*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezb((vector unsigned char)__a,
8826*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 8);
8827*344a7f5eSAndroid Build Coastguard Worker }
8828*344a7f5eSAndroid Build Coastguard Worker
8829*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_or_0_idx(vector unsigned char __a,vector unsigned char __b)8830*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
8831*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezb(__a, __b, 8);
8832*344a7f5eSAndroid Build Coastguard Worker }
8833*344a7f5eSAndroid Build Coastguard Worker
8834*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_find_any_ne_or_0_idx(vector signed short __a,vector signed short __b)8835*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(vector signed short __a, vector signed short __b) {
8836*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
8837*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaezh((vector unsigned short)__a,
8838*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 8);
8839*344a7f5eSAndroid Build Coastguard Worker }
8840*344a7f5eSAndroid Build Coastguard Worker
8841*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_or_0_idx(vector bool short __a,vector bool short __b)8842*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(vector bool short __a, vector bool short __b) {
8843*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezh((vector unsigned short)__a,
8844*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 8);
8845*344a7f5eSAndroid Build Coastguard Worker }
8846*344a7f5eSAndroid Build Coastguard Worker
8847*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_or_0_idx(vector unsigned short __a,vector unsigned short __b)8848*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
8849*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezh(__a, __b, 8);
8850*344a7f5eSAndroid Build Coastguard Worker }
8851*344a7f5eSAndroid Build Coastguard Worker
8852*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_find_any_ne_or_0_idx(vector signed int __a,vector signed int __b)8853*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(vector signed int __a, vector signed int __b) {
8854*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
8855*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaezf((vector unsigned int)__a,
8856*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 8);
8857*344a7f5eSAndroid Build Coastguard Worker }
8858*344a7f5eSAndroid Build Coastguard Worker
8859*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_or_0_idx(vector bool int __a,vector bool int __b)8860*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(vector bool int __a, vector bool int __b) {
8861*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezf((vector unsigned int)__a,
8862*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 8);
8863*344a7f5eSAndroid Build Coastguard Worker }
8864*344a7f5eSAndroid Build Coastguard Worker
8865*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_or_0_idx(vector unsigned int __a,vector unsigned int __b)8866*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
8867*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezf(__a, __b, 8);
8868*344a7f5eSAndroid Build Coastguard Worker }
8869*344a7f5eSAndroid Build Coastguard Worker
8870*344a7f5eSAndroid Build Coastguard Worker /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
8871*344a7f5eSAndroid Build Coastguard Worker
8872*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed char
vec_find_any_ne_or_0_idx_cc(vector signed char __a,vector signed char __b,int * __cc)8873*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(vector signed char __a, vector signed char __b,
8874*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8875*344a7f5eSAndroid Build Coastguard Worker return (vector signed char)
8876*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaezbs((vector unsigned char)__a,
8877*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 8, __cc);
8878*344a7f5eSAndroid Build Coastguard Worker }
8879*344a7f5eSAndroid Build Coastguard Worker
8880*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_or_0_idx_cc(vector bool char __a,vector bool char __b,int * __cc)8881*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(vector bool char __a, vector bool char __b,
8882*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8883*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezbs((vector unsigned char)__a,
8884*344a7f5eSAndroid Build Coastguard Worker (vector unsigned char)__b, 8, __cc);
8885*344a7f5eSAndroid Build Coastguard Worker }
8886*344a7f5eSAndroid Build Coastguard Worker
8887*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_or_0_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)8888*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
8889*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8890*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
8891*344a7f5eSAndroid Build Coastguard Worker }
8892*344a7f5eSAndroid Build Coastguard Worker
8893*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed short
vec_find_any_ne_or_0_idx_cc(vector signed short __a,vector signed short __b,int * __cc)8894*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(vector signed short __a, vector signed short __b,
8895*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8896*344a7f5eSAndroid Build Coastguard Worker return (vector signed short)
8897*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaezhs((vector unsigned short)__a,
8898*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 8, __cc);
8899*344a7f5eSAndroid Build Coastguard Worker }
8900*344a7f5eSAndroid Build Coastguard Worker
8901*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_or_0_idx_cc(vector bool short __a,vector bool short __b,int * __cc)8902*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(vector bool short __a, vector bool short __b,
8903*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8904*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezhs((vector unsigned short)__a,
8905*344a7f5eSAndroid Build Coastguard Worker (vector unsigned short)__b, 8, __cc);
8906*344a7f5eSAndroid Build Coastguard Worker }
8907*344a7f5eSAndroid Build Coastguard Worker
8908*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_or_0_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)8909*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(vector unsigned short __a,
8910*344a7f5eSAndroid Build Coastguard Worker vector unsigned short __b, int *__cc) {
8911*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
8912*344a7f5eSAndroid Build Coastguard Worker }
8913*344a7f5eSAndroid Build Coastguard Worker
8914*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector signed int
vec_find_any_ne_or_0_idx_cc(vector signed int __a,vector signed int __b,int * __cc)8915*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(vector signed int __a, vector signed int __b,
8916*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8917*344a7f5eSAndroid Build Coastguard Worker return (vector signed int)
8918*344a7f5eSAndroid Build Coastguard Worker __builtin_s390_vfaezfs((vector unsigned int)__a,
8919*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 8, __cc);
8920*344a7f5eSAndroid Build Coastguard Worker }
8921*344a7f5eSAndroid Build Coastguard Worker
8922*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_or_0_idx_cc(vector bool int __a,vector bool int __b,int * __cc)8923*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(vector bool int __a, vector bool int __b,
8924*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8925*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezfs((vector unsigned int)__a,
8926*344a7f5eSAndroid Build Coastguard Worker (vector unsigned int)__b, 8, __cc);
8927*344a7f5eSAndroid Build Coastguard Worker }
8928*344a7f5eSAndroid Build Coastguard Worker
8929*344a7f5eSAndroid Build Coastguard Worker static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_or_0_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)8930*344a7f5eSAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
8931*344a7f5eSAndroid Build Coastguard Worker int *__cc) {
8932*344a7f5eSAndroid Build Coastguard Worker return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
8933*344a7f5eSAndroid Build Coastguard Worker }
8934*344a7f5eSAndroid Build Coastguard Worker
8935*344a7f5eSAndroid Build Coastguard Worker #undef __constant_pow2_range
8936*344a7f5eSAndroid Build Coastguard Worker #undef __constant_range
8937*344a7f5eSAndroid Build Coastguard Worker #undef __constant
8938*344a7f5eSAndroid Build Coastguard Worker #undef __ATTRS_o
8939*344a7f5eSAndroid Build Coastguard Worker #undef __ATTRS_o_ai
8940*344a7f5eSAndroid Build Coastguard Worker #undef __ATTRS_ai
8941*344a7f5eSAndroid Build Coastguard Worker
8942*344a7f5eSAndroid Build Coastguard Worker #else
8943*344a7f5eSAndroid Build Coastguard Worker
8944*344a7f5eSAndroid Build Coastguard Worker #error "Use -fzvector to enable vector extensions"
8945*344a7f5eSAndroid Build Coastguard Worker
8946*344a7f5eSAndroid Build Coastguard Worker #endif
8947