1*bed243d3SAndroid Build Coastguard Worker /*===---- vecintrin.h - Vector intrinsics ----------------------------------===
2*bed243d3SAndroid Build Coastguard Worker *
3*bed243d3SAndroid Build Coastguard Worker * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*bed243d3SAndroid Build Coastguard Worker * See https://llvm.org/LICENSE.txt for license information.
5*bed243d3SAndroid Build Coastguard Worker * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*bed243d3SAndroid Build Coastguard Worker *
7*bed243d3SAndroid Build Coastguard Worker *===-----------------------------------------------------------------------===
8*bed243d3SAndroid Build Coastguard Worker */
9*bed243d3SAndroid Build Coastguard Worker
10*bed243d3SAndroid Build Coastguard Worker #if defined(__s390x__) && defined(__VEC__)
11*bed243d3SAndroid Build Coastguard Worker
12*bed243d3SAndroid Build Coastguard Worker #define __ATTRS_ai __attribute__((__always_inline__))
13*bed243d3SAndroid Build Coastguard Worker #define __ATTRS_o __attribute__((__overloadable__))
14*bed243d3SAndroid Build Coastguard Worker #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
15*bed243d3SAndroid Build Coastguard Worker
16*bed243d3SAndroid Build Coastguard Worker #define __constant(PARM) \
17*bed243d3SAndroid Build Coastguard Worker __attribute__((__enable_if__ ((PARM) == (PARM), \
18*bed243d3SAndroid Build Coastguard Worker "argument must be a constant integer")))
19*bed243d3SAndroid Build Coastguard Worker #define __constant_range(PARM, LOW, HIGH) \
20*bed243d3SAndroid Build Coastguard Worker __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
21*bed243d3SAndroid Build Coastguard Worker "argument must be a constant integer from " #LOW " to " #HIGH)))
22*bed243d3SAndroid Build Coastguard Worker #define __constant_pow2_range(PARM, LOW, HIGH) \
23*bed243d3SAndroid Build Coastguard Worker __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
24*bed243d3SAndroid Build Coastguard Worker ((PARM) & ((PARM) - 1)) == 0, \
25*bed243d3SAndroid Build Coastguard Worker "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
26*bed243d3SAndroid Build Coastguard Worker
27*bed243d3SAndroid Build Coastguard Worker /*-- __lcbb -----------------------------------------------------------------*/
28*bed243d3SAndroid Build Coastguard Worker
29*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o unsigned int
30*bed243d3SAndroid Build Coastguard Worker __lcbb(const void *__ptr, unsigned short __len)
31*bed243d3SAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
32*bed243d3SAndroid Build Coastguard Worker
33*bed243d3SAndroid Build Coastguard Worker #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
34*bed243d3SAndroid Build Coastguard Worker __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
35*bed243d3SAndroid Build Coastguard Worker ((Y) == 64 ? 0 : \
36*bed243d3SAndroid Build Coastguard Worker (Y) == 128 ? 1 : \
37*bed243d3SAndroid Build Coastguard Worker (Y) == 256 ? 2 : \
38*bed243d3SAndroid Build Coastguard Worker (Y) == 512 ? 3 : \
39*bed243d3SAndroid Build Coastguard Worker (Y) == 1024 ? 4 : \
40*bed243d3SAndroid Build Coastguard Worker (Y) == 2048 ? 5 : \
41*bed243d3SAndroid Build Coastguard Worker (Y) == 4096 ? 6 : 0) : 0))
42*bed243d3SAndroid Build Coastguard Worker
43*bed243d3SAndroid Build Coastguard Worker /*-- vec_extract ------------------------------------------------------------*/
44*bed243d3SAndroid Build Coastguard Worker
45*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai signed char
vec_extract(__vector signed char __vec,int __index)46*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector signed char __vec, int __index) {
47*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 15];
48*bed243d3SAndroid Build Coastguard Worker }
49*bed243d3SAndroid Build Coastguard Worker
50*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned char
vec_extract(__vector __bool char __vec,int __index)51*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector __bool char __vec, int __index) {
52*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 15];
53*bed243d3SAndroid Build Coastguard Worker }
54*bed243d3SAndroid Build Coastguard Worker
55*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned char
vec_extract(__vector unsigned char __vec,int __index)56*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector unsigned char __vec, int __index) {
57*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 15];
58*bed243d3SAndroid Build Coastguard Worker }
59*bed243d3SAndroid Build Coastguard Worker
60*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai signed short
vec_extract(__vector signed short __vec,int __index)61*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector signed short __vec, int __index) {
62*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 7];
63*bed243d3SAndroid Build Coastguard Worker }
64*bed243d3SAndroid Build Coastguard Worker
65*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned short
vec_extract(__vector __bool short __vec,int __index)66*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector __bool short __vec, int __index) {
67*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 7];
68*bed243d3SAndroid Build Coastguard Worker }
69*bed243d3SAndroid Build Coastguard Worker
70*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned short
vec_extract(__vector unsigned short __vec,int __index)71*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector unsigned short __vec, int __index) {
72*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 7];
73*bed243d3SAndroid Build Coastguard Worker }
74*bed243d3SAndroid Build Coastguard Worker
75*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai signed int
vec_extract(__vector signed int __vec,int __index)76*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector signed int __vec, int __index) {
77*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 3];
78*bed243d3SAndroid Build Coastguard Worker }
79*bed243d3SAndroid Build Coastguard Worker
80*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned int
vec_extract(__vector __bool int __vec,int __index)81*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector __bool int __vec, int __index) {
82*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 3];
83*bed243d3SAndroid Build Coastguard Worker }
84*bed243d3SAndroid Build Coastguard Worker
85*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned int
vec_extract(__vector unsigned int __vec,int __index)86*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector unsigned int __vec, int __index) {
87*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 3];
88*bed243d3SAndroid Build Coastguard Worker }
89*bed243d3SAndroid Build Coastguard Worker
90*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai signed long long
vec_extract(__vector signed long long __vec,int __index)91*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector signed long long __vec, int __index) {
92*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 1];
93*bed243d3SAndroid Build Coastguard Worker }
94*bed243d3SAndroid Build Coastguard Worker
95*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector __bool long long __vec,int __index)96*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector __bool long long __vec, int __index) {
97*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 1];
98*bed243d3SAndroid Build Coastguard Worker }
99*bed243d3SAndroid Build Coastguard Worker
100*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector unsigned long long __vec,int __index)101*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector unsigned long long __vec, int __index) {
102*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 1];
103*bed243d3SAndroid Build Coastguard Worker }
104*bed243d3SAndroid Build Coastguard Worker
105*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
106*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai float
vec_extract(__vector float __vec,int __index)107*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector float __vec, int __index) {
108*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 3];
109*bed243d3SAndroid Build Coastguard Worker }
110*bed243d3SAndroid Build Coastguard Worker #endif
111*bed243d3SAndroid Build Coastguard Worker
112*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai double
vec_extract(__vector double __vec,int __index)113*bed243d3SAndroid Build Coastguard Worker vec_extract(__vector double __vec, int __index) {
114*bed243d3SAndroid Build Coastguard Worker return __vec[__index & 1];
115*bed243d3SAndroid Build Coastguard Worker }
116*bed243d3SAndroid Build Coastguard Worker
117*bed243d3SAndroid Build Coastguard Worker /*-- vec_insert -------------------------------------------------------------*/
118*bed243d3SAndroid Build Coastguard Worker
119*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_insert(signed char __scalar,__vector signed char __vec,int __index)120*bed243d3SAndroid Build Coastguard Worker vec_insert(signed char __scalar, __vector signed char __vec, int __index) {
121*bed243d3SAndroid Build Coastguard Worker __vec[__index & 15] = __scalar;
122*bed243d3SAndroid Build Coastguard Worker return __vec;
123*bed243d3SAndroid Build Coastguard Worker }
124*bed243d3SAndroid Build Coastguard Worker
125*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
126*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar,__vector __bool char __vec,int __index)127*bed243d3SAndroid Build Coastguard Worker vec_insert(unsigned char __scalar, __vector __bool char __vec, int __index) {
128*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __newvec = (__vector unsigned char)__vec;
129*bed243d3SAndroid Build Coastguard Worker __newvec[__index & 15] = (unsigned char)__scalar;
130*bed243d3SAndroid Build Coastguard Worker return __newvec;
131*bed243d3SAndroid Build Coastguard Worker }
132*bed243d3SAndroid Build Coastguard Worker
133*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar,__vector unsigned char __vec,int __index)134*bed243d3SAndroid Build Coastguard Worker vec_insert(unsigned char __scalar, __vector unsigned char __vec, int __index) {
135*bed243d3SAndroid Build Coastguard Worker __vec[__index & 15] = __scalar;
136*bed243d3SAndroid Build Coastguard Worker return __vec;
137*bed243d3SAndroid Build Coastguard Worker }
138*bed243d3SAndroid Build Coastguard Worker
139*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_insert(signed short __scalar,__vector signed short __vec,int __index)140*bed243d3SAndroid Build Coastguard Worker vec_insert(signed short __scalar, __vector signed short __vec, int __index) {
141*bed243d3SAndroid Build Coastguard Worker __vec[__index & 7] = __scalar;
142*bed243d3SAndroid Build Coastguard Worker return __vec;
143*bed243d3SAndroid Build Coastguard Worker }
144*bed243d3SAndroid Build Coastguard Worker
145*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
146*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar,__vector __bool short __vec,int __index)147*bed243d3SAndroid Build Coastguard Worker vec_insert(unsigned short __scalar, __vector __bool short __vec,
148*bed243d3SAndroid Build Coastguard Worker int __index) {
149*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __newvec = (__vector unsigned short)__vec;
150*bed243d3SAndroid Build Coastguard Worker __newvec[__index & 7] = (unsigned short)__scalar;
151*bed243d3SAndroid Build Coastguard Worker return __newvec;
152*bed243d3SAndroid Build Coastguard Worker }
153*bed243d3SAndroid Build Coastguard Worker
154*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar,__vector unsigned short __vec,int __index)155*bed243d3SAndroid Build Coastguard Worker vec_insert(unsigned short __scalar, __vector unsigned short __vec,
156*bed243d3SAndroid Build Coastguard Worker int __index) {
157*bed243d3SAndroid Build Coastguard Worker __vec[__index & 7] = __scalar;
158*bed243d3SAndroid Build Coastguard Worker return __vec;
159*bed243d3SAndroid Build Coastguard Worker }
160*bed243d3SAndroid Build Coastguard Worker
161*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_insert(signed int __scalar,__vector signed int __vec,int __index)162*bed243d3SAndroid Build Coastguard Worker vec_insert(signed int __scalar, __vector signed int __vec, int __index) {
163*bed243d3SAndroid Build Coastguard Worker __vec[__index & 3] = __scalar;
164*bed243d3SAndroid Build Coastguard Worker return __vec;
165*bed243d3SAndroid Build Coastguard Worker }
166*bed243d3SAndroid Build Coastguard Worker
167*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
168*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar,__vector __bool int __vec,int __index)169*bed243d3SAndroid Build Coastguard Worker vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) {
170*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __newvec = (__vector unsigned int)__vec;
171*bed243d3SAndroid Build Coastguard Worker __newvec[__index & 3] = __scalar;
172*bed243d3SAndroid Build Coastguard Worker return __newvec;
173*bed243d3SAndroid Build Coastguard Worker }
174*bed243d3SAndroid Build Coastguard Worker
175*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar,__vector unsigned int __vec,int __index)176*bed243d3SAndroid Build Coastguard Worker vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) {
177*bed243d3SAndroid Build Coastguard Worker __vec[__index & 3] = __scalar;
178*bed243d3SAndroid Build Coastguard Worker return __vec;
179*bed243d3SAndroid Build Coastguard Worker }
180*bed243d3SAndroid Build Coastguard Worker
181*bed243d3SAndroid 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)182*bed243d3SAndroid Build Coastguard Worker vec_insert(signed long long __scalar, __vector signed long long __vec,
183*bed243d3SAndroid Build Coastguard Worker int __index) {
184*bed243d3SAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
185*bed243d3SAndroid Build Coastguard Worker return __vec;
186*bed243d3SAndroid Build Coastguard Worker }
187*bed243d3SAndroid Build Coastguard Worker
188*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
189*bed243d3SAndroid 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)190*bed243d3SAndroid Build Coastguard Worker vec_insert(unsigned long long __scalar, __vector __bool long long __vec,
191*bed243d3SAndroid Build Coastguard Worker int __index) {
192*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __newvec = (__vector unsigned long long)__vec;
193*bed243d3SAndroid Build Coastguard Worker __newvec[__index & 1] = __scalar;
194*bed243d3SAndroid Build Coastguard Worker return __newvec;
195*bed243d3SAndroid Build Coastguard Worker }
196*bed243d3SAndroid Build Coastguard Worker
197*bed243d3SAndroid 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)198*bed243d3SAndroid Build Coastguard Worker vec_insert(unsigned long long __scalar, __vector unsigned long long __vec,
199*bed243d3SAndroid Build Coastguard Worker int __index) {
200*bed243d3SAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
201*bed243d3SAndroid Build Coastguard Worker return __vec;
202*bed243d3SAndroid Build Coastguard Worker }
203*bed243d3SAndroid Build Coastguard Worker
204*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
205*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_insert(float __scalar,__vector float __vec,int __index)206*bed243d3SAndroid Build Coastguard Worker vec_insert(float __scalar, __vector float __vec, int __index) {
207*bed243d3SAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
208*bed243d3SAndroid Build Coastguard Worker return __vec;
209*bed243d3SAndroid Build Coastguard Worker }
210*bed243d3SAndroid Build Coastguard Worker #endif
211*bed243d3SAndroid Build Coastguard Worker
212*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_insert(double __scalar,__vector double __vec,int __index)213*bed243d3SAndroid Build Coastguard Worker vec_insert(double __scalar, __vector double __vec, int __index) {
214*bed243d3SAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
215*bed243d3SAndroid Build Coastguard Worker return __vec;
216*bed243d3SAndroid Build Coastguard Worker }
217*bed243d3SAndroid Build Coastguard Worker
218*bed243d3SAndroid Build Coastguard Worker /*-- vec_promote ------------------------------------------------------------*/
219*bed243d3SAndroid Build Coastguard Worker
220*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_promote(signed char __scalar,int __index)221*bed243d3SAndroid Build Coastguard Worker vec_promote(signed char __scalar, int __index) {
222*bed243d3SAndroid Build Coastguard Worker const __vector signed char __zero = (__vector signed char)0;
223*bed243d3SAndroid Build Coastguard Worker __vector signed char __vec = __builtin_shufflevector(__zero, __zero,
224*bed243d3SAndroid Build Coastguard Worker -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
225*bed243d3SAndroid Build Coastguard Worker __vec[__index & 15] = __scalar;
226*bed243d3SAndroid Build Coastguard Worker return __vec;
227*bed243d3SAndroid Build Coastguard Worker }
228*bed243d3SAndroid Build Coastguard Worker
229*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_promote(unsigned char __scalar,int __index)230*bed243d3SAndroid Build Coastguard Worker vec_promote(unsigned char __scalar, int __index) {
231*bed243d3SAndroid Build Coastguard Worker const __vector unsigned char __zero = (__vector unsigned char)0;
232*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
233*bed243d3SAndroid Build Coastguard Worker -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
234*bed243d3SAndroid Build Coastguard Worker __vec[__index & 15] = __scalar;
235*bed243d3SAndroid Build Coastguard Worker return __vec;
236*bed243d3SAndroid Build Coastguard Worker }
237*bed243d3SAndroid Build Coastguard Worker
238*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_promote(signed short __scalar,int __index)239*bed243d3SAndroid Build Coastguard Worker vec_promote(signed short __scalar, int __index) {
240*bed243d3SAndroid Build Coastguard Worker const __vector signed short __zero = (__vector signed short)0;
241*bed243d3SAndroid Build Coastguard Worker __vector signed short __vec = __builtin_shufflevector(__zero, __zero,
242*bed243d3SAndroid Build Coastguard Worker -1, -1, -1, -1, -1, -1, -1, -1);
243*bed243d3SAndroid Build Coastguard Worker __vec[__index & 7] = __scalar;
244*bed243d3SAndroid Build Coastguard Worker return __vec;
245*bed243d3SAndroid Build Coastguard Worker }
246*bed243d3SAndroid Build Coastguard Worker
247*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_promote(unsigned short __scalar,int __index)248*bed243d3SAndroid Build Coastguard Worker vec_promote(unsigned short __scalar, int __index) {
249*bed243d3SAndroid Build Coastguard Worker const __vector unsigned short __zero = (__vector unsigned short)0;
250*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
251*bed243d3SAndroid Build Coastguard Worker -1, -1, -1, -1, -1, -1, -1, -1);
252*bed243d3SAndroid Build Coastguard Worker __vec[__index & 7] = __scalar;
253*bed243d3SAndroid Build Coastguard Worker return __vec;
254*bed243d3SAndroid Build Coastguard Worker }
255*bed243d3SAndroid Build Coastguard Worker
256*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_promote(signed int __scalar,int __index)257*bed243d3SAndroid Build Coastguard Worker vec_promote(signed int __scalar, int __index) {
258*bed243d3SAndroid Build Coastguard Worker const __vector signed int __zero = (__vector signed int)0;
259*bed243d3SAndroid Build Coastguard Worker __vector signed int __vec = __builtin_shufflevector(__zero, __zero,
260*bed243d3SAndroid Build Coastguard Worker -1, -1, -1, -1);
261*bed243d3SAndroid Build Coastguard Worker __vec[__index & 3] = __scalar;
262*bed243d3SAndroid Build Coastguard Worker return __vec;
263*bed243d3SAndroid Build Coastguard Worker }
264*bed243d3SAndroid Build Coastguard Worker
265*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_promote(unsigned int __scalar,int __index)266*bed243d3SAndroid Build Coastguard Worker vec_promote(unsigned int __scalar, int __index) {
267*bed243d3SAndroid Build Coastguard Worker const __vector unsigned int __zero = (__vector unsigned int)0;
268*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
269*bed243d3SAndroid Build Coastguard Worker -1, -1, -1, -1);
270*bed243d3SAndroid Build Coastguard Worker __vec[__index & 3] = __scalar;
271*bed243d3SAndroid Build Coastguard Worker return __vec;
272*bed243d3SAndroid Build Coastguard Worker }
273*bed243d3SAndroid Build Coastguard Worker
274*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_promote(signed long long __scalar,int __index)275*bed243d3SAndroid Build Coastguard Worker vec_promote(signed long long __scalar, int __index) {
276*bed243d3SAndroid Build Coastguard Worker const __vector signed long long __zero = (__vector signed long long)0;
277*bed243d3SAndroid Build Coastguard Worker __vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
278*bed243d3SAndroid Build Coastguard Worker -1, -1);
279*bed243d3SAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
280*bed243d3SAndroid Build Coastguard Worker return __vec;
281*bed243d3SAndroid Build Coastguard Worker }
282*bed243d3SAndroid Build Coastguard Worker
283*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_promote(unsigned long long __scalar,int __index)284*bed243d3SAndroid Build Coastguard Worker vec_promote(unsigned long long __scalar, int __index) {
285*bed243d3SAndroid Build Coastguard Worker const __vector unsigned long long __zero = (__vector unsigned long long)0;
286*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
287*bed243d3SAndroid Build Coastguard Worker -1, -1);
288*bed243d3SAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
289*bed243d3SAndroid Build Coastguard Worker return __vec;
290*bed243d3SAndroid Build Coastguard Worker }
291*bed243d3SAndroid Build Coastguard Worker
292*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
293*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_promote(float __scalar,int __index)294*bed243d3SAndroid Build Coastguard Worker vec_promote(float __scalar, int __index) {
295*bed243d3SAndroid Build Coastguard Worker const __vector float __zero = (__vector float)0.0f;
296*bed243d3SAndroid Build Coastguard Worker __vector float __vec = __builtin_shufflevector(__zero, __zero,
297*bed243d3SAndroid Build Coastguard Worker -1, -1, -1, -1);
298*bed243d3SAndroid Build Coastguard Worker __vec[__index & 3] = __scalar;
299*bed243d3SAndroid Build Coastguard Worker return __vec;
300*bed243d3SAndroid Build Coastguard Worker }
301*bed243d3SAndroid Build Coastguard Worker #endif
302*bed243d3SAndroid Build Coastguard Worker
303*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_promote(double __scalar,int __index)304*bed243d3SAndroid Build Coastguard Worker vec_promote(double __scalar, int __index) {
305*bed243d3SAndroid Build Coastguard Worker const __vector double __zero = (__vector double)0.0;
306*bed243d3SAndroid Build Coastguard Worker __vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
307*bed243d3SAndroid Build Coastguard Worker __vec[__index & 1] = __scalar;
308*bed243d3SAndroid Build Coastguard Worker return __vec;
309*bed243d3SAndroid Build Coastguard Worker }
310*bed243d3SAndroid Build Coastguard Worker
311*bed243d3SAndroid Build Coastguard Worker /*-- vec_insert_and_zero ----------------------------------------------------*/
312*bed243d3SAndroid Build Coastguard Worker
313*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_insert_and_zero(const signed char * __ptr)314*bed243d3SAndroid Build Coastguard Worker vec_insert_and_zero(const signed char *__ptr) {
315*bed243d3SAndroid Build Coastguard Worker __vector signed char __vec = (__vector signed char)0;
316*bed243d3SAndroid Build Coastguard Worker __vec[7] = *__ptr;
317*bed243d3SAndroid Build Coastguard Worker return __vec;
318*bed243d3SAndroid Build Coastguard Worker }
319*bed243d3SAndroid Build Coastguard Worker
320*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_insert_and_zero(const unsigned char * __ptr)321*bed243d3SAndroid Build Coastguard Worker vec_insert_and_zero(const unsigned char *__ptr) {
322*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __vec = (__vector unsigned char)0;
323*bed243d3SAndroid Build Coastguard Worker __vec[7] = *__ptr;
324*bed243d3SAndroid Build Coastguard Worker return __vec;
325*bed243d3SAndroid Build Coastguard Worker }
326*bed243d3SAndroid Build Coastguard Worker
327*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_insert_and_zero(const signed short * __ptr)328*bed243d3SAndroid Build Coastguard Worker vec_insert_and_zero(const signed short *__ptr) {
329*bed243d3SAndroid Build Coastguard Worker __vector signed short __vec = (__vector signed short)0;
330*bed243d3SAndroid Build Coastguard Worker __vec[3] = *__ptr;
331*bed243d3SAndroid Build Coastguard Worker return __vec;
332*bed243d3SAndroid Build Coastguard Worker }
333*bed243d3SAndroid Build Coastguard Worker
334*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_insert_and_zero(const unsigned short * __ptr)335*bed243d3SAndroid Build Coastguard Worker vec_insert_and_zero(const unsigned short *__ptr) {
336*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __vec = (__vector unsigned short)0;
337*bed243d3SAndroid Build Coastguard Worker __vec[3] = *__ptr;
338*bed243d3SAndroid Build Coastguard Worker return __vec;
339*bed243d3SAndroid Build Coastguard Worker }
340*bed243d3SAndroid Build Coastguard Worker
341*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_insert_and_zero(const signed int * __ptr)342*bed243d3SAndroid Build Coastguard Worker vec_insert_and_zero(const signed int *__ptr) {
343*bed243d3SAndroid Build Coastguard Worker __vector signed int __vec = (__vector signed int)0;
344*bed243d3SAndroid Build Coastguard Worker __vec[1] = *__ptr;
345*bed243d3SAndroid Build Coastguard Worker return __vec;
346*bed243d3SAndroid Build Coastguard Worker }
347*bed243d3SAndroid Build Coastguard Worker
348*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_insert_and_zero(const unsigned int * __ptr)349*bed243d3SAndroid Build Coastguard Worker vec_insert_and_zero(const unsigned int *__ptr) {
350*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __vec = (__vector unsigned int)0;
351*bed243d3SAndroid Build Coastguard Worker __vec[1] = *__ptr;
352*bed243d3SAndroid Build Coastguard Worker return __vec;
353*bed243d3SAndroid Build Coastguard Worker }
354*bed243d3SAndroid Build Coastguard Worker
355*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_insert_and_zero(const signed long long * __ptr)356*bed243d3SAndroid Build Coastguard Worker vec_insert_and_zero(const signed long long *__ptr) {
357*bed243d3SAndroid Build Coastguard Worker __vector signed long long __vec = (__vector signed long long)0;
358*bed243d3SAndroid Build Coastguard Worker __vec[0] = *__ptr;
359*bed243d3SAndroid Build Coastguard Worker return __vec;
360*bed243d3SAndroid Build Coastguard Worker }
361*bed243d3SAndroid Build Coastguard Worker
362*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_insert_and_zero(const unsigned long long * __ptr)363*bed243d3SAndroid Build Coastguard Worker vec_insert_and_zero(const unsigned long long *__ptr) {
364*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __vec = (__vector unsigned long long)0;
365*bed243d3SAndroid Build Coastguard Worker __vec[0] = *__ptr;
366*bed243d3SAndroid Build Coastguard Worker return __vec;
367*bed243d3SAndroid Build Coastguard Worker }
368*bed243d3SAndroid Build Coastguard Worker
369*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
370*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_insert_and_zero(const float * __ptr)371*bed243d3SAndroid Build Coastguard Worker vec_insert_and_zero(const float *__ptr) {
372*bed243d3SAndroid Build Coastguard Worker __vector float __vec = (__vector float)0.0f;
373*bed243d3SAndroid Build Coastguard Worker __vec[1] = *__ptr;
374*bed243d3SAndroid Build Coastguard Worker return __vec;
375*bed243d3SAndroid Build Coastguard Worker }
376*bed243d3SAndroid Build Coastguard Worker #endif
377*bed243d3SAndroid Build Coastguard Worker
378*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_insert_and_zero(const double * __ptr)379*bed243d3SAndroid Build Coastguard Worker vec_insert_and_zero(const double *__ptr) {
380*bed243d3SAndroid Build Coastguard Worker __vector double __vec = (__vector double)0.0;
381*bed243d3SAndroid Build Coastguard Worker __vec[0] = *__ptr;
382*bed243d3SAndroid Build Coastguard Worker return __vec;
383*bed243d3SAndroid Build Coastguard Worker }
384*bed243d3SAndroid Build Coastguard Worker
385*bed243d3SAndroid Build Coastguard Worker /*-- vec_perm ---------------------------------------------------------------*/
386*bed243d3SAndroid Build Coastguard Worker
387*bed243d3SAndroid 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)388*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector signed char __a, __vector signed char __b,
389*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
390*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vperm(
391*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
392*bed243d3SAndroid Build Coastguard Worker }
393*bed243d3SAndroid Build Coastguard Worker
394*bed243d3SAndroid 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)395*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector unsigned char __a, __vector unsigned char __b,
396*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
397*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)__builtin_s390_vperm(
398*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
399*bed243d3SAndroid Build Coastguard Worker }
400*bed243d3SAndroid Build Coastguard Worker
401*bed243d3SAndroid 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)402*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector __bool char __a, __vector __bool char __b,
403*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
404*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vperm(
405*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
406*bed243d3SAndroid Build Coastguard Worker }
407*bed243d3SAndroid Build Coastguard Worker
408*bed243d3SAndroid 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)409*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector signed short __a, __vector signed short __b,
410*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
411*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vperm(
412*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
413*bed243d3SAndroid Build Coastguard Worker }
414*bed243d3SAndroid Build Coastguard Worker
415*bed243d3SAndroid 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)416*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector unsigned short __a, __vector unsigned short __b,
417*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
418*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vperm(
419*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
420*bed243d3SAndroid Build Coastguard Worker }
421*bed243d3SAndroid Build Coastguard Worker
422*bed243d3SAndroid 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)423*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector __bool short __a, __vector __bool short __b,
424*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
425*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vperm(
426*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
427*bed243d3SAndroid Build Coastguard Worker }
428*bed243d3SAndroid Build Coastguard Worker
429*bed243d3SAndroid 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)430*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector signed int __a, __vector signed int __b,
431*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
432*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vperm(
433*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
434*bed243d3SAndroid Build Coastguard Worker }
435*bed243d3SAndroid Build Coastguard Worker
436*bed243d3SAndroid 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)437*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector unsigned int __a, __vector unsigned int __b,
438*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
439*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vperm(
440*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
441*bed243d3SAndroid Build Coastguard Worker }
442*bed243d3SAndroid Build Coastguard Worker
443*bed243d3SAndroid 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)444*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector __bool int __a, __vector __bool int __b,
445*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
446*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vperm(
447*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
448*bed243d3SAndroid Build Coastguard Worker }
449*bed243d3SAndroid Build Coastguard Worker
450*bed243d3SAndroid 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)451*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector signed long long __a, __vector signed long long __b,
452*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
453*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vperm(
454*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
455*bed243d3SAndroid Build Coastguard Worker }
456*bed243d3SAndroid Build Coastguard Worker
457*bed243d3SAndroid 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)458*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector unsigned long long __a, __vector unsigned long long __b,
459*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
460*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vperm(
461*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
462*bed243d3SAndroid Build Coastguard Worker }
463*bed243d3SAndroid Build Coastguard Worker
464*bed243d3SAndroid 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)465*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector __bool long long __a, __vector __bool long long __b,
466*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
467*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)__builtin_s390_vperm(
468*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
469*bed243d3SAndroid Build Coastguard Worker }
470*bed243d3SAndroid Build Coastguard Worker
471*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
472*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_perm(__vector float __a,__vector float __b,__vector unsigned char __c)473*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector float __a, __vector float __b,
474*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
475*bed243d3SAndroid Build Coastguard Worker return (__vector float)__builtin_s390_vperm(
476*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
477*bed243d3SAndroid Build Coastguard Worker }
478*bed243d3SAndroid Build Coastguard Worker #endif
479*bed243d3SAndroid Build Coastguard Worker
480*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_perm(__vector double __a,__vector double __b,__vector unsigned char __c)481*bed243d3SAndroid Build Coastguard Worker vec_perm(__vector double __a, __vector double __b,
482*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
483*bed243d3SAndroid Build Coastguard Worker return (__vector double)__builtin_s390_vperm(
484*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
485*bed243d3SAndroid Build Coastguard Worker }
486*bed243d3SAndroid Build Coastguard Worker
487*bed243d3SAndroid Build Coastguard Worker /*-- vec_permi --------------------------------------------------------------*/
488*bed243d3SAndroid Build Coastguard Worker
489*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
490*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed long long
491*bed243d3SAndroid Build Coastguard Worker vec_permi(__vector signed long long __a, __vector signed long long __b,
492*bed243d3SAndroid Build Coastguard Worker int __c)
493*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
494*bed243d3SAndroid Build Coastguard Worker
495*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
496*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned long long
497*bed243d3SAndroid Build Coastguard Worker vec_permi(__vector unsigned long long __a, __vector unsigned long long __b,
498*bed243d3SAndroid Build Coastguard Worker int __c)
499*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
500*bed243d3SAndroid Build Coastguard Worker
501*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
502*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector __bool long long
503*bed243d3SAndroid Build Coastguard Worker vec_permi(__vector __bool long long __a, __vector __bool long long __b,
504*bed243d3SAndroid Build Coastguard Worker int __c)
505*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
506*bed243d3SAndroid Build Coastguard Worker
507*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
508*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector double
509*bed243d3SAndroid Build Coastguard Worker vec_permi(__vector double __a, __vector double __b, int __c)
510*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
511*bed243d3SAndroid Build Coastguard Worker
512*bed243d3SAndroid Build Coastguard Worker #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
513*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vpdi((__vector unsigned long long)(X), \
514*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)(Y), \
515*bed243d3SAndroid Build Coastguard Worker (((Z) & 2) << 1) | ((Z) & 1)))
516*bed243d3SAndroid Build Coastguard Worker
517*bed243d3SAndroid Build Coastguard Worker /*-- vec_bperm_u128 ---------------------------------------------------------*/
518*bed243d3SAndroid Build Coastguard Worker
519*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
520*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector unsigned long long
vec_bperm_u128(__vector unsigned char __a,__vector unsigned char __b)521*bed243d3SAndroid Build Coastguard Worker vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {
522*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vbperm(__a, __b);
523*bed243d3SAndroid Build Coastguard Worker }
524*bed243d3SAndroid Build Coastguard Worker #endif
525*bed243d3SAndroid Build Coastguard Worker
526*bed243d3SAndroid Build Coastguard Worker /*-- vec_revb ---------------------------------------------------------------*/
527*bed243d3SAndroid Build Coastguard Worker
528*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_revb(__vector signed short __vec)529*bed243d3SAndroid Build Coastguard Worker vec_revb(__vector signed short __vec) {
530*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
531*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vlbrh((__vector unsigned short)__vec);
532*bed243d3SAndroid Build Coastguard Worker }
533*bed243d3SAndroid Build Coastguard Worker
534*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_revb(__vector unsigned short __vec)535*bed243d3SAndroid Build Coastguard Worker vec_revb(__vector unsigned short __vec) {
536*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vlbrh(__vec);
537*bed243d3SAndroid Build Coastguard Worker }
538*bed243d3SAndroid Build Coastguard Worker
539*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_revb(__vector signed int __vec)540*bed243d3SAndroid Build Coastguard Worker vec_revb(__vector signed int __vec) {
541*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
542*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vlbrf((__vector unsigned int)__vec);
543*bed243d3SAndroid Build Coastguard Worker }
544*bed243d3SAndroid Build Coastguard Worker
545*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_revb(__vector unsigned int __vec)546*bed243d3SAndroid Build Coastguard Worker vec_revb(__vector unsigned int __vec) {
547*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vlbrf(__vec);
548*bed243d3SAndroid Build Coastguard Worker }
549*bed243d3SAndroid Build Coastguard Worker
550*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_revb(__vector signed long long __vec)551*bed243d3SAndroid Build Coastguard Worker vec_revb(__vector signed long long __vec) {
552*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)
553*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vlbrg((__vector unsigned long long)__vec);
554*bed243d3SAndroid Build Coastguard Worker }
555*bed243d3SAndroid Build Coastguard Worker
556*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_revb(__vector unsigned long long __vec)557*bed243d3SAndroid Build Coastguard Worker vec_revb(__vector unsigned long long __vec) {
558*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vlbrg(__vec);
559*bed243d3SAndroid Build Coastguard Worker }
560*bed243d3SAndroid Build Coastguard Worker
561*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
562*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_revb(__vector float __vec)563*bed243d3SAndroid Build Coastguard Worker vec_revb(__vector float __vec) {
564*bed243d3SAndroid Build Coastguard Worker return (__vector float)
565*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vlbrf((__vector unsigned int)__vec);
566*bed243d3SAndroid Build Coastguard Worker }
567*bed243d3SAndroid Build Coastguard Worker #endif
568*bed243d3SAndroid Build Coastguard Worker
569*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_revb(__vector double __vec)570*bed243d3SAndroid Build Coastguard Worker vec_revb(__vector double __vec) {
571*bed243d3SAndroid Build Coastguard Worker return (__vector double)
572*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vlbrg((__vector unsigned long long)__vec);
573*bed243d3SAndroid Build Coastguard Worker }
574*bed243d3SAndroid Build Coastguard Worker
575*bed243d3SAndroid Build Coastguard Worker /*-- vec_reve ---------------------------------------------------------------*/
576*bed243d3SAndroid Build Coastguard Worker
577*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_reve(__vector signed char __vec)578*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector signed char __vec) {
579*bed243d3SAndroid Build Coastguard Worker return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
580*bed243d3SAndroid Build Coastguard Worker __vec[11], __vec[10], __vec[9], __vec[8],
581*bed243d3SAndroid Build Coastguard Worker __vec[7], __vec[6], __vec[5], __vec[4],
582*bed243d3SAndroid Build Coastguard Worker __vec[3], __vec[2], __vec[1], __vec[0] };
583*bed243d3SAndroid Build Coastguard Worker }
584*bed243d3SAndroid Build Coastguard Worker
585*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_reve(__vector unsigned char __vec)586*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector unsigned char __vec) {
587*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
588*bed243d3SAndroid Build Coastguard Worker __vec[11], __vec[10], __vec[9], __vec[8],
589*bed243d3SAndroid Build Coastguard Worker __vec[7], __vec[6], __vec[5], __vec[4],
590*bed243d3SAndroid Build Coastguard Worker __vec[3], __vec[2], __vec[1], __vec[0] };
591*bed243d3SAndroid Build Coastguard Worker }
592*bed243d3SAndroid Build Coastguard Worker
593*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_reve(__vector __bool char __vec)594*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector __bool char __vec) {
595*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
596*bed243d3SAndroid Build Coastguard Worker __vec[11], __vec[10], __vec[9], __vec[8],
597*bed243d3SAndroid Build Coastguard Worker __vec[7], __vec[6], __vec[5], __vec[4],
598*bed243d3SAndroid Build Coastguard Worker __vec[3], __vec[2], __vec[1], __vec[0] };
599*bed243d3SAndroid Build Coastguard Worker }
600*bed243d3SAndroid Build Coastguard Worker
601*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_reve(__vector signed short __vec)602*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector signed short __vec) {
603*bed243d3SAndroid Build Coastguard Worker return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
604*bed243d3SAndroid Build Coastguard Worker __vec[3], __vec[2], __vec[1], __vec[0] };
605*bed243d3SAndroid Build Coastguard Worker }
606*bed243d3SAndroid Build Coastguard Worker
607*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_reve(__vector unsigned short __vec)608*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector unsigned short __vec) {
609*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
610*bed243d3SAndroid Build Coastguard Worker __vec[3], __vec[2], __vec[1], __vec[0] };
611*bed243d3SAndroid Build Coastguard Worker }
612*bed243d3SAndroid Build Coastguard Worker
613*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_reve(__vector __bool short __vec)614*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector __bool short __vec) {
615*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
616*bed243d3SAndroid Build Coastguard Worker __vec[3], __vec[2], __vec[1], __vec[0] };
617*bed243d3SAndroid Build Coastguard Worker }
618*bed243d3SAndroid Build Coastguard Worker
619*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_reve(__vector signed int __vec)620*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector signed int __vec) {
621*bed243d3SAndroid Build Coastguard Worker return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
622*bed243d3SAndroid Build Coastguard Worker }
623*bed243d3SAndroid Build Coastguard Worker
624*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_reve(__vector unsigned int __vec)625*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector unsigned int __vec) {
626*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
627*bed243d3SAndroid Build Coastguard Worker }
628*bed243d3SAndroid Build Coastguard Worker
629*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_reve(__vector __bool int __vec)630*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector __bool int __vec) {
631*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
632*bed243d3SAndroid Build Coastguard Worker }
633*bed243d3SAndroid Build Coastguard Worker
634*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_reve(__vector signed long long __vec)635*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector signed long long __vec) {
636*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long) { __vec[1], __vec[0] };
637*bed243d3SAndroid Build Coastguard Worker }
638*bed243d3SAndroid Build Coastguard Worker
639*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_reve(__vector unsigned long long __vec)640*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector unsigned long long __vec) {
641*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long) { __vec[1], __vec[0] };
642*bed243d3SAndroid Build Coastguard Worker }
643*bed243d3SAndroid Build Coastguard Worker
644*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_reve(__vector __bool long long __vec)645*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector __bool long long __vec) {
646*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long) { __vec[1], __vec[0] };
647*bed243d3SAndroid Build Coastguard Worker }
648*bed243d3SAndroid Build Coastguard Worker
649*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
650*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_reve(__vector float __vec)651*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector float __vec) {
652*bed243d3SAndroid Build Coastguard Worker return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
653*bed243d3SAndroid Build Coastguard Worker }
654*bed243d3SAndroid Build Coastguard Worker #endif
655*bed243d3SAndroid Build Coastguard Worker
656*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_reve(__vector double __vec)657*bed243d3SAndroid Build Coastguard Worker vec_reve(__vector double __vec) {
658*bed243d3SAndroid Build Coastguard Worker return (__vector double) { __vec[1], __vec[0] };
659*bed243d3SAndroid Build Coastguard Worker }
660*bed243d3SAndroid Build Coastguard Worker
661*bed243d3SAndroid Build Coastguard Worker /*-- vec_sel ----------------------------------------------------------------*/
662*bed243d3SAndroid Build Coastguard Worker
663*bed243d3SAndroid 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)664*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector signed char __a, __vector signed char __b,
665*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
666*bed243d3SAndroid Build Coastguard Worker return (((__vector signed char)__c & __b) |
667*bed243d3SAndroid Build Coastguard Worker (~(__vector signed char)__c & __a));
668*bed243d3SAndroid Build Coastguard Worker }
669*bed243d3SAndroid Build Coastguard Worker
670*bed243d3SAndroid 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)671*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector signed char __a, __vector signed char __b,
672*bed243d3SAndroid Build Coastguard Worker __vector __bool char __c) {
673*bed243d3SAndroid Build Coastguard Worker return (((__vector signed char)__c & __b) |
674*bed243d3SAndroid Build Coastguard Worker (~(__vector signed char)__c & __a));
675*bed243d3SAndroid Build Coastguard Worker }
676*bed243d3SAndroid Build Coastguard Worker
677*bed243d3SAndroid 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)678*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector __bool char __a, __vector __bool char __b,
679*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
680*bed243d3SAndroid Build Coastguard Worker return (((__vector __bool char)__c & __b) |
681*bed243d3SAndroid Build Coastguard Worker (~(__vector __bool char)__c & __a));
682*bed243d3SAndroid Build Coastguard Worker }
683*bed243d3SAndroid Build Coastguard Worker
684*bed243d3SAndroid 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)685*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector __bool char __a, __vector __bool char __b,
686*bed243d3SAndroid Build Coastguard Worker __vector __bool char __c) {
687*bed243d3SAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
688*bed243d3SAndroid Build Coastguard Worker }
689*bed243d3SAndroid Build Coastguard Worker
690*bed243d3SAndroid 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)691*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector unsigned char __a, __vector unsigned char __b,
692*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
693*bed243d3SAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
694*bed243d3SAndroid Build Coastguard Worker }
695*bed243d3SAndroid Build Coastguard Worker
696*bed243d3SAndroid 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)697*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector unsigned char __a, __vector unsigned char __b,
698*bed243d3SAndroid Build Coastguard Worker __vector __bool char __c) {
699*bed243d3SAndroid Build Coastguard Worker return (((__vector unsigned char)__c & __b) |
700*bed243d3SAndroid Build Coastguard Worker (~(__vector unsigned char)__c & __a));
701*bed243d3SAndroid Build Coastguard Worker }
702*bed243d3SAndroid Build Coastguard Worker
703*bed243d3SAndroid 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)704*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector signed short __a, __vector signed short __b,
705*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
706*bed243d3SAndroid Build Coastguard Worker return (((__vector signed short)__c & __b) |
707*bed243d3SAndroid Build Coastguard Worker (~(__vector signed short)__c & __a));
708*bed243d3SAndroid Build Coastguard Worker }
709*bed243d3SAndroid Build Coastguard Worker
710*bed243d3SAndroid 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)711*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector signed short __a, __vector signed short __b,
712*bed243d3SAndroid Build Coastguard Worker __vector __bool short __c) {
713*bed243d3SAndroid Build Coastguard Worker return (((__vector signed short)__c & __b) |
714*bed243d3SAndroid Build Coastguard Worker (~(__vector signed short)__c & __a));
715*bed243d3SAndroid Build Coastguard Worker }
716*bed243d3SAndroid Build Coastguard Worker
717*bed243d3SAndroid 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)718*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector __bool short __a, __vector __bool short __b,
719*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
720*bed243d3SAndroid Build Coastguard Worker return (((__vector __bool short)__c & __b) |
721*bed243d3SAndroid Build Coastguard Worker (~(__vector __bool short)__c & __a));
722*bed243d3SAndroid Build Coastguard Worker }
723*bed243d3SAndroid Build Coastguard Worker
724*bed243d3SAndroid 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)725*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector __bool short __a, __vector __bool short __b,
726*bed243d3SAndroid Build Coastguard Worker __vector __bool short __c) {
727*bed243d3SAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
728*bed243d3SAndroid Build Coastguard Worker }
729*bed243d3SAndroid Build Coastguard Worker
730*bed243d3SAndroid 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)731*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector unsigned short __a, __vector unsigned short __b,
732*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
733*bed243d3SAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
734*bed243d3SAndroid Build Coastguard Worker }
735*bed243d3SAndroid Build Coastguard Worker
736*bed243d3SAndroid 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)737*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector unsigned short __a, __vector unsigned short __b,
738*bed243d3SAndroid Build Coastguard Worker __vector __bool short __c) {
739*bed243d3SAndroid Build Coastguard Worker return (((__vector unsigned short)__c & __b) |
740*bed243d3SAndroid Build Coastguard Worker (~(__vector unsigned short)__c & __a));
741*bed243d3SAndroid Build Coastguard Worker }
742*bed243d3SAndroid Build Coastguard Worker
743*bed243d3SAndroid 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)744*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector signed int __a, __vector signed int __b,
745*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
746*bed243d3SAndroid Build Coastguard Worker return (((__vector signed int)__c & __b) |
747*bed243d3SAndroid Build Coastguard Worker (~(__vector signed int)__c & __a));
748*bed243d3SAndroid Build Coastguard Worker }
749*bed243d3SAndroid Build Coastguard Worker
750*bed243d3SAndroid 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)751*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector signed int __a, __vector signed int __b,
752*bed243d3SAndroid Build Coastguard Worker __vector __bool int __c) {
753*bed243d3SAndroid Build Coastguard Worker return (((__vector signed int)__c & __b) |
754*bed243d3SAndroid Build Coastguard Worker (~(__vector signed int)__c & __a));
755*bed243d3SAndroid Build Coastguard Worker }
756*bed243d3SAndroid Build Coastguard Worker
757*bed243d3SAndroid 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)758*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector __bool int __a, __vector __bool int __b,
759*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
760*bed243d3SAndroid Build Coastguard Worker return (((__vector __bool int)__c & __b) |
761*bed243d3SAndroid Build Coastguard Worker (~(__vector __bool int)__c & __a));
762*bed243d3SAndroid Build Coastguard Worker }
763*bed243d3SAndroid Build Coastguard Worker
764*bed243d3SAndroid 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)765*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector __bool int __a, __vector __bool int __b,
766*bed243d3SAndroid Build Coastguard Worker __vector __bool int __c) {
767*bed243d3SAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
768*bed243d3SAndroid Build Coastguard Worker }
769*bed243d3SAndroid Build Coastguard Worker
770*bed243d3SAndroid 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)771*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector unsigned int __a, __vector unsigned int __b,
772*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
773*bed243d3SAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
774*bed243d3SAndroid Build Coastguard Worker }
775*bed243d3SAndroid Build Coastguard Worker
776*bed243d3SAndroid 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)777*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector unsigned int __a, __vector unsigned int __b,
778*bed243d3SAndroid Build Coastguard Worker __vector __bool int __c) {
779*bed243d3SAndroid Build Coastguard Worker return (((__vector unsigned int)__c & __b) |
780*bed243d3SAndroid Build Coastguard Worker (~(__vector unsigned int)__c & __a));
781*bed243d3SAndroid Build Coastguard Worker }
782*bed243d3SAndroid Build Coastguard Worker
783*bed243d3SAndroid 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)784*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector signed long long __a, __vector signed long long __b,
785*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __c) {
786*bed243d3SAndroid Build Coastguard Worker return (((__vector signed long long)__c & __b) |
787*bed243d3SAndroid Build Coastguard Worker (~(__vector signed long long)__c & __a));
788*bed243d3SAndroid Build Coastguard Worker }
789*bed243d3SAndroid Build Coastguard Worker
790*bed243d3SAndroid 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)791*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector signed long long __a, __vector signed long long __b,
792*bed243d3SAndroid Build Coastguard Worker __vector __bool long long __c) {
793*bed243d3SAndroid Build Coastguard Worker return (((__vector signed long long)__c & __b) |
794*bed243d3SAndroid Build Coastguard Worker (~(__vector signed long long)__c & __a));
795*bed243d3SAndroid Build Coastguard Worker }
796*bed243d3SAndroid Build Coastguard Worker
797*bed243d3SAndroid 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)798*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector __bool long long __a, __vector __bool long long __b,
799*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __c) {
800*bed243d3SAndroid Build Coastguard Worker return (((__vector __bool long long)__c & __b) |
801*bed243d3SAndroid Build Coastguard Worker (~(__vector __bool long long)__c & __a));
802*bed243d3SAndroid Build Coastguard Worker }
803*bed243d3SAndroid Build Coastguard Worker
804*bed243d3SAndroid 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)805*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector __bool long long __a, __vector __bool long long __b,
806*bed243d3SAndroid Build Coastguard Worker __vector __bool long long __c) {
807*bed243d3SAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
808*bed243d3SAndroid Build Coastguard Worker }
809*bed243d3SAndroid Build Coastguard Worker
810*bed243d3SAndroid 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)811*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
812*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __c) {
813*bed243d3SAndroid Build Coastguard Worker return (__c & __b) | (~__c & __a);
814*bed243d3SAndroid Build Coastguard Worker }
815*bed243d3SAndroid Build Coastguard Worker
816*bed243d3SAndroid 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)817*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
818*bed243d3SAndroid Build Coastguard Worker __vector __bool long long __c) {
819*bed243d3SAndroid Build Coastguard Worker return (((__vector unsigned long long)__c & __b) |
820*bed243d3SAndroid Build Coastguard Worker (~(__vector unsigned long long)__c & __a));
821*bed243d3SAndroid Build Coastguard Worker }
822*bed243d3SAndroid Build Coastguard Worker
823*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
824*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a,__vector float __b,__vector unsigned int __c)825*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {
826*bed243d3SAndroid Build Coastguard Worker return (__vector float)((__c & (__vector unsigned int)__b) |
827*bed243d3SAndroid Build Coastguard Worker (~__c & (__vector unsigned int)__a));
828*bed243d3SAndroid Build Coastguard Worker }
829*bed243d3SAndroid Build Coastguard Worker
830*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a,__vector float __b,__vector __bool int __c)831*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) {
832*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __ac = (__vector unsigned int)__a;
833*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __bc = (__vector unsigned int)__b;
834*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __cc = (__vector unsigned int)__c;
835*bed243d3SAndroid Build Coastguard Worker return (__vector float)((__cc & __bc) | (~__cc & __ac));
836*bed243d3SAndroid Build Coastguard Worker }
837*bed243d3SAndroid Build Coastguard Worker #endif
838*bed243d3SAndroid Build Coastguard Worker
839*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a,__vector double __b,__vector unsigned long long __c)840*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector double __a, __vector double __b,
841*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __c) {
842*bed243d3SAndroid Build Coastguard Worker return (__vector double)((__c & (__vector unsigned long long)__b) |
843*bed243d3SAndroid Build Coastguard Worker (~__c & (__vector unsigned long long)__a));
844*bed243d3SAndroid Build Coastguard Worker }
845*bed243d3SAndroid Build Coastguard Worker
846*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a,__vector double __b,__vector __bool long long __c)847*bed243d3SAndroid Build Coastguard Worker vec_sel(__vector double __a, __vector double __b,
848*bed243d3SAndroid Build Coastguard Worker __vector __bool long long __c) {
849*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __ac = (__vector unsigned long long)__a;
850*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __bc = (__vector unsigned long long)__b;
851*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __cc = (__vector unsigned long long)__c;
852*bed243d3SAndroid Build Coastguard Worker return (__vector double)((__cc & __bc) | (~__cc & __ac));
853*bed243d3SAndroid Build Coastguard Worker }
854*bed243d3SAndroid Build Coastguard Worker
855*bed243d3SAndroid Build Coastguard Worker /*-- vec_gather_element -----------------------------------------------------*/
856*bed243d3SAndroid Build Coastguard Worker
857*bed243d3SAndroid 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)858*bed243d3SAndroid Build Coastguard Worker vec_gather_element(__vector signed int __vec,
859*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __offset,
860*bed243d3SAndroid Build Coastguard Worker const signed int *__ptr, int __index)
861*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
862*bed243d3SAndroid Build Coastguard Worker __vec[__index] = *(const signed int *)(
863*bed243d3SAndroid Build Coastguard Worker (const char *)__ptr + __offset[__index]);
864*bed243d3SAndroid Build Coastguard Worker return __vec;
865*bed243d3SAndroid Build Coastguard Worker }
866*bed243d3SAndroid Build Coastguard Worker
867*bed243d3SAndroid 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)868*bed243d3SAndroid Build Coastguard Worker vec_gather_element(__vector __bool int __vec,
869*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __offset,
870*bed243d3SAndroid Build Coastguard Worker const unsigned int *__ptr, int __index)
871*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
872*bed243d3SAndroid Build Coastguard Worker __vec[__index] = *(const unsigned int *)(
873*bed243d3SAndroid Build Coastguard Worker (const char *)__ptr + __offset[__index]);
874*bed243d3SAndroid Build Coastguard Worker return __vec;
875*bed243d3SAndroid Build Coastguard Worker }
876*bed243d3SAndroid Build Coastguard Worker
877*bed243d3SAndroid 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)878*bed243d3SAndroid Build Coastguard Worker vec_gather_element(__vector unsigned int __vec,
879*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __offset,
880*bed243d3SAndroid Build Coastguard Worker const unsigned int *__ptr, int __index)
881*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
882*bed243d3SAndroid Build Coastguard Worker __vec[__index] = *(const unsigned int *)(
883*bed243d3SAndroid Build Coastguard Worker (const char *)__ptr + __offset[__index]);
884*bed243d3SAndroid Build Coastguard Worker return __vec;
885*bed243d3SAndroid Build Coastguard Worker }
886*bed243d3SAndroid Build Coastguard Worker
887*bed243d3SAndroid 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)888*bed243d3SAndroid Build Coastguard Worker vec_gather_element(__vector signed long long __vec,
889*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __offset,
890*bed243d3SAndroid Build Coastguard Worker const signed long long *__ptr, int __index)
891*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
892*bed243d3SAndroid Build Coastguard Worker __vec[__index] = *(const signed long long *)(
893*bed243d3SAndroid Build Coastguard Worker (const char *)__ptr + __offset[__index]);
894*bed243d3SAndroid Build Coastguard Worker return __vec;
895*bed243d3SAndroid Build Coastguard Worker }
896*bed243d3SAndroid Build Coastguard Worker
897*bed243d3SAndroid 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)898*bed243d3SAndroid Build Coastguard Worker vec_gather_element(__vector __bool long long __vec,
899*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __offset,
900*bed243d3SAndroid Build Coastguard Worker const unsigned long long *__ptr, int __index)
901*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
902*bed243d3SAndroid Build Coastguard Worker __vec[__index] = *(const unsigned long long *)(
903*bed243d3SAndroid Build Coastguard Worker (const char *)__ptr + __offset[__index]);
904*bed243d3SAndroid Build Coastguard Worker return __vec;
905*bed243d3SAndroid Build Coastguard Worker }
906*bed243d3SAndroid Build Coastguard Worker
907*bed243d3SAndroid 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)908*bed243d3SAndroid Build Coastguard Worker vec_gather_element(__vector unsigned long long __vec,
909*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __offset,
910*bed243d3SAndroid Build Coastguard Worker const unsigned long long *__ptr, int __index)
911*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
912*bed243d3SAndroid Build Coastguard Worker __vec[__index] = *(const unsigned long long *)(
913*bed243d3SAndroid Build Coastguard Worker (const char *)__ptr + __offset[__index]);
914*bed243d3SAndroid Build Coastguard Worker return __vec;
915*bed243d3SAndroid Build Coastguard Worker }
916*bed243d3SAndroid Build Coastguard Worker
917*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
918*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_gather_element(__vector float __vec,__vector unsigned int __offset,const float * __ptr,int __index)919*bed243d3SAndroid Build Coastguard Worker vec_gather_element(__vector float __vec,
920*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __offset,
921*bed243d3SAndroid Build Coastguard Worker const float *__ptr, int __index)
922*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
923*bed243d3SAndroid Build Coastguard Worker __vec[__index] = *(const float *)(
924*bed243d3SAndroid Build Coastguard Worker (const char *)__ptr + __offset[__index]);
925*bed243d3SAndroid Build Coastguard Worker return __vec;
926*bed243d3SAndroid Build Coastguard Worker }
927*bed243d3SAndroid Build Coastguard Worker #endif
928*bed243d3SAndroid Build Coastguard Worker
929*bed243d3SAndroid 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)930*bed243d3SAndroid Build Coastguard Worker vec_gather_element(__vector double __vec,
931*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __offset,
932*bed243d3SAndroid Build Coastguard Worker const double *__ptr, int __index)
933*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
934*bed243d3SAndroid Build Coastguard Worker __vec[__index] = *(const double *)(
935*bed243d3SAndroid Build Coastguard Worker (const char *)__ptr + __offset[__index]);
936*bed243d3SAndroid Build Coastguard Worker return __vec;
937*bed243d3SAndroid Build Coastguard Worker }
938*bed243d3SAndroid Build Coastguard Worker
939*bed243d3SAndroid Build Coastguard Worker /*-- vec_scatter_element ----------------------------------------------------*/
940*bed243d3SAndroid Build Coastguard Worker
941*bed243d3SAndroid 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)942*bed243d3SAndroid Build Coastguard Worker vec_scatter_element(__vector signed int __vec,
943*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __offset,
944*bed243d3SAndroid Build Coastguard Worker signed int *__ptr, int __index)
945*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
946*bed243d3SAndroid Build Coastguard Worker *(signed int *)((char *)__ptr + __offset[__index]) =
947*bed243d3SAndroid Build Coastguard Worker __vec[__index];
948*bed243d3SAndroid Build Coastguard Worker }
949*bed243d3SAndroid Build Coastguard Worker
950*bed243d3SAndroid 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)951*bed243d3SAndroid Build Coastguard Worker vec_scatter_element(__vector __bool int __vec,
952*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __offset,
953*bed243d3SAndroid Build Coastguard Worker unsigned int *__ptr, int __index)
954*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
955*bed243d3SAndroid Build Coastguard Worker *(unsigned int *)((char *)__ptr + __offset[__index]) =
956*bed243d3SAndroid Build Coastguard Worker __vec[__index];
957*bed243d3SAndroid Build Coastguard Worker }
958*bed243d3SAndroid Build Coastguard Worker
959*bed243d3SAndroid 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)960*bed243d3SAndroid Build Coastguard Worker vec_scatter_element(__vector unsigned int __vec,
961*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __offset,
962*bed243d3SAndroid Build Coastguard Worker unsigned int *__ptr, int __index)
963*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
964*bed243d3SAndroid Build Coastguard Worker *(unsigned int *)((char *)__ptr + __offset[__index]) =
965*bed243d3SAndroid Build Coastguard Worker __vec[__index];
966*bed243d3SAndroid Build Coastguard Worker }
967*bed243d3SAndroid Build Coastguard Worker
968*bed243d3SAndroid 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)969*bed243d3SAndroid Build Coastguard Worker vec_scatter_element(__vector signed long long __vec,
970*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __offset,
971*bed243d3SAndroid Build Coastguard Worker signed long long *__ptr, int __index)
972*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
973*bed243d3SAndroid Build Coastguard Worker *(signed long long *)((char *)__ptr + __offset[__index]) =
974*bed243d3SAndroid Build Coastguard Worker __vec[__index];
975*bed243d3SAndroid Build Coastguard Worker }
976*bed243d3SAndroid Build Coastguard Worker
977*bed243d3SAndroid 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)978*bed243d3SAndroid Build Coastguard Worker vec_scatter_element(__vector __bool long long __vec,
979*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __offset,
980*bed243d3SAndroid Build Coastguard Worker unsigned long long *__ptr, int __index)
981*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
982*bed243d3SAndroid Build Coastguard Worker *(unsigned long long *)((char *)__ptr + __offset[__index]) =
983*bed243d3SAndroid Build Coastguard Worker __vec[__index];
984*bed243d3SAndroid Build Coastguard Worker }
985*bed243d3SAndroid Build Coastguard Worker
986*bed243d3SAndroid 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)987*bed243d3SAndroid Build Coastguard Worker vec_scatter_element(__vector unsigned long long __vec,
988*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __offset,
989*bed243d3SAndroid Build Coastguard Worker unsigned long long *__ptr, int __index)
990*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
991*bed243d3SAndroid Build Coastguard Worker *(unsigned long long *)((char *)__ptr + __offset[__index]) =
992*bed243d3SAndroid Build Coastguard Worker __vec[__index];
993*bed243d3SAndroid Build Coastguard Worker }
994*bed243d3SAndroid Build Coastguard Worker
995*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
996*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_scatter_element(__vector float __vec,__vector unsigned int __offset,float * __ptr,int __index)997*bed243d3SAndroid Build Coastguard Worker vec_scatter_element(__vector float __vec,
998*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __offset,
999*bed243d3SAndroid Build Coastguard Worker float *__ptr, int __index)
1000*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
1001*bed243d3SAndroid Build Coastguard Worker *(float *)((char *)__ptr + __offset[__index]) =
1002*bed243d3SAndroid Build Coastguard Worker __vec[__index];
1003*bed243d3SAndroid Build Coastguard Worker }
1004*bed243d3SAndroid Build Coastguard Worker #endif
1005*bed243d3SAndroid Build Coastguard Worker
1006*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_scatter_element(__vector double __vec,__vector unsigned long long __offset,double * __ptr,int __index)1007*bed243d3SAndroid Build Coastguard Worker vec_scatter_element(__vector double __vec,
1008*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __offset,
1009*bed243d3SAndroid Build Coastguard Worker double *__ptr, int __index)
1010*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
1011*bed243d3SAndroid Build Coastguard Worker *(double *)((char *)__ptr + __offset[__index]) =
1012*bed243d3SAndroid Build Coastguard Worker __vec[__index];
1013*bed243d3SAndroid Build Coastguard Worker }
1014*bed243d3SAndroid Build Coastguard Worker
1015*bed243d3SAndroid Build Coastguard Worker /*-- vec_xl -----------------------------------------------------------------*/
1016*bed243d3SAndroid Build Coastguard Worker
1017*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_xl(long __offset,const signed char * __ptr)1018*bed243d3SAndroid Build Coastguard Worker vec_xl(long __offset, const signed char *__ptr) {
1019*bed243d3SAndroid Build Coastguard Worker __vector signed char V;
1020*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1021*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed char));
1022*bed243d3SAndroid Build Coastguard Worker return V;
1023*bed243d3SAndroid Build Coastguard Worker }
1024*bed243d3SAndroid Build Coastguard Worker
1025*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_xl(long __offset,const unsigned char * __ptr)1026*bed243d3SAndroid Build Coastguard Worker vec_xl(long __offset, const unsigned char *__ptr) {
1027*bed243d3SAndroid Build Coastguard Worker __vector unsigned char V;
1028*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1029*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned char));
1030*bed243d3SAndroid Build Coastguard Worker return V;
1031*bed243d3SAndroid Build Coastguard Worker }
1032*bed243d3SAndroid Build Coastguard Worker
1033*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_xl(long __offset,const signed short * __ptr)1034*bed243d3SAndroid Build Coastguard Worker vec_xl(long __offset, const signed short *__ptr) {
1035*bed243d3SAndroid Build Coastguard Worker __vector signed short V;
1036*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1037*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed short));
1038*bed243d3SAndroid Build Coastguard Worker return V;
1039*bed243d3SAndroid Build Coastguard Worker }
1040*bed243d3SAndroid Build Coastguard Worker
1041*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_xl(long __offset,const unsigned short * __ptr)1042*bed243d3SAndroid Build Coastguard Worker vec_xl(long __offset, const unsigned short *__ptr) {
1043*bed243d3SAndroid Build Coastguard Worker __vector unsigned short V;
1044*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1045*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned short));
1046*bed243d3SAndroid Build Coastguard Worker return V;
1047*bed243d3SAndroid Build Coastguard Worker }
1048*bed243d3SAndroid Build Coastguard Worker
1049*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_xl(long __offset,const signed int * __ptr)1050*bed243d3SAndroid Build Coastguard Worker vec_xl(long __offset, const signed int *__ptr) {
1051*bed243d3SAndroid Build Coastguard Worker __vector signed int V;
1052*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1053*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed int));
1054*bed243d3SAndroid Build Coastguard Worker return V;
1055*bed243d3SAndroid Build Coastguard Worker }
1056*bed243d3SAndroid Build Coastguard Worker
1057*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_xl(long __offset,const unsigned int * __ptr)1058*bed243d3SAndroid Build Coastguard Worker vec_xl(long __offset, const unsigned int *__ptr) {
1059*bed243d3SAndroid Build Coastguard Worker __vector unsigned int V;
1060*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1061*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned int));
1062*bed243d3SAndroid Build Coastguard Worker return V;
1063*bed243d3SAndroid Build Coastguard Worker }
1064*bed243d3SAndroid Build Coastguard Worker
1065*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_xl(long __offset,const signed long long * __ptr)1066*bed243d3SAndroid Build Coastguard Worker vec_xl(long __offset, const signed long long *__ptr) {
1067*bed243d3SAndroid Build Coastguard Worker __vector signed long long V;
1068*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1069*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed long long));
1070*bed243d3SAndroid Build Coastguard Worker return V;
1071*bed243d3SAndroid Build Coastguard Worker }
1072*bed243d3SAndroid Build Coastguard Worker
1073*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_xl(long __offset,const unsigned long long * __ptr)1074*bed243d3SAndroid Build Coastguard Worker vec_xl(long __offset, const unsigned long long *__ptr) {
1075*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long V;
1076*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1077*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned long long));
1078*bed243d3SAndroid Build Coastguard Worker return V;
1079*bed243d3SAndroid Build Coastguard Worker }
1080*bed243d3SAndroid Build Coastguard Worker
1081*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
1082*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_xl(long __offset,const float * __ptr)1083*bed243d3SAndroid Build Coastguard Worker vec_xl(long __offset, const float *__ptr) {
1084*bed243d3SAndroid Build Coastguard Worker __vector float V;
1085*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1086*bed243d3SAndroid Build Coastguard Worker sizeof(__vector float));
1087*bed243d3SAndroid Build Coastguard Worker return V;
1088*bed243d3SAndroid Build Coastguard Worker }
1089*bed243d3SAndroid Build Coastguard Worker #endif
1090*bed243d3SAndroid Build Coastguard Worker
1091*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_xl(long __offset,const double * __ptr)1092*bed243d3SAndroid Build Coastguard Worker vec_xl(long __offset, const double *__ptr) {
1093*bed243d3SAndroid Build Coastguard Worker __vector double V;
1094*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1095*bed243d3SAndroid Build Coastguard Worker sizeof(__vector double));
1096*bed243d3SAndroid Build Coastguard Worker return V;
1097*bed243d3SAndroid Build Coastguard Worker }
1098*bed243d3SAndroid Build Coastguard Worker
1099*bed243d3SAndroid Build Coastguard Worker /*-- vec_xld2 ---------------------------------------------------------------*/
1100*bed243d3SAndroid Build Coastguard Worker
1101*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1102*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_xld2(long __offset,const signed char * __ptr)1103*bed243d3SAndroid Build Coastguard Worker vec_xld2(long __offset, const signed char *__ptr) {
1104*bed243d3SAndroid Build Coastguard Worker __vector signed char V;
1105*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1106*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed char));
1107*bed243d3SAndroid Build Coastguard Worker return V;
1108*bed243d3SAndroid Build Coastguard Worker }
1109*bed243d3SAndroid Build Coastguard Worker
1110*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1111*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_xld2(long __offset,const unsigned char * __ptr)1112*bed243d3SAndroid Build Coastguard Worker vec_xld2(long __offset, const unsigned char *__ptr) {
1113*bed243d3SAndroid Build Coastguard Worker __vector unsigned char V;
1114*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1115*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned char));
1116*bed243d3SAndroid Build Coastguard Worker return V;
1117*bed243d3SAndroid Build Coastguard Worker }
1118*bed243d3SAndroid Build Coastguard Worker
1119*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1120*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_xld2(long __offset,const signed short * __ptr)1121*bed243d3SAndroid Build Coastguard Worker vec_xld2(long __offset, const signed short *__ptr) {
1122*bed243d3SAndroid Build Coastguard Worker __vector signed short V;
1123*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1124*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed short));
1125*bed243d3SAndroid Build Coastguard Worker return V;
1126*bed243d3SAndroid Build Coastguard Worker }
1127*bed243d3SAndroid Build Coastguard Worker
1128*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1129*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_xld2(long __offset,const unsigned short * __ptr)1130*bed243d3SAndroid Build Coastguard Worker vec_xld2(long __offset, const unsigned short *__ptr) {
1131*bed243d3SAndroid Build Coastguard Worker __vector unsigned short V;
1132*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1133*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned short));
1134*bed243d3SAndroid Build Coastguard Worker return V;
1135*bed243d3SAndroid Build Coastguard Worker }
1136*bed243d3SAndroid Build Coastguard Worker
1137*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1138*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_xld2(long __offset,const signed int * __ptr)1139*bed243d3SAndroid Build Coastguard Worker vec_xld2(long __offset, const signed int *__ptr) {
1140*bed243d3SAndroid Build Coastguard Worker __vector signed int V;
1141*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1142*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed int));
1143*bed243d3SAndroid Build Coastguard Worker return V;
1144*bed243d3SAndroid Build Coastguard Worker }
1145*bed243d3SAndroid Build Coastguard Worker
1146*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1147*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_xld2(long __offset,const unsigned int * __ptr)1148*bed243d3SAndroid Build Coastguard Worker vec_xld2(long __offset, const unsigned int *__ptr) {
1149*bed243d3SAndroid Build Coastguard Worker __vector unsigned int V;
1150*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1151*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned int));
1152*bed243d3SAndroid Build Coastguard Worker return V;
1153*bed243d3SAndroid Build Coastguard Worker }
1154*bed243d3SAndroid Build Coastguard Worker
1155*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1156*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_xld2(long __offset,const signed long long * __ptr)1157*bed243d3SAndroid Build Coastguard Worker vec_xld2(long __offset, const signed long long *__ptr) {
1158*bed243d3SAndroid Build Coastguard Worker __vector signed long long V;
1159*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1160*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed long long));
1161*bed243d3SAndroid Build Coastguard Worker return V;
1162*bed243d3SAndroid Build Coastguard Worker }
1163*bed243d3SAndroid Build Coastguard Worker
1164*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1165*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_xld2(long __offset,const unsigned long long * __ptr)1166*bed243d3SAndroid Build Coastguard Worker vec_xld2(long __offset, const unsigned long long *__ptr) {
1167*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long V;
1168*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1169*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned long long));
1170*bed243d3SAndroid Build Coastguard Worker return V;
1171*bed243d3SAndroid Build Coastguard Worker }
1172*bed243d3SAndroid Build Coastguard Worker
1173*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1174*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_xld2(long __offset,const double * __ptr)1175*bed243d3SAndroid Build Coastguard Worker vec_xld2(long __offset, const double *__ptr) {
1176*bed243d3SAndroid Build Coastguard Worker __vector double V;
1177*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1178*bed243d3SAndroid Build Coastguard Worker sizeof(__vector double));
1179*bed243d3SAndroid Build Coastguard Worker return V;
1180*bed243d3SAndroid Build Coastguard Worker }
1181*bed243d3SAndroid Build Coastguard Worker
1182*bed243d3SAndroid Build Coastguard Worker /*-- vec_xlw4 ---------------------------------------------------------------*/
1183*bed243d3SAndroid Build Coastguard Worker
1184*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1185*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_xlw4(long __offset,const signed char * __ptr)1186*bed243d3SAndroid Build Coastguard Worker vec_xlw4(long __offset, const signed char *__ptr) {
1187*bed243d3SAndroid Build Coastguard Worker __vector signed char V;
1188*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1189*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed char));
1190*bed243d3SAndroid Build Coastguard Worker return V;
1191*bed243d3SAndroid Build Coastguard Worker }
1192*bed243d3SAndroid Build Coastguard Worker
1193*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1194*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_xlw4(long __offset,const unsigned char * __ptr)1195*bed243d3SAndroid Build Coastguard Worker vec_xlw4(long __offset, const unsigned char *__ptr) {
1196*bed243d3SAndroid Build Coastguard Worker __vector unsigned char V;
1197*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1198*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned char));
1199*bed243d3SAndroid Build Coastguard Worker return V;
1200*bed243d3SAndroid Build Coastguard Worker }
1201*bed243d3SAndroid Build Coastguard Worker
1202*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1203*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_xlw4(long __offset,const signed short * __ptr)1204*bed243d3SAndroid Build Coastguard Worker vec_xlw4(long __offset, const signed short *__ptr) {
1205*bed243d3SAndroid Build Coastguard Worker __vector signed short V;
1206*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1207*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed short));
1208*bed243d3SAndroid Build Coastguard Worker return V;
1209*bed243d3SAndroid Build Coastguard Worker }
1210*bed243d3SAndroid Build Coastguard Worker
1211*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1212*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_xlw4(long __offset,const unsigned short * __ptr)1213*bed243d3SAndroid Build Coastguard Worker vec_xlw4(long __offset, const unsigned short *__ptr) {
1214*bed243d3SAndroid Build Coastguard Worker __vector unsigned short V;
1215*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1216*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned short));
1217*bed243d3SAndroid Build Coastguard Worker return V;
1218*bed243d3SAndroid Build Coastguard Worker }
1219*bed243d3SAndroid Build Coastguard Worker
1220*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1221*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_xlw4(long __offset,const signed int * __ptr)1222*bed243d3SAndroid Build Coastguard Worker vec_xlw4(long __offset, const signed int *__ptr) {
1223*bed243d3SAndroid Build Coastguard Worker __vector signed int V;
1224*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1225*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed int));
1226*bed243d3SAndroid Build Coastguard Worker return V;
1227*bed243d3SAndroid Build Coastguard Worker }
1228*bed243d3SAndroid Build Coastguard Worker
1229*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1230*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_xlw4(long __offset,const unsigned int * __ptr)1231*bed243d3SAndroid Build Coastguard Worker vec_xlw4(long __offset, const unsigned int *__ptr) {
1232*bed243d3SAndroid Build Coastguard Worker __vector unsigned int V;
1233*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1234*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned int));
1235*bed243d3SAndroid Build Coastguard Worker return V;
1236*bed243d3SAndroid Build Coastguard Worker }
1237*bed243d3SAndroid Build Coastguard Worker
1238*bed243d3SAndroid Build Coastguard Worker /*-- vec_xst ----------------------------------------------------------------*/
1239*bed243d3SAndroid Build Coastguard Worker
1240*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xst(__vector signed char __vec,long __offset,signed char * __ptr)1241*bed243d3SAndroid Build Coastguard Worker vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {
1242*bed243d3SAndroid Build Coastguard Worker __vector signed char V = __vec;
1243*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1244*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed char));
1245*bed243d3SAndroid Build Coastguard Worker }
1246*bed243d3SAndroid Build Coastguard Worker
1247*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xst(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1248*bed243d3SAndroid Build Coastguard Worker vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1249*bed243d3SAndroid Build Coastguard Worker __vector unsigned char V = __vec;
1250*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1251*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned char));
1252*bed243d3SAndroid Build Coastguard Worker }
1253*bed243d3SAndroid Build Coastguard Worker
1254*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xst(__vector signed short __vec,long __offset,signed short * __ptr)1255*bed243d3SAndroid Build Coastguard Worker vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {
1256*bed243d3SAndroid Build Coastguard Worker __vector signed short V = __vec;
1257*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1258*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed short));
1259*bed243d3SAndroid Build Coastguard Worker }
1260*bed243d3SAndroid Build Coastguard Worker
1261*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xst(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1262*bed243d3SAndroid Build Coastguard Worker vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1263*bed243d3SAndroid Build Coastguard Worker __vector unsigned short V = __vec;
1264*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1265*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned short));
1266*bed243d3SAndroid Build Coastguard Worker }
1267*bed243d3SAndroid Build Coastguard Worker
1268*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xst(__vector signed int __vec,long __offset,signed int * __ptr)1269*bed243d3SAndroid Build Coastguard Worker vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {
1270*bed243d3SAndroid Build Coastguard Worker __vector signed int V = __vec;
1271*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1272*bed243d3SAndroid Build Coastguard Worker }
1273*bed243d3SAndroid Build Coastguard Worker
1274*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xst(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1275*bed243d3SAndroid Build Coastguard Worker vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1276*bed243d3SAndroid Build Coastguard Worker __vector unsigned int V = __vec;
1277*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1278*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned int));
1279*bed243d3SAndroid Build Coastguard Worker }
1280*bed243d3SAndroid Build Coastguard Worker
1281*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xst(__vector signed long long __vec,long __offset,signed long long * __ptr)1282*bed243d3SAndroid Build Coastguard Worker vec_xst(__vector signed long long __vec, long __offset,
1283*bed243d3SAndroid Build Coastguard Worker signed long long *__ptr) {
1284*bed243d3SAndroid Build Coastguard Worker __vector signed long long V = __vec;
1285*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1286*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed long long));
1287*bed243d3SAndroid Build Coastguard Worker }
1288*bed243d3SAndroid Build Coastguard Worker
1289*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xst(__vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1290*bed243d3SAndroid Build Coastguard Worker vec_xst(__vector unsigned long long __vec, long __offset,
1291*bed243d3SAndroid Build Coastguard Worker unsigned long long *__ptr) {
1292*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long V = __vec;
1293*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1294*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned long long));
1295*bed243d3SAndroid Build Coastguard Worker }
1296*bed243d3SAndroid Build Coastguard Worker
1297*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
1298*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xst(__vector float __vec,long __offset,float * __ptr)1299*bed243d3SAndroid Build Coastguard Worker vec_xst(__vector float __vec, long __offset, float *__ptr) {
1300*bed243d3SAndroid Build Coastguard Worker __vector float V = __vec;
1301*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector float));
1302*bed243d3SAndroid Build Coastguard Worker }
1303*bed243d3SAndroid Build Coastguard Worker #endif
1304*bed243d3SAndroid Build Coastguard Worker
1305*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xst(__vector double __vec,long __offset,double * __ptr)1306*bed243d3SAndroid Build Coastguard Worker vec_xst(__vector double __vec, long __offset, double *__ptr) {
1307*bed243d3SAndroid Build Coastguard Worker __vector double V = __vec;
1308*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1309*bed243d3SAndroid Build Coastguard Worker }
1310*bed243d3SAndroid Build Coastguard Worker
1311*bed243d3SAndroid Build Coastguard Worker /*-- vec_xstd2 --------------------------------------------------------------*/
1312*bed243d3SAndroid Build Coastguard Worker
1313*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1314*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(__vector signed char __vec,long __offset,signed char * __ptr)1315*bed243d3SAndroid Build Coastguard Worker vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {
1316*bed243d3SAndroid Build Coastguard Worker __vector signed char V = __vec;
1317*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1318*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed char));
1319*bed243d3SAndroid Build Coastguard Worker }
1320*bed243d3SAndroid Build Coastguard Worker
1321*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1322*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1323*bed243d3SAndroid Build Coastguard Worker vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1324*bed243d3SAndroid Build Coastguard Worker __vector unsigned char V = __vec;
1325*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1326*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned char));
1327*bed243d3SAndroid Build Coastguard Worker }
1328*bed243d3SAndroid Build Coastguard Worker
1329*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1330*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(__vector signed short __vec,long __offset,signed short * __ptr)1331*bed243d3SAndroid Build Coastguard Worker vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {
1332*bed243d3SAndroid Build Coastguard Worker __vector signed short V = __vec;
1333*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1334*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed short));
1335*bed243d3SAndroid Build Coastguard Worker }
1336*bed243d3SAndroid Build Coastguard Worker
1337*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1338*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1339*bed243d3SAndroid Build Coastguard Worker vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1340*bed243d3SAndroid Build Coastguard Worker __vector unsigned short V = __vec;
1341*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1342*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned short));
1343*bed243d3SAndroid Build Coastguard Worker }
1344*bed243d3SAndroid Build Coastguard Worker
1345*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1346*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(__vector signed int __vec,long __offset,signed int * __ptr)1347*bed243d3SAndroid Build Coastguard Worker vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {
1348*bed243d3SAndroid Build Coastguard Worker __vector signed int V = __vec;
1349*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1350*bed243d3SAndroid Build Coastguard Worker }
1351*bed243d3SAndroid Build Coastguard Worker
1352*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1353*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1354*bed243d3SAndroid Build Coastguard Worker vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1355*bed243d3SAndroid Build Coastguard Worker __vector unsigned int V = __vec;
1356*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1357*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned int));
1358*bed243d3SAndroid Build Coastguard Worker }
1359*bed243d3SAndroid Build Coastguard Worker
1360*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1361*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(__vector signed long long __vec,long __offset,signed long long * __ptr)1362*bed243d3SAndroid Build Coastguard Worker vec_xstd2(__vector signed long long __vec, long __offset,
1363*bed243d3SAndroid Build Coastguard Worker signed long long *__ptr) {
1364*bed243d3SAndroid Build Coastguard Worker __vector signed long long V = __vec;
1365*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1366*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed long long));
1367*bed243d3SAndroid Build Coastguard Worker }
1368*bed243d3SAndroid Build Coastguard Worker
1369*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1370*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1371*bed243d3SAndroid Build Coastguard Worker vec_xstd2(__vector unsigned long long __vec, long __offset,
1372*bed243d3SAndroid Build Coastguard Worker unsigned long long *__ptr) {
1373*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long V = __vec;
1374*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1375*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned long long));
1376*bed243d3SAndroid Build Coastguard Worker }
1377*bed243d3SAndroid Build Coastguard Worker
1378*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1379*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstd2(__vector double __vec,long __offset,double * __ptr)1380*bed243d3SAndroid Build Coastguard Worker vec_xstd2(__vector double __vec, long __offset, double *__ptr) {
1381*bed243d3SAndroid Build Coastguard Worker __vector double V = __vec;
1382*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1383*bed243d3SAndroid Build Coastguard Worker }
1384*bed243d3SAndroid Build Coastguard Worker
1385*bed243d3SAndroid Build Coastguard Worker /*-- vec_xstw4 --------------------------------------------------------------*/
1386*bed243d3SAndroid Build Coastguard Worker
1387*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1388*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstw4(__vector signed char __vec,long __offset,signed char * __ptr)1389*bed243d3SAndroid Build Coastguard Worker vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {
1390*bed243d3SAndroid Build Coastguard Worker __vector signed char V = __vec;
1391*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1392*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed char));
1393*bed243d3SAndroid Build Coastguard Worker }
1394*bed243d3SAndroid Build Coastguard Worker
1395*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1396*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1397*bed243d3SAndroid Build Coastguard Worker vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1398*bed243d3SAndroid Build Coastguard Worker __vector unsigned char V = __vec;
1399*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1400*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned char));
1401*bed243d3SAndroid Build Coastguard Worker }
1402*bed243d3SAndroid Build Coastguard Worker
1403*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1404*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstw4(__vector signed short __vec,long __offset,signed short * __ptr)1405*bed243d3SAndroid Build Coastguard Worker vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {
1406*bed243d3SAndroid Build Coastguard Worker __vector signed short V = __vec;
1407*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1408*bed243d3SAndroid Build Coastguard Worker sizeof(__vector signed short));
1409*bed243d3SAndroid Build Coastguard Worker }
1410*bed243d3SAndroid Build Coastguard Worker
1411*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1412*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1413*bed243d3SAndroid Build Coastguard Worker vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1414*bed243d3SAndroid Build Coastguard Worker __vector unsigned short V = __vec;
1415*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1416*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned short));
1417*bed243d3SAndroid Build Coastguard Worker }
1418*bed243d3SAndroid Build Coastguard Worker
1419*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1420*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstw4(__vector signed int __vec,long __offset,signed int * __ptr)1421*bed243d3SAndroid Build Coastguard Worker vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {
1422*bed243d3SAndroid Build Coastguard Worker __vector signed int V = __vec;
1423*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1424*bed243d3SAndroid Build Coastguard Worker }
1425*bed243d3SAndroid Build Coastguard Worker
1426*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
1427*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1428*bed243d3SAndroid Build Coastguard Worker vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1429*bed243d3SAndroid Build Coastguard Worker __vector unsigned int V = __vec;
1430*bed243d3SAndroid Build Coastguard Worker __builtin_memcpy(((char *)__ptr + __offset), &V,
1431*bed243d3SAndroid Build Coastguard Worker sizeof(__vector unsigned int));
1432*bed243d3SAndroid Build Coastguard Worker }
1433*bed243d3SAndroid Build Coastguard Worker
1434*bed243d3SAndroid Build Coastguard Worker /*-- vec_load_bndry ---------------------------------------------------------*/
1435*bed243d3SAndroid Build Coastguard Worker
1436*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed char
1437*bed243d3SAndroid Build Coastguard Worker vec_load_bndry(const signed char *__ptr, unsigned short __len)
1438*bed243d3SAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
1439*bed243d3SAndroid Build Coastguard Worker
1440*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned char
1441*bed243d3SAndroid Build Coastguard Worker vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1442*bed243d3SAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
1443*bed243d3SAndroid Build Coastguard Worker
1444*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed short
1445*bed243d3SAndroid Build Coastguard Worker vec_load_bndry(const signed short *__ptr, unsigned short __len)
1446*bed243d3SAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
1447*bed243d3SAndroid Build Coastguard Worker
1448*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned short
1449*bed243d3SAndroid Build Coastguard Worker vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1450*bed243d3SAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
1451*bed243d3SAndroid Build Coastguard Worker
1452*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed int
1453*bed243d3SAndroid Build Coastguard Worker vec_load_bndry(const signed int *__ptr, unsigned short __len)
1454*bed243d3SAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
1455*bed243d3SAndroid Build Coastguard Worker
1456*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned int
1457*bed243d3SAndroid Build Coastguard Worker vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1458*bed243d3SAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
1459*bed243d3SAndroid Build Coastguard Worker
1460*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed long long
1461*bed243d3SAndroid Build Coastguard Worker vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1462*bed243d3SAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
1463*bed243d3SAndroid Build Coastguard Worker
1464*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned long long
1465*bed243d3SAndroid Build Coastguard Worker vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1466*bed243d3SAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
1467*bed243d3SAndroid Build Coastguard Worker
1468*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
1469*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector float
1470*bed243d3SAndroid Build Coastguard Worker vec_load_bndry(const float *__ptr, unsigned short __len)
1471*bed243d3SAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
1472*bed243d3SAndroid Build Coastguard Worker #endif
1473*bed243d3SAndroid Build Coastguard Worker
1474*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector double
1475*bed243d3SAndroid Build Coastguard Worker vec_load_bndry(const double *__ptr, unsigned short __len)
1476*bed243d3SAndroid Build Coastguard Worker __constant_pow2_range(__len, 64, 4096);
1477*bed243d3SAndroid Build Coastguard Worker
1478*bed243d3SAndroid Build Coastguard Worker #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1479*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1480*bed243d3SAndroid Build Coastguard Worker (Y) == 128 ? 1 : \
1481*bed243d3SAndroid Build Coastguard Worker (Y) == 256 ? 2 : \
1482*bed243d3SAndroid Build Coastguard Worker (Y) == 512 ? 3 : \
1483*bed243d3SAndroid Build Coastguard Worker (Y) == 1024 ? 4 : \
1484*bed243d3SAndroid Build Coastguard Worker (Y) == 2048 ? 5 : \
1485*bed243d3SAndroid Build Coastguard Worker (Y) == 4096 ? 6 : -1)))
1486*bed243d3SAndroid Build Coastguard Worker
1487*bed243d3SAndroid Build Coastguard Worker /*-- vec_load_len -----------------------------------------------------------*/
1488*bed243d3SAndroid Build Coastguard Worker
1489*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_load_len(const signed char * __ptr,unsigned int __len)1490*bed243d3SAndroid Build Coastguard Worker vec_load_len(const signed char *__ptr, unsigned int __len) {
1491*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vll(__len, __ptr);
1492*bed243d3SAndroid Build Coastguard Worker }
1493*bed243d3SAndroid Build Coastguard Worker
1494*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_load_len(const unsigned char * __ptr,unsigned int __len)1495*bed243d3SAndroid Build Coastguard Worker vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1496*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
1497*bed243d3SAndroid Build Coastguard Worker }
1498*bed243d3SAndroid Build Coastguard Worker
1499*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_load_len(const signed short * __ptr,unsigned int __len)1500*bed243d3SAndroid Build Coastguard Worker vec_load_len(const signed short *__ptr, unsigned int __len) {
1501*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vll(__len, __ptr);
1502*bed243d3SAndroid Build Coastguard Worker }
1503*bed243d3SAndroid Build Coastguard Worker
1504*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_load_len(const unsigned short * __ptr,unsigned int __len)1505*bed243d3SAndroid Build Coastguard Worker vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1506*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
1507*bed243d3SAndroid Build Coastguard Worker }
1508*bed243d3SAndroid Build Coastguard Worker
1509*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_load_len(const signed int * __ptr,unsigned int __len)1510*bed243d3SAndroid Build Coastguard Worker vec_load_len(const signed int *__ptr, unsigned int __len) {
1511*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vll(__len, __ptr);
1512*bed243d3SAndroid Build Coastguard Worker }
1513*bed243d3SAndroid Build Coastguard Worker
1514*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_load_len(const unsigned int * __ptr,unsigned int __len)1515*bed243d3SAndroid Build Coastguard Worker vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1516*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
1517*bed243d3SAndroid Build Coastguard Worker }
1518*bed243d3SAndroid Build Coastguard Worker
1519*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_load_len(const signed long long * __ptr,unsigned int __len)1520*bed243d3SAndroid Build Coastguard Worker vec_load_len(const signed long long *__ptr, unsigned int __len) {
1521*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
1522*bed243d3SAndroid Build Coastguard Worker }
1523*bed243d3SAndroid Build Coastguard Worker
1524*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_load_len(const unsigned long long * __ptr,unsigned int __len)1525*bed243d3SAndroid Build Coastguard Worker vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1526*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1527*bed243d3SAndroid Build Coastguard Worker }
1528*bed243d3SAndroid Build Coastguard Worker
1529*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
1530*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_load_len(const float * __ptr,unsigned int __len)1531*bed243d3SAndroid Build Coastguard Worker vec_load_len(const float *__ptr, unsigned int __len) {
1532*bed243d3SAndroid Build Coastguard Worker return (__vector float)__builtin_s390_vll(__len, __ptr);
1533*bed243d3SAndroid Build Coastguard Worker }
1534*bed243d3SAndroid Build Coastguard Worker #endif
1535*bed243d3SAndroid Build Coastguard Worker
1536*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_load_len(const double * __ptr,unsigned int __len)1537*bed243d3SAndroid Build Coastguard Worker vec_load_len(const double *__ptr, unsigned int __len) {
1538*bed243d3SAndroid Build Coastguard Worker return (__vector double)__builtin_s390_vll(__len, __ptr);
1539*bed243d3SAndroid Build Coastguard Worker }
1540*bed243d3SAndroid Build Coastguard Worker
1541*bed243d3SAndroid Build Coastguard Worker /*-- vec_load_len_r ---------------------------------------------------------*/
1542*bed243d3SAndroid Build Coastguard Worker
1543*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
1544*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector unsigned char
vec_load_len_r(const unsigned char * __ptr,unsigned int __len)1545*bed243d3SAndroid Build Coastguard Worker vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1546*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)__builtin_s390_vlrlr(__len, __ptr);
1547*bed243d3SAndroid Build Coastguard Worker }
1548*bed243d3SAndroid Build Coastguard Worker #endif
1549*bed243d3SAndroid Build Coastguard Worker
1550*bed243d3SAndroid Build Coastguard Worker /*-- vec_store_len ----------------------------------------------------------*/
1551*bed243d3SAndroid Build Coastguard Worker
1552*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(__vector signed char __vec,signed char * __ptr,unsigned int __len)1553*bed243d3SAndroid Build Coastguard Worker vec_store_len(__vector signed char __vec, signed char *__ptr,
1554*bed243d3SAndroid Build Coastguard Worker unsigned int __len) {
1555*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1556*bed243d3SAndroid Build Coastguard Worker }
1557*bed243d3SAndroid Build Coastguard Worker
1558*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1559*bed243d3SAndroid Build Coastguard Worker vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
1560*bed243d3SAndroid Build Coastguard Worker unsigned int __len) {
1561*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1562*bed243d3SAndroid Build Coastguard Worker }
1563*bed243d3SAndroid Build Coastguard Worker
1564*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(__vector signed short __vec,signed short * __ptr,unsigned int __len)1565*bed243d3SAndroid Build Coastguard Worker vec_store_len(__vector signed short __vec, signed short *__ptr,
1566*bed243d3SAndroid Build Coastguard Worker unsigned int __len) {
1567*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1568*bed243d3SAndroid Build Coastguard Worker }
1569*bed243d3SAndroid Build Coastguard Worker
1570*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned short __vec,unsigned short * __ptr,unsigned int __len)1571*bed243d3SAndroid Build Coastguard Worker vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
1572*bed243d3SAndroid Build Coastguard Worker unsigned int __len) {
1573*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1574*bed243d3SAndroid Build Coastguard Worker }
1575*bed243d3SAndroid Build Coastguard Worker
1576*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(__vector signed int __vec,signed int * __ptr,unsigned int __len)1577*bed243d3SAndroid Build Coastguard Worker vec_store_len(__vector signed int __vec, signed int *__ptr,
1578*bed243d3SAndroid Build Coastguard Worker unsigned int __len) {
1579*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1580*bed243d3SAndroid Build Coastguard Worker }
1581*bed243d3SAndroid Build Coastguard Worker
1582*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned int __vec,unsigned int * __ptr,unsigned int __len)1583*bed243d3SAndroid Build Coastguard Worker vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
1584*bed243d3SAndroid Build Coastguard Worker unsigned int __len) {
1585*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1586*bed243d3SAndroid Build Coastguard Worker }
1587*bed243d3SAndroid Build Coastguard Worker
1588*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(__vector signed long long __vec,signed long long * __ptr,unsigned int __len)1589*bed243d3SAndroid Build Coastguard Worker vec_store_len(__vector signed long long __vec, signed long long *__ptr,
1590*bed243d3SAndroid Build Coastguard Worker unsigned int __len) {
1591*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1592*bed243d3SAndroid Build Coastguard Worker }
1593*bed243d3SAndroid Build Coastguard Worker
1594*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned long long __vec,unsigned long long * __ptr,unsigned int __len)1595*bed243d3SAndroid Build Coastguard Worker vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
1596*bed243d3SAndroid Build Coastguard Worker unsigned int __len) {
1597*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1598*bed243d3SAndroid Build Coastguard Worker }
1599*bed243d3SAndroid Build Coastguard Worker
1600*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
1601*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(__vector float __vec,float * __ptr,unsigned int __len)1602*bed243d3SAndroid Build Coastguard Worker vec_store_len(__vector float __vec, float *__ptr,
1603*bed243d3SAndroid Build Coastguard Worker unsigned int __len) {
1604*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1605*bed243d3SAndroid Build Coastguard Worker }
1606*bed243d3SAndroid Build Coastguard Worker #endif
1607*bed243d3SAndroid Build Coastguard Worker
1608*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai void
vec_store_len(__vector double __vec,double * __ptr,unsigned int __len)1609*bed243d3SAndroid Build Coastguard Worker vec_store_len(__vector double __vec, double *__ptr,
1610*bed243d3SAndroid Build Coastguard Worker unsigned int __len) {
1611*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1612*bed243d3SAndroid Build Coastguard Worker }
1613*bed243d3SAndroid Build Coastguard Worker
1614*bed243d3SAndroid Build Coastguard Worker /*-- vec_store_len_r --------------------------------------------------------*/
1615*bed243d3SAndroid Build Coastguard Worker
1616*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
1617*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai void
vec_store_len_r(__vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1618*bed243d3SAndroid Build Coastguard Worker vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
1619*bed243d3SAndroid Build Coastguard Worker unsigned int __len) {
1620*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstrlr((__vector signed char)__vec, __len, __ptr);
1621*bed243d3SAndroid Build Coastguard Worker }
1622*bed243d3SAndroid Build Coastguard Worker #endif
1623*bed243d3SAndroid Build Coastguard Worker
1624*bed243d3SAndroid Build Coastguard Worker /*-- vec_load_pair ----------------------------------------------------------*/
1625*bed243d3SAndroid Build Coastguard Worker
1626*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_load_pair(signed long long __a,signed long long __b)1627*bed243d3SAndroid Build Coastguard Worker vec_load_pair(signed long long __a, signed long long __b) {
1628*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)(__a, __b);
1629*bed243d3SAndroid Build Coastguard Worker }
1630*bed243d3SAndroid Build Coastguard Worker
1631*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_load_pair(unsigned long long __a,unsigned long long __b)1632*bed243d3SAndroid Build Coastguard Worker vec_load_pair(unsigned long long __a, unsigned long long __b) {
1633*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)(__a, __b);
1634*bed243d3SAndroid Build Coastguard Worker }
1635*bed243d3SAndroid Build Coastguard Worker
1636*bed243d3SAndroid Build Coastguard Worker /*-- vec_genmask ------------------------------------------------------------*/
1637*bed243d3SAndroid Build Coastguard Worker
1638*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_genmask(unsigned short __mask)1639*bed243d3SAndroid Build Coastguard Worker vec_genmask(unsigned short __mask)
1640*bed243d3SAndroid Build Coastguard Worker __constant(__mask) {
1641*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)(
1642*bed243d3SAndroid Build Coastguard Worker __mask & 0x8000 ? 0xff : 0,
1643*bed243d3SAndroid Build Coastguard Worker __mask & 0x4000 ? 0xff : 0,
1644*bed243d3SAndroid Build Coastguard Worker __mask & 0x2000 ? 0xff : 0,
1645*bed243d3SAndroid Build Coastguard Worker __mask & 0x1000 ? 0xff : 0,
1646*bed243d3SAndroid Build Coastguard Worker __mask & 0x0800 ? 0xff : 0,
1647*bed243d3SAndroid Build Coastguard Worker __mask & 0x0400 ? 0xff : 0,
1648*bed243d3SAndroid Build Coastguard Worker __mask & 0x0200 ? 0xff : 0,
1649*bed243d3SAndroid Build Coastguard Worker __mask & 0x0100 ? 0xff : 0,
1650*bed243d3SAndroid Build Coastguard Worker __mask & 0x0080 ? 0xff : 0,
1651*bed243d3SAndroid Build Coastguard Worker __mask & 0x0040 ? 0xff : 0,
1652*bed243d3SAndroid Build Coastguard Worker __mask & 0x0020 ? 0xff : 0,
1653*bed243d3SAndroid Build Coastguard Worker __mask & 0x0010 ? 0xff : 0,
1654*bed243d3SAndroid Build Coastguard Worker __mask & 0x0008 ? 0xff : 0,
1655*bed243d3SAndroid Build Coastguard Worker __mask & 0x0004 ? 0xff : 0,
1656*bed243d3SAndroid Build Coastguard Worker __mask & 0x0002 ? 0xff : 0,
1657*bed243d3SAndroid Build Coastguard Worker __mask & 0x0001 ? 0xff : 0);
1658*bed243d3SAndroid Build Coastguard Worker }
1659*bed243d3SAndroid Build Coastguard Worker
1660*bed243d3SAndroid Build Coastguard Worker /*-- vec_genmasks_* ---------------------------------------------------------*/
1661*bed243d3SAndroid Build Coastguard Worker
1662*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_genmasks_8(unsigned char __first,unsigned char __last)1663*bed243d3SAndroid Build Coastguard Worker vec_genmasks_8(unsigned char __first, unsigned char __last)
1664*bed243d3SAndroid Build Coastguard Worker __constant(__first) __constant(__last) {
1665*bed243d3SAndroid Build Coastguard Worker unsigned char __bit1 = __first & 7;
1666*bed243d3SAndroid Build Coastguard Worker unsigned char __bit2 = __last & 7;
1667*bed243d3SAndroid Build Coastguard Worker unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1668*bed243d3SAndroid Build Coastguard Worker unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1669*bed243d3SAndroid Build Coastguard Worker unsigned char __value = (__bit1 <= __bit2 ?
1670*bed243d3SAndroid Build Coastguard Worker __mask1 & ~__mask2 :
1671*bed243d3SAndroid Build Coastguard Worker __mask1 | ~__mask2);
1672*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)__value;
1673*bed243d3SAndroid Build Coastguard Worker }
1674*bed243d3SAndroid Build Coastguard Worker
1675*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_genmasks_16(unsigned char __first,unsigned char __last)1676*bed243d3SAndroid Build Coastguard Worker vec_genmasks_16(unsigned char __first, unsigned char __last)
1677*bed243d3SAndroid Build Coastguard Worker __constant(__first) __constant(__last) {
1678*bed243d3SAndroid Build Coastguard Worker unsigned char __bit1 = __first & 15;
1679*bed243d3SAndroid Build Coastguard Worker unsigned char __bit2 = __last & 15;
1680*bed243d3SAndroid Build Coastguard Worker unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1681*bed243d3SAndroid Build Coastguard Worker unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1682*bed243d3SAndroid Build Coastguard Worker unsigned short __value = (__bit1 <= __bit2 ?
1683*bed243d3SAndroid Build Coastguard Worker __mask1 & ~__mask2 :
1684*bed243d3SAndroid Build Coastguard Worker __mask1 | ~__mask2);
1685*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__value;
1686*bed243d3SAndroid Build Coastguard Worker }
1687*bed243d3SAndroid Build Coastguard Worker
1688*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_genmasks_32(unsigned char __first,unsigned char __last)1689*bed243d3SAndroid Build Coastguard Worker vec_genmasks_32(unsigned char __first, unsigned char __last)
1690*bed243d3SAndroid Build Coastguard Worker __constant(__first) __constant(__last) {
1691*bed243d3SAndroid Build Coastguard Worker unsigned char __bit1 = __first & 31;
1692*bed243d3SAndroid Build Coastguard Worker unsigned char __bit2 = __last & 31;
1693*bed243d3SAndroid Build Coastguard Worker unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1694*bed243d3SAndroid Build Coastguard Worker unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1695*bed243d3SAndroid Build Coastguard Worker unsigned int __value = (__bit1 <= __bit2 ?
1696*bed243d3SAndroid Build Coastguard Worker __mask1 & ~__mask2 :
1697*bed243d3SAndroid Build Coastguard Worker __mask1 | ~__mask2);
1698*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__value;
1699*bed243d3SAndroid Build Coastguard Worker }
1700*bed243d3SAndroid Build Coastguard Worker
1701*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_genmasks_64(unsigned char __first,unsigned char __last)1702*bed243d3SAndroid Build Coastguard Worker vec_genmasks_64(unsigned char __first, unsigned char __last)
1703*bed243d3SAndroid Build Coastguard Worker __constant(__first) __constant(__last) {
1704*bed243d3SAndroid Build Coastguard Worker unsigned char __bit1 = __first & 63;
1705*bed243d3SAndroid Build Coastguard Worker unsigned char __bit2 = __last & 63;
1706*bed243d3SAndroid Build Coastguard Worker unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1707*bed243d3SAndroid Build Coastguard Worker unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1708*bed243d3SAndroid Build Coastguard Worker unsigned long long __value = (__bit1 <= __bit2 ?
1709*bed243d3SAndroid Build Coastguard Worker __mask1 & ~__mask2 :
1710*bed243d3SAndroid Build Coastguard Worker __mask1 | ~__mask2);
1711*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__value;
1712*bed243d3SAndroid Build Coastguard Worker }
1713*bed243d3SAndroid Build Coastguard Worker
1714*bed243d3SAndroid Build Coastguard Worker /*-- vec_splat --------------------------------------------------------------*/
1715*bed243d3SAndroid Build Coastguard Worker
1716*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_splat(__vector signed char __vec,int __index)1717*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector signed char __vec, int __index)
1718*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 15) {
1719*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__vec[__index];
1720*bed243d3SAndroid Build Coastguard Worker }
1721*bed243d3SAndroid Build Coastguard Worker
1722*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_splat(__vector __bool char __vec,int __index)1723*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector __bool char __vec, int __index)
1724*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 15) {
1725*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(__vector unsigned char)__vec[__index];
1726*bed243d3SAndroid Build Coastguard Worker }
1727*bed243d3SAndroid Build Coastguard Worker
1728*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_splat(__vector unsigned char __vec,int __index)1729*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector unsigned char __vec, int __index)
1730*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 15) {
1731*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)__vec[__index];
1732*bed243d3SAndroid Build Coastguard Worker }
1733*bed243d3SAndroid Build Coastguard Worker
1734*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_splat(__vector signed short __vec,int __index)1735*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector signed short __vec, int __index)
1736*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 7) {
1737*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__vec[__index];
1738*bed243d3SAndroid Build Coastguard Worker }
1739*bed243d3SAndroid Build Coastguard Worker
1740*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_splat(__vector __bool short __vec,int __index)1741*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector __bool short __vec, int __index)
1742*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 7) {
1743*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(__vector unsigned short)__vec[__index];
1744*bed243d3SAndroid Build Coastguard Worker }
1745*bed243d3SAndroid Build Coastguard Worker
1746*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_splat(__vector unsigned short __vec,int __index)1747*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector unsigned short __vec, int __index)
1748*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 7) {
1749*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__vec[__index];
1750*bed243d3SAndroid Build Coastguard Worker }
1751*bed243d3SAndroid Build Coastguard Worker
1752*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_splat(__vector signed int __vec,int __index)1753*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector signed int __vec, int __index)
1754*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
1755*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__vec[__index];
1756*bed243d3SAndroid Build Coastguard Worker }
1757*bed243d3SAndroid Build Coastguard Worker
1758*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_splat(__vector __bool int __vec,int __index)1759*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector __bool int __vec, int __index)
1760*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
1761*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__vector unsigned int)__vec[__index];
1762*bed243d3SAndroid Build Coastguard Worker }
1763*bed243d3SAndroid Build Coastguard Worker
1764*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_splat(__vector unsigned int __vec,int __index)1765*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector unsigned int __vec, int __index)
1766*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
1767*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__vec[__index];
1768*bed243d3SAndroid Build Coastguard Worker }
1769*bed243d3SAndroid Build Coastguard Worker
1770*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_splat(__vector signed long long __vec,int __index)1771*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector signed long long __vec, int __index)
1772*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
1773*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__vec[__index];
1774*bed243d3SAndroid Build Coastguard Worker }
1775*bed243d3SAndroid Build Coastguard Worker
1776*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_splat(__vector __bool long long __vec,int __index)1777*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector __bool long long __vec, int __index)
1778*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
1779*bed243d3SAndroid Build Coastguard Worker return ((__vector __bool long long)
1780*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__vec[__index]);
1781*bed243d3SAndroid Build Coastguard Worker }
1782*bed243d3SAndroid Build Coastguard Worker
1783*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_splat(__vector unsigned long long __vec,int __index)1784*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector unsigned long long __vec, int __index)
1785*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
1786*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__vec[__index];
1787*bed243d3SAndroid Build Coastguard Worker }
1788*bed243d3SAndroid Build Coastguard Worker
1789*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
1790*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_splat(__vector float __vec,int __index)1791*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector float __vec, int __index)
1792*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 3) {
1793*bed243d3SAndroid Build Coastguard Worker return (__vector float)__vec[__index];
1794*bed243d3SAndroid Build Coastguard Worker }
1795*bed243d3SAndroid Build Coastguard Worker #endif
1796*bed243d3SAndroid Build Coastguard Worker
1797*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_splat(__vector double __vec,int __index)1798*bed243d3SAndroid Build Coastguard Worker vec_splat(__vector double __vec, int __index)
1799*bed243d3SAndroid Build Coastguard Worker __constant_range(__index, 0, 1) {
1800*bed243d3SAndroid Build Coastguard Worker return (__vector double)__vec[__index];
1801*bed243d3SAndroid Build Coastguard Worker }
1802*bed243d3SAndroid Build Coastguard Worker
1803*bed243d3SAndroid Build Coastguard Worker /*-- vec_splat_s* -----------------------------------------------------------*/
1804*bed243d3SAndroid Build Coastguard Worker
1805*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector signed char
vec_splat_s8(signed char __scalar)1806*bed243d3SAndroid Build Coastguard Worker vec_splat_s8(signed char __scalar)
1807*bed243d3SAndroid Build Coastguard Worker __constant(__scalar) {
1808*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__scalar;
1809*bed243d3SAndroid Build Coastguard Worker }
1810*bed243d3SAndroid Build Coastguard Worker
1811*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector signed short
vec_splat_s16(signed short __scalar)1812*bed243d3SAndroid Build Coastguard Worker vec_splat_s16(signed short __scalar)
1813*bed243d3SAndroid Build Coastguard Worker __constant(__scalar) {
1814*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__scalar;
1815*bed243d3SAndroid Build Coastguard Worker }
1816*bed243d3SAndroid Build Coastguard Worker
1817*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector signed int
vec_splat_s32(signed short __scalar)1818*bed243d3SAndroid Build Coastguard Worker vec_splat_s32(signed short __scalar)
1819*bed243d3SAndroid Build Coastguard Worker __constant(__scalar) {
1820*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)(signed int)__scalar;
1821*bed243d3SAndroid Build Coastguard Worker }
1822*bed243d3SAndroid Build Coastguard Worker
1823*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector signed long long
vec_splat_s64(signed short __scalar)1824*bed243d3SAndroid Build Coastguard Worker vec_splat_s64(signed short __scalar)
1825*bed243d3SAndroid Build Coastguard Worker __constant(__scalar) {
1826*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)(signed long)__scalar;
1827*bed243d3SAndroid Build Coastguard Worker }
1828*bed243d3SAndroid Build Coastguard Worker
1829*bed243d3SAndroid Build Coastguard Worker /*-- vec_splat_u* -----------------------------------------------------------*/
1830*bed243d3SAndroid Build Coastguard Worker
1831*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector unsigned char
vec_splat_u8(unsigned char __scalar)1832*bed243d3SAndroid Build Coastguard Worker vec_splat_u8(unsigned char __scalar)
1833*bed243d3SAndroid Build Coastguard Worker __constant(__scalar) {
1834*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)__scalar;
1835*bed243d3SAndroid Build Coastguard Worker }
1836*bed243d3SAndroid Build Coastguard Worker
1837*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector unsigned short
vec_splat_u16(unsigned short __scalar)1838*bed243d3SAndroid Build Coastguard Worker vec_splat_u16(unsigned short __scalar)
1839*bed243d3SAndroid Build Coastguard Worker __constant(__scalar) {
1840*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__scalar;
1841*bed243d3SAndroid Build Coastguard Worker }
1842*bed243d3SAndroid Build Coastguard Worker
1843*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector unsigned int
vec_splat_u32(signed short __scalar)1844*bed243d3SAndroid Build Coastguard Worker vec_splat_u32(signed short __scalar)
1845*bed243d3SAndroid Build Coastguard Worker __constant(__scalar) {
1846*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)(signed int)__scalar;
1847*bed243d3SAndroid Build Coastguard Worker }
1848*bed243d3SAndroid Build Coastguard Worker
1849*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector unsigned long long
vec_splat_u64(signed short __scalar)1850*bed243d3SAndroid Build Coastguard Worker vec_splat_u64(signed short __scalar)
1851*bed243d3SAndroid Build Coastguard Worker __constant(__scalar) {
1852*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)(signed long long)__scalar;
1853*bed243d3SAndroid Build Coastguard Worker }
1854*bed243d3SAndroid Build Coastguard Worker
1855*bed243d3SAndroid Build Coastguard Worker /*-- vec_splats -------------------------------------------------------------*/
1856*bed243d3SAndroid Build Coastguard Worker
1857*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_splats(signed char __scalar)1858*bed243d3SAndroid Build Coastguard Worker vec_splats(signed char __scalar) {
1859*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__scalar;
1860*bed243d3SAndroid Build Coastguard Worker }
1861*bed243d3SAndroid Build Coastguard Worker
1862*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_splats(unsigned char __scalar)1863*bed243d3SAndroid Build Coastguard Worker vec_splats(unsigned char __scalar) {
1864*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)__scalar;
1865*bed243d3SAndroid Build Coastguard Worker }
1866*bed243d3SAndroid Build Coastguard Worker
1867*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_splats(signed short __scalar)1868*bed243d3SAndroid Build Coastguard Worker vec_splats(signed short __scalar) {
1869*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__scalar;
1870*bed243d3SAndroid Build Coastguard Worker }
1871*bed243d3SAndroid Build Coastguard Worker
1872*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_splats(unsigned short __scalar)1873*bed243d3SAndroid Build Coastguard Worker vec_splats(unsigned short __scalar) {
1874*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__scalar;
1875*bed243d3SAndroid Build Coastguard Worker }
1876*bed243d3SAndroid Build Coastguard Worker
1877*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_splats(signed int __scalar)1878*bed243d3SAndroid Build Coastguard Worker vec_splats(signed int __scalar) {
1879*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__scalar;
1880*bed243d3SAndroid Build Coastguard Worker }
1881*bed243d3SAndroid Build Coastguard Worker
1882*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_splats(unsigned int __scalar)1883*bed243d3SAndroid Build Coastguard Worker vec_splats(unsigned int __scalar) {
1884*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__scalar;
1885*bed243d3SAndroid Build Coastguard Worker }
1886*bed243d3SAndroid Build Coastguard Worker
1887*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_splats(signed long long __scalar)1888*bed243d3SAndroid Build Coastguard Worker vec_splats(signed long long __scalar) {
1889*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__scalar;
1890*bed243d3SAndroid Build Coastguard Worker }
1891*bed243d3SAndroid Build Coastguard Worker
1892*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_splats(unsigned long long __scalar)1893*bed243d3SAndroid Build Coastguard Worker vec_splats(unsigned long long __scalar) {
1894*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__scalar;
1895*bed243d3SAndroid Build Coastguard Worker }
1896*bed243d3SAndroid Build Coastguard Worker
1897*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
1898*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_splats(float __scalar)1899*bed243d3SAndroid Build Coastguard Worker vec_splats(float __scalar) {
1900*bed243d3SAndroid Build Coastguard Worker return (__vector float)__scalar;
1901*bed243d3SAndroid Build Coastguard Worker }
1902*bed243d3SAndroid Build Coastguard Worker #endif
1903*bed243d3SAndroid Build Coastguard Worker
1904*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_splats(double __scalar)1905*bed243d3SAndroid Build Coastguard Worker vec_splats(double __scalar) {
1906*bed243d3SAndroid Build Coastguard Worker return (__vector double)__scalar;
1907*bed243d3SAndroid Build Coastguard Worker }
1908*bed243d3SAndroid Build Coastguard Worker
1909*bed243d3SAndroid Build Coastguard Worker /*-- vec_extend_s64 ---------------------------------------------------------*/
1910*bed243d3SAndroid Build Coastguard Worker
1911*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed char __a)1912*bed243d3SAndroid Build Coastguard Worker vec_extend_s64(__vector signed char __a) {
1913*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)(__a[7], __a[15]);
1914*bed243d3SAndroid Build Coastguard Worker }
1915*bed243d3SAndroid Build Coastguard Worker
1916*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed short __a)1917*bed243d3SAndroid Build Coastguard Worker vec_extend_s64(__vector signed short __a) {
1918*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)(__a[3], __a[7]);
1919*bed243d3SAndroid Build Coastguard Worker }
1920*bed243d3SAndroid Build Coastguard Worker
1921*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed int __a)1922*bed243d3SAndroid Build Coastguard Worker vec_extend_s64(__vector signed int __a) {
1923*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)(__a[1], __a[3]);
1924*bed243d3SAndroid Build Coastguard Worker }
1925*bed243d3SAndroid Build Coastguard Worker
1926*bed243d3SAndroid Build Coastguard Worker /*-- vec_mergeh -------------------------------------------------------------*/
1927*bed243d3SAndroid Build Coastguard Worker
1928*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_mergeh(__vector signed char __a,__vector signed char __b)1929*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector signed char __a, __vector signed char __b) {
1930*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)(
1931*bed243d3SAndroid Build Coastguard Worker __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1932*bed243d3SAndroid Build Coastguard Worker __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1933*bed243d3SAndroid Build Coastguard Worker }
1934*bed243d3SAndroid Build Coastguard Worker
1935*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_mergeh(__vector __bool char __a,__vector __bool char __b)1936*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector __bool char __a, __vector __bool char __b) {
1937*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(
1938*bed243d3SAndroid Build Coastguard Worker __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1939*bed243d3SAndroid Build Coastguard Worker __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1940*bed243d3SAndroid Build Coastguard Worker }
1941*bed243d3SAndroid Build Coastguard Worker
1942*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_mergeh(__vector unsigned char __a,__vector unsigned char __b)1943*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {
1944*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)(
1945*bed243d3SAndroid Build Coastguard Worker __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1946*bed243d3SAndroid Build Coastguard Worker __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1947*bed243d3SAndroid Build Coastguard Worker }
1948*bed243d3SAndroid Build Coastguard Worker
1949*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_mergeh(__vector signed short __a,__vector signed short __b)1950*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector signed short __a, __vector signed short __b) {
1951*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)(
1952*bed243d3SAndroid Build Coastguard Worker __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1953*bed243d3SAndroid Build Coastguard Worker }
1954*bed243d3SAndroid Build Coastguard Worker
1955*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_mergeh(__vector __bool short __a,__vector __bool short __b)1956*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector __bool short __a, __vector __bool short __b) {
1957*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(
1958*bed243d3SAndroid Build Coastguard Worker __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1959*bed243d3SAndroid Build Coastguard Worker }
1960*bed243d3SAndroid Build Coastguard Worker
1961*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_mergeh(__vector unsigned short __a,__vector unsigned short __b)1962*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {
1963*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)(
1964*bed243d3SAndroid Build Coastguard Worker __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1965*bed243d3SAndroid Build Coastguard Worker }
1966*bed243d3SAndroid Build Coastguard Worker
1967*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_mergeh(__vector signed int __a,__vector signed int __b)1968*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector signed int __a, __vector signed int __b) {
1969*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1970*bed243d3SAndroid Build Coastguard Worker }
1971*bed243d3SAndroid Build Coastguard Worker
1972*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_mergeh(__vector __bool int __a,__vector __bool int __b)1973*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector __bool int __a, __vector __bool int __b) {
1974*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);
1975*bed243d3SAndroid Build Coastguard Worker }
1976*bed243d3SAndroid Build Coastguard Worker
1977*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_mergeh(__vector unsigned int __a,__vector unsigned int __b)1978*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {
1979*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1980*bed243d3SAndroid Build Coastguard Worker }
1981*bed243d3SAndroid Build Coastguard Worker
1982*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_mergeh(__vector signed long long __a,__vector signed long long __b)1983*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector signed long long __a, __vector signed long long __b) {
1984*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)(__a[0], __b[0]);
1985*bed243d3SAndroid Build Coastguard Worker }
1986*bed243d3SAndroid Build Coastguard Worker
1987*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_mergeh(__vector __bool long long __a,__vector __bool long long __b)1988*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {
1989*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a[0], __b[0]);
1990*bed243d3SAndroid Build Coastguard Worker }
1991*bed243d3SAndroid Build Coastguard Worker
1992*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_mergeh(__vector unsigned long long __a,__vector unsigned long long __b)1993*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {
1994*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)(__a[0], __b[0]);
1995*bed243d3SAndroid Build Coastguard Worker }
1996*bed243d3SAndroid Build Coastguard Worker
1997*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
1998*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_mergeh(__vector float __a,__vector float __b)1999*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector float __a, __vector float __b) {
2000*bed243d3SAndroid Build Coastguard Worker return (__vector float)(__a[0], __b[0], __a[1], __b[1]);
2001*bed243d3SAndroid Build Coastguard Worker }
2002*bed243d3SAndroid Build Coastguard Worker #endif
2003*bed243d3SAndroid Build Coastguard Worker
2004*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_mergeh(__vector double __a,__vector double __b)2005*bed243d3SAndroid Build Coastguard Worker vec_mergeh(__vector double __a, __vector double __b) {
2006*bed243d3SAndroid Build Coastguard Worker return (__vector double)(__a[0], __b[0]);
2007*bed243d3SAndroid Build Coastguard Worker }
2008*bed243d3SAndroid Build Coastguard Worker
2009*bed243d3SAndroid Build Coastguard Worker /*-- vec_mergel -------------------------------------------------------------*/
2010*bed243d3SAndroid Build Coastguard Worker
2011*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_mergel(__vector signed char __a,__vector signed char __b)2012*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector signed char __a, __vector signed char __b) {
2013*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)(
2014*bed243d3SAndroid Build Coastguard Worker __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2015*bed243d3SAndroid Build Coastguard Worker __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2016*bed243d3SAndroid Build Coastguard Worker }
2017*bed243d3SAndroid Build Coastguard Worker
2018*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_mergel(__vector __bool char __a,__vector __bool char __b)2019*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector __bool char __a, __vector __bool char __b) {
2020*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(
2021*bed243d3SAndroid Build Coastguard Worker __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2022*bed243d3SAndroid Build Coastguard Worker __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2023*bed243d3SAndroid Build Coastguard Worker }
2024*bed243d3SAndroid Build Coastguard Worker
2025*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_mergel(__vector unsigned char __a,__vector unsigned char __b)2026*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {
2027*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)(
2028*bed243d3SAndroid Build Coastguard Worker __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2029*bed243d3SAndroid Build Coastguard Worker __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2030*bed243d3SAndroid Build Coastguard Worker }
2031*bed243d3SAndroid Build Coastguard Worker
2032*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_mergel(__vector signed short __a,__vector signed short __b)2033*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector signed short __a, __vector signed short __b) {
2034*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)(
2035*bed243d3SAndroid Build Coastguard Worker __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2036*bed243d3SAndroid Build Coastguard Worker }
2037*bed243d3SAndroid Build Coastguard Worker
2038*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_mergel(__vector __bool short __a,__vector __bool short __b)2039*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector __bool short __a, __vector __bool short __b) {
2040*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(
2041*bed243d3SAndroid Build Coastguard Worker __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2042*bed243d3SAndroid Build Coastguard Worker }
2043*bed243d3SAndroid Build Coastguard Worker
2044*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_mergel(__vector unsigned short __a,__vector unsigned short __b)2045*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {
2046*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)(
2047*bed243d3SAndroid Build Coastguard Worker __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2048*bed243d3SAndroid Build Coastguard Worker }
2049*bed243d3SAndroid Build Coastguard Worker
2050*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_mergel(__vector signed int __a,__vector signed int __b)2051*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector signed int __a, __vector signed int __b) {
2052*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);
2053*bed243d3SAndroid Build Coastguard Worker }
2054*bed243d3SAndroid Build Coastguard Worker
2055*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_mergel(__vector __bool int __a,__vector __bool int __b)2056*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector __bool int __a, __vector __bool int __b) {
2057*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);
2058*bed243d3SAndroid Build Coastguard Worker }
2059*bed243d3SAndroid Build Coastguard Worker
2060*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_mergel(__vector unsigned int __a,__vector unsigned int __b)2061*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {
2062*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
2063*bed243d3SAndroid Build Coastguard Worker }
2064*bed243d3SAndroid Build Coastguard Worker
2065*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_mergel(__vector signed long long __a,__vector signed long long __b)2066*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector signed long long __a, __vector signed long long __b) {
2067*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)(__a[1], __b[1]);
2068*bed243d3SAndroid Build Coastguard Worker }
2069*bed243d3SAndroid Build Coastguard Worker
2070*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_mergel(__vector __bool long long __a,__vector __bool long long __b)2071*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {
2072*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a[1], __b[1]);
2073*bed243d3SAndroid Build Coastguard Worker }
2074*bed243d3SAndroid Build Coastguard Worker
2075*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_mergel(__vector unsigned long long __a,__vector unsigned long long __b)2076*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {
2077*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)(__a[1], __b[1]);
2078*bed243d3SAndroid Build Coastguard Worker }
2079*bed243d3SAndroid Build Coastguard Worker
2080*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
2081*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_mergel(__vector float __a,__vector float __b)2082*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector float __a, __vector float __b) {
2083*bed243d3SAndroid Build Coastguard Worker return (__vector float)(__a[2], __b[2], __a[3], __b[3]);
2084*bed243d3SAndroid Build Coastguard Worker }
2085*bed243d3SAndroid Build Coastguard Worker #endif
2086*bed243d3SAndroid Build Coastguard Worker
2087*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_mergel(__vector double __a,__vector double __b)2088*bed243d3SAndroid Build Coastguard Worker vec_mergel(__vector double __a, __vector double __b) {
2089*bed243d3SAndroid Build Coastguard Worker return (__vector double)(__a[1], __b[1]);
2090*bed243d3SAndroid Build Coastguard Worker }
2091*bed243d3SAndroid Build Coastguard Worker
2092*bed243d3SAndroid Build Coastguard Worker /*-- vec_pack ---------------------------------------------------------------*/
2093*bed243d3SAndroid Build Coastguard Worker
2094*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_pack(__vector signed short __a,__vector signed short __b)2095*bed243d3SAndroid Build Coastguard Worker vec_pack(__vector signed short __a, __vector signed short __b) {
2096*bed243d3SAndroid Build Coastguard Worker __vector signed char __ac = (__vector signed char)__a;
2097*bed243d3SAndroid Build Coastguard Worker __vector signed char __bc = (__vector signed char)__b;
2098*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)(
2099*bed243d3SAndroid Build Coastguard Worker __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2100*bed243d3SAndroid Build Coastguard Worker __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2101*bed243d3SAndroid Build Coastguard Worker }
2102*bed243d3SAndroid Build Coastguard Worker
2103*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_pack(__vector __bool short __a,__vector __bool short __b)2104*bed243d3SAndroid Build Coastguard Worker vec_pack(__vector __bool short __a, __vector __bool short __b) {
2105*bed243d3SAndroid Build Coastguard Worker __vector __bool char __ac = (__vector __bool char)__a;
2106*bed243d3SAndroid Build Coastguard Worker __vector __bool char __bc = (__vector __bool char)__b;
2107*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(
2108*bed243d3SAndroid Build Coastguard Worker __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2109*bed243d3SAndroid Build Coastguard Worker __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2110*bed243d3SAndroid Build Coastguard Worker }
2111*bed243d3SAndroid Build Coastguard Worker
2112*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_pack(__vector unsigned short __a,__vector unsigned short __b)2113*bed243d3SAndroid Build Coastguard Worker vec_pack(__vector unsigned short __a, __vector unsigned short __b) {
2114*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __ac = (__vector unsigned char)__a;
2115*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __bc = (__vector unsigned char)__b;
2116*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)(
2117*bed243d3SAndroid Build Coastguard Worker __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2118*bed243d3SAndroid Build Coastguard Worker __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2119*bed243d3SAndroid Build Coastguard Worker }
2120*bed243d3SAndroid Build Coastguard Worker
2121*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_pack(__vector signed int __a,__vector signed int __b)2122*bed243d3SAndroid Build Coastguard Worker vec_pack(__vector signed int __a, __vector signed int __b) {
2123*bed243d3SAndroid Build Coastguard Worker __vector signed short __ac = (__vector signed short)__a;
2124*bed243d3SAndroid Build Coastguard Worker __vector signed short __bc = (__vector signed short)__b;
2125*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)(
2126*bed243d3SAndroid Build Coastguard Worker __ac[1], __ac[3], __ac[5], __ac[7],
2127*bed243d3SAndroid Build Coastguard Worker __bc[1], __bc[3], __bc[5], __bc[7]);
2128*bed243d3SAndroid Build Coastguard Worker }
2129*bed243d3SAndroid Build Coastguard Worker
2130*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_pack(__vector __bool int __a,__vector __bool int __b)2131*bed243d3SAndroid Build Coastguard Worker vec_pack(__vector __bool int __a, __vector __bool int __b) {
2132*bed243d3SAndroid Build Coastguard Worker __vector __bool short __ac = (__vector __bool short)__a;
2133*bed243d3SAndroid Build Coastguard Worker __vector __bool short __bc = (__vector __bool short)__b;
2134*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(
2135*bed243d3SAndroid Build Coastguard Worker __ac[1], __ac[3], __ac[5], __ac[7],
2136*bed243d3SAndroid Build Coastguard Worker __bc[1], __bc[3], __bc[5], __bc[7]);
2137*bed243d3SAndroid Build Coastguard Worker }
2138*bed243d3SAndroid Build Coastguard Worker
2139*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_pack(__vector unsigned int __a,__vector unsigned int __b)2140*bed243d3SAndroid Build Coastguard Worker vec_pack(__vector unsigned int __a, __vector unsigned int __b) {
2141*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __ac = (__vector unsigned short)__a;
2142*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __bc = (__vector unsigned short)__b;
2143*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)(
2144*bed243d3SAndroid Build Coastguard Worker __ac[1], __ac[3], __ac[5], __ac[7],
2145*bed243d3SAndroid Build Coastguard Worker __bc[1], __bc[3], __bc[5], __bc[7]);
2146*bed243d3SAndroid Build Coastguard Worker }
2147*bed243d3SAndroid Build Coastguard Worker
2148*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_pack(__vector signed long long __a,__vector signed long long __b)2149*bed243d3SAndroid Build Coastguard Worker vec_pack(__vector signed long long __a, __vector signed long long __b) {
2150*bed243d3SAndroid Build Coastguard Worker __vector signed int __ac = (__vector signed int)__a;
2151*bed243d3SAndroid Build Coastguard Worker __vector signed int __bc = (__vector signed int)__b;
2152*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2153*bed243d3SAndroid Build Coastguard Worker }
2154*bed243d3SAndroid Build Coastguard Worker
2155*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_pack(__vector __bool long long __a,__vector __bool long long __b)2156*bed243d3SAndroid Build Coastguard Worker vec_pack(__vector __bool long long __a, __vector __bool long long __b) {
2157*bed243d3SAndroid Build Coastguard Worker __vector __bool int __ac = (__vector __bool int)__a;
2158*bed243d3SAndroid Build Coastguard Worker __vector __bool int __bc = (__vector __bool int)__b;
2159*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2160*bed243d3SAndroid Build Coastguard Worker }
2161*bed243d3SAndroid Build Coastguard Worker
2162*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_pack(__vector unsigned long long __a,__vector unsigned long long __b)2163*bed243d3SAndroid Build Coastguard Worker vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
2164*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __ac = (__vector unsigned int)__a;
2165*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __bc = (__vector unsigned int)__b;
2166*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2167*bed243d3SAndroid Build Coastguard Worker }
2168*bed243d3SAndroid Build Coastguard Worker
2169*bed243d3SAndroid Build Coastguard Worker /*-- vec_packs --------------------------------------------------------------*/
2170*bed243d3SAndroid Build Coastguard Worker
2171*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_packs(__vector signed short __a,__vector signed short __b)2172*bed243d3SAndroid Build Coastguard Worker vec_packs(__vector signed short __a, __vector signed short __b) {
2173*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpksh(__a, __b);
2174*bed243d3SAndroid Build Coastguard Worker }
2175*bed243d3SAndroid Build Coastguard Worker
2176*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_packs(__vector unsigned short __a,__vector unsigned short __b)2177*bed243d3SAndroid Build Coastguard Worker vec_packs(__vector unsigned short __a, __vector unsigned short __b) {
2178*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsh(__a, __b);
2179*bed243d3SAndroid Build Coastguard Worker }
2180*bed243d3SAndroid Build Coastguard Worker
2181*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_packs(__vector signed int __a,__vector signed int __b)2182*bed243d3SAndroid Build Coastguard Worker vec_packs(__vector signed int __a, __vector signed int __b) {
2183*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpksf(__a, __b);
2184*bed243d3SAndroid Build Coastguard Worker }
2185*bed243d3SAndroid Build Coastguard Worker
2186*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_packs(__vector unsigned int __a,__vector unsigned int __b)2187*bed243d3SAndroid Build Coastguard Worker vec_packs(__vector unsigned int __a, __vector unsigned int __b) {
2188*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsf(__a, __b);
2189*bed243d3SAndroid Build Coastguard Worker }
2190*bed243d3SAndroid Build Coastguard Worker
2191*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_packs(__vector signed long long __a,__vector signed long long __b)2192*bed243d3SAndroid Build Coastguard Worker vec_packs(__vector signed long long __a, __vector signed long long __b) {
2193*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpksg(__a, __b);
2194*bed243d3SAndroid Build Coastguard Worker }
2195*bed243d3SAndroid Build Coastguard Worker
2196*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_packs(__vector unsigned long long __a,__vector unsigned long long __b)2197*bed243d3SAndroid Build Coastguard Worker vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {
2198*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsg(__a, __b);
2199*bed243d3SAndroid Build Coastguard Worker }
2200*bed243d3SAndroid Build Coastguard Worker
2201*bed243d3SAndroid Build Coastguard Worker /*-- vec_packs_cc -----------------------------------------------------------*/
2202*bed243d3SAndroid Build Coastguard Worker
2203*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_packs_cc(__vector signed short __a,__vector signed short __b,int * __cc)2204*bed243d3SAndroid Build Coastguard Worker vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {
2205*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpkshs(__a, __b, __cc);
2206*bed243d3SAndroid Build Coastguard Worker }
2207*bed243d3SAndroid Build Coastguard Worker
2208*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_packs_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)2209*bed243d3SAndroid Build Coastguard Worker vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,
2210*bed243d3SAndroid Build Coastguard Worker int *__cc) {
2211*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklshs(__a, __b, __cc);
2212*bed243d3SAndroid Build Coastguard Worker }
2213*bed243d3SAndroid Build Coastguard Worker
2214*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_packs_cc(__vector signed int __a,__vector signed int __b,int * __cc)2215*bed243d3SAndroid Build Coastguard Worker vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
2216*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpksfs(__a, __b, __cc);
2217*bed243d3SAndroid Build Coastguard Worker }
2218*bed243d3SAndroid Build Coastguard Worker
2219*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_packs_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)2220*bed243d3SAndroid Build Coastguard Worker vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2221*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsfs(__a, __b, __cc);
2222*bed243d3SAndroid Build Coastguard Worker }
2223*bed243d3SAndroid Build Coastguard Worker
2224*bed243d3SAndroid 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)2225*bed243d3SAndroid Build Coastguard Worker vec_packs_cc(__vector signed long long __a, __vector signed long long __b,
2226*bed243d3SAndroid Build Coastguard Worker int *__cc) {
2227*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpksgs(__a, __b, __cc);
2228*bed243d3SAndroid Build Coastguard Worker }
2229*bed243d3SAndroid Build Coastguard Worker
2230*bed243d3SAndroid 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)2231*bed243d3SAndroid Build Coastguard Worker vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2232*bed243d3SAndroid Build Coastguard Worker int *__cc) {
2233*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsgs(__a, __b, __cc);
2234*bed243d3SAndroid Build Coastguard Worker }
2235*bed243d3SAndroid Build Coastguard Worker
2236*bed243d3SAndroid Build Coastguard Worker /*-- vec_packsu -------------------------------------------------------------*/
2237*bed243d3SAndroid Build Coastguard Worker
2238*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector signed short __a,__vector signed short __b)2239*bed243d3SAndroid Build Coastguard Worker vec_packsu(__vector signed short __a, __vector signed short __b) {
2240*bed243d3SAndroid Build Coastguard Worker const __vector signed short __zero = (__vector signed short)0;
2241*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsh(
2242*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,
2243*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);
2244*bed243d3SAndroid Build Coastguard Worker }
2245*bed243d3SAndroid Build Coastguard Worker
2246*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector unsigned short __a,__vector unsigned short __b)2247*bed243d3SAndroid Build Coastguard Worker vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {
2248*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsh(__a, __b);
2249*bed243d3SAndroid Build Coastguard Worker }
2250*bed243d3SAndroid Build Coastguard Worker
2251*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector signed int __a,__vector signed int __b)2252*bed243d3SAndroid Build Coastguard Worker vec_packsu(__vector signed int __a, __vector signed int __b) {
2253*bed243d3SAndroid Build Coastguard Worker const __vector signed int __zero = (__vector signed int)0;
2254*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsf(
2255*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,
2256*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);
2257*bed243d3SAndroid Build Coastguard Worker }
2258*bed243d3SAndroid Build Coastguard Worker
2259*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector unsigned int __a,__vector unsigned int __b)2260*bed243d3SAndroid Build Coastguard Worker vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {
2261*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsf(__a, __b);
2262*bed243d3SAndroid Build Coastguard Worker }
2263*bed243d3SAndroid Build Coastguard Worker
2264*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector signed long long __a,__vector signed long long __b)2265*bed243d3SAndroid Build Coastguard Worker vec_packsu(__vector signed long long __a, __vector signed long long __b) {
2266*bed243d3SAndroid Build Coastguard Worker const __vector signed long long __zero = (__vector signed long long)0;
2267*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsg(
2268*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)(__a >= __zero) &
2269*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__a,
2270*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)(__b >= __zero) &
2271*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b);
2272*bed243d3SAndroid Build Coastguard Worker }
2273*bed243d3SAndroid Build Coastguard Worker
2274*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector unsigned long long __a,__vector unsigned long long __b)2275*bed243d3SAndroid Build Coastguard Worker vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {
2276*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsg(__a, __b);
2277*bed243d3SAndroid Build Coastguard Worker }
2278*bed243d3SAndroid Build Coastguard Worker
2279*bed243d3SAndroid Build Coastguard Worker /*-- vec_packsu_cc ----------------------------------------------------------*/
2280*bed243d3SAndroid Build Coastguard Worker
2281*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_packsu_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)2282*bed243d3SAndroid Build Coastguard Worker vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,
2283*bed243d3SAndroid Build Coastguard Worker int *__cc) {
2284*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklshs(__a, __b, __cc);
2285*bed243d3SAndroid Build Coastguard Worker }
2286*bed243d3SAndroid Build Coastguard Worker
2287*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_packsu_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)2288*bed243d3SAndroid Build Coastguard Worker vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2289*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsfs(__a, __b, __cc);
2290*bed243d3SAndroid Build Coastguard Worker }
2291*bed243d3SAndroid Build Coastguard Worker
2292*bed243d3SAndroid 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)2293*bed243d3SAndroid Build Coastguard Worker vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2294*bed243d3SAndroid Build Coastguard Worker int *__cc) {
2295*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpklsgs(__a, __b, __cc);
2296*bed243d3SAndroid Build Coastguard Worker }
2297*bed243d3SAndroid Build Coastguard Worker
2298*bed243d3SAndroid Build Coastguard Worker /*-- vec_unpackh ------------------------------------------------------------*/
2299*bed243d3SAndroid Build Coastguard Worker
2300*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_unpackh(__vector signed char __a)2301*bed243d3SAndroid Build Coastguard Worker vec_unpackh(__vector signed char __a) {
2302*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vuphb(__a);
2303*bed243d3SAndroid Build Coastguard Worker }
2304*bed243d3SAndroid Build Coastguard Worker
2305*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_unpackh(__vector __bool char __a)2306*bed243d3SAndroid Build Coastguard Worker vec_unpackh(__vector __bool char __a) {
2307*bed243d3SAndroid Build Coastguard Worker return ((__vector __bool short)
2308*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vuphb((__vector signed char)__a));
2309*bed243d3SAndroid Build Coastguard Worker }
2310*bed243d3SAndroid Build Coastguard Worker
2311*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_unpackh(__vector unsigned char __a)2312*bed243d3SAndroid Build Coastguard Worker vec_unpackh(__vector unsigned char __a) {
2313*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vuplhb(__a);
2314*bed243d3SAndroid Build Coastguard Worker }
2315*bed243d3SAndroid Build Coastguard Worker
2316*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_unpackh(__vector signed short __a)2317*bed243d3SAndroid Build Coastguard Worker vec_unpackh(__vector signed short __a) {
2318*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vuphh(__a);
2319*bed243d3SAndroid Build Coastguard Worker }
2320*bed243d3SAndroid Build Coastguard Worker
2321*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_unpackh(__vector __bool short __a)2322*bed243d3SAndroid Build Coastguard Worker vec_unpackh(__vector __bool short __a) {
2323*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);
2324*bed243d3SAndroid Build Coastguard Worker }
2325*bed243d3SAndroid Build Coastguard Worker
2326*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_unpackh(__vector unsigned short __a)2327*bed243d3SAndroid Build Coastguard Worker vec_unpackh(__vector unsigned short __a) {
2328*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vuplhh(__a);
2329*bed243d3SAndroid Build Coastguard Worker }
2330*bed243d3SAndroid Build Coastguard Worker
2331*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_unpackh(__vector signed int __a)2332*bed243d3SAndroid Build Coastguard Worker vec_unpackh(__vector signed int __a) {
2333*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vuphf(__a);
2334*bed243d3SAndroid Build Coastguard Worker }
2335*bed243d3SAndroid Build Coastguard Worker
2336*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_unpackh(__vector __bool int __a)2337*bed243d3SAndroid Build Coastguard Worker vec_unpackh(__vector __bool int __a) {
2338*bed243d3SAndroid Build Coastguard Worker return ((__vector __bool long long)
2339*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vuphf((__vector signed int)__a));
2340*bed243d3SAndroid Build Coastguard Worker }
2341*bed243d3SAndroid Build Coastguard Worker
2342*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackh(__vector unsigned int __a)2343*bed243d3SAndroid Build Coastguard Worker vec_unpackh(__vector unsigned int __a) {
2344*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vuplhf(__a);
2345*bed243d3SAndroid Build Coastguard Worker }
2346*bed243d3SAndroid Build Coastguard Worker
2347*bed243d3SAndroid Build Coastguard Worker /*-- vec_unpackl ------------------------------------------------------------*/
2348*bed243d3SAndroid Build Coastguard Worker
2349*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_unpackl(__vector signed char __a)2350*bed243d3SAndroid Build Coastguard Worker vec_unpackl(__vector signed char __a) {
2351*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vuplb(__a);
2352*bed243d3SAndroid Build Coastguard Worker }
2353*bed243d3SAndroid Build Coastguard Worker
2354*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_unpackl(__vector __bool char __a)2355*bed243d3SAndroid Build Coastguard Worker vec_unpackl(__vector __bool char __a) {
2356*bed243d3SAndroid Build Coastguard Worker return ((__vector __bool short)
2357*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vuplb((__vector signed char)__a));
2358*bed243d3SAndroid Build Coastguard Worker }
2359*bed243d3SAndroid Build Coastguard Worker
2360*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_unpackl(__vector unsigned char __a)2361*bed243d3SAndroid Build Coastguard Worker vec_unpackl(__vector unsigned char __a) {
2362*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vupllb(__a);
2363*bed243d3SAndroid Build Coastguard Worker }
2364*bed243d3SAndroid Build Coastguard Worker
2365*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_unpackl(__vector signed short __a)2366*bed243d3SAndroid Build Coastguard Worker vec_unpackl(__vector signed short __a) {
2367*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vuplhw(__a);
2368*bed243d3SAndroid Build Coastguard Worker }
2369*bed243d3SAndroid Build Coastguard Worker
2370*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_unpackl(__vector __bool short __a)2371*bed243d3SAndroid Build Coastguard Worker vec_unpackl(__vector __bool short __a) {
2372*bed243d3SAndroid Build Coastguard Worker return ((__vector __bool int)
2373*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vuplhw((__vector signed short)__a));
2374*bed243d3SAndroid Build Coastguard Worker }
2375*bed243d3SAndroid Build Coastguard Worker
2376*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_unpackl(__vector unsigned short __a)2377*bed243d3SAndroid Build Coastguard Worker vec_unpackl(__vector unsigned short __a) {
2378*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vupllh(__a);
2379*bed243d3SAndroid Build Coastguard Worker }
2380*bed243d3SAndroid Build Coastguard Worker
2381*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_unpackl(__vector signed int __a)2382*bed243d3SAndroid Build Coastguard Worker vec_unpackl(__vector signed int __a) {
2383*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vuplf(__a);
2384*bed243d3SAndroid Build Coastguard Worker }
2385*bed243d3SAndroid Build Coastguard Worker
2386*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_unpackl(__vector __bool int __a)2387*bed243d3SAndroid Build Coastguard Worker vec_unpackl(__vector __bool int __a) {
2388*bed243d3SAndroid Build Coastguard Worker return ((__vector __bool long long)
2389*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vuplf((__vector signed int)__a));
2390*bed243d3SAndroid Build Coastguard Worker }
2391*bed243d3SAndroid Build Coastguard Worker
2392*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackl(__vector unsigned int __a)2393*bed243d3SAndroid Build Coastguard Worker vec_unpackl(__vector unsigned int __a) {
2394*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vupllf(__a);
2395*bed243d3SAndroid Build Coastguard Worker }
2396*bed243d3SAndroid Build Coastguard Worker
2397*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpeq --------------------------------------------------------------*/
2398*bed243d3SAndroid Build Coastguard Worker
2399*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector __bool char __a,__vector __bool char __b)2400*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {
2401*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(__a == __b);
2402*bed243d3SAndroid Build Coastguard Worker }
2403*bed243d3SAndroid Build Coastguard Worker
2404*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector signed char __a,__vector signed char __b)2405*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector signed char __a, __vector signed char __b) {
2406*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(__a == __b);
2407*bed243d3SAndroid Build Coastguard Worker }
2408*bed243d3SAndroid Build Coastguard Worker
2409*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector unsigned char __a,__vector unsigned char __b)2410*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {
2411*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(__a == __b);
2412*bed243d3SAndroid Build Coastguard Worker }
2413*bed243d3SAndroid Build Coastguard Worker
2414*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector __bool short __a,__vector __bool short __b)2415*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {
2416*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(__a == __b);
2417*bed243d3SAndroid Build Coastguard Worker }
2418*bed243d3SAndroid Build Coastguard Worker
2419*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector signed short __a,__vector signed short __b)2420*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector signed short __a, __vector signed short __b) {
2421*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(__a == __b);
2422*bed243d3SAndroid Build Coastguard Worker }
2423*bed243d3SAndroid Build Coastguard Worker
2424*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector unsigned short __a,__vector unsigned short __b)2425*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {
2426*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(__a == __b);
2427*bed243d3SAndroid Build Coastguard Worker }
2428*bed243d3SAndroid Build Coastguard Worker
2429*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector __bool int __a,__vector __bool int __b)2430*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {
2431*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a == __b);
2432*bed243d3SAndroid Build Coastguard Worker }
2433*bed243d3SAndroid Build Coastguard Worker
2434*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector signed int __a,__vector signed int __b)2435*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector signed int __a, __vector signed int __b) {
2436*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a == __b);
2437*bed243d3SAndroid Build Coastguard Worker }
2438*bed243d3SAndroid Build Coastguard Worker
2439*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector unsigned int __a,__vector unsigned int __b)2440*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {
2441*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a == __b);
2442*bed243d3SAndroid Build Coastguard Worker }
2443*bed243d3SAndroid Build Coastguard Worker
2444*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector __bool long long __a,__vector __bool long long __b)2445*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {
2446*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a == __b);
2447*bed243d3SAndroid Build Coastguard Worker }
2448*bed243d3SAndroid Build Coastguard Worker
2449*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector signed long long __a,__vector signed long long __b)2450*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {
2451*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a == __b);
2452*bed243d3SAndroid Build Coastguard Worker }
2453*bed243d3SAndroid Build Coastguard Worker
2454*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector unsigned long long __a,__vector unsigned long long __b)2455*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
2456*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a == __b);
2457*bed243d3SAndroid Build Coastguard Worker }
2458*bed243d3SAndroid Build Coastguard Worker
2459*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
2460*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector float __a,__vector float __b)2461*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector float __a, __vector float __b) {
2462*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a == __b);
2463*bed243d3SAndroid Build Coastguard Worker }
2464*bed243d3SAndroid Build Coastguard Worker #endif
2465*bed243d3SAndroid Build Coastguard Worker
2466*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector double __a,__vector double __b)2467*bed243d3SAndroid Build Coastguard Worker vec_cmpeq(__vector double __a, __vector double __b) {
2468*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a == __b);
2469*bed243d3SAndroid Build Coastguard Worker }
2470*bed243d3SAndroid Build Coastguard Worker
2471*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpge --------------------------------------------------------------*/
2472*bed243d3SAndroid Build Coastguard Worker
2473*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector signed char __a,__vector signed char __b)2474*bed243d3SAndroid Build Coastguard Worker vec_cmpge(__vector signed char __a, __vector signed char __b) {
2475*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(__a >= __b);
2476*bed243d3SAndroid Build Coastguard Worker }
2477*bed243d3SAndroid Build Coastguard Worker
2478*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector unsigned char __a,__vector unsigned char __b)2479*bed243d3SAndroid Build Coastguard Worker vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {
2480*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(__a >= __b);
2481*bed243d3SAndroid Build Coastguard Worker }
2482*bed243d3SAndroid Build Coastguard Worker
2483*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector signed short __a,__vector signed short __b)2484*bed243d3SAndroid Build Coastguard Worker vec_cmpge(__vector signed short __a, __vector signed short __b) {
2485*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(__a >= __b);
2486*bed243d3SAndroid Build Coastguard Worker }
2487*bed243d3SAndroid Build Coastguard Worker
2488*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector unsigned short __a,__vector unsigned short __b)2489*bed243d3SAndroid Build Coastguard Worker vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {
2490*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(__a >= __b);
2491*bed243d3SAndroid Build Coastguard Worker }
2492*bed243d3SAndroid Build Coastguard Worker
2493*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector signed int __a,__vector signed int __b)2494*bed243d3SAndroid Build Coastguard Worker vec_cmpge(__vector signed int __a, __vector signed int __b) {
2495*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a >= __b);
2496*bed243d3SAndroid Build Coastguard Worker }
2497*bed243d3SAndroid Build Coastguard Worker
2498*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector unsigned int __a,__vector unsigned int __b)2499*bed243d3SAndroid Build Coastguard Worker vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {
2500*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a >= __b);
2501*bed243d3SAndroid Build Coastguard Worker }
2502*bed243d3SAndroid Build Coastguard Worker
2503*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector signed long long __a,__vector signed long long __b)2504*bed243d3SAndroid Build Coastguard Worker vec_cmpge(__vector signed long long __a, __vector signed long long __b) {
2505*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a >= __b);
2506*bed243d3SAndroid Build Coastguard Worker }
2507*bed243d3SAndroid Build Coastguard Worker
2508*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector unsigned long long __a,__vector unsigned long long __b)2509*bed243d3SAndroid Build Coastguard Worker vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
2510*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a >= __b);
2511*bed243d3SAndroid Build Coastguard Worker }
2512*bed243d3SAndroid Build Coastguard Worker
2513*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
2514*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector float __a,__vector float __b)2515*bed243d3SAndroid Build Coastguard Worker vec_cmpge(__vector float __a, __vector float __b) {
2516*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a >= __b);
2517*bed243d3SAndroid Build Coastguard Worker }
2518*bed243d3SAndroid Build Coastguard Worker #endif
2519*bed243d3SAndroid Build Coastguard Worker
2520*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector double __a,__vector double __b)2521*bed243d3SAndroid Build Coastguard Worker vec_cmpge(__vector double __a, __vector double __b) {
2522*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a >= __b);
2523*bed243d3SAndroid Build Coastguard Worker }
2524*bed243d3SAndroid Build Coastguard Worker
2525*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpgt --------------------------------------------------------------*/
2526*bed243d3SAndroid Build Coastguard Worker
2527*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector signed char __a,__vector signed char __b)2528*bed243d3SAndroid Build Coastguard Worker vec_cmpgt(__vector signed char __a, __vector signed char __b) {
2529*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(__a > __b);
2530*bed243d3SAndroid Build Coastguard Worker }
2531*bed243d3SAndroid Build Coastguard Worker
2532*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector unsigned char __a,__vector unsigned char __b)2533*bed243d3SAndroid Build Coastguard Worker vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {
2534*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(__a > __b);
2535*bed243d3SAndroid Build Coastguard Worker }
2536*bed243d3SAndroid Build Coastguard Worker
2537*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector signed short __a,__vector signed short __b)2538*bed243d3SAndroid Build Coastguard Worker vec_cmpgt(__vector signed short __a, __vector signed short __b) {
2539*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(__a > __b);
2540*bed243d3SAndroid Build Coastguard Worker }
2541*bed243d3SAndroid Build Coastguard Worker
2542*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector unsigned short __a,__vector unsigned short __b)2543*bed243d3SAndroid Build Coastguard Worker vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {
2544*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(__a > __b);
2545*bed243d3SAndroid Build Coastguard Worker }
2546*bed243d3SAndroid Build Coastguard Worker
2547*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector signed int __a,__vector signed int __b)2548*bed243d3SAndroid Build Coastguard Worker vec_cmpgt(__vector signed int __a, __vector signed int __b) {
2549*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a > __b);
2550*bed243d3SAndroid Build Coastguard Worker }
2551*bed243d3SAndroid Build Coastguard Worker
2552*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector unsigned int __a,__vector unsigned int __b)2553*bed243d3SAndroid Build Coastguard Worker vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {
2554*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a > __b);
2555*bed243d3SAndroid Build Coastguard Worker }
2556*bed243d3SAndroid Build Coastguard Worker
2557*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector signed long long __a,__vector signed long long __b)2558*bed243d3SAndroid Build Coastguard Worker vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {
2559*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a > __b);
2560*bed243d3SAndroid Build Coastguard Worker }
2561*bed243d3SAndroid Build Coastguard Worker
2562*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector unsigned long long __a,__vector unsigned long long __b)2563*bed243d3SAndroid Build Coastguard Worker vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
2564*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a > __b);
2565*bed243d3SAndroid Build Coastguard Worker }
2566*bed243d3SAndroid Build Coastguard Worker
2567*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
2568*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector float __a,__vector float __b)2569*bed243d3SAndroid Build Coastguard Worker vec_cmpgt(__vector float __a, __vector float __b) {
2570*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a > __b);
2571*bed243d3SAndroid Build Coastguard Worker }
2572*bed243d3SAndroid Build Coastguard Worker #endif
2573*bed243d3SAndroid Build Coastguard Worker
2574*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector double __a,__vector double __b)2575*bed243d3SAndroid Build Coastguard Worker vec_cmpgt(__vector double __a, __vector double __b) {
2576*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a > __b);
2577*bed243d3SAndroid Build Coastguard Worker }
2578*bed243d3SAndroid Build Coastguard Worker
2579*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmple --------------------------------------------------------------*/
2580*bed243d3SAndroid Build Coastguard Worker
2581*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector signed char __a,__vector signed char __b)2582*bed243d3SAndroid Build Coastguard Worker vec_cmple(__vector signed char __a, __vector signed char __b) {
2583*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(__a <= __b);
2584*bed243d3SAndroid Build Coastguard Worker }
2585*bed243d3SAndroid Build Coastguard Worker
2586*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector unsigned char __a,__vector unsigned char __b)2587*bed243d3SAndroid Build Coastguard Worker vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {
2588*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(__a <= __b);
2589*bed243d3SAndroid Build Coastguard Worker }
2590*bed243d3SAndroid Build Coastguard Worker
2591*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector signed short __a,__vector signed short __b)2592*bed243d3SAndroid Build Coastguard Worker vec_cmple(__vector signed short __a, __vector signed short __b) {
2593*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(__a <= __b);
2594*bed243d3SAndroid Build Coastguard Worker }
2595*bed243d3SAndroid Build Coastguard Worker
2596*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector unsigned short __a,__vector unsigned short __b)2597*bed243d3SAndroid Build Coastguard Worker vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {
2598*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(__a <= __b);
2599*bed243d3SAndroid Build Coastguard Worker }
2600*bed243d3SAndroid Build Coastguard Worker
2601*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector signed int __a,__vector signed int __b)2602*bed243d3SAndroid Build Coastguard Worker vec_cmple(__vector signed int __a, __vector signed int __b) {
2603*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a <= __b);
2604*bed243d3SAndroid Build Coastguard Worker }
2605*bed243d3SAndroid Build Coastguard Worker
2606*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector unsigned int __a,__vector unsigned int __b)2607*bed243d3SAndroid Build Coastguard Worker vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {
2608*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a <= __b);
2609*bed243d3SAndroid Build Coastguard Worker }
2610*bed243d3SAndroid Build Coastguard Worker
2611*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector signed long long __a,__vector signed long long __b)2612*bed243d3SAndroid Build Coastguard Worker vec_cmple(__vector signed long long __a, __vector signed long long __b) {
2613*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a <= __b);
2614*bed243d3SAndroid Build Coastguard Worker }
2615*bed243d3SAndroid Build Coastguard Worker
2616*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector unsigned long long __a,__vector unsigned long long __b)2617*bed243d3SAndroid Build Coastguard Worker vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
2618*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a <= __b);
2619*bed243d3SAndroid Build Coastguard Worker }
2620*bed243d3SAndroid Build Coastguard Worker
2621*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
2622*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector float __a,__vector float __b)2623*bed243d3SAndroid Build Coastguard Worker vec_cmple(__vector float __a, __vector float __b) {
2624*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a <= __b);
2625*bed243d3SAndroid Build Coastguard Worker }
2626*bed243d3SAndroid Build Coastguard Worker #endif
2627*bed243d3SAndroid Build Coastguard Worker
2628*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector double __a,__vector double __b)2629*bed243d3SAndroid Build Coastguard Worker vec_cmple(__vector double __a, __vector double __b) {
2630*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a <= __b);
2631*bed243d3SAndroid Build Coastguard Worker }
2632*bed243d3SAndroid Build Coastguard Worker
2633*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmplt --------------------------------------------------------------*/
2634*bed243d3SAndroid Build Coastguard Worker
2635*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector signed char __a,__vector signed char __b)2636*bed243d3SAndroid Build Coastguard Worker vec_cmplt(__vector signed char __a, __vector signed char __b) {
2637*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(__a < __b);
2638*bed243d3SAndroid Build Coastguard Worker }
2639*bed243d3SAndroid Build Coastguard Worker
2640*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector unsigned char __a,__vector unsigned char __b)2641*bed243d3SAndroid Build Coastguard Worker vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {
2642*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)(__a < __b);
2643*bed243d3SAndroid Build Coastguard Worker }
2644*bed243d3SAndroid Build Coastguard Worker
2645*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector signed short __a,__vector signed short __b)2646*bed243d3SAndroid Build Coastguard Worker vec_cmplt(__vector signed short __a, __vector signed short __b) {
2647*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(__a < __b);
2648*bed243d3SAndroid Build Coastguard Worker }
2649*bed243d3SAndroid Build Coastguard Worker
2650*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector unsigned short __a,__vector unsigned short __b)2651*bed243d3SAndroid Build Coastguard Worker vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {
2652*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)(__a < __b);
2653*bed243d3SAndroid Build Coastguard Worker }
2654*bed243d3SAndroid Build Coastguard Worker
2655*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector signed int __a,__vector signed int __b)2656*bed243d3SAndroid Build Coastguard Worker vec_cmplt(__vector signed int __a, __vector signed int __b) {
2657*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a < __b);
2658*bed243d3SAndroid Build Coastguard Worker }
2659*bed243d3SAndroid Build Coastguard Worker
2660*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector unsigned int __a,__vector unsigned int __b)2661*bed243d3SAndroid Build Coastguard Worker vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {
2662*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a < __b);
2663*bed243d3SAndroid Build Coastguard Worker }
2664*bed243d3SAndroid Build Coastguard Worker
2665*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector signed long long __a,__vector signed long long __b)2666*bed243d3SAndroid Build Coastguard Worker vec_cmplt(__vector signed long long __a, __vector signed long long __b) {
2667*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a < __b);
2668*bed243d3SAndroid Build Coastguard Worker }
2669*bed243d3SAndroid Build Coastguard Worker
2670*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector unsigned long long __a,__vector unsigned long long __b)2671*bed243d3SAndroid Build Coastguard Worker vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
2672*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a < __b);
2673*bed243d3SAndroid Build Coastguard Worker }
2674*bed243d3SAndroid Build Coastguard Worker
2675*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
2676*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector float __a,__vector float __b)2677*bed243d3SAndroid Build Coastguard Worker vec_cmplt(__vector float __a, __vector float __b) {
2678*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)(__a < __b);
2679*bed243d3SAndroid Build Coastguard Worker }
2680*bed243d3SAndroid Build Coastguard Worker #endif
2681*bed243d3SAndroid Build Coastguard Worker
2682*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector double __a,__vector double __b)2683*bed243d3SAndroid Build Coastguard Worker vec_cmplt(__vector double __a, __vector double __b) {
2684*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)(__a < __b);
2685*bed243d3SAndroid Build Coastguard Worker }
2686*bed243d3SAndroid Build Coastguard Worker
2687*bed243d3SAndroid Build Coastguard Worker /*-- vec_all_eq -------------------------------------------------------------*/
2688*bed243d3SAndroid Build Coastguard Worker
2689*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a,__vector signed char __b)2690*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector signed char __a, __vector signed char __b) {
2691*bed243d3SAndroid Build Coastguard Worker int __cc;
2692*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
2693*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
2694*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2695*bed243d3SAndroid Build Coastguard Worker }
2696*bed243d3SAndroid Build Coastguard Worker
2697*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2698*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a,__vector __bool char __b)2699*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector signed char __a, __vector __bool char __b) {
2700*bed243d3SAndroid Build Coastguard Worker int __cc;
2701*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
2702*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
2703*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2704*bed243d3SAndroid Build Coastguard Worker }
2705*bed243d3SAndroid Build Coastguard Worker
2706*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2707*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector signed char __b)2708*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector __bool char __a, __vector signed char __b) {
2709*bed243d3SAndroid Build Coastguard Worker int __cc;
2710*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
2711*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
2712*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2713*bed243d3SAndroid Build Coastguard Worker }
2714*bed243d3SAndroid Build Coastguard Worker
2715*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a,__vector unsigned char __b)2716*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {
2717*bed243d3SAndroid Build Coastguard Worker int __cc;
2718*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, __b, &__cc);
2719*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2720*bed243d3SAndroid Build Coastguard Worker }
2721*bed243d3SAndroid Build Coastguard Worker
2722*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2723*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a,__vector __bool char __b)2724*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {
2725*bed243d3SAndroid Build Coastguard Worker int __cc;
2726*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
2727*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2728*bed243d3SAndroid Build Coastguard Worker }
2729*bed243d3SAndroid Build Coastguard Worker
2730*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2731*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector unsigned char __b)2732*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {
2733*bed243d3SAndroid Build Coastguard Worker int __cc;
2734*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
2735*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2736*bed243d3SAndroid Build Coastguard Worker }
2737*bed243d3SAndroid Build Coastguard Worker
2738*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector __bool char __b)2739*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector __bool char __a, __vector __bool char __b) {
2740*bed243d3SAndroid Build Coastguard Worker int __cc;
2741*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
2742*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
2743*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2744*bed243d3SAndroid Build Coastguard Worker }
2745*bed243d3SAndroid Build Coastguard Worker
2746*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a,__vector signed short __b)2747*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector signed short __a, __vector signed short __b) {
2748*bed243d3SAndroid Build Coastguard Worker int __cc;
2749*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
2750*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
2751*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2752*bed243d3SAndroid Build Coastguard Worker }
2753*bed243d3SAndroid Build Coastguard Worker
2754*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2755*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a,__vector __bool short __b)2756*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector signed short __a, __vector __bool short __b) {
2757*bed243d3SAndroid Build Coastguard Worker int __cc;
2758*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
2759*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
2760*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2761*bed243d3SAndroid Build Coastguard Worker }
2762*bed243d3SAndroid Build Coastguard Worker
2763*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2764*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector signed short __b)2765*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector __bool short __a, __vector signed short __b) {
2766*bed243d3SAndroid Build Coastguard Worker int __cc;
2767*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
2768*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
2769*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2770*bed243d3SAndroid Build Coastguard Worker }
2771*bed243d3SAndroid Build Coastguard Worker
2772*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a,__vector unsigned short __b)2773*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {
2774*bed243d3SAndroid Build Coastguard Worker int __cc;
2775*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, __b, &__cc);
2776*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2777*bed243d3SAndroid Build Coastguard Worker }
2778*bed243d3SAndroid Build Coastguard Worker
2779*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2780*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a,__vector __bool short __b)2781*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {
2782*bed243d3SAndroid Build Coastguard Worker int __cc;
2783*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
2784*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2785*bed243d3SAndroid Build Coastguard Worker }
2786*bed243d3SAndroid Build Coastguard Worker
2787*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2788*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector unsigned short __b)2789*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {
2790*bed243d3SAndroid Build Coastguard Worker int __cc;
2791*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
2792*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2793*bed243d3SAndroid Build Coastguard Worker }
2794*bed243d3SAndroid Build Coastguard Worker
2795*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector __bool short __b)2796*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector __bool short __a, __vector __bool short __b) {
2797*bed243d3SAndroid Build Coastguard Worker int __cc;
2798*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
2799*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
2800*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2801*bed243d3SAndroid Build Coastguard Worker }
2802*bed243d3SAndroid Build Coastguard Worker
2803*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a,__vector signed int __b)2804*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector signed int __a, __vector signed int __b) {
2805*bed243d3SAndroid Build Coastguard Worker int __cc;
2806*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
2807*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
2808*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2809*bed243d3SAndroid Build Coastguard Worker }
2810*bed243d3SAndroid Build Coastguard Worker
2811*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2812*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a,__vector __bool int __b)2813*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector signed int __a, __vector __bool int __b) {
2814*bed243d3SAndroid Build Coastguard Worker int __cc;
2815*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
2816*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
2817*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2818*bed243d3SAndroid Build Coastguard Worker }
2819*bed243d3SAndroid Build Coastguard Worker
2820*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2821*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector signed int __b)2822*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector __bool int __a, __vector signed int __b) {
2823*bed243d3SAndroid Build Coastguard Worker int __cc;
2824*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
2825*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
2826*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2827*bed243d3SAndroid Build Coastguard Worker }
2828*bed243d3SAndroid Build Coastguard Worker
2829*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a,__vector unsigned int __b)2830*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {
2831*bed243d3SAndroid Build Coastguard Worker int __cc;
2832*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, __b, &__cc);
2833*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2834*bed243d3SAndroid Build Coastguard Worker }
2835*bed243d3SAndroid Build Coastguard Worker
2836*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2837*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a,__vector __bool int __b)2838*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {
2839*bed243d3SAndroid Build Coastguard Worker int __cc;
2840*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
2841*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2842*bed243d3SAndroid Build Coastguard Worker }
2843*bed243d3SAndroid Build Coastguard Worker
2844*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2845*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector unsigned int __b)2846*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {
2847*bed243d3SAndroid Build Coastguard Worker int __cc;
2848*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
2849*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2850*bed243d3SAndroid Build Coastguard Worker }
2851*bed243d3SAndroid Build Coastguard Worker
2852*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector __bool int __b)2853*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector __bool int __a, __vector __bool int __b) {
2854*bed243d3SAndroid Build Coastguard Worker int __cc;
2855*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
2856*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
2857*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2858*bed243d3SAndroid Build Coastguard Worker }
2859*bed243d3SAndroid Build Coastguard Worker
2860*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a,__vector signed long long __b)2861*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector signed long long __a, __vector signed long long __b) {
2862*bed243d3SAndroid Build Coastguard Worker int __cc;
2863*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
2864*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
2865*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2866*bed243d3SAndroid Build Coastguard Worker }
2867*bed243d3SAndroid Build Coastguard Worker
2868*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2869*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a,__vector __bool long long __b)2870*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {
2871*bed243d3SAndroid Build Coastguard Worker int __cc;
2872*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
2873*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
2874*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2875*bed243d3SAndroid Build Coastguard Worker }
2876*bed243d3SAndroid Build Coastguard Worker
2877*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2878*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector signed long long __b)2879*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {
2880*bed243d3SAndroid Build Coastguard Worker int __cc;
2881*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
2882*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
2883*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2884*bed243d3SAndroid Build Coastguard Worker }
2885*bed243d3SAndroid Build Coastguard Worker
2886*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a,__vector unsigned long long __b)2887*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
2888*bed243d3SAndroid Build Coastguard Worker int __cc;
2889*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, __b, &__cc);
2890*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2891*bed243d3SAndroid Build Coastguard Worker }
2892*bed243d3SAndroid Build Coastguard Worker
2893*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2894*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a,__vector __bool long long __b)2895*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {
2896*bed243d3SAndroid Build Coastguard Worker int __cc;
2897*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
2898*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2899*bed243d3SAndroid Build Coastguard Worker }
2900*bed243d3SAndroid Build Coastguard Worker
2901*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2902*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector unsigned long long __b)2903*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {
2904*bed243d3SAndroid Build Coastguard Worker int __cc;
2905*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
2906*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2907*bed243d3SAndroid Build Coastguard Worker }
2908*bed243d3SAndroid Build Coastguard Worker
2909*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector __bool long long __b)2910*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
2911*bed243d3SAndroid Build Coastguard Worker int __cc;
2912*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
2913*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
2914*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2915*bed243d3SAndroid Build Coastguard Worker }
2916*bed243d3SAndroid Build Coastguard Worker
2917*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
2918*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector float __a,__vector float __b)2919*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector float __a, __vector float __b) {
2920*bed243d3SAndroid Build Coastguard Worker int __cc;
2921*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfcesbs(__a, __b, &__cc);
2922*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2923*bed243d3SAndroid Build Coastguard Worker }
2924*bed243d3SAndroid Build Coastguard Worker #endif
2925*bed243d3SAndroid Build Coastguard Worker
2926*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_eq(__vector double __a,__vector double __b)2927*bed243d3SAndroid Build Coastguard Worker vec_all_eq(__vector double __a, __vector double __b) {
2928*bed243d3SAndroid Build Coastguard Worker int __cc;
2929*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfcedbs(__a, __b, &__cc);
2930*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
2931*bed243d3SAndroid Build Coastguard Worker }
2932*bed243d3SAndroid Build Coastguard Worker
2933*bed243d3SAndroid Build Coastguard Worker /*-- vec_all_ne -------------------------------------------------------------*/
2934*bed243d3SAndroid Build Coastguard Worker
2935*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a,__vector signed char __b)2936*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector signed char __a, __vector signed char __b) {
2937*bed243d3SAndroid Build Coastguard Worker int __cc;
2938*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
2939*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
2940*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
2941*bed243d3SAndroid Build Coastguard Worker }
2942*bed243d3SAndroid Build Coastguard Worker
2943*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2944*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a,__vector __bool char __b)2945*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector signed char __a, __vector __bool char __b) {
2946*bed243d3SAndroid Build Coastguard Worker int __cc;
2947*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
2948*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
2949*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
2950*bed243d3SAndroid Build Coastguard Worker }
2951*bed243d3SAndroid Build Coastguard Worker
2952*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2953*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector signed char __b)2954*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector __bool char __a, __vector signed char __b) {
2955*bed243d3SAndroid Build Coastguard Worker int __cc;
2956*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
2957*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
2958*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
2959*bed243d3SAndroid Build Coastguard Worker }
2960*bed243d3SAndroid Build Coastguard Worker
2961*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a,__vector unsigned char __b)2962*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {
2963*bed243d3SAndroid Build Coastguard Worker int __cc;
2964*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
2965*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
2966*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
2967*bed243d3SAndroid Build Coastguard Worker }
2968*bed243d3SAndroid Build Coastguard Worker
2969*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2970*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a,__vector __bool char __b)2971*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {
2972*bed243d3SAndroid Build Coastguard Worker int __cc;
2973*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
2974*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
2975*bed243d3SAndroid Build Coastguard Worker }
2976*bed243d3SAndroid Build Coastguard Worker
2977*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
2978*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector unsigned char __b)2979*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {
2980*bed243d3SAndroid Build Coastguard Worker int __cc;
2981*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
2982*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
2983*bed243d3SAndroid Build Coastguard Worker }
2984*bed243d3SAndroid Build Coastguard Worker
2985*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector __bool char __b)2986*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector __bool char __a, __vector __bool char __b) {
2987*bed243d3SAndroid Build Coastguard Worker int __cc;
2988*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
2989*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
2990*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
2991*bed243d3SAndroid Build Coastguard Worker }
2992*bed243d3SAndroid Build Coastguard Worker
2993*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a,__vector signed short __b)2994*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector signed short __a, __vector signed short __b) {
2995*bed243d3SAndroid Build Coastguard Worker int __cc;
2996*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
2997*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
2998*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
2999*bed243d3SAndroid Build Coastguard Worker }
3000*bed243d3SAndroid Build Coastguard Worker
3001*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3002*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a,__vector __bool short __b)3003*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector signed short __a, __vector __bool short __b) {
3004*bed243d3SAndroid Build Coastguard Worker int __cc;
3005*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
3006*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
3007*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3008*bed243d3SAndroid Build Coastguard Worker }
3009*bed243d3SAndroid Build Coastguard Worker
3010*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3011*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector signed short __b)3012*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector __bool short __a, __vector signed short __b) {
3013*bed243d3SAndroid Build Coastguard Worker int __cc;
3014*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
3015*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
3016*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3017*bed243d3SAndroid Build Coastguard Worker }
3018*bed243d3SAndroid Build Coastguard Worker
3019*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a,__vector unsigned short __b)3020*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {
3021*bed243d3SAndroid Build Coastguard Worker int __cc;
3022*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, __b, &__cc);
3023*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3024*bed243d3SAndroid Build Coastguard Worker }
3025*bed243d3SAndroid Build Coastguard Worker
3026*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3027*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a,__vector __bool short __b)3028*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {
3029*bed243d3SAndroid Build Coastguard Worker int __cc;
3030*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
3031*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3032*bed243d3SAndroid Build Coastguard Worker }
3033*bed243d3SAndroid Build Coastguard Worker
3034*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3035*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector unsigned short __b)3036*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {
3037*bed243d3SAndroid Build Coastguard Worker int __cc;
3038*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
3039*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3040*bed243d3SAndroid Build Coastguard Worker }
3041*bed243d3SAndroid Build Coastguard Worker
3042*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector __bool short __b)3043*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector __bool short __a, __vector __bool short __b) {
3044*bed243d3SAndroid Build Coastguard Worker int __cc;
3045*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
3046*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
3047*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3048*bed243d3SAndroid Build Coastguard Worker }
3049*bed243d3SAndroid Build Coastguard Worker
3050*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a,__vector signed int __b)3051*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector signed int __a, __vector signed int __b) {
3052*bed243d3SAndroid Build Coastguard Worker int __cc;
3053*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
3054*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
3055*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3056*bed243d3SAndroid Build Coastguard Worker }
3057*bed243d3SAndroid Build Coastguard Worker
3058*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3059*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a,__vector __bool int __b)3060*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector signed int __a, __vector __bool int __b) {
3061*bed243d3SAndroid Build Coastguard Worker int __cc;
3062*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
3063*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
3064*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3065*bed243d3SAndroid Build Coastguard Worker }
3066*bed243d3SAndroid Build Coastguard Worker
3067*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3068*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector signed int __b)3069*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector __bool int __a, __vector signed int __b) {
3070*bed243d3SAndroid Build Coastguard Worker int __cc;
3071*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
3072*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
3073*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3074*bed243d3SAndroid Build Coastguard Worker }
3075*bed243d3SAndroid Build Coastguard Worker
3076*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a,__vector unsigned int __b)3077*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {
3078*bed243d3SAndroid Build Coastguard Worker int __cc;
3079*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, __b, &__cc);
3080*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3081*bed243d3SAndroid Build Coastguard Worker }
3082*bed243d3SAndroid Build Coastguard Worker
3083*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3084*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a,__vector __bool int __b)3085*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {
3086*bed243d3SAndroid Build Coastguard Worker int __cc;
3087*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
3088*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3089*bed243d3SAndroid Build Coastguard Worker }
3090*bed243d3SAndroid Build Coastguard Worker
3091*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3092*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector unsigned int __b)3093*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {
3094*bed243d3SAndroid Build Coastguard Worker int __cc;
3095*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
3096*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3097*bed243d3SAndroid Build Coastguard Worker }
3098*bed243d3SAndroid Build Coastguard Worker
3099*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector __bool int __b)3100*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector __bool int __a, __vector __bool int __b) {
3101*bed243d3SAndroid Build Coastguard Worker int __cc;
3102*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
3103*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
3104*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3105*bed243d3SAndroid Build Coastguard Worker }
3106*bed243d3SAndroid Build Coastguard Worker
3107*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a,__vector signed long long __b)3108*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector signed long long __a, __vector signed long long __b) {
3109*bed243d3SAndroid Build Coastguard Worker int __cc;
3110*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
3111*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
3112*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3113*bed243d3SAndroid Build Coastguard Worker }
3114*bed243d3SAndroid Build Coastguard Worker
3115*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3116*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a,__vector __bool long long __b)3117*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {
3118*bed243d3SAndroid Build Coastguard Worker int __cc;
3119*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
3120*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
3121*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3122*bed243d3SAndroid Build Coastguard Worker }
3123*bed243d3SAndroid Build Coastguard Worker
3124*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3125*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector signed long long __b)3126*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {
3127*bed243d3SAndroid Build Coastguard Worker int __cc;
3128*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
3129*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
3130*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3131*bed243d3SAndroid Build Coastguard Worker }
3132*bed243d3SAndroid Build Coastguard Worker
3133*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a,__vector unsigned long long __b)3134*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
3135*bed243d3SAndroid Build Coastguard Worker int __cc;
3136*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, __b, &__cc);
3137*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3138*bed243d3SAndroid Build Coastguard Worker }
3139*bed243d3SAndroid Build Coastguard Worker
3140*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3141*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a,__vector __bool long long __b)3142*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {
3143*bed243d3SAndroid Build Coastguard Worker int __cc;
3144*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
3145*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3146*bed243d3SAndroid Build Coastguard Worker }
3147*bed243d3SAndroid Build Coastguard Worker
3148*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3149*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector unsigned long long __b)3150*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {
3151*bed243d3SAndroid Build Coastguard Worker int __cc;
3152*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
3153*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3154*bed243d3SAndroid Build Coastguard Worker }
3155*bed243d3SAndroid Build Coastguard Worker
3156*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector __bool long long __b)3157*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
3158*bed243d3SAndroid Build Coastguard Worker int __cc;
3159*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
3160*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
3161*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3162*bed243d3SAndroid Build Coastguard Worker }
3163*bed243d3SAndroid Build Coastguard Worker
3164*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
3165*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector float __a,__vector float __b)3166*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector float __a, __vector float __b) {
3167*bed243d3SAndroid Build Coastguard Worker int __cc;
3168*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfcesbs(__a, __b, &__cc);
3169*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3170*bed243d3SAndroid Build Coastguard Worker }
3171*bed243d3SAndroid Build Coastguard Worker #endif
3172*bed243d3SAndroid Build Coastguard Worker
3173*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ne(__vector double __a,__vector double __b)3174*bed243d3SAndroid Build Coastguard Worker vec_all_ne(__vector double __a, __vector double __b) {
3175*bed243d3SAndroid Build Coastguard Worker int __cc;
3176*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfcedbs(__a, __b, &__cc);
3177*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3178*bed243d3SAndroid Build Coastguard Worker }
3179*bed243d3SAndroid Build Coastguard Worker
3180*bed243d3SAndroid Build Coastguard Worker /*-- vec_all_ge -------------------------------------------------------------*/
3181*bed243d3SAndroid Build Coastguard Worker
3182*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a,__vector signed char __b)3183*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector signed char __a, __vector signed char __b) {
3184*bed243d3SAndroid Build Coastguard Worker int __cc;
3185*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, __a, &__cc);
3186*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3187*bed243d3SAndroid Build Coastguard Worker }
3188*bed243d3SAndroid Build Coastguard Worker
3189*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3190*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a,__vector __bool char __b)3191*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector signed char __a, __vector __bool char __b) {
3192*bed243d3SAndroid Build Coastguard Worker int __cc;
3193*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3194*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3195*bed243d3SAndroid Build Coastguard Worker }
3196*bed243d3SAndroid Build Coastguard Worker
3197*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3198*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector signed char __b)3199*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector __bool char __a, __vector signed char __b) {
3200*bed243d3SAndroid Build Coastguard Worker int __cc;
3201*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3202*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3203*bed243d3SAndroid Build Coastguard Worker }
3204*bed243d3SAndroid Build Coastguard Worker
3205*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a,__vector unsigned char __b)3206*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {
3207*bed243d3SAndroid Build Coastguard Worker int __cc;
3208*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, __a, &__cc);
3209*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3210*bed243d3SAndroid Build Coastguard Worker }
3211*bed243d3SAndroid Build Coastguard Worker
3212*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3213*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a,__vector __bool char __b)3214*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {
3215*bed243d3SAndroid Build Coastguard Worker int __cc;
3216*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3217*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3218*bed243d3SAndroid Build Coastguard Worker }
3219*bed243d3SAndroid Build Coastguard Worker
3220*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3221*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector unsigned char __b)3222*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {
3223*bed243d3SAndroid Build Coastguard Worker int __cc;
3224*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3225*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3226*bed243d3SAndroid Build Coastguard Worker }
3227*bed243d3SAndroid Build Coastguard Worker
3228*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3229*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector __bool char __b)3230*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector __bool char __a, __vector __bool char __b) {
3231*bed243d3SAndroid Build Coastguard Worker int __cc;
3232*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__b,
3233*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, &__cc);
3234*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3235*bed243d3SAndroid Build Coastguard Worker }
3236*bed243d3SAndroid Build Coastguard Worker
3237*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a,__vector signed short __b)3238*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector signed short __a, __vector signed short __b) {
3239*bed243d3SAndroid Build Coastguard Worker int __cc;
3240*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, __a, &__cc);
3241*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3242*bed243d3SAndroid Build Coastguard Worker }
3243*bed243d3SAndroid Build Coastguard Worker
3244*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3245*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a,__vector __bool short __b)3246*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector signed short __a, __vector __bool short __b) {
3247*bed243d3SAndroid Build Coastguard Worker int __cc;
3248*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3249*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3250*bed243d3SAndroid Build Coastguard Worker }
3251*bed243d3SAndroid Build Coastguard Worker
3252*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3253*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector signed short __b)3254*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector __bool short __a, __vector signed short __b) {
3255*bed243d3SAndroid Build Coastguard Worker int __cc;
3256*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3257*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3258*bed243d3SAndroid Build Coastguard Worker }
3259*bed243d3SAndroid Build Coastguard Worker
3260*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a,__vector unsigned short __b)3261*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {
3262*bed243d3SAndroid Build Coastguard Worker int __cc;
3263*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, __a, &__cc);
3264*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3265*bed243d3SAndroid Build Coastguard Worker }
3266*bed243d3SAndroid Build Coastguard Worker
3267*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3268*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a,__vector __bool short __b)3269*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {
3270*bed243d3SAndroid Build Coastguard Worker int __cc;
3271*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3272*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3273*bed243d3SAndroid Build Coastguard Worker }
3274*bed243d3SAndroid Build Coastguard Worker
3275*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3276*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector unsigned short __b)3277*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {
3278*bed243d3SAndroid Build Coastguard Worker int __cc;
3279*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3280*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3281*bed243d3SAndroid Build Coastguard Worker }
3282*bed243d3SAndroid Build Coastguard Worker
3283*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3284*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector __bool short __b)3285*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector __bool short __a, __vector __bool short __b) {
3286*bed243d3SAndroid Build Coastguard Worker int __cc;
3287*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__b,
3288*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__a, &__cc);
3289*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3290*bed243d3SAndroid Build Coastguard Worker }
3291*bed243d3SAndroid Build Coastguard Worker
3292*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a,__vector signed int __b)3293*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector signed int __a, __vector signed int __b) {
3294*bed243d3SAndroid Build Coastguard Worker int __cc;
3295*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, __a, &__cc);
3296*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3297*bed243d3SAndroid Build Coastguard Worker }
3298*bed243d3SAndroid Build Coastguard Worker
3299*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3300*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a,__vector __bool int __b)3301*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector signed int __a, __vector __bool int __b) {
3302*bed243d3SAndroid Build Coastguard Worker int __cc;
3303*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
3304*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3305*bed243d3SAndroid Build Coastguard Worker }
3306*bed243d3SAndroid Build Coastguard Worker
3307*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3308*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector signed int __b)3309*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector __bool int __a, __vector signed int __b) {
3310*bed243d3SAndroid Build Coastguard Worker int __cc;
3311*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
3312*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3313*bed243d3SAndroid Build Coastguard Worker }
3314*bed243d3SAndroid Build Coastguard Worker
3315*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a,__vector unsigned int __b)3316*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {
3317*bed243d3SAndroid Build Coastguard Worker int __cc;
3318*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, __a, &__cc);
3319*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3320*bed243d3SAndroid Build Coastguard Worker }
3321*bed243d3SAndroid Build Coastguard Worker
3322*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3323*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a,__vector __bool int __b)3324*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {
3325*bed243d3SAndroid Build Coastguard Worker int __cc;
3326*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
3327*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3328*bed243d3SAndroid Build Coastguard Worker }
3329*bed243d3SAndroid Build Coastguard Worker
3330*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3331*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector unsigned int __b)3332*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {
3333*bed243d3SAndroid Build Coastguard Worker int __cc;
3334*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
3335*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3336*bed243d3SAndroid Build Coastguard Worker }
3337*bed243d3SAndroid Build Coastguard Worker
3338*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3339*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector __bool int __b)3340*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector __bool int __a, __vector __bool int __b) {
3341*bed243d3SAndroid Build Coastguard Worker int __cc;
3342*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__b,
3343*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__a, &__cc);
3344*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3345*bed243d3SAndroid Build Coastguard Worker }
3346*bed243d3SAndroid Build Coastguard Worker
3347*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a,__vector signed long long __b)3348*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector signed long long __a, __vector signed long long __b) {
3349*bed243d3SAndroid Build Coastguard Worker int __cc;
3350*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, __a, &__cc);
3351*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3352*bed243d3SAndroid Build Coastguard Worker }
3353*bed243d3SAndroid Build Coastguard Worker
3354*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3355*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a,__vector __bool long long __b)3356*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {
3357*bed243d3SAndroid Build Coastguard Worker int __cc;
3358*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
3359*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3360*bed243d3SAndroid Build Coastguard Worker }
3361*bed243d3SAndroid Build Coastguard Worker
3362*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3363*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector signed long long __b)3364*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {
3365*bed243d3SAndroid Build Coastguard Worker int __cc;
3366*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
3367*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3368*bed243d3SAndroid Build Coastguard Worker }
3369*bed243d3SAndroid Build Coastguard Worker
3370*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a,__vector unsigned long long __b)3371*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
3372*bed243d3SAndroid Build Coastguard Worker int __cc;
3373*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, __a, &__cc);
3374*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3375*bed243d3SAndroid Build Coastguard Worker }
3376*bed243d3SAndroid Build Coastguard Worker
3377*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3378*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a,__vector __bool long long __b)3379*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {
3380*bed243d3SAndroid Build Coastguard Worker int __cc;
3381*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
3382*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3383*bed243d3SAndroid Build Coastguard Worker }
3384*bed243d3SAndroid Build Coastguard Worker
3385*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3386*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector unsigned long long __b)3387*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {
3388*bed243d3SAndroid Build Coastguard Worker int __cc;
3389*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
3390*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3391*bed243d3SAndroid Build Coastguard Worker }
3392*bed243d3SAndroid Build Coastguard Worker
3393*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3394*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector __bool long long __b)3395*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
3396*bed243d3SAndroid Build Coastguard Worker int __cc;
3397*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__b,
3398*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__a, &__cc);
3399*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3400*bed243d3SAndroid Build Coastguard Worker }
3401*bed243d3SAndroid Build Coastguard Worker
3402*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
3403*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector float __a,__vector float __b)3404*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector float __a, __vector float __b) {
3405*bed243d3SAndroid Build Coastguard Worker int __cc;
3406*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchesbs(__a, __b, &__cc);
3407*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3408*bed243d3SAndroid Build Coastguard Worker }
3409*bed243d3SAndroid Build Coastguard Worker #endif
3410*bed243d3SAndroid Build Coastguard Worker
3411*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ge(__vector double __a,__vector double __b)3412*bed243d3SAndroid Build Coastguard Worker vec_all_ge(__vector double __a, __vector double __b) {
3413*bed243d3SAndroid Build Coastguard Worker int __cc;
3414*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__a, __b, &__cc);
3415*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3416*bed243d3SAndroid Build Coastguard Worker }
3417*bed243d3SAndroid Build Coastguard Worker
3418*bed243d3SAndroid Build Coastguard Worker /*-- vec_all_gt -------------------------------------------------------------*/
3419*bed243d3SAndroid Build Coastguard Worker
3420*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a,__vector signed char __b)3421*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector signed char __a, __vector signed char __b) {
3422*bed243d3SAndroid Build Coastguard Worker int __cc;
3423*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, __b, &__cc);
3424*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3425*bed243d3SAndroid Build Coastguard Worker }
3426*bed243d3SAndroid Build Coastguard Worker
3427*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3428*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a,__vector __bool char __b)3429*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector signed char __a, __vector __bool char __b) {
3430*bed243d3SAndroid Build Coastguard Worker int __cc;
3431*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3432*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3433*bed243d3SAndroid Build Coastguard Worker }
3434*bed243d3SAndroid Build Coastguard Worker
3435*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3436*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector signed char __b)3437*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector __bool char __a, __vector signed char __b) {
3438*bed243d3SAndroid Build Coastguard Worker int __cc;
3439*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3440*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3441*bed243d3SAndroid Build Coastguard Worker }
3442*bed243d3SAndroid Build Coastguard Worker
3443*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a,__vector unsigned char __b)3444*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {
3445*bed243d3SAndroid Build Coastguard Worker int __cc;
3446*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, __b, &__cc);
3447*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3448*bed243d3SAndroid Build Coastguard Worker }
3449*bed243d3SAndroid Build Coastguard Worker
3450*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3451*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a,__vector __bool char __b)3452*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {
3453*bed243d3SAndroid Build Coastguard Worker int __cc;
3454*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3455*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3456*bed243d3SAndroid Build Coastguard Worker }
3457*bed243d3SAndroid Build Coastguard Worker
3458*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3459*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector unsigned char __b)3460*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {
3461*bed243d3SAndroid Build Coastguard Worker int __cc;
3462*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3463*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3464*bed243d3SAndroid Build Coastguard Worker }
3465*bed243d3SAndroid Build Coastguard Worker
3466*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3467*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector __bool char __b)3468*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector __bool char __a, __vector __bool char __b) {
3469*bed243d3SAndroid Build Coastguard Worker int __cc;
3470*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__a,
3471*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
3472*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3473*bed243d3SAndroid Build Coastguard Worker }
3474*bed243d3SAndroid Build Coastguard Worker
3475*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a,__vector signed short __b)3476*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector signed short __a, __vector signed short __b) {
3477*bed243d3SAndroid Build Coastguard Worker int __cc;
3478*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, __b, &__cc);
3479*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3480*bed243d3SAndroid Build Coastguard Worker }
3481*bed243d3SAndroid Build Coastguard Worker
3482*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3483*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a,__vector __bool short __b)3484*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector signed short __a, __vector __bool short __b) {
3485*bed243d3SAndroid Build Coastguard Worker int __cc;
3486*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3487*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3488*bed243d3SAndroid Build Coastguard Worker }
3489*bed243d3SAndroid Build Coastguard Worker
3490*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3491*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector signed short __b)3492*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector __bool short __a, __vector signed short __b) {
3493*bed243d3SAndroid Build Coastguard Worker int __cc;
3494*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3495*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3496*bed243d3SAndroid Build Coastguard Worker }
3497*bed243d3SAndroid Build Coastguard Worker
3498*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a,__vector unsigned short __b)3499*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {
3500*bed243d3SAndroid Build Coastguard Worker int __cc;
3501*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, __b, &__cc);
3502*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3503*bed243d3SAndroid Build Coastguard Worker }
3504*bed243d3SAndroid Build Coastguard Worker
3505*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3506*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a,__vector __bool short __b)3507*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {
3508*bed243d3SAndroid Build Coastguard Worker int __cc;
3509*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3510*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3511*bed243d3SAndroid Build Coastguard Worker }
3512*bed243d3SAndroid Build Coastguard Worker
3513*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3514*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector unsigned short __b)3515*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {
3516*bed243d3SAndroid Build Coastguard Worker int __cc;
3517*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3518*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3519*bed243d3SAndroid Build Coastguard Worker }
3520*bed243d3SAndroid Build Coastguard Worker
3521*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3522*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector __bool short __b)3523*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector __bool short __a, __vector __bool short __b) {
3524*bed243d3SAndroid Build Coastguard Worker int __cc;
3525*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__a,
3526*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
3527*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3528*bed243d3SAndroid Build Coastguard Worker }
3529*bed243d3SAndroid Build Coastguard Worker
3530*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a,__vector signed int __b)3531*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector signed int __a, __vector signed int __b) {
3532*bed243d3SAndroid Build Coastguard Worker int __cc;
3533*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, __b, &__cc);
3534*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3535*bed243d3SAndroid Build Coastguard Worker }
3536*bed243d3SAndroid Build Coastguard Worker
3537*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3538*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a,__vector __bool int __b)3539*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector signed int __a, __vector __bool int __b) {
3540*bed243d3SAndroid Build Coastguard Worker int __cc;
3541*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3542*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3543*bed243d3SAndroid Build Coastguard Worker }
3544*bed243d3SAndroid Build Coastguard Worker
3545*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3546*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector signed int __b)3547*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector __bool int __a, __vector signed int __b) {
3548*bed243d3SAndroid Build Coastguard Worker int __cc;
3549*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3550*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3551*bed243d3SAndroid Build Coastguard Worker }
3552*bed243d3SAndroid Build Coastguard Worker
3553*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a,__vector unsigned int __b)3554*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {
3555*bed243d3SAndroid Build Coastguard Worker int __cc;
3556*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, __b, &__cc);
3557*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3558*bed243d3SAndroid Build Coastguard Worker }
3559*bed243d3SAndroid Build Coastguard Worker
3560*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3561*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a,__vector __bool int __b)3562*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {
3563*bed243d3SAndroid Build Coastguard Worker int __cc;
3564*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3565*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3566*bed243d3SAndroid Build Coastguard Worker }
3567*bed243d3SAndroid Build Coastguard Worker
3568*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3569*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector unsigned int __b)3570*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {
3571*bed243d3SAndroid Build Coastguard Worker int __cc;
3572*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3573*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3574*bed243d3SAndroid Build Coastguard Worker }
3575*bed243d3SAndroid Build Coastguard Worker
3576*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3577*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector __bool int __b)3578*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector __bool int __a, __vector __bool int __b) {
3579*bed243d3SAndroid Build Coastguard Worker int __cc;
3580*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__a,
3581*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
3582*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3583*bed243d3SAndroid Build Coastguard Worker }
3584*bed243d3SAndroid Build Coastguard Worker
3585*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a,__vector signed long long __b)3586*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector signed long long __a, __vector signed long long __b) {
3587*bed243d3SAndroid Build Coastguard Worker int __cc;
3588*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, __b, &__cc);
3589*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3590*bed243d3SAndroid Build Coastguard Worker }
3591*bed243d3SAndroid Build Coastguard Worker
3592*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3593*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a,__vector __bool long long __b)3594*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {
3595*bed243d3SAndroid Build Coastguard Worker int __cc;
3596*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3597*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3598*bed243d3SAndroid Build Coastguard Worker }
3599*bed243d3SAndroid Build Coastguard Worker
3600*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3601*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector signed long long __b)3602*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {
3603*bed243d3SAndroid Build Coastguard Worker int __cc;
3604*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3605*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3606*bed243d3SAndroid Build Coastguard Worker }
3607*bed243d3SAndroid Build Coastguard Worker
3608*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a,__vector unsigned long long __b)3609*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
3610*bed243d3SAndroid Build Coastguard Worker int __cc;
3611*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, __b, &__cc);
3612*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3613*bed243d3SAndroid Build Coastguard Worker }
3614*bed243d3SAndroid Build Coastguard Worker
3615*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3616*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a,__vector __bool long long __b)3617*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {
3618*bed243d3SAndroid Build Coastguard Worker int __cc;
3619*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3620*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3621*bed243d3SAndroid Build Coastguard Worker }
3622*bed243d3SAndroid Build Coastguard Worker
3623*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3624*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector unsigned long long __b)3625*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {
3626*bed243d3SAndroid Build Coastguard Worker int __cc;
3627*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3628*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3629*bed243d3SAndroid Build Coastguard Worker }
3630*bed243d3SAndroid Build Coastguard Worker
3631*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3632*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector __bool long long __b)3633*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
3634*bed243d3SAndroid Build Coastguard Worker int __cc;
3635*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__a,
3636*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
3637*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3638*bed243d3SAndroid Build Coastguard Worker }
3639*bed243d3SAndroid Build Coastguard Worker
3640*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
3641*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector float __a,__vector float __b)3642*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector float __a, __vector float __b) {
3643*bed243d3SAndroid Build Coastguard Worker int __cc;
3644*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchsbs(__a, __b, &__cc);
3645*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3646*bed243d3SAndroid Build Coastguard Worker }
3647*bed243d3SAndroid Build Coastguard Worker #endif
3648*bed243d3SAndroid Build Coastguard Worker
3649*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_gt(__vector double __a,__vector double __b)3650*bed243d3SAndroid Build Coastguard Worker vec_all_gt(__vector double __a, __vector double __b) {
3651*bed243d3SAndroid Build Coastguard Worker int __cc;
3652*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__a, __b, &__cc);
3653*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3654*bed243d3SAndroid Build Coastguard Worker }
3655*bed243d3SAndroid Build Coastguard Worker
3656*bed243d3SAndroid Build Coastguard Worker /*-- vec_all_le -------------------------------------------------------------*/
3657*bed243d3SAndroid Build Coastguard Worker
3658*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a,__vector signed char __b)3659*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector signed char __a, __vector signed char __b) {
3660*bed243d3SAndroid Build Coastguard Worker int __cc;
3661*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, __b, &__cc);
3662*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3663*bed243d3SAndroid Build Coastguard Worker }
3664*bed243d3SAndroid Build Coastguard Worker
3665*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3666*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a,__vector __bool char __b)3667*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector signed char __a, __vector __bool char __b) {
3668*bed243d3SAndroid Build Coastguard Worker int __cc;
3669*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3670*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3671*bed243d3SAndroid Build Coastguard Worker }
3672*bed243d3SAndroid Build Coastguard Worker
3673*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3674*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector signed char __b)3675*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector __bool char __a, __vector signed char __b) {
3676*bed243d3SAndroid Build Coastguard Worker int __cc;
3677*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3678*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3679*bed243d3SAndroid Build Coastguard Worker }
3680*bed243d3SAndroid Build Coastguard Worker
3681*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a,__vector unsigned char __b)3682*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {
3683*bed243d3SAndroid Build Coastguard Worker int __cc;
3684*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, __b, &__cc);
3685*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3686*bed243d3SAndroid Build Coastguard Worker }
3687*bed243d3SAndroid Build Coastguard Worker
3688*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3689*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a,__vector __bool char __b)3690*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector unsigned char __a, __vector __bool char __b) {
3691*bed243d3SAndroid Build Coastguard Worker int __cc;
3692*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3693*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3694*bed243d3SAndroid Build Coastguard Worker }
3695*bed243d3SAndroid Build Coastguard Worker
3696*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3697*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector unsigned char __b)3698*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector __bool char __a, __vector unsigned char __b) {
3699*bed243d3SAndroid Build Coastguard Worker int __cc;
3700*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3701*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3702*bed243d3SAndroid Build Coastguard Worker }
3703*bed243d3SAndroid Build Coastguard Worker
3704*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3705*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector __bool char __b)3706*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector __bool char __a, __vector __bool char __b) {
3707*bed243d3SAndroid Build Coastguard Worker int __cc;
3708*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__a,
3709*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
3710*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3711*bed243d3SAndroid Build Coastguard Worker }
3712*bed243d3SAndroid Build Coastguard Worker
3713*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a,__vector signed short __b)3714*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector signed short __a, __vector signed short __b) {
3715*bed243d3SAndroid Build Coastguard Worker int __cc;
3716*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, __b, &__cc);
3717*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3718*bed243d3SAndroid Build Coastguard Worker }
3719*bed243d3SAndroid Build Coastguard Worker
3720*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3721*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a,__vector __bool short __b)3722*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector signed short __a, __vector __bool short __b) {
3723*bed243d3SAndroid Build Coastguard Worker int __cc;
3724*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3725*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3726*bed243d3SAndroid Build Coastguard Worker }
3727*bed243d3SAndroid Build Coastguard Worker
3728*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3729*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector signed short __b)3730*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector __bool short __a, __vector signed short __b) {
3731*bed243d3SAndroid Build Coastguard Worker int __cc;
3732*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3733*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3734*bed243d3SAndroid Build Coastguard Worker }
3735*bed243d3SAndroid Build Coastguard Worker
3736*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a,__vector unsigned short __b)3737*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {
3738*bed243d3SAndroid Build Coastguard Worker int __cc;
3739*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, __b, &__cc);
3740*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3741*bed243d3SAndroid Build Coastguard Worker }
3742*bed243d3SAndroid Build Coastguard Worker
3743*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3744*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a,__vector __bool short __b)3745*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector unsigned short __a, __vector __bool short __b) {
3746*bed243d3SAndroid Build Coastguard Worker int __cc;
3747*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3748*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3749*bed243d3SAndroid Build Coastguard Worker }
3750*bed243d3SAndroid Build Coastguard Worker
3751*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3752*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector unsigned short __b)3753*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector __bool short __a, __vector unsigned short __b) {
3754*bed243d3SAndroid Build Coastguard Worker int __cc;
3755*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3756*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3757*bed243d3SAndroid Build Coastguard Worker }
3758*bed243d3SAndroid Build Coastguard Worker
3759*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3760*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector __bool short __b)3761*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector __bool short __a, __vector __bool short __b) {
3762*bed243d3SAndroid Build Coastguard Worker int __cc;
3763*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__a,
3764*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
3765*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3766*bed243d3SAndroid Build Coastguard Worker }
3767*bed243d3SAndroid Build Coastguard Worker
3768*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a,__vector signed int __b)3769*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector signed int __a, __vector signed int __b) {
3770*bed243d3SAndroid Build Coastguard Worker int __cc;
3771*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, __b, &__cc);
3772*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3773*bed243d3SAndroid Build Coastguard Worker }
3774*bed243d3SAndroid Build Coastguard Worker
3775*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3776*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a,__vector __bool int __b)3777*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector signed int __a, __vector __bool int __b) {
3778*bed243d3SAndroid Build Coastguard Worker int __cc;
3779*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3780*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3781*bed243d3SAndroid Build Coastguard Worker }
3782*bed243d3SAndroid Build Coastguard Worker
3783*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3784*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector signed int __b)3785*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector __bool int __a, __vector signed int __b) {
3786*bed243d3SAndroid Build Coastguard Worker int __cc;
3787*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3788*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3789*bed243d3SAndroid Build Coastguard Worker }
3790*bed243d3SAndroid Build Coastguard Worker
3791*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a,__vector unsigned int __b)3792*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {
3793*bed243d3SAndroid Build Coastguard Worker int __cc;
3794*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, __b, &__cc);
3795*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3796*bed243d3SAndroid Build Coastguard Worker }
3797*bed243d3SAndroid Build Coastguard Worker
3798*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3799*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a,__vector __bool int __b)3800*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector unsigned int __a, __vector __bool int __b) {
3801*bed243d3SAndroid Build Coastguard Worker int __cc;
3802*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3803*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3804*bed243d3SAndroid Build Coastguard Worker }
3805*bed243d3SAndroid Build Coastguard Worker
3806*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3807*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector unsigned int __b)3808*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector __bool int __a, __vector unsigned int __b) {
3809*bed243d3SAndroid Build Coastguard Worker int __cc;
3810*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3811*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3812*bed243d3SAndroid Build Coastguard Worker }
3813*bed243d3SAndroid Build Coastguard Worker
3814*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3815*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector __bool int __b)3816*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector __bool int __a, __vector __bool int __b) {
3817*bed243d3SAndroid Build Coastguard Worker int __cc;
3818*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__a,
3819*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
3820*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3821*bed243d3SAndroid Build Coastguard Worker }
3822*bed243d3SAndroid Build Coastguard Worker
3823*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a,__vector signed long long __b)3824*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector signed long long __a, __vector signed long long __b) {
3825*bed243d3SAndroid Build Coastguard Worker int __cc;
3826*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, __b, &__cc);
3827*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3828*bed243d3SAndroid Build Coastguard Worker }
3829*bed243d3SAndroid Build Coastguard Worker
3830*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3831*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a,__vector __bool long long __b)3832*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector signed long long __a, __vector __bool long long __b) {
3833*bed243d3SAndroid Build Coastguard Worker int __cc;
3834*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3835*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3836*bed243d3SAndroid Build Coastguard Worker }
3837*bed243d3SAndroid Build Coastguard Worker
3838*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3839*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector signed long long __b)3840*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector __bool long long __a, __vector signed long long __b) {
3841*bed243d3SAndroid Build Coastguard Worker int __cc;
3842*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3843*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3844*bed243d3SAndroid Build Coastguard Worker }
3845*bed243d3SAndroid Build Coastguard Worker
3846*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a,__vector unsigned long long __b)3847*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {
3848*bed243d3SAndroid Build Coastguard Worker int __cc;
3849*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, __b, &__cc);
3850*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3851*bed243d3SAndroid Build Coastguard Worker }
3852*bed243d3SAndroid Build Coastguard Worker
3853*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3854*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a,__vector __bool long long __b)3855*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {
3856*bed243d3SAndroid Build Coastguard Worker int __cc;
3857*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3858*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3859*bed243d3SAndroid Build Coastguard Worker }
3860*bed243d3SAndroid Build Coastguard Worker
3861*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3862*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector unsigned long long __b)3863*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {
3864*bed243d3SAndroid Build Coastguard Worker int __cc;
3865*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3866*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3867*bed243d3SAndroid Build Coastguard Worker }
3868*bed243d3SAndroid Build Coastguard Worker
3869*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3870*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector __bool long long __b)3871*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
3872*bed243d3SAndroid Build Coastguard Worker int __cc;
3873*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__a,
3874*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
3875*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
3876*bed243d3SAndroid Build Coastguard Worker }
3877*bed243d3SAndroid Build Coastguard Worker
3878*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
3879*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector float __a,__vector float __b)3880*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector float __a, __vector float __b) {
3881*bed243d3SAndroid Build Coastguard Worker int __cc;
3882*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchesbs(__b, __a, &__cc);
3883*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3884*bed243d3SAndroid Build Coastguard Worker }
3885*bed243d3SAndroid Build Coastguard Worker #endif
3886*bed243d3SAndroid Build Coastguard Worker
3887*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_le(__vector double __a,__vector double __b)3888*bed243d3SAndroid Build Coastguard Worker vec_all_le(__vector double __a, __vector double __b) {
3889*bed243d3SAndroid Build Coastguard Worker int __cc;
3890*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__b, __a, &__cc);
3891*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3892*bed243d3SAndroid Build Coastguard Worker }
3893*bed243d3SAndroid Build Coastguard Worker
3894*bed243d3SAndroid Build Coastguard Worker /*-- vec_all_lt -------------------------------------------------------------*/
3895*bed243d3SAndroid Build Coastguard Worker
3896*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a,__vector signed char __b)3897*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector signed char __a, __vector signed char __b) {
3898*bed243d3SAndroid Build Coastguard Worker int __cc;
3899*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, __a, &__cc);
3900*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3901*bed243d3SAndroid Build Coastguard Worker }
3902*bed243d3SAndroid Build Coastguard Worker
3903*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3904*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a,__vector __bool char __b)3905*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector signed char __a, __vector __bool char __b) {
3906*bed243d3SAndroid Build Coastguard Worker int __cc;
3907*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3908*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3909*bed243d3SAndroid Build Coastguard Worker }
3910*bed243d3SAndroid Build Coastguard Worker
3911*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3912*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector signed char __b)3913*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector __bool char __a, __vector signed char __b) {
3914*bed243d3SAndroid Build Coastguard Worker int __cc;
3915*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3916*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3917*bed243d3SAndroid Build Coastguard Worker }
3918*bed243d3SAndroid Build Coastguard Worker
3919*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a,__vector unsigned char __b)3920*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {
3921*bed243d3SAndroid Build Coastguard Worker int __cc;
3922*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, __a, &__cc);
3923*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3924*bed243d3SAndroid Build Coastguard Worker }
3925*bed243d3SAndroid Build Coastguard Worker
3926*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3927*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a,__vector __bool char __b)3928*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {
3929*bed243d3SAndroid Build Coastguard Worker int __cc;
3930*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3931*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3932*bed243d3SAndroid Build Coastguard Worker }
3933*bed243d3SAndroid Build Coastguard Worker
3934*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3935*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector unsigned char __b)3936*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {
3937*bed243d3SAndroid Build Coastguard Worker int __cc;
3938*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3939*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3940*bed243d3SAndroid Build Coastguard Worker }
3941*bed243d3SAndroid Build Coastguard Worker
3942*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3943*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector __bool char __b)3944*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector __bool char __a, __vector __bool char __b) {
3945*bed243d3SAndroid Build Coastguard Worker int __cc;
3946*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__b,
3947*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, &__cc);
3948*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3949*bed243d3SAndroid Build Coastguard Worker }
3950*bed243d3SAndroid Build Coastguard Worker
3951*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a,__vector signed short __b)3952*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector signed short __a, __vector signed short __b) {
3953*bed243d3SAndroid Build Coastguard Worker int __cc;
3954*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, __a, &__cc);
3955*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3956*bed243d3SAndroid Build Coastguard Worker }
3957*bed243d3SAndroid Build Coastguard Worker
3958*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3959*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a,__vector __bool short __b)3960*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector signed short __a, __vector __bool short __b) {
3961*bed243d3SAndroid Build Coastguard Worker int __cc;
3962*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3963*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3964*bed243d3SAndroid Build Coastguard Worker }
3965*bed243d3SAndroid Build Coastguard Worker
3966*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3967*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector signed short __b)3968*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector __bool short __a, __vector signed short __b) {
3969*bed243d3SAndroid Build Coastguard Worker int __cc;
3970*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3971*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3972*bed243d3SAndroid Build Coastguard Worker }
3973*bed243d3SAndroid Build Coastguard Worker
3974*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a,__vector unsigned short __b)3975*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {
3976*bed243d3SAndroid Build Coastguard Worker int __cc;
3977*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, __a, &__cc);
3978*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3979*bed243d3SAndroid Build Coastguard Worker }
3980*bed243d3SAndroid Build Coastguard Worker
3981*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3982*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a,__vector __bool short __b)3983*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {
3984*bed243d3SAndroid Build Coastguard Worker int __cc;
3985*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3986*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3987*bed243d3SAndroid Build Coastguard Worker }
3988*bed243d3SAndroid Build Coastguard Worker
3989*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3990*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector unsigned short __b)3991*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {
3992*bed243d3SAndroid Build Coastguard Worker int __cc;
3993*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3994*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
3995*bed243d3SAndroid Build Coastguard Worker }
3996*bed243d3SAndroid Build Coastguard Worker
3997*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
3998*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector __bool short __b)3999*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector __bool short __a, __vector __bool short __b) {
4000*bed243d3SAndroid Build Coastguard Worker int __cc;
4001*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__b,
4002*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__a, &__cc);
4003*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4004*bed243d3SAndroid Build Coastguard Worker }
4005*bed243d3SAndroid Build Coastguard Worker
4006*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a,__vector signed int __b)4007*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector signed int __a, __vector signed int __b) {
4008*bed243d3SAndroid Build Coastguard Worker int __cc;
4009*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, __a, &__cc);
4010*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4011*bed243d3SAndroid Build Coastguard Worker }
4012*bed243d3SAndroid Build Coastguard Worker
4013*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4014*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a,__vector __bool int __b)4015*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector signed int __a, __vector __bool int __b) {
4016*bed243d3SAndroid Build Coastguard Worker int __cc;
4017*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
4018*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4019*bed243d3SAndroid Build Coastguard Worker }
4020*bed243d3SAndroid Build Coastguard Worker
4021*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4022*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector signed int __b)4023*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector __bool int __a, __vector signed int __b) {
4024*bed243d3SAndroid Build Coastguard Worker int __cc;
4025*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
4026*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4027*bed243d3SAndroid Build Coastguard Worker }
4028*bed243d3SAndroid Build Coastguard Worker
4029*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a,__vector unsigned int __b)4030*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {
4031*bed243d3SAndroid Build Coastguard Worker int __cc;
4032*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, __a, &__cc);
4033*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4034*bed243d3SAndroid Build Coastguard Worker }
4035*bed243d3SAndroid Build Coastguard Worker
4036*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4037*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a,__vector __bool int __b)4038*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {
4039*bed243d3SAndroid Build Coastguard Worker int __cc;
4040*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
4041*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4042*bed243d3SAndroid Build Coastguard Worker }
4043*bed243d3SAndroid Build Coastguard Worker
4044*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4045*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector unsigned int __b)4046*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {
4047*bed243d3SAndroid Build Coastguard Worker int __cc;
4048*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
4049*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4050*bed243d3SAndroid Build Coastguard Worker }
4051*bed243d3SAndroid Build Coastguard Worker
4052*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4053*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector __bool int __b)4054*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector __bool int __a, __vector __bool int __b) {
4055*bed243d3SAndroid Build Coastguard Worker int __cc;
4056*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__b,
4057*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__a, &__cc);
4058*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4059*bed243d3SAndroid Build Coastguard Worker }
4060*bed243d3SAndroid Build Coastguard Worker
4061*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a,__vector signed long long __b)4062*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector signed long long __a, __vector signed long long __b) {
4063*bed243d3SAndroid Build Coastguard Worker int __cc;
4064*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, __a, &__cc);
4065*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4066*bed243d3SAndroid Build Coastguard Worker }
4067*bed243d3SAndroid Build Coastguard Worker
4068*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4069*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a,__vector __bool long long __b)4070*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {
4071*bed243d3SAndroid Build Coastguard Worker int __cc;
4072*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
4073*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4074*bed243d3SAndroid Build Coastguard Worker }
4075*bed243d3SAndroid Build Coastguard Worker
4076*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4077*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector signed long long __b)4078*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {
4079*bed243d3SAndroid Build Coastguard Worker int __cc;
4080*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
4081*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4082*bed243d3SAndroid Build Coastguard Worker }
4083*bed243d3SAndroid Build Coastguard Worker
4084*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a,__vector unsigned long long __b)4085*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
4086*bed243d3SAndroid Build Coastguard Worker int __cc;
4087*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, __a, &__cc);
4088*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4089*bed243d3SAndroid Build Coastguard Worker }
4090*bed243d3SAndroid Build Coastguard Worker
4091*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4092*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a,__vector __bool long long __b)4093*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {
4094*bed243d3SAndroid Build Coastguard Worker int __cc;
4095*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4096*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4097*bed243d3SAndroid Build Coastguard Worker }
4098*bed243d3SAndroid Build Coastguard Worker
4099*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4100*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector unsigned long long __b)4101*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {
4102*bed243d3SAndroid Build Coastguard Worker int __cc;
4103*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4104*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4105*bed243d3SAndroid Build Coastguard Worker }
4106*bed243d3SAndroid Build Coastguard Worker
4107*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4108*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector __bool long long __b)4109*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
4110*bed243d3SAndroid Build Coastguard Worker int __cc;
4111*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__b,
4112*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__a, &__cc);
4113*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4114*bed243d3SAndroid Build Coastguard Worker }
4115*bed243d3SAndroid Build Coastguard Worker
4116*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
4117*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector float __a,__vector float __b)4118*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector float __a, __vector float __b) {
4119*bed243d3SAndroid Build Coastguard Worker int __cc;
4120*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchsbs(__b, __a, &__cc);
4121*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4122*bed243d3SAndroid Build Coastguard Worker }
4123*bed243d3SAndroid Build Coastguard Worker #endif
4124*bed243d3SAndroid Build Coastguard Worker
4125*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_lt(__vector double __a,__vector double __b)4126*bed243d3SAndroid Build Coastguard Worker vec_all_lt(__vector double __a, __vector double __b) {
4127*bed243d3SAndroid Build Coastguard Worker int __cc;
4128*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__b, __a, &__cc);
4129*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4130*bed243d3SAndroid Build Coastguard Worker }
4131*bed243d3SAndroid Build Coastguard Worker
4132*bed243d3SAndroid Build Coastguard Worker /*-- vec_all_nge ------------------------------------------------------------*/
4133*bed243d3SAndroid Build Coastguard Worker
4134*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
4135*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_nge(__vector float __a,__vector float __b)4136*bed243d3SAndroid Build Coastguard Worker vec_all_nge(__vector float __a, __vector float __b) {
4137*bed243d3SAndroid Build Coastguard Worker int __cc;
4138*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchesbs(__a, __b, &__cc);
4139*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
4140*bed243d3SAndroid Build Coastguard Worker }
4141*bed243d3SAndroid Build Coastguard Worker #endif
4142*bed243d3SAndroid Build Coastguard Worker
4143*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_nge(__vector double __a,__vector double __b)4144*bed243d3SAndroid Build Coastguard Worker vec_all_nge(__vector double __a, __vector double __b) {
4145*bed243d3SAndroid Build Coastguard Worker int __cc;
4146*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__a, __b, &__cc);
4147*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
4148*bed243d3SAndroid Build Coastguard Worker }
4149*bed243d3SAndroid Build Coastguard Worker
4150*bed243d3SAndroid Build Coastguard Worker /*-- vec_all_ngt ------------------------------------------------------------*/
4151*bed243d3SAndroid Build Coastguard Worker
4152*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
4153*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ngt(__vector float __a,__vector float __b)4154*bed243d3SAndroid Build Coastguard Worker vec_all_ngt(__vector float __a, __vector float __b) {
4155*bed243d3SAndroid Build Coastguard Worker int __cc;
4156*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchsbs(__a, __b, &__cc);
4157*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
4158*bed243d3SAndroid Build Coastguard Worker }
4159*bed243d3SAndroid Build Coastguard Worker #endif
4160*bed243d3SAndroid Build Coastguard Worker
4161*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_ngt(__vector double __a,__vector double __b)4162*bed243d3SAndroid Build Coastguard Worker vec_all_ngt(__vector double __a, __vector double __b) {
4163*bed243d3SAndroid Build Coastguard Worker int __cc;
4164*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__a, __b, &__cc);
4165*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
4166*bed243d3SAndroid Build Coastguard Worker }
4167*bed243d3SAndroid Build Coastguard Worker
4168*bed243d3SAndroid Build Coastguard Worker /*-- vec_all_nle ------------------------------------------------------------*/
4169*bed243d3SAndroid Build Coastguard Worker
4170*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
4171*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_nle(__vector float __a,__vector float __b)4172*bed243d3SAndroid Build Coastguard Worker vec_all_nle(__vector float __a, __vector float __b) {
4173*bed243d3SAndroid Build Coastguard Worker int __cc;
4174*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchesbs(__b, __a, &__cc);
4175*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
4176*bed243d3SAndroid Build Coastguard Worker }
4177*bed243d3SAndroid Build Coastguard Worker #endif
4178*bed243d3SAndroid Build Coastguard Worker
4179*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_nle(__vector double __a,__vector double __b)4180*bed243d3SAndroid Build Coastguard Worker vec_all_nle(__vector double __a, __vector double __b) {
4181*bed243d3SAndroid Build Coastguard Worker int __cc;
4182*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__b, __a, &__cc);
4183*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
4184*bed243d3SAndroid Build Coastguard Worker }
4185*bed243d3SAndroid Build Coastguard Worker
4186*bed243d3SAndroid Build Coastguard Worker /*-- vec_all_nlt ------------------------------------------------------------*/
4187*bed243d3SAndroid Build Coastguard Worker
4188*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
4189*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_nlt(__vector float __a,__vector float __b)4190*bed243d3SAndroid Build Coastguard Worker vec_all_nlt(__vector float __a, __vector float __b) {
4191*bed243d3SAndroid Build Coastguard Worker int __cc;
4192*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchsbs(__b, __a, &__cc);
4193*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
4194*bed243d3SAndroid Build Coastguard Worker }
4195*bed243d3SAndroid Build Coastguard Worker #endif
4196*bed243d3SAndroid Build Coastguard Worker
4197*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_nlt(__vector double __a,__vector double __b)4198*bed243d3SAndroid Build Coastguard Worker vec_all_nlt(__vector double __a, __vector double __b) {
4199*bed243d3SAndroid Build Coastguard Worker int __cc;
4200*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__b, __a, &__cc);
4201*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
4202*bed243d3SAndroid Build Coastguard Worker }
4203*bed243d3SAndroid Build Coastguard Worker
4204*bed243d3SAndroid Build Coastguard Worker /*-- vec_all_nan ------------------------------------------------------------*/
4205*bed243d3SAndroid Build Coastguard Worker
4206*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
4207*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_nan(__vector float __a)4208*bed243d3SAndroid Build Coastguard Worker vec_all_nan(__vector float __a) {
4209*bed243d3SAndroid Build Coastguard Worker int __cc;
4210*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vftcisb(__a, 15, &__cc);
4211*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4212*bed243d3SAndroid Build Coastguard Worker }
4213*bed243d3SAndroid Build Coastguard Worker #endif
4214*bed243d3SAndroid Build Coastguard Worker
4215*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_nan(__vector double __a)4216*bed243d3SAndroid Build Coastguard Worker vec_all_nan(__vector double __a) {
4217*bed243d3SAndroid Build Coastguard Worker int __cc;
4218*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vftcidb(__a, 15, &__cc);
4219*bed243d3SAndroid Build Coastguard Worker return __cc == 0;
4220*bed243d3SAndroid Build Coastguard Worker }
4221*bed243d3SAndroid Build Coastguard Worker
4222*bed243d3SAndroid Build Coastguard Worker /*-- vec_all_numeric --------------------------------------------------------*/
4223*bed243d3SAndroid Build Coastguard Worker
4224*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
4225*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_numeric(__vector float __a)4226*bed243d3SAndroid Build Coastguard Worker vec_all_numeric(__vector float __a) {
4227*bed243d3SAndroid Build Coastguard Worker int __cc;
4228*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vftcisb(__a, 15, &__cc);
4229*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
4230*bed243d3SAndroid Build Coastguard Worker }
4231*bed243d3SAndroid Build Coastguard Worker #endif
4232*bed243d3SAndroid Build Coastguard Worker
4233*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_all_numeric(__vector double __a)4234*bed243d3SAndroid Build Coastguard Worker vec_all_numeric(__vector double __a) {
4235*bed243d3SAndroid Build Coastguard Worker int __cc;
4236*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vftcidb(__a, 15, &__cc);
4237*bed243d3SAndroid Build Coastguard Worker return __cc == 3;
4238*bed243d3SAndroid Build Coastguard Worker }
4239*bed243d3SAndroid Build Coastguard Worker
4240*bed243d3SAndroid Build Coastguard Worker /*-- vec_any_eq -------------------------------------------------------------*/
4241*bed243d3SAndroid Build Coastguard Worker
4242*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a,__vector signed char __b)4243*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector signed char __a, __vector signed char __b) {
4244*bed243d3SAndroid Build Coastguard Worker int __cc;
4245*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
4246*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
4247*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4248*bed243d3SAndroid Build Coastguard Worker }
4249*bed243d3SAndroid Build Coastguard Worker
4250*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4251*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a,__vector __bool char __b)4252*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector signed char __a, __vector __bool char __b) {
4253*bed243d3SAndroid Build Coastguard Worker int __cc;
4254*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
4255*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
4256*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4257*bed243d3SAndroid Build Coastguard Worker }
4258*bed243d3SAndroid Build Coastguard Worker
4259*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4260*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector signed char __b)4261*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector __bool char __a, __vector signed char __b) {
4262*bed243d3SAndroid Build Coastguard Worker int __cc;
4263*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
4264*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
4265*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4266*bed243d3SAndroid Build Coastguard Worker }
4267*bed243d3SAndroid Build Coastguard Worker
4268*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a,__vector unsigned char __b)4269*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
4270*bed243d3SAndroid Build Coastguard Worker int __cc;
4271*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, __b, &__cc);
4272*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4273*bed243d3SAndroid Build Coastguard Worker }
4274*bed243d3SAndroid Build Coastguard Worker
4275*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4276*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a,__vector __bool char __b)4277*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {
4278*bed243d3SAndroid Build Coastguard Worker int __cc;
4279*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
4280*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4281*bed243d3SAndroid Build Coastguard Worker }
4282*bed243d3SAndroid Build Coastguard Worker
4283*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4284*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector unsigned char __b)4285*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {
4286*bed243d3SAndroid Build Coastguard Worker int __cc;
4287*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
4288*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4289*bed243d3SAndroid Build Coastguard Worker }
4290*bed243d3SAndroid Build Coastguard Worker
4291*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector __bool char __b)4292*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector __bool char __a, __vector __bool char __b) {
4293*bed243d3SAndroid Build Coastguard Worker int __cc;
4294*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
4295*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
4296*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4297*bed243d3SAndroid Build Coastguard Worker }
4298*bed243d3SAndroid Build Coastguard Worker
4299*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a,__vector signed short __b)4300*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector signed short __a, __vector signed short __b) {
4301*bed243d3SAndroid Build Coastguard Worker int __cc;
4302*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
4303*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
4304*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4305*bed243d3SAndroid Build Coastguard Worker }
4306*bed243d3SAndroid Build Coastguard Worker
4307*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4308*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a,__vector __bool short __b)4309*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector signed short __a, __vector __bool short __b) {
4310*bed243d3SAndroid Build Coastguard Worker int __cc;
4311*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
4312*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
4313*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4314*bed243d3SAndroid Build Coastguard Worker }
4315*bed243d3SAndroid Build Coastguard Worker
4316*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4317*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector signed short __b)4318*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector __bool short __a, __vector signed short __b) {
4319*bed243d3SAndroid Build Coastguard Worker int __cc;
4320*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
4321*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
4322*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4323*bed243d3SAndroid Build Coastguard Worker }
4324*bed243d3SAndroid Build Coastguard Worker
4325*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a,__vector unsigned short __b)4326*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
4327*bed243d3SAndroid Build Coastguard Worker int __cc;
4328*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, __b, &__cc);
4329*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4330*bed243d3SAndroid Build Coastguard Worker }
4331*bed243d3SAndroid Build Coastguard Worker
4332*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4333*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a,__vector __bool short __b)4334*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {
4335*bed243d3SAndroid Build Coastguard Worker int __cc;
4336*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
4337*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4338*bed243d3SAndroid Build Coastguard Worker }
4339*bed243d3SAndroid Build Coastguard Worker
4340*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4341*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector unsigned short __b)4342*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {
4343*bed243d3SAndroid Build Coastguard Worker int __cc;
4344*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
4345*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4346*bed243d3SAndroid Build Coastguard Worker }
4347*bed243d3SAndroid Build Coastguard Worker
4348*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector __bool short __b)4349*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector __bool short __a, __vector __bool short __b) {
4350*bed243d3SAndroid Build Coastguard Worker int __cc;
4351*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
4352*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
4353*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4354*bed243d3SAndroid Build Coastguard Worker }
4355*bed243d3SAndroid Build Coastguard Worker
4356*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a,__vector signed int __b)4357*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector signed int __a, __vector signed int __b) {
4358*bed243d3SAndroid Build Coastguard Worker int __cc;
4359*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
4360*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
4361*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4362*bed243d3SAndroid Build Coastguard Worker }
4363*bed243d3SAndroid Build Coastguard Worker
4364*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4365*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a,__vector __bool int __b)4366*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector signed int __a, __vector __bool int __b) {
4367*bed243d3SAndroid Build Coastguard Worker int __cc;
4368*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
4369*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
4370*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4371*bed243d3SAndroid Build Coastguard Worker }
4372*bed243d3SAndroid Build Coastguard Worker
4373*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4374*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector signed int __b)4375*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector __bool int __a, __vector signed int __b) {
4376*bed243d3SAndroid Build Coastguard Worker int __cc;
4377*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
4378*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
4379*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4380*bed243d3SAndroid Build Coastguard Worker }
4381*bed243d3SAndroid Build Coastguard Worker
4382*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a,__vector unsigned int __b)4383*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
4384*bed243d3SAndroid Build Coastguard Worker int __cc;
4385*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, __b, &__cc);
4386*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4387*bed243d3SAndroid Build Coastguard Worker }
4388*bed243d3SAndroid Build Coastguard Worker
4389*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4390*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a,__vector __bool int __b)4391*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {
4392*bed243d3SAndroid Build Coastguard Worker int __cc;
4393*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
4394*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4395*bed243d3SAndroid Build Coastguard Worker }
4396*bed243d3SAndroid Build Coastguard Worker
4397*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4398*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector unsigned int __b)4399*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {
4400*bed243d3SAndroid Build Coastguard Worker int __cc;
4401*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
4402*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4403*bed243d3SAndroid Build Coastguard Worker }
4404*bed243d3SAndroid Build Coastguard Worker
4405*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector __bool int __b)4406*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector __bool int __a, __vector __bool int __b) {
4407*bed243d3SAndroid Build Coastguard Worker int __cc;
4408*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
4409*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
4410*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4411*bed243d3SAndroid Build Coastguard Worker }
4412*bed243d3SAndroid Build Coastguard Worker
4413*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a,__vector signed long long __b)4414*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector signed long long __a, __vector signed long long __b) {
4415*bed243d3SAndroid Build Coastguard Worker int __cc;
4416*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
4417*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
4418*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4419*bed243d3SAndroid Build Coastguard Worker }
4420*bed243d3SAndroid Build Coastguard Worker
4421*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4422*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a,__vector __bool long long __b)4423*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {
4424*bed243d3SAndroid Build Coastguard Worker int __cc;
4425*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
4426*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
4427*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4428*bed243d3SAndroid Build Coastguard Worker }
4429*bed243d3SAndroid Build Coastguard Worker
4430*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4431*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector signed long long __b)4432*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {
4433*bed243d3SAndroid Build Coastguard Worker int __cc;
4434*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
4435*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
4436*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4437*bed243d3SAndroid Build Coastguard Worker }
4438*bed243d3SAndroid Build Coastguard Worker
4439*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a,__vector unsigned long long __b)4440*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
4441*bed243d3SAndroid Build Coastguard Worker int __cc;
4442*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, __b, &__cc);
4443*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4444*bed243d3SAndroid Build Coastguard Worker }
4445*bed243d3SAndroid Build Coastguard Worker
4446*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4447*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a,__vector __bool long long __b)4448*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {
4449*bed243d3SAndroid Build Coastguard Worker int __cc;
4450*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
4451*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4452*bed243d3SAndroid Build Coastguard Worker }
4453*bed243d3SAndroid Build Coastguard Worker
4454*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4455*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector unsigned long long __b)4456*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {
4457*bed243d3SAndroid Build Coastguard Worker int __cc;
4458*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
4459*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4460*bed243d3SAndroid Build Coastguard Worker }
4461*bed243d3SAndroid Build Coastguard Worker
4462*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector __bool long long __b)4463*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
4464*bed243d3SAndroid Build Coastguard Worker int __cc;
4465*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
4466*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
4467*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4468*bed243d3SAndroid Build Coastguard Worker }
4469*bed243d3SAndroid Build Coastguard Worker
4470*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
4471*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector float __a,__vector float __b)4472*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector float __a, __vector float __b) {
4473*bed243d3SAndroid Build Coastguard Worker int __cc;
4474*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfcesbs(__a, __b, &__cc);
4475*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4476*bed243d3SAndroid Build Coastguard Worker }
4477*bed243d3SAndroid Build Coastguard Worker #endif
4478*bed243d3SAndroid Build Coastguard Worker
4479*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_eq(__vector double __a,__vector double __b)4480*bed243d3SAndroid Build Coastguard Worker vec_any_eq(__vector double __a, __vector double __b) {
4481*bed243d3SAndroid Build Coastguard Worker int __cc;
4482*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfcedbs(__a, __b, &__cc);
4483*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4484*bed243d3SAndroid Build Coastguard Worker }
4485*bed243d3SAndroid Build Coastguard Worker
4486*bed243d3SAndroid Build Coastguard Worker /*-- vec_any_ne -------------------------------------------------------------*/
4487*bed243d3SAndroid Build Coastguard Worker
4488*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a,__vector signed char __b)4489*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector signed char __a, __vector signed char __b) {
4490*bed243d3SAndroid Build Coastguard Worker int __cc;
4491*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
4492*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
4493*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4494*bed243d3SAndroid Build Coastguard Worker }
4495*bed243d3SAndroid Build Coastguard Worker
4496*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4497*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a,__vector __bool char __b)4498*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector signed char __a, __vector __bool char __b) {
4499*bed243d3SAndroid Build Coastguard Worker int __cc;
4500*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
4501*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
4502*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4503*bed243d3SAndroid Build Coastguard Worker }
4504*bed243d3SAndroid Build Coastguard Worker
4505*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4506*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector signed char __b)4507*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector __bool char __a, __vector signed char __b) {
4508*bed243d3SAndroid Build Coastguard Worker int __cc;
4509*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
4510*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
4511*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4512*bed243d3SAndroid Build Coastguard Worker }
4513*bed243d3SAndroid Build Coastguard Worker
4514*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a,__vector unsigned char __b)4515*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
4516*bed243d3SAndroid Build Coastguard Worker int __cc;
4517*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, __b, &__cc);
4518*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4519*bed243d3SAndroid Build Coastguard Worker }
4520*bed243d3SAndroid Build Coastguard Worker
4521*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4522*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a,__vector __bool char __b)4523*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {
4524*bed243d3SAndroid Build Coastguard Worker int __cc;
4525*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
4526*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4527*bed243d3SAndroid Build Coastguard Worker }
4528*bed243d3SAndroid Build Coastguard Worker
4529*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4530*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector unsigned char __b)4531*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {
4532*bed243d3SAndroid Build Coastguard Worker int __cc;
4533*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
4534*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4535*bed243d3SAndroid Build Coastguard Worker }
4536*bed243d3SAndroid Build Coastguard Worker
4537*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector __bool char __b)4538*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector __bool char __a, __vector __bool char __b) {
4539*bed243d3SAndroid Build Coastguard Worker int __cc;
4540*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqbs((__vector unsigned char)__a,
4541*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
4542*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4543*bed243d3SAndroid Build Coastguard Worker }
4544*bed243d3SAndroid Build Coastguard Worker
4545*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a,__vector signed short __b)4546*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector signed short __a, __vector signed short __b) {
4547*bed243d3SAndroid Build Coastguard Worker int __cc;
4548*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
4549*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
4550*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4551*bed243d3SAndroid Build Coastguard Worker }
4552*bed243d3SAndroid Build Coastguard Worker
4553*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4554*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a,__vector __bool short __b)4555*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector signed short __a, __vector __bool short __b) {
4556*bed243d3SAndroid Build Coastguard Worker int __cc;
4557*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
4558*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
4559*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4560*bed243d3SAndroid Build Coastguard Worker }
4561*bed243d3SAndroid Build Coastguard Worker
4562*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4563*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector signed short __b)4564*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector __bool short __a, __vector signed short __b) {
4565*bed243d3SAndroid Build Coastguard Worker int __cc;
4566*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
4567*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
4568*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4569*bed243d3SAndroid Build Coastguard Worker }
4570*bed243d3SAndroid Build Coastguard Worker
4571*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a,__vector unsigned short __b)4572*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
4573*bed243d3SAndroid Build Coastguard Worker int __cc;
4574*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, __b, &__cc);
4575*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4576*bed243d3SAndroid Build Coastguard Worker }
4577*bed243d3SAndroid Build Coastguard Worker
4578*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4579*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a,__vector __bool short __b)4580*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {
4581*bed243d3SAndroid Build Coastguard Worker int __cc;
4582*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
4583*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4584*bed243d3SAndroid Build Coastguard Worker }
4585*bed243d3SAndroid Build Coastguard Worker
4586*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4587*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector unsigned short __b)4588*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {
4589*bed243d3SAndroid Build Coastguard Worker int __cc;
4590*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
4591*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4592*bed243d3SAndroid Build Coastguard Worker }
4593*bed243d3SAndroid Build Coastguard Worker
4594*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector __bool short __b)4595*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector __bool short __a, __vector __bool short __b) {
4596*bed243d3SAndroid Build Coastguard Worker int __cc;
4597*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqhs((__vector unsigned short)__a,
4598*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
4599*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4600*bed243d3SAndroid Build Coastguard Worker }
4601*bed243d3SAndroid Build Coastguard Worker
4602*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a,__vector signed int __b)4603*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector signed int __a, __vector signed int __b) {
4604*bed243d3SAndroid Build Coastguard Worker int __cc;
4605*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
4606*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
4607*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4608*bed243d3SAndroid Build Coastguard Worker }
4609*bed243d3SAndroid Build Coastguard Worker
4610*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4611*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a,__vector __bool int __b)4612*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector signed int __a, __vector __bool int __b) {
4613*bed243d3SAndroid Build Coastguard Worker int __cc;
4614*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
4615*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
4616*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4617*bed243d3SAndroid Build Coastguard Worker }
4618*bed243d3SAndroid Build Coastguard Worker
4619*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4620*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector signed int __b)4621*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector __bool int __a, __vector signed int __b) {
4622*bed243d3SAndroid Build Coastguard Worker int __cc;
4623*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
4624*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
4625*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4626*bed243d3SAndroid Build Coastguard Worker }
4627*bed243d3SAndroid Build Coastguard Worker
4628*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a,__vector unsigned int __b)4629*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
4630*bed243d3SAndroid Build Coastguard Worker int __cc;
4631*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, __b, &__cc);
4632*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4633*bed243d3SAndroid Build Coastguard Worker }
4634*bed243d3SAndroid Build Coastguard Worker
4635*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4636*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a,__vector __bool int __b)4637*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {
4638*bed243d3SAndroid Build Coastguard Worker int __cc;
4639*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
4640*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4641*bed243d3SAndroid Build Coastguard Worker }
4642*bed243d3SAndroid Build Coastguard Worker
4643*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4644*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector unsigned int __b)4645*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {
4646*bed243d3SAndroid Build Coastguard Worker int __cc;
4647*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
4648*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4649*bed243d3SAndroid Build Coastguard Worker }
4650*bed243d3SAndroid Build Coastguard Worker
4651*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector __bool int __b)4652*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector __bool int __a, __vector __bool int __b) {
4653*bed243d3SAndroid Build Coastguard Worker int __cc;
4654*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqfs((__vector unsigned int)__a,
4655*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
4656*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4657*bed243d3SAndroid Build Coastguard Worker }
4658*bed243d3SAndroid Build Coastguard Worker
4659*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a,__vector signed long long __b)4660*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector signed long long __a, __vector signed long long __b) {
4661*bed243d3SAndroid Build Coastguard Worker int __cc;
4662*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
4663*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
4664*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4665*bed243d3SAndroid Build Coastguard Worker }
4666*bed243d3SAndroid Build Coastguard Worker
4667*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4668*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a,__vector __bool long long __b)4669*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {
4670*bed243d3SAndroid Build Coastguard Worker int __cc;
4671*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
4672*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
4673*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4674*bed243d3SAndroid Build Coastguard Worker }
4675*bed243d3SAndroid Build Coastguard Worker
4676*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4677*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector signed long long __b)4678*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {
4679*bed243d3SAndroid Build Coastguard Worker int __cc;
4680*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
4681*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
4682*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4683*bed243d3SAndroid Build Coastguard Worker }
4684*bed243d3SAndroid Build Coastguard Worker
4685*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a,__vector unsigned long long __b)4686*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
4687*bed243d3SAndroid Build Coastguard Worker int __cc;
4688*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, __b, &__cc);
4689*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4690*bed243d3SAndroid Build Coastguard Worker }
4691*bed243d3SAndroid Build Coastguard Worker
4692*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4693*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a,__vector __bool long long __b)4694*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {
4695*bed243d3SAndroid Build Coastguard Worker int __cc;
4696*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
4697*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4698*bed243d3SAndroid Build Coastguard Worker }
4699*bed243d3SAndroid Build Coastguard Worker
4700*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4701*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector unsigned long long __b)4702*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {
4703*bed243d3SAndroid Build Coastguard Worker int __cc;
4704*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
4705*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4706*bed243d3SAndroid Build Coastguard Worker }
4707*bed243d3SAndroid Build Coastguard Worker
4708*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector __bool long long __b)4709*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
4710*bed243d3SAndroid Build Coastguard Worker int __cc;
4711*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vceqgs((__vector unsigned long long)__a,
4712*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
4713*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4714*bed243d3SAndroid Build Coastguard Worker }
4715*bed243d3SAndroid Build Coastguard Worker
4716*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
4717*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector float __a,__vector float __b)4718*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector float __a, __vector float __b) {
4719*bed243d3SAndroid Build Coastguard Worker int __cc;
4720*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfcesbs(__a, __b, &__cc);
4721*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4722*bed243d3SAndroid Build Coastguard Worker }
4723*bed243d3SAndroid Build Coastguard Worker #endif
4724*bed243d3SAndroid Build Coastguard Worker
4725*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ne(__vector double __a,__vector double __b)4726*bed243d3SAndroid Build Coastguard Worker vec_any_ne(__vector double __a, __vector double __b) {
4727*bed243d3SAndroid Build Coastguard Worker int __cc;
4728*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfcedbs(__a, __b, &__cc);
4729*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4730*bed243d3SAndroid Build Coastguard Worker }
4731*bed243d3SAndroid Build Coastguard Worker
4732*bed243d3SAndroid Build Coastguard Worker /*-- vec_any_ge -------------------------------------------------------------*/
4733*bed243d3SAndroid Build Coastguard Worker
4734*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a,__vector signed char __b)4735*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector signed char __a, __vector signed char __b) {
4736*bed243d3SAndroid Build Coastguard Worker int __cc;
4737*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, __a, &__cc);
4738*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4739*bed243d3SAndroid Build Coastguard Worker }
4740*bed243d3SAndroid Build Coastguard Worker
4741*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4742*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a,__vector __bool char __b)4743*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector signed char __a, __vector __bool char __b) {
4744*bed243d3SAndroid Build Coastguard Worker int __cc;
4745*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
4746*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4747*bed243d3SAndroid Build Coastguard Worker }
4748*bed243d3SAndroid Build Coastguard Worker
4749*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4750*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector signed char __b)4751*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector __bool char __a, __vector signed char __b) {
4752*bed243d3SAndroid Build Coastguard Worker int __cc;
4753*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
4754*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4755*bed243d3SAndroid Build Coastguard Worker }
4756*bed243d3SAndroid Build Coastguard Worker
4757*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a,__vector unsigned char __b)4758*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) {
4759*bed243d3SAndroid Build Coastguard Worker int __cc;
4760*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, __a, &__cc);
4761*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4762*bed243d3SAndroid Build Coastguard Worker }
4763*bed243d3SAndroid Build Coastguard Worker
4764*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4765*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a,__vector __bool char __b)4766*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector unsigned char __a, __vector __bool char __b) {
4767*bed243d3SAndroid Build Coastguard Worker int __cc;
4768*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
4769*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4770*bed243d3SAndroid Build Coastguard Worker }
4771*bed243d3SAndroid Build Coastguard Worker
4772*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4773*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector unsigned char __b)4774*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector __bool char __a, __vector unsigned char __b) {
4775*bed243d3SAndroid Build Coastguard Worker int __cc;
4776*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
4777*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4778*bed243d3SAndroid Build Coastguard Worker }
4779*bed243d3SAndroid Build Coastguard Worker
4780*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4781*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector __bool char __b)4782*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector __bool char __a, __vector __bool char __b) {
4783*bed243d3SAndroid Build Coastguard Worker int __cc;
4784*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__b,
4785*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, &__cc);
4786*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4787*bed243d3SAndroid Build Coastguard Worker }
4788*bed243d3SAndroid Build Coastguard Worker
4789*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a,__vector signed short __b)4790*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector signed short __a, __vector signed short __b) {
4791*bed243d3SAndroid Build Coastguard Worker int __cc;
4792*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, __a, &__cc);
4793*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4794*bed243d3SAndroid Build Coastguard Worker }
4795*bed243d3SAndroid Build Coastguard Worker
4796*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4797*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a,__vector __bool short __b)4798*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector signed short __a, __vector __bool short __b) {
4799*bed243d3SAndroid Build Coastguard Worker int __cc;
4800*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
4801*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4802*bed243d3SAndroid Build Coastguard Worker }
4803*bed243d3SAndroid Build Coastguard Worker
4804*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4805*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector signed short __b)4806*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector __bool short __a, __vector signed short __b) {
4807*bed243d3SAndroid Build Coastguard Worker int __cc;
4808*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
4809*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4810*bed243d3SAndroid Build Coastguard Worker }
4811*bed243d3SAndroid Build Coastguard Worker
4812*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a,__vector unsigned short __b)4813*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) {
4814*bed243d3SAndroid Build Coastguard Worker int __cc;
4815*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, __a, &__cc);
4816*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4817*bed243d3SAndroid Build Coastguard Worker }
4818*bed243d3SAndroid Build Coastguard Worker
4819*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4820*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a,__vector __bool short __b)4821*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector unsigned short __a, __vector __bool short __b) {
4822*bed243d3SAndroid Build Coastguard Worker int __cc;
4823*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
4824*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4825*bed243d3SAndroid Build Coastguard Worker }
4826*bed243d3SAndroid Build Coastguard Worker
4827*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4828*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector unsigned short __b)4829*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector __bool short __a, __vector unsigned short __b) {
4830*bed243d3SAndroid Build Coastguard Worker int __cc;
4831*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
4832*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4833*bed243d3SAndroid Build Coastguard Worker }
4834*bed243d3SAndroid Build Coastguard Worker
4835*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4836*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector __bool short __b)4837*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector __bool short __a, __vector __bool short __b) {
4838*bed243d3SAndroid Build Coastguard Worker int __cc;
4839*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__b,
4840*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__a, &__cc);
4841*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4842*bed243d3SAndroid Build Coastguard Worker }
4843*bed243d3SAndroid Build Coastguard Worker
4844*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a,__vector signed int __b)4845*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector signed int __a, __vector signed int __b) {
4846*bed243d3SAndroid Build Coastguard Worker int __cc;
4847*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, __a, &__cc);
4848*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4849*bed243d3SAndroid Build Coastguard Worker }
4850*bed243d3SAndroid Build Coastguard Worker
4851*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4852*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a,__vector __bool int __b)4853*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector signed int __a, __vector __bool int __b) {
4854*bed243d3SAndroid Build Coastguard Worker int __cc;
4855*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
4856*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4857*bed243d3SAndroid Build Coastguard Worker }
4858*bed243d3SAndroid Build Coastguard Worker
4859*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4860*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector signed int __b)4861*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector __bool int __a, __vector signed int __b) {
4862*bed243d3SAndroid Build Coastguard Worker int __cc;
4863*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
4864*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4865*bed243d3SAndroid Build Coastguard Worker }
4866*bed243d3SAndroid Build Coastguard Worker
4867*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a,__vector unsigned int __b)4868*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) {
4869*bed243d3SAndroid Build Coastguard Worker int __cc;
4870*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, __a, &__cc);
4871*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4872*bed243d3SAndroid Build Coastguard Worker }
4873*bed243d3SAndroid Build Coastguard Worker
4874*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4875*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a,__vector __bool int __b)4876*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector unsigned int __a, __vector __bool int __b) {
4877*bed243d3SAndroid Build Coastguard Worker int __cc;
4878*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
4879*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4880*bed243d3SAndroid Build Coastguard Worker }
4881*bed243d3SAndroid Build Coastguard Worker
4882*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4883*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector unsigned int __b)4884*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector __bool int __a, __vector unsigned int __b) {
4885*bed243d3SAndroid Build Coastguard Worker int __cc;
4886*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
4887*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4888*bed243d3SAndroid Build Coastguard Worker }
4889*bed243d3SAndroid Build Coastguard Worker
4890*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4891*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector __bool int __b)4892*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector __bool int __a, __vector __bool int __b) {
4893*bed243d3SAndroid Build Coastguard Worker int __cc;
4894*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__b,
4895*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__a, &__cc);
4896*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4897*bed243d3SAndroid Build Coastguard Worker }
4898*bed243d3SAndroid Build Coastguard Worker
4899*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a,__vector signed long long __b)4900*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector signed long long __a, __vector signed long long __b) {
4901*bed243d3SAndroid Build Coastguard Worker int __cc;
4902*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, __a, &__cc);
4903*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4904*bed243d3SAndroid Build Coastguard Worker }
4905*bed243d3SAndroid Build Coastguard Worker
4906*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4907*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a,__vector __bool long long __b)4908*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector signed long long __a, __vector __bool long long __b) {
4909*bed243d3SAndroid Build Coastguard Worker int __cc;
4910*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
4911*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4912*bed243d3SAndroid Build Coastguard Worker }
4913*bed243d3SAndroid Build Coastguard Worker
4914*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4915*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector signed long long __b)4916*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector __bool long long __a, __vector signed long long __b) {
4917*bed243d3SAndroid Build Coastguard Worker int __cc;
4918*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
4919*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4920*bed243d3SAndroid Build Coastguard Worker }
4921*bed243d3SAndroid Build Coastguard Worker
4922*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a,__vector unsigned long long __b)4923*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
4924*bed243d3SAndroid Build Coastguard Worker int __cc;
4925*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, __a, &__cc);
4926*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4927*bed243d3SAndroid Build Coastguard Worker }
4928*bed243d3SAndroid Build Coastguard Worker
4929*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4930*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a,__vector __bool long long __b)4931*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) {
4932*bed243d3SAndroid Build Coastguard Worker int __cc;
4933*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4934*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4935*bed243d3SAndroid Build Coastguard Worker }
4936*bed243d3SAndroid Build Coastguard Worker
4937*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4938*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector unsigned long long __b)4939*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) {
4940*bed243d3SAndroid Build Coastguard Worker int __cc;
4941*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4942*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4943*bed243d3SAndroid Build Coastguard Worker }
4944*bed243d3SAndroid Build Coastguard Worker
4945*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4946*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector __bool long long __b)4947*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {
4948*bed243d3SAndroid Build Coastguard Worker int __cc;
4949*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__b,
4950*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__a, &__cc);
4951*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
4952*bed243d3SAndroid Build Coastguard Worker }
4953*bed243d3SAndroid Build Coastguard Worker
4954*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
4955*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector float __a,__vector float __b)4956*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector float __a, __vector float __b) {
4957*bed243d3SAndroid Build Coastguard Worker int __cc;
4958*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchesbs(__a, __b, &__cc);
4959*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4960*bed243d3SAndroid Build Coastguard Worker }
4961*bed243d3SAndroid Build Coastguard Worker #endif
4962*bed243d3SAndroid Build Coastguard Worker
4963*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ge(__vector double __a,__vector double __b)4964*bed243d3SAndroid Build Coastguard Worker vec_any_ge(__vector double __a, __vector double __b) {
4965*bed243d3SAndroid Build Coastguard Worker int __cc;
4966*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__a, __b, &__cc);
4967*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4968*bed243d3SAndroid Build Coastguard Worker }
4969*bed243d3SAndroid Build Coastguard Worker
4970*bed243d3SAndroid Build Coastguard Worker /*-- vec_any_gt -------------------------------------------------------------*/
4971*bed243d3SAndroid Build Coastguard Worker
4972*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a,__vector signed char __b)4973*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector signed char __a, __vector signed char __b) {
4974*bed243d3SAndroid Build Coastguard Worker int __cc;
4975*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, __b, &__cc);
4976*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4977*bed243d3SAndroid Build Coastguard Worker }
4978*bed243d3SAndroid Build Coastguard Worker
4979*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4980*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a,__vector __bool char __b)4981*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector signed char __a, __vector __bool char __b) {
4982*bed243d3SAndroid Build Coastguard Worker int __cc;
4983*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
4984*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4985*bed243d3SAndroid Build Coastguard Worker }
4986*bed243d3SAndroid Build Coastguard Worker
4987*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
4988*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector signed char __b)4989*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector __bool char __a, __vector signed char __b) {
4990*bed243d3SAndroid Build Coastguard Worker int __cc;
4991*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
4992*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
4993*bed243d3SAndroid Build Coastguard Worker }
4994*bed243d3SAndroid Build Coastguard Worker
4995*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a,__vector unsigned char __b)4996*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) {
4997*bed243d3SAndroid Build Coastguard Worker int __cc;
4998*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, __b, &__cc);
4999*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5000*bed243d3SAndroid Build Coastguard Worker }
5001*bed243d3SAndroid Build Coastguard Worker
5002*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5003*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a,__vector __bool char __b)5004*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector unsigned char __a, __vector __bool char __b) {
5005*bed243d3SAndroid Build Coastguard Worker int __cc;
5006*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5007*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5008*bed243d3SAndroid Build Coastguard Worker }
5009*bed243d3SAndroid Build Coastguard Worker
5010*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5011*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector unsigned char __b)5012*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector __bool char __a, __vector unsigned char __b) {
5013*bed243d3SAndroid Build Coastguard Worker int __cc;
5014*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5015*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5016*bed243d3SAndroid Build Coastguard Worker }
5017*bed243d3SAndroid Build Coastguard Worker
5018*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5019*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector __bool char __b)5020*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector __bool char __a, __vector __bool char __b) {
5021*bed243d3SAndroid Build Coastguard Worker int __cc;
5022*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__a,
5023*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
5024*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5025*bed243d3SAndroid Build Coastguard Worker }
5026*bed243d3SAndroid Build Coastguard Worker
5027*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a,__vector signed short __b)5028*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector signed short __a, __vector signed short __b) {
5029*bed243d3SAndroid Build Coastguard Worker int __cc;
5030*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, __b, &__cc);
5031*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5032*bed243d3SAndroid Build Coastguard Worker }
5033*bed243d3SAndroid Build Coastguard Worker
5034*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5035*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a,__vector __bool short __b)5036*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector signed short __a, __vector __bool short __b) {
5037*bed243d3SAndroid Build Coastguard Worker int __cc;
5038*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5039*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5040*bed243d3SAndroid Build Coastguard Worker }
5041*bed243d3SAndroid Build Coastguard Worker
5042*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5043*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector signed short __b)5044*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector __bool short __a, __vector signed short __b) {
5045*bed243d3SAndroid Build Coastguard Worker int __cc;
5046*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5047*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5048*bed243d3SAndroid Build Coastguard Worker }
5049*bed243d3SAndroid Build Coastguard Worker
5050*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a,__vector unsigned short __b)5051*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) {
5052*bed243d3SAndroid Build Coastguard Worker int __cc;
5053*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, __b, &__cc);
5054*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5055*bed243d3SAndroid Build Coastguard Worker }
5056*bed243d3SAndroid Build Coastguard Worker
5057*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5058*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a,__vector __bool short __b)5059*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector unsigned short __a, __vector __bool short __b) {
5060*bed243d3SAndroid Build Coastguard Worker int __cc;
5061*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5062*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5063*bed243d3SAndroid Build Coastguard Worker }
5064*bed243d3SAndroid Build Coastguard Worker
5065*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5066*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector unsigned short __b)5067*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector __bool short __a, __vector unsigned short __b) {
5068*bed243d3SAndroid Build Coastguard Worker int __cc;
5069*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5070*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5071*bed243d3SAndroid Build Coastguard Worker }
5072*bed243d3SAndroid Build Coastguard Worker
5073*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5074*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector __bool short __b)5075*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector __bool short __a, __vector __bool short __b) {
5076*bed243d3SAndroid Build Coastguard Worker int __cc;
5077*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__a,
5078*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
5079*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5080*bed243d3SAndroid Build Coastguard Worker }
5081*bed243d3SAndroid Build Coastguard Worker
5082*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a,__vector signed int __b)5083*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector signed int __a, __vector signed int __b) {
5084*bed243d3SAndroid Build Coastguard Worker int __cc;
5085*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, __b, &__cc);
5086*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5087*bed243d3SAndroid Build Coastguard Worker }
5088*bed243d3SAndroid Build Coastguard Worker
5089*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5090*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a,__vector __bool int __b)5091*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector signed int __a, __vector __bool int __b) {
5092*bed243d3SAndroid Build Coastguard Worker int __cc;
5093*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5094*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5095*bed243d3SAndroid Build Coastguard Worker }
5096*bed243d3SAndroid Build Coastguard Worker
5097*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5098*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector signed int __b)5099*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector __bool int __a, __vector signed int __b) {
5100*bed243d3SAndroid Build Coastguard Worker int __cc;
5101*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5102*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5103*bed243d3SAndroid Build Coastguard Worker }
5104*bed243d3SAndroid Build Coastguard Worker
5105*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a,__vector unsigned int __b)5106*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) {
5107*bed243d3SAndroid Build Coastguard Worker int __cc;
5108*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, __b, &__cc);
5109*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5110*bed243d3SAndroid Build Coastguard Worker }
5111*bed243d3SAndroid Build Coastguard Worker
5112*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5113*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a,__vector __bool int __b)5114*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector unsigned int __a, __vector __bool int __b) {
5115*bed243d3SAndroid Build Coastguard Worker int __cc;
5116*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5117*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5118*bed243d3SAndroid Build Coastguard Worker }
5119*bed243d3SAndroid Build Coastguard Worker
5120*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5121*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector unsigned int __b)5122*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector __bool int __a, __vector unsigned int __b) {
5123*bed243d3SAndroid Build Coastguard Worker int __cc;
5124*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5125*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5126*bed243d3SAndroid Build Coastguard Worker }
5127*bed243d3SAndroid Build Coastguard Worker
5128*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5129*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector __bool int __b)5130*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector __bool int __a, __vector __bool int __b) {
5131*bed243d3SAndroid Build Coastguard Worker int __cc;
5132*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__a,
5133*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
5134*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5135*bed243d3SAndroid Build Coastguard Worker }
5136*bed243d3SAndroid Build Coastguard Worker
5137*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a,__vector signed long long __b)5138*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector signed long long __a, __vector signed long long __b) {
5139*bed243d3SAndroid Build Coastguard Worker int __cc;
5140*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, __b, &__cc);
5141*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5142*bed243d3SAndroid Build Coastguard Worker }
5143*bed243d3SAndroid Build Coastguard Worker
5144*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5145*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a,__vector __bool long long __b)5146*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector signed long long __a, __vector __bool long long __b) {
5147*bed243d3SAndroid Build Coastguard Worker int __cc;
5148*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5149*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5150*bed243d3SAndroid Build Coastguard Worker }
5151*bed243d3SAndroid Build Coastguard Worker
5152*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5153*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector signed long long __b)5154*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector __bool long long __a, __vector signed long long __b) {
5155*bed243d3SAndroid Build Coastguard Worker int __cc;
5156*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5157*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5158*bed243d3SAndroid Build Coastguard Worker }
5159*bed243d3SAndroid Build Coastguard Worker
5160*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a,__vector unsigned long long __b)5161*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
5162*bed243d3SAndroid Build Coastguard Worker int __cc;
5163*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, __b, &__cc);
5164*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5165*bed243d3SAndroid Build Coastguard Worker }
5166*bed243d3SAndroid Build Coastguard Worker
5167*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5168*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a,__vector __bool long long __b)5169*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) {
5170*bed243d3SAndroid Build Coastguard Worker int __cc;
5171*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5172*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5173*bed243d3SAndroid Build Coastguard Worker }
5174*bed243d3SAndroid Build Coastguard Worker
5175*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5176*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector unsigned long long __b)5177*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) {
5178*bed243d3SAndroid Build Coastguard Worker int __cc;
5179*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5180*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5181*bed243d3SAndroid Build Coastguard Worker }
5182*bed243d3SAndroid Build Coastguard Worker
5183*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5184*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector __bool long long __b)5185*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {
5186*bed243d3SAndroid Build Coastguard Worker int __cc;
5187*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__a,
5188*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
5189*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5190*bed243d3SAndroid Build Coastguard Worker }
5191*bed243d3SAndroid Build Coastguard Worker
5192*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
5193*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector float __a,__vector float __b)5194*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector float __a, __vector float __b) {
5195*bed243d3SAndroid Build Coastguard Worker int __cc;
5196*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchsbs(__a, __b, &__cc);
5197*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5198*bed243d3SAndroid Build Coastguard Worker }
5199*bed243d3SAndroid Build Coastguard Worker #endif
5200*bed243d3SAndroid Build Coastguard Worker
5201*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_gt(__vector double __a,__vector double __b)5202*bed243d3SAndroid Build Coastguard Worker vec_any_gt(__vector double __a, __vector double __b) {
5203*bed243d3SAndroid Build Coastguard Worker int __cc;
5204*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__a, __b, &__cc);
5205*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5206*bed243d3SAndroid Build Coastguard Worker }
5207*bed243d3SAndroid Build Coastguard Worker
5208*bed243d3SAndroid Build Coastguard Worker /*-- vec_any_le -------------------------------------------------------------*/
5209*bed243d3SAndroid Build Coastguard Worker
5210*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a,__vector signed char __b)5211*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector signed char __a, __vector signed char __b) {
5212*bed243d3SAndroid Build Coastguard Worker int __cc;
5213*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, __b, &__cc);
5214*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5215*bed243d3SAndroid Build Coastguard Worker }
5216*bed243d3SAndroid Build Coastguard Worker
5217*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5218*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a,__vector __bool char __b)5219*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector signed char __a, __vector __bool char __b) {
5220*bed243d3SAndroid Build Coastguard Worker int __cc;
5221*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5222*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5223*bed243d3SAndroid Build Coastguard Worker }
5224*bed243d3SAndroid Build Coastguard Worker
5225*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5226*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector signed char __b)5227*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector __bool char __a, __vector signed char __b) {
5228*bed243d3SAndroid Build Coastguard Worker int __cc;
5229*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5230*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5231*bed243d3SAndroid Build Coastguard Worker }
5232*bed243d3SAndroid Build Coastguard Worker
5233*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a,__vector unsigned char __b)5234*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector unsigned char __a, __vector unsigned char __b) {
5235*bed243d3SAndroid Build Coastguard Worker int __cc;
5236*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, __b, &__cc);
5237*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5238*bed243d3SAndroid Build Coastguard Worker }
5239*bed243d3SAndroid Build Coastguard Worker
5240*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5241*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a,__vector __bool char __b)5242*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector unsigned char __a, __vector __bool char __b) {
5243*bed243d3SAndroid Build Coastguard Worker int __cc;
5244*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5245*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5246*bed243d3SAndroid Build Coastguard Worker }
5247*bed243d3SAndroid Build Coastguard Worker
5248*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5249*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector unsigned char __b)5250*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector __bool char __a, __vector unsigned char __b) {
5251*bed243d3SAndroid Build Coastguard Worker int __cc;
5252*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5253*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5254*bed243d3SAndroid Build Coastguard Worker }
5255*bed243d3SAndroid Build Coastguard Worker
5256*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5257*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector __bool char __b)5258*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector __bool char __a, __vector __bool char __b) {
5259*bed243d3SAndroid Build Coastguard Worker int __cc;
5260*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__a,
5261*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, &__cc);
5262*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5263*bed243d3SAndroid Build Coastguard Worker }
5264*bed243d3SAndroid Build Coastguard Worker
5265*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a,__vector signed short __b)5266*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector signed short __a, __vector signed short __b) {
5267*bed243d3SAndroid Build Coastguard Worker int __cc;
5268*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, __b, &__cc);
5269*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5270*bed243d3SAndroid Build Coastguard Worker }
5271*bed243d3SAndroid Build Coastguard Worker
5272*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5273*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a,__vector __bool short __b)5274*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector signed short __a, __vector __bool short __b) {
5275*bed243d3SAndroid Build Coastguard Worker int __cc;
5276*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5277*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5278*bed243d3SAndroid Build Coastguard Worker }
5279*bed243d3SAndroid Build Coastguard Worker
5280*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5281*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector signed short __b)5282*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector __bool short __a, __vector signed short __b) {
5283*bed243d3SAndroid Build Coastguard Worker int __cc;
5284*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5285*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5286*bed243d3SAndroid Build Coastguard Worker }
5287*bed243d3SAndroid Build Coastguard Worker
5288*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a,__vector unsigned short __b)5289*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector unsigned short __a, __vector unsigned short __b) {
5290*bed243d3SAndroid Build Coastguard Worker int __cc;
5291*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, __b, &__cc);
5292*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5293*bed243d3SAndroid Build Coastguard Worker }
5294*bed243d3SAndroid Build Coastguard Worker
5295*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5296*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a,__vector __bool short __b)5297*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector unsigned short __a, __vector __bool short __b) {
5298*bed243d3SAndroid Build Coastguard Worker int __cc;
5299*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5300*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5301*bed243d3SAndroid Build Coastguard Worker }
5302*bed243d3SAndroid Build Coastguard Worker
5303*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5304*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector unsigned short __b)5305*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector __bool short __a, __vector unsigned short __b) {
5306*bed243d3SAndroid Build Coastguard Worker int __cc;
5307*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5308*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5309*bed243d3SAndroid Build Coastguard Worker }
5310*bed243d3SAndroid Build Coastguard Worker
5311*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5312*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector __bool short __b)5313*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector __bool short __a, __vector __bool short __b) {
5314*bed243d3SAndroid Build Coastguard Worker int __cc;
5315*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__a,
5316*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, &__cc);
5317*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5318*bed243d3SAndroid Build Coastguard Worker }
5319*bed243d3SAndroid Build Coastguard Worker
5320*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a,__vector signed int __b)5321*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector signed int __a, __vector signed int __b) {
5322*bed243d3SAndroid Build Coastguard Worker int __cc;
5323*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, __b, &__cc);
5324*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5325*bed243d3SAndroid Build Coastguard Worker }
5326*bed243d3SAndroid Build Coastguard Worker
5327*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5328*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a,__vector __bool int __b)5329*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector signed int __a, __vector __bool int __b) {
5330*bed243d3SAndroid Build Coastguard Worker int __cc;
5331*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5332*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5333*bed243d3SAndroid Build Coastguard Worker }
5334*bed243d3SAndroid Build Coastguard Worker
5335*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5336*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector signed int __b)5337*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector __bool int __a, __vector signed int __b) {
5338*bed243d3SAndroid Build Coastguard Worker int __cc;
5339*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5340*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5341*bed243d3SAndroid Build Coastguard Worker }
5342*bed243d3SAndroid Build Coastguard Worker
5343*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a,__vector unsigned int __b)5344*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector unsigned int __a, __vector unsigned int __b) {
5345*bed243d3SAndroid Build Coastguard Worker int __cc;
5346*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, __b, &__cc);
5347*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5348*bed243d3SAndroid Build Coastguard Worker }
5349*bed243d3SAndroid Build Coastguard Worker
5350*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5351*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a,__vector __bool int __b)5352*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector unsigned int __a, __vector __bool int __b) {
5353*bed243d3SAndroid Build Coastguard Worker int __cc;
5354*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5355*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5356*bed243d3SAndroid Build Coastguard Worker }
5357*bed243d3SAndroid Build Coastguard Worker
5358*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5359*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector unsigned int __b)5360*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector __bool int __a, __vector unsigned int __b) {
5361*bed243d3SAndroid Build Coastguard Worker int __cc;
5362*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5363*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5364*bed243d3SAndroid Build Coastguard Worker }
5365*bed243d3SAndroid Build Coastguard Worker
5366*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5367*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector __bool int __b)5368*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector __bool int __a, __vector __bool int __b) {
5369*bed243d3SAndroid Build Coastguard Worker int __cc;
5370*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__a,
5371*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, &__cc);
5372*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5373*bed243d3SAndroid Build Coastguard Worker }
5374*bed243d3SAndroid Build Coastguard Worker
5375*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a,__vector signed long long __b)5376*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector signed long long __a, __vector signed long long __b) {
5377*bed243d3SAndroid Build Coastguard Worker int __cc;
5378*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, __b, &__cc);
5379*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5380*bed243d3SAndroid Build Coastguard Worker }
5381*bed243d3SAndroid Build Coastguard Worker
5382*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5383*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a,__vector __bool long long __b)5384*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector signed long long __a, __vector __bool long long __b) {
5385*bed243d3SAndroid Build Coastguard Worker int __cc;
5386*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5387*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5388*bed243d3SAndroid Build Coastguard Worker }
5389*bed243d3SAndroid Build Coastguard Worker
5390*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5391*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector signed long long __b)5392*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector __bool long long __a, __vector signed long long __b) {
5393*bed243d3SAndroid Build Coastguard Worker int __cc;
5394*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5395*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5396*bed243d3SAndroid Build Coastguard Worker }
5397*bed243d3SAndroid Build Coastguard Worker
5398*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a,__vector unsigned long long __b)5399*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) {
5400*bed243d3SAndroid Build Coastguard Worker int __cc;
5401*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, __b, &__cc);
5402*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5403*bed243d3SAndroid Build Coastguard Worker }
5404*bed243d3SAndroid Build Coastguard Worker
5405*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5406*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a,__vector __bool long long __b)5407*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) {
5408*bed243d3SAndroid Build Coastguard Worker int __cc;
5409*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5410*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5411*bed243d3SAndroid Build Coastguard Worker }
5412*bed243d3SAndroid Build Coastguard Worker
5413*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5414*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector unsigned long long __b)5415*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) {
5416*bed243d3SAndroid Build Coastguard Worker int __cc;
5417*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5418*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5419*bed243d3SAndroid Build Coastguard Worker }
5420*bed243d3SAndroid Build Coastguard Worker
5421*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5422*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector __bool long long __b)5423*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {
5424*bed243d3SAndroid Build Coastguard Worker int __cc;
5425*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__a,
5426*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b, &__cc);
5427*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5428*bed243d3SAndroid Build Coastguard Worker }
5429*bed243d3SAndroid Build Coastguard Worker
5430*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
5431*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector float __a,__vector float __b)5432*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector float __a, __vector float __b) {
5433*bed243d3SAndroid Build Coastguard Worker int __cc;
5434*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchesbs(__b, __a, &__cc);
5435*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5436*bed243d3SAndroid Build Coastguard Worker }
5437*bed243d3SAndroid Build Coastguard Worker #endif
5438*bed243d3SAndroid Build Coastguard Worker
5439*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_le(__vector double __a,__vector double __b)5440*bed243d3SAndroid Build Coastguard Worker vec_any_le(__vector double __a, __vector double __b) {
5441*bed243d3SAndroid Build Coastguard Worker int __cc;
5442*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__b, __a, &__cc);
5443*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5444*bed243d3SAndroid Build Coastguard Worker }
5445*bed243d3SAndroid Build Coastguard Worker
5446*bed243d3SAndroid Build Coastguard Worker /*-- vec_any_lt -------------------------------------------------------------*/
5447*bed243d3SAndroid Build Coastguard Worker
5448*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a,__vector signed char __b)5449*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector signed char __a, __vector signed char __b) {
5450*bed243d3SAndroid Build Coastguard Worker int __cc;
5451*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, __a, &__cc);
5452*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5453*bed243d3SAndroid Build Coastguard Worker }
5454*bed243d3SAndroid Build Coastguard Worker
5455*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5456*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a,__vector __bool char __b)5457*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector signed char __a, __vector __bool char __b) {
5458*bed243d3SAndroid Build Coastguard Worker int __cc;
5459*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5460*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5461*bed243d3SAndroid Build Coastguard Worker }
5462*bed243d3SAndroid Build Coastguard Worker
5463*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5464*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector signed char __b)5465*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector __bool char __a, __vector signed char __b) {
5466*bed243d3SAndroid Build Coastguard Worker int __cc;
5467*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5468*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5469*bed243d3SAndroid Build Coastguard Worker }
5470*bed243d3SAndroid Build Coastguard Worker
5471*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a,__vector unsigned char __b)5472*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) {
5473*bed243d3SAndroid Build Coastguard Worker int __cc;
5474*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, __a, &__cc);
5475*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5476*bed243d3SAndroid Build Coastguard Worker }
5477*bed243d3SAndroid Build Coastguard Worker
5478*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5479*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a,__vector __bool char __b)5480*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector unsigned char __a, __vector __bool char __b) {
5481*bed243d3SAndroid Build Coastguard Worker int __cc;
5482*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5483*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5484*bed243d3SAndroid Build Coastguard Worker }
5485*bed243d3SAndroid Build Coastguard Worker
5486*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5487*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector unsigned char __b)5488*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector __bool char __a, __vector unsigned char __b) {
5489*bed243d3SAndroid Build Coastguard Worker int __cc;
5490*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5491*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5492*bed243d3SAndroid Build Coastguard Worker }
5493*bed243d3SAndroid Build Coastguard Worker
5494*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5495*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector __bool char __b)5496*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector __bool char __a, __vector __bool char __b) {
5497*bed243d3SAndroid Build Coastguard Worker int __cc;
5498*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlbs((__vector unsigned char)__b,
5499*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, &__cc);
5500*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5501*bed243d3SAndroid Build Coastguard Worker }
5502*bed243d3SAndroid Build Coastguard Worker
5503*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a,__vector signed short __b)5504*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector signed short __a, __vector signed short __b) {
5505*bed243d3SAndroid Build Coastguard Worker int __cc;
5506*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, __a, &__cc);
5507*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5508*bed243d3SAndroid Build Coastguard Worker }
5509*bed243d3SAndroid Build Coastguard Worker
5510*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5511*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a,__vector __bool short __b)5512*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector signed short __a, __vector __bool short __b) {
5513*bed243d3SAndroid Build Coastguard Worker int __cc;
5514*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
5515*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5516*bed243d3SAndroid Build Coastguard Worker }
5517*bed243d3SAndroid Build Coastguard Worker
5518*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5519*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector signed short __b)5520*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector __bool short __a, __vector signed short __b) {
5521*bed243d3SAndroid Build Coastguard Worker int __cc;
5522*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
5523*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5524*bed243d3SAndroid Build Coastguard Worker }
5525*bed243d3SAndroid Build Coastguard Worker
5526*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a,__vector unsigned short __b)5527*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) {
5528*bed243d3SAndroid Build Coastguard Worker int __cc;
5529*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, __a, &__cc);
5530*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5531*bed243d3SAndroid Build Coastguard Worker }
5532*bed243d3SAndroid Build Coastguard Worker
5533*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5534*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a,__vector __bool short __b)5535*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector unsigned short __a, __vector __bool short __b) {
5536*bed243d3SAndroid Build Coastguard Worker int __cc;
5537*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
5538*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5539*bed243d3SAndroid Build Coastguard Worker }
5540*bed243d3SAndroid Build Coastguard Worker
5541*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5542*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector unsigned short __b)5543*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector __bool short __a, __vector unsigned short __b) {
5544*bed243d3SAndroid Build Coastguard Worker int __cc;
5545*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
5546*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5547*bed243d3SAndroid Build Coastguard Worker }
5548*bed243d3SAndroid Build Coastguard Worker
5549*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5550*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector __bool short __b)5551*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector __bool short __a, __vector __bool short __b) {
5552*bed243d3SAndroid Build Coastguard Worker int __cc;
5553*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlhs((__vector unsigned short)__b,
5554*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__a, &__cc);
5555*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5556*bed243d3SAndroid Build Coastguard Worker }
5557*bed243d3SAndroid Build Coastguard Worker
5558*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a,__vector signed int __b)5559*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector signed int __a, __vector signed int __b) {
5560*bed243d3SAndroid Build Coastguard Worker int __cc;
5561*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, __a, &__cc);
5562*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5563*bed243d3SAndroid Build Coastguard Worker }
5564*bed243d3SAndroid Build Coastguard Worker
5565*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5566*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a,__vector __bool int __b)5567*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector signed int __a, __vector __bool int __b) {
5568*bed243d3SAndroid Build Coastguard Worker int __cc;
5569*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
5570*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5571*bed243d3SAndroid Build Coastguard Worker }
5572*bed243d3SAndroid Build Coastguard Worker
5573*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5574*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector signed int __b)5575*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector __bool int __a, __vector signed int __b) {
5576*bed243d3SAndroid Build Coastguard Worker int __cc;
5577*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
5578*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5579*bed243d3SAndroid Build Coastguard Worker }
5580*bed243d3SAndroid Build Coastguard Worker
5581*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a,__vector unsigned int __b)5582*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) {
5583*bed243d3SAndroid Build Coastguard Worker int __cc;
5584*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, __a, &__cc);
5585*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5586*bed243d3SAndroid Build Coastguard Worker }
5587*bed243d3SAndroid Build Coastguard Worker
5588*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5589*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a,__vector __bool int __b)5590*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector unsigned int __a, __vector __bool int __b) {
5591*bed243d3SAndroid Build Coastguard Worker int __cc;
5592*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
5593*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5594*bed243d3SAndroid Build Coastguard Worker }
5595*bed243d3SAndroid Build Coastguard Worker
5596*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5597*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector unsigned int __b)5598*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector __bool int __a, __vector unsigned int __b) {
5599*bed243d3SAndroid Build Coastguard Worker int __cc;
5600*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
5601*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5602*bed243d3SAndroid Build Coastguard Worker }
5603*bed243d3SAndroid Build Coastguard Worker
5604*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5605*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector __bool int __b)5606*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector __bool int __a, __vector __bool int __b) {
5607*bed243d3SAndroid Build Coastguard Worker int __cc;
5608*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlfs((__vector unsigned int)__b,
5609*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__a, &__cc);
5610*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5611*bed243d3SAndroid Build Coastguard Worker }
5612*bed243d3SAndroid Build Coastguard Worker
5613*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a,__vector signed long long __b)5614*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector signed long long __a, __vector signed long long __b) {
5615*bed243d3SAndroid Build Coastguard Worker int __cc;
5616*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, __a, &__cc);
5617*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5618*bed243d3SAndroid Build Coastguard Worker }
5619*bed243d3SAndroid Build Coastguard Worker
5620*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5621*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a,__vector __bool long long __b)5622*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector signed long long __a, __vector __bool long long __b) {
5623*bed243d3SAndroid Build Coastguard Worker int __cc;
5624*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
5625*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5626*bed243d3SAndroid Build Coastguard Worker }
5627*bed243d3SAndroid Build Coastguard Worker
5628*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5629*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector signed long long __b)5630*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector __bool long long __a, __vector signed long long __b) {
5631*bed243d3SAndroid Build Coastguard Worker int __cc;
5632*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
5633*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5634*bed243d3SAndroid Build Coastguard Worker }
5635*bed243d3SAndroid Build Coastguard Worker
5636*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a,__vector unsigned long long __b)5637*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
5638*bed243d3SAndroid Build Coastguard Worker int __cc;
5639*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, __a, &__cc);
5640*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5641*bed243d3SAndroid Build Coastguard Worker }
5642*bed243d3SAndroid Build Coastguard Worker
5643*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5644*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a,__vector __bool long long __b)5645*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) {
5646*bed243d3SAndroid Build Coastguard Worker int __cc;
5647*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
5648*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5649*bed243d3SAndroid Build Coastguard Worker }
5650*bed243d3SAndroid Build Coastguard Worker
5651*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5652*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector unsigned long long __b)5653*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) {
5654*bed243d3SAndroid Build Coastguard Worker int __cc;
5655*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
5656*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5657*bed243d3SAndroid Build Coastguard Worker }
5658*bed243d3SAndroid Build Coastguard Worker
5659*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5660*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector __bool long long __b)5661*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {
5662*bed243d3SAndroid Build Coastguard Worker int __cc;
5663*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vchlgs((__vector unsigned long long)__b,
5664*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__a, &__cc);
5665*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5666*bed243d3SAndroid Build Coastguard Worker }
5667*bed243d3SAndroid Build Coastguard Worker
5668*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
5669*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector float __a,__vector float __b)5670*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector float __a, __vector float __b) {
5671*bed243d3SAndroid Build Coastguard Worker int __cc;
5672*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchsbs(__b, __a, &__cc);
5673*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5674*bed243d3SAndroid Build Coastguard Worker }
5675*bed243d3SAndroid Build Coastguard Worker #endif
5676*bed243d3SAndroid Build Coastguard Worker
5677*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_lt(__vector double __a,__vector double __b)5678*bed243d3SAndroid Build Coastguard Worker vec_any_lt(__vector double __a, __vector double __b) {
5679*bed243d3SAndroid Build Coastguard Worker int __cc;
5680*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__b, __a, &__cc);
5681*bed243d3SAndroid Build Coastguard Worker return __cc <= 1;
5682*bed243d3SAndroid Build Coastguard Worker }
5683*bed243d3SAndroid Build Coastguard Worker
5684*bed243d3SAndroid Build Coastguard Worker /*-- vec_any_nge ------------------------------------------------------------*/
5685*bed243d3SAndroid Build Coastguard Worker
5686*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
5687*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_nge(__vector float __a,__vector float __b)5688*bed243d3SAndroid Build Coastguard Worker vec_any_nge(__vector float __a, __vector float __b) {
5689*bed243d3SAndroid Build Coastguard Worker int __cc;
5690*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchesbs(__a, __b, &__cc);
5691*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5692*bed243d3SAndroid Build Coastguard Worker }
5693*bed243d3SAndroid Build Coastguard Worker #endif
5694*bed243d3SAndroid Build Coastguard Worker
5695*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_nge(__vector double __a,__vector double __b)5696*bed243d3SAndroid Build Coastguard Worker vec_any_nge(__vector double __a, __vector double __b) {
5697*bed243d3SAndroid Build Coastguard Worker int __cc;
5698*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__a, __b, &__cc);
5699*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5700*bed243d3SAndroid Build Coastguard Worker }
5701*bed243d3SAndroid Build Coastguard Worker
5702*bed243d3SAndroid Build Coastguard Worker /*-- vec_any_ngt ------------------------------------------------------------*/
5703*bed243d3SAndroid Build Coastguard Worker
5704*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
5705*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ngt(__vector float __a,__vector float __b)5706*bed243d3SAndroid Build Coastguard Worker vec_any_ngt(__vector float __a, __vector float __b) {
5707*bed243d3SAndroid Build Coastguard Worker int __cc;
5708*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchsbs(__a, __b, &__cc);
5709*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5710*bed243d3SAndroid Build Coastguard Worker }
5711*bed243d3SAndroid Build Coastguard Worker #endif
5712*bed243d3SAndroid Build Coastguard Worker
5713*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_ngt(__vector double __a,__vector double __b)5714*bed243d3SAndroid Build Coastguard Worker vec_any_ngt(__vector double __a, __vector double __b) {
5715*bed243d3SAndroid Build Coastguard Worker int __cc;
5716*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__a, __b, &__cc);
5717*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5718*bed243d3SAndroid Build Coastguard Worker }
5719*bed243d3SAndroid Build Coastguard Worker
5720*bed243d3SAndroid Build Coastguard Worker /*-- vec_any_nle ------------------------------------------------------------*/
5721*bed243d3SAndroid Build Coastguard Worker
5722*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
5723*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_nle(__vector float __a,__vector float __b)5724*bed243d3SAndroid Build Coastguard Worker vec_any_nle(__vector float __a, __vector float __b) {
5725*bed243d3SAndroid Build Coastguard Worker int __cc;
5726*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchesbs(__b, __a, &__cc);
5727*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5728*bed243d3SAndroid Build Coastguard Worker }
5729*bed243d3SAndroid Build Coastguard Worker #endif
5730*bed243d3SAndroid Build Coastguard Worker
5731*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_nle(__vector double __a,__vector double __b)5732*bed243d3SAndroid Build Coastguard Worker vec_any_nle(__vector double __a, __vector double __b) {
5733*bed243d3SAndroid Build Coastguard Worker int __cc;
5734*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchedbs(__b, __a, &__cc);
5735*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5736*bed243d3SAndroid Build Coastguard Worker }
5737*bed243d3SAndroid Build Coastguard Worker
5738*bed243d3SAndroid Build Coastguard Worker /*-- vec_any_nlt ------------------------------------------------------------*/
5739*bed243d3SAndroid Build Coastguard Worker
5740*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
5741*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_nlt(__vector float __a,__vector float __b)5742*bed243d3SAndroid Build Coastguard Worker vec_any_nlt(__vector float __a, __vector float __b) {
5743*bed243d3SAndroid Build Coastguard Worker int __cc;
5744*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchsbs(__b, __a, &__cc);
5745*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5746*bed243d3SAndroid Build Coastguard Worker }
5747*bed243d3SAndroid Build Coastguard Worker #endif
5748*bed243d3SAndroid Build Coastguard Worker
5749*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_nlt(__vector double __a,__vector double __b)5750*bed243d3SAndroid Build Coastguard Worker vec_any_nlt(__vector double __a, __vector double __b) {
5751*bed243d3SAndroid Build Coastguard Worker int __cc;
5752*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfchdbs(__b, __a, &__cc);
5753*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5754*bed243d3SAndroid Build Coastguard Worker }
5755*bed243d3SAndroid Build Coastguard Worker
5756*bed243d3SAndroid Build Coastguard Worker /*-- vec_any_nan ------------------------------------------------------------*/
5757*bed243d3SAndroid Build Coastguard Worker
5758*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
5759*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_nan(__vector float __a)5760*bed243d3SAndroid Build Coastguard Worker vec_any_nan(__vector float __a) {
5761*bed243d3SAndroid Build Coastguard Worker int __cc;
5762*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vftcisb(__a, 15, &__cc);
5763*bed243d3SAndroid Build Coastguard Worker return __cc != 3;
5764*bed243d3SAndroid Build Coastguard Worker }
5765*bed243d3SAndroid Build Coastguard Worker #endif
5766*bed243d3SAndroid Build Coastguard Worker
5767*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_nan(__vector double __a)5768*bed243d3SAndroid Build Coastguard Worker vec_any_nan(__vector double __a) {
5769*bed243d3SAndroid Build Coastguard Worker int __cc;
5770*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vftcidb(__a, 15, &__cc);
5771*bed243d3SAndroid Build Coastguard Worker return __cc != 3;
5772*bed243d3SAndroid Build Coastguard Worker }
5773*bed243d3SAndroid Build Coastguard Worker
5774*bed243d3SAndroid Build Coastguard Worker /*-- vec_any_numeric --------------------------------------------------------*/
5775*bed243d3SAndroid Build Coastguard Worker
5776*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
5777*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_numeric(__vector float __a)5778*bed243d3SAndroid Build Coastguard Worker vec_any_numeric(__vector float __a) {
5779*bed243d3SAndroid Build Coastguard Worker int __cc;
5780*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vftcisb(__a, 15, &__cc);
5781*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5782*bed243d3SAndroid Build Coastguard Worker }
5783*bed243d3SAndroid Build Coastguard Worker #endif
5784*bed243d3SAndroid Build Coastguard Worker
5785*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_any_numeric(__vector double __a)5786*bed243d3SAndroid Build Coastguard Worker vec_any_numeric(__vector double __a) {
5787*bed243d3SAndroid Build Coastguard Worker int __cc;
5788*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vftcidb(__a, 15, &__cc);
5789*bed243d3SAndroid Build Coastguard Worker return __cc != 0;
5790*bed243d3SAndroid Build Coastguard Worker }
5791*bed243d3SAndroid Build Coastguard Worker
5792*bed243d3SAndroid Build Coastguard Worker /*-- vec_andc ---------------------------------------------------------------*/
5793*bed243d3SAndroid Build Coastguard Worker
5794*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_andc(__vector __bool char __a,__vector __bool char __b)5795*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool char __a, __vector __bool char __b) {
5796*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5797*bed243d3SAndroid Build Coastguard Worker }
5798*bed243d3SAndroid Build Coastguard Worker
5799*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a,__vector signed char __b)5800*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector signed char __a, __vector signed char __b) {
5801*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5802*bed243d3SAndroid Build Coastguard Worker }
5803*bed243d3SAndroid Build Coastguard Worker
5804*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5805*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector __bool char __a,__vector signed char __b)5806*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool char __a, __vector signed char __b) {
5807*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5808*bed243d3SAndroid Build Coastguard Worker }
5809*bed243d3SAndroid Build Coastguard Worker
5810*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5811*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a,__vector __bool char __b)5812*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector signed char __a, __vector __bool char __b) {
5813*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5814*bed243d3SAndroid Build Coastguard Worker }
5815*bed243d3SAndroid Build Coastguard Worker
5816*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a,__vector unsigned char __b)5817*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector unsigned char __a, __vector unsigned char __b) {
5818*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5819*bed243d3SAndroid Build Coastguard Worker }
5820*bed243d3SAndroid Build Coastguard Worker
5821*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5822*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector __bool char __a,__vector unsigned char __b)5823*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool char __a, __vector unsigned char __b) {
5824*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5825*bed243d3SAndroid Build Coastguard Worker }
5826*bed243d3SAndroid Build Coastguard Worker
5827*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5828*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a,__vector __bool char __b)5829*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector unsigned char __a, __vector __bool char __b) {
5830*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5831*bed243d3SAndroid Build Coastguard Worker }
5832*bed243d3SAndroid Build Coastguard Worker
5833*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_andc(__vector __bool short __a,__vector __bool short __b)5834*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool short __a, __vector __bool short __b) {
5835*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5836*bed243d3SAndroid Build Coastguard Worker }
5837*bed243d3SAndroid Build Coastguard Worker
5838*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a,__vector signed short __b)5839*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector signed short __a, __vector signed short __b) {
5840*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5841*bed243d3SAndroid Build Coastguard Worker }
5842*bed243d3SAndroid Build Coastguard Worker
5843*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5844*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector __bool short __a,__vector signed short __b)5845*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool short __a, __vector signed short __b) {
5846*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5847*bed243d3SAndroid Build Coastguard Worker }
5848*bed243d3SAndroid Build Coastguard Worker
5849*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5850*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a,__vector __bool short __b)5851*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector signed short __a, __vector __bool short __b) {
5852*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5853*bed243d3SAndroid Build Coastguard Worker }
5854*bed243d3SAndroid Build Coastguard Worker
5855*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a,__vector unsigned short __b)5856*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector unsigned short __a, __vector unsigned short __b) {
5857*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5858*bed243d3SAndroid Build Coastguard Worker }
5859*bed243d3SAndroid Build Coastguard Worker
5860*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5861*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector __bool short __a,__vector unsigned short __b)5862*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool short __a, __vector unsigned short __b) {
5863*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5864*bed243d3SAndroid Build Coastguard Worker }
5865*bed243d3SAndroid Build Coastguard Worker
5866*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5867*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a,__vector __bool short __b)5868*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector unsigned short __a, __vector __bool short __b) {
5869*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5870*bed243d3SAndroid Build Coastguard Worker }
5871*bed243d3SAndroid Build Coastguard Worker
5872*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_andc(__vector __bool int __a,__vector __bool int __b)5873*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool int __a, __vector __bool int __b) {
5874*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5875*bed243d3SAndroid Build Coastguard Worker }
5876*bed243d3SAndroid Build Coastguard Worker
5877*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a,__vector signed int __b)5878*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector signed int __a, __vector signed int __b) {
5879*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5880*bed243d3SAndroid Build Coastguard Worker }
5881*bed243d3SAndroid Build Coastguard Worker
5882*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5883*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector __bool int __a,__vector signed int __b)5884*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool int __a, __vector signed int __b) {
5885*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5886*bed243d3SAndroid Build Coastguard Worker }
5887*bed243d3SAndroid Build Coastguard Worker
5888*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5889*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a,__vector __bool int __b)5890*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector signed int __a, __vector __bool int __b) {
5891*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5892*bed243d3SAndroid Build Coastguard Worker }
5893*bed243d3SAndroid Build Coastguard Worker
5894*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a,__vector unsigned int __b)5895*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector unsigned int __a, __vector unsigned int __b) {
5896*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5897*bed243d3SAndroid Build Coastguard Worker }
5898*bed243d3SAndroid Build Coastguard Worker
5899*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5900*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector __bool int __a,__vector unsigned int __b)5901*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool int __a, __vector unsigned int __b) {
5902*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5903*bed243d3SAndroid Build Coastguard Worker }
5904*bed243d3SAndroid Build Coastguard Worker
5905*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5906*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a,__vector __bool int __b)5907*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector unsigned int __a, __vector __bool int __b) {
5908*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5909*bed243d3SAndroid Build Coastguard Worker }
5910*bed243d3SAndroid Build Coastguard Worker
5911*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_andc(__vector __bool long long __a,__vector __bool long long __b)5912*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool long long __a, __vector __bool long long __b) {
5913*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5914*bed243d3SAndroid Build Coastguard Worker }
5915*bed243d3SAndroid Build Coastguard Worker
5916*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a,__vector signed long long __b)5917*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector signed long long __a, __vector signed long long __b) {
5918*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5919*bed243d3SAndroid Build Coastguard Worker }
5920*bed243d3SAndroid Build Coastguard Worker
5921*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5922*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector __bool long long __a,__vector signed long long __b)5923*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool long long __a, __vector signed long long __b) {
5924*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5925*bed243d3SAndroid Build Coastguard Worker }
5926*bed243d3SAndroid Build Coastguard Worker
5927*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5928*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a,__vector __bool long long __b)5929*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector signed long long __a, __vector __bool long long __b) {
5930*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5931*bed243d3SAndroid Build Coastguard Worker }
5932*bed243d3SAndroid Build Coastguard Worker
5933*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a,__vector unsigned long long __b)5934*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) {
5935*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5936*bed243d3SAndroid Build Coastguard Worker }
5937*bed243d3SAndroid Build Coastguard Worker
5938*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5939*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector __bool long long __a,__vector unsigned long long __b)5940*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool long long __a, __vector unsigned long long __b) {
5941*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5942*bed243d3SAndroid Build Coastguard Worker }
5943*bed243d3SAndroid Build Coastguard Worker
5944*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5945*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a,__vector __bool long long __b)5946*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {
5947*bed243d3SAndroid Build Coastguard Worker return __a & ~__b;
5948*bed243d3SAndroid Build Coastguard Worker }
5949*bed243d3SAndroid Build Coastguard Worker
5950*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
5951*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_andc(__vector float __a,__vector float __b)5952*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector float __a, __vector float __b) {
5953*bed243d3SAndroid Build Coastguard Worker return (__vector float)((__vector unsigned int)__a &
5954*bed243d3SAndroid Build Coastguard Worker ~(__vector unsigned int)__b);
5955*bed243d3SAndroid Build Coastguard Worker }
5956*bed243d3SAndroid Build Coastguard Worker #endif
5957*bed243d3SAndroid Build Coastguard Worker
5958*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a,__vector double __b)5959*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector double __a, __vector double __b) {
5960*bed243d3SAndroid Build Coastguard Worker return (__vector double)((__vector unsigned long long)__a &
5961*bed243d3SAndroid Build Coastguard Worker ~(__vector unsigned long long)__b);
5962*bed243d3SAndroid Build Coastguard Worker }
5963*bed243d3SAndroid Build Coastguard Worker
5964*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5965*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_andc(__vector __bool long long __a,__vector double __b)5966*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector __bool long long __a, __vector double __b) {
5967*bed243d3SAndroid Build Coastguard Worker return (__vector double)((__vector unsigned long long)__a &
5968*bed243d3SAndroid Build Coastguard Worker ~(__vector unsigned long long)__b);
5969*bed243d3SAndroid Build Coastguard Worker }
5970*bed243d3SAndroid Build Coastguard Worker
5971*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5972*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a,__vector __bool long long __b)5973*bed243d3SAndroid Build Coastguard Worker vec_andc(__vector double __a, __vector __bool long long __b) {
5974*bed243d3SAndroid Build Coastguard Worker return (__vector double)((__vector unsigned long long)__a &
5975*bed243d3SAndroid Build Coastguard Worker ~(__vector unsigned long long)__b);
5976*bed243d3SAndroid Build Coastguard Worker }
5977*bed243d3SAndroid Build Coastguard Worker
5978*bed243d3SAndroid Build Coastguard Worker /*-- vec_nor ----------------------------------------------------------------*/
5979*bed243d3SAndroid Build Coastguard Worker
5980*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_nor(__vector __bool char __a,__vector __bool char __b)5981*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool char __a, __vector __bool char __b) {
5982*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
5983*bed243d3SAndroid Build Coastguard Worker }
5984*bed243d3SAndroid Build Coastguard Worker
5985*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a,__vector signed char __b)5986*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector signed char __a, __vector signed char __b) {
5987*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
5988*bed243d3SAndroid Build Coastguard Worker }
5989*bed243d3SAndroid Build Coastguard Worker
5990*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5991*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector __bool char __a,__vector signed char __b)5992*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool char __a, __vector signed char __b) {
5993*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
5994*bed243d3SAndroid Build Coastguard Worker }
5995*bed243d3SAndroid Build Coastguard Worker
5996*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
5997*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a,__vector __bool char __b)5998*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector signed char __a, __vector __bool char __b) {
5999*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6000*bed243d3SAndroid Build Coastguard Worker }
6001*bed243d3SAndroid Build Coastguard Worker
6002*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a,__vector unsigned char __b)6003*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector unsigned char __a, __vector unsigned char __b) {
6004*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6005*bed243d3SAndroid Build Coastguard Worker }
6006*bed243d3SAndroid Build Coastguard Worker
6007*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6008*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector __bool char __a,__vector unsigned char __b)6009*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool char __a, __vector unsigned char __b) {
6010*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6011*bed243d3SAndroid Build Coastguard Worker }
6012*bed243d3SAndroid Build Coastguard Worker
6013*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6014*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a,__vector __bool char __b)6015*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector unsigned char __a, __vector __bool char __b) {
6016*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6017*bed243d3SAndroid Build Coastguard Worker }
6018*bed243d3SAndroid Build Coastguard Worker
6019*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_nor(__vector __bool short __a,__vector __bool short __b)6020*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool short __a, __vector __bool short __b) {
6021*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6022*bed243d3SAndroid Build Coastguard Worker }
6023*bed243d3SAndroid Build Coastguard Worker
6024*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a,__vector signed short __b)6025*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector signed short __a, __vector signed short __b) {
6026*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6027*bed243d3SAndroid Build Coastguard Worker }
6028*bed243d3SAndroid Build Coastguard Worker
6029*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6030*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector __bool short __a,__vector signed short __b)6031*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool short __a, __vector signed short __b) {
6032*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6033*bed243d3SAndroid Build Coastguard Worker }
6034*bed243d3SAndroid Build Coastguard Worker
6035*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6036*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a,__vector __bool short __b)6037*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector signed short __a, __vector __bool short __b) {
6038*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6039*bed243d3SAndroid Build Coastguard Worker }
6040*bed243d3SAndroid Build Coastguard Worker
6041*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a,__vector unsigned short __b)6042*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector unsigned short __a, __vector unsigned short __b) {
6043*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6044*bed243d3SAndroid Build Coastguard Worker }
6045*bed243d3SAndroid Build Coastguard Worker
6046*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6047*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector __bool short __a,__vector unsigned short __b)6048*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool short __a, __vector unsigned short __b) {
6049*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6050*bed243d3SAndroid Build Coastguard Worker }
6051*bed243d3SAndroid Build Coastguard Worker
6052*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6053*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a,__vector __bool short __b)6054*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector unsigned short __a, __vector __bool short __b) {
6055*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6056*bed243d3SAndroid Build Coastguard Worker }
6057*bed243d3SAndroid Build Coastguard Worker
6058*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_nor(__vector __bool int __a,__vector __bool int __b)6059*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool int __a, __vector __bool int __b) {
6060*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6061*bed243d3SAndroid Build Coastguard Worker }
6062*bed243d3SAndroid Build Coastguard Worker
6063*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a,__vector signed int __b)6064*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector signed int __a, __vector signed int __b) {
6065*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6066*bed243d3SAndroid Build Coastguard Worker }
6067*bed243d3SAndroid Build Coastguard Worker
6068*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6069*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector __bool int __a,__vector signed int __b)6070*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool int __a, __vector signed int __b) {
6071*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6072*bed243d3SAndroid Build Coastguard Worker }
6073*bed243d3SAndroid Build Coastguard Worker
6074*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6075*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a,__vector __bool int __b)6076*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector signed int __a, __vector __bool int __b) {
6077*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6078*bed243d3SAndroid Build Coastguard Worker }
6079*bed243d3SAndroid Build Coastguard Worker
6080*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a,__vector unsigned int __b)6081*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector unsigned int __a, __vector unsigned int __b) {
6082*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6083*bed243d3SAndroid Build Coastguard Worker }
6084*bed243d3SAndroid Build Coastguard Worker
6085*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6086*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector __bool int __a,__vector unsigned int __b)6087*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool int __a, __vector unsigned int __b) {
6088*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6089*bed243d3SAndroid Build Coastguard Worker }
6090*bed243d3SAndroid Build Coastguard Worker
6091*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6092*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a,__vector __bool int __b)6093*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector unsigned int __a, __vector __bool int __b) {
6094*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6095*bed243d3SAndroid Build Coastguard Worker }
6096*bed243d3SAndroid Build Coastguard Worker
6097*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_nor(__vector __bool long long __a,__vector __bool long long __b)6098*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool long long __a, __vector __bool long long __b) {
6099*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6100*bed243d3SAndroid Build Coastguard Worker }
6101*bed243d3SAndroid Build Coastguard Worker
6102*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a,__vector signed long long __b)6103*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector signed long long __a, __vector signed long long __b) {
6104*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6105*bed243d3SAndroid Build Coastguard Worker }
6106*bed243d3SAndroid Build Coastguard Worker
6107*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6108*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector __bool long long __a,__vector signed long long __b)6109*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool long long __a, __vector signed long long __b) {
6110*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6111*bed243d3SAndroid Build Coastguard Worker }
6112*bed243d3SAndroid Build Coastguard Worker
6113*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6114*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a,__vector __bool long long __b)6115*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector signed long long __a, __vector __bool long long __b) {
6116*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6117*bed243d3SAndroid Build Coastguard Worker }
6118*bed243d3SAndroid Build Coastguard Worker
6119*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a,__vector unsigned long long __b)6120*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) {
6121*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6122*bed243d3SAndroid Build Coastguard Worker }
6123*bed243d3SAndroid Build Coastguard Worker
6124*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6125*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector __bool long long __a,__vector unsigned long long __b)6126*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool long long __a, __vector unsigned long long __b) {
6127*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6128*bed243d3SAndroid Build Coastguard Worker }
6129*bed243d3SAndroid Build Coastguard Worker
6130*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6131*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a,__vector __bool long long __b)6132*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {
6133*bed243d3SAndroid Build Coastguard Worker return ~(__a | __b);
6134*bed243d3SAndroid Build Coastguard Worker }
6135*bed243d3SAndroid Build Coastguard Worker
6136*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
6137*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_nor(__vector float __a,__vector float __b)6138*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector float __a, __vector float __b) {
6139*bed243d3SAndroid Build Coastguard Worker return (__vector float)~((__vector unsigned int)__a |
6140*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b);
6141*bed243d3SAndroid Build Coastguard Worker }
6142*bed243d3SAndroid Build Coastguard Worker #endif
6143*bed243d3SAndroid Build Coastguard Worker
6144*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a,__vector double __b)6145*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector double __a, __vector double __b) {
6146*bed243d3SAndroid Build Coastguard Worker return (__vector double)~((__vector unsigned long long)__a |
6147*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b);
6148*bed243d3SAndroid Build Coastguard Worker }
6149*bed243d3SAndroid Build Coastguard Worker
6150*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6151*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_nor(__vector __bool long long __a,__vector double __b)6152*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector __bool long long __a, __vector double __b) {
6153*bed243d3SAndroid Build Coastguard Worker return (__vector double)~((__vector unsigned long long)__a |
6154*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b);
6155*bed243d3SAndroid Build Coastguard Worker }
6156*bed243d3SAndroid Build Coastguard Worker
6157*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6158*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a,__vector __bool long long __b)6159*bed243d3SAndroid Build Coastguard Worker vec_nor(__vector double __a, __vector __bool long long __b) {
6160*bed243d3SAndroid Build Coastguard Worker return (__vector double)~((__vector unsigned long long)__a |
6161*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b);
6162*bed243d3SAndroid Build Coastguard Worker }
6163*bed243d3SAndroid Build Coastguard Worker
6164*bed243d3SAndroid Build Coastguard Worker /*-- vec_orc ----------------------------------------------------------------*/
6165*bed243d3SAndroid Build Coastguard Worker
6166*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
6167*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_orc(__vector __bool char __a,__vector __bool char __b)6168*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector __bool char __a, __vector __bool char __b) {
6169*bed243d3SAndroid Build Coastguard Worker return __a | ~__b;
6170*bed243d3SAndroid Build Coastguard Worker }
6171*bed243d3SAndroid Build Coastguard Worker
6172*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_orc(__vector signed char __a,__vector signed char __b)6173*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector signed char __a, __vector signed char __b) {
6174*bed243d3SAndroid Build Coastguard Worker return __a | ~__b;
6175*bed243d3SAndroid Build Coastguard Worker }
6176*bed243d3SAndroid Build Coastguard Worker
6177*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_orc(__vector unsigned char __a,__vector unsigned char __b)6178*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector unsigned char __a, __vector unsigned char __b) {
6179*bed243d3SAndroid Build Coastguard Worker return __a | ~__b;
6180*bed243d3SAndroid Build Coastguard Worker }
6181*bed243d3SAndroid Build Coastguard Worker
6182*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_orc(__vector __bool short __a,__vector __bool short __b)6183*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector __bool short __a, __vector __bool short __b) {
6184*bed243d3SAndroid Build Coastguard Worker return __a | ~__b;
6185*bed243d3SAndroid Build Coastguard Worker }
6186*bed243d3SAndroid Build Coastguard Worker
6187*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_orc(__vector signed short __a,__vector signed short __b)6188*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector signed short __a, __vector signed short __b) {
6189*bed243d3SAndroid Build Coastguard Worker return __a | ~__b;
6190*bed243d3SAndroid Build Coastguard Worker }
6191*bed243d3SAndroid Build Coastguard Worker
6192*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_orc(__vector unsigned short __a,__vector unsigned short __b)6193*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector unsigned short __a, __vector unsigned short __b) {
6194*bed243d3SAndroid Build Coastguard Worker return __a | ~__b;
6195*bed243d3SAndroid Build Coastguard Worker }
6196*bed243d3SAndroid Build Coastguard Worker
6197*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_orc(__vector __bool int __a,__vector __bool int __b)6198*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector __bool int __a, __vector __bool int __b) {
6199*bed243d3SAndroid Build Coastguard Worker return __a | ~__b;
6200*bed243d3SAndroid Build Coastguard Worker }
6201*bed243d3SAndroid Build Coastguard Worker
6202*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_orc(__vector signed int __a,__vector signed int __b)6203*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector signed int __a, __vector signed int __b) {
6204*bed243d3SAndroid Build Coastguard Worker return __a | ~__b;
6205*bed243d3SAndroid Build Coastguard Worker }
6206*bed243d3SAndroid Build Coastguard Worker
6207*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_orc(__vector unsigned int __a,__vector unsigned int __b)6208*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector unsigned int __a, __vector unsigned int __b) {
6209*bed243d3SAndroid Build Coastguard Worker return __a | ~__b;
6210*bed243d3SAndroid Build Coastguard Worker }
6211*bed243d3SAndroid Build Coastguard Worker
6212*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_orc(__vector __bool long long __a,__vector __bool long long __b)6213*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector __bool long long __a, __vector __bool long long __b) {
6214*bed243d3SAndroid Build Coastguard Worker return __a | ~__b;
6215*bed243d3SAndroid Build Coastguard Worker }
6216*bed243d3SAndroid Build Coastguard Worker
6217*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_orc(__vector signed long long __a,__vector signed long long __b)6218*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector signed long long __a, __vector signed long long __b) {
6219*bed243d3SAndroid Build Coastguard Worker return __a | ~__b;
6220*bed243d3SAndroid Build Coastguard Worker }
6221*bed243d3SAndroid Build Coastguard Worker
6222*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_orc(__vector unsigned long long __a,__vector unsigned long long __b)6223*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {
6224*bed243d3SAndroid Build Coastguard Worker return __a | ~__b;
6225*bed243d3SAndroid Build Coastguard Worker }
6226*bed243d3SAndroid Build Coastguard Worker
6227*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_orc(__vector float __a,__vector float __b)6228*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector float __a, __vector float __b) {
6229*bed243d3SAndroid Build Coastguard Worker return (__vector float)((__vector unsigned int)__a |
6230*bed243d3SAndroid Build Coastguard Worker ~(__vector unsigned int)__b);
6231*bed243d3SAndroid Build Coastguard Worker }
6232*bed243d3SAndroid Build Coastguard Worker
6233*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_orc(__vector double __a,__vector double __b)6234*bed243d3SAndroid Build Coastguard Worker vec_orc(__vector double __a, __vector double __b) {
6235*bed243d3SAndroid Build Coastguard Worker return (__vector double)((__vector unsigned long long)__a |
6236*bed243d3SAndroid Build Coastguard Worker ~(__vector unsigned long long)__b);
6237*bed243d3SAndroid Build Coastguard Worker }
6238*bed243d3SAndroid Build Coastguard Worker #endif
6239*bed243d3SAndroid Build Coastguard Worker
6240*bed243d3SAndroid Build Coastguard Worker /*-- vec_nand ---------------------------------------------------------------*/
6241*bed243d3SAndroid Build Coastguard Worker
6242*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
6243*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_nand(__vector __bool char __a,__vector __bool char __b)6244*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector __bool char __a, __vector __bool char __b) {
6245*bed243d3SAndroid Build Coastguard Worker return ~(__a & __b);
6246*bed243d3SAndroid Build Coastguard Worker }
6247*bed243d3SAndroid Build Coastguard Worker
6248*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_nand(__vector signed char __a,__vector signed char __b)6249*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector signed char __a, __vector signed char __b) {
6250*bed243d3SAndroid Build Coastguard Worker return ~(__a & __b);
6251*bed243d3SAndroid Build Coastguard Worker }
6252*bed243d3SAndroid Build Coastguard Worker
6253*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_nand(__vector unsigned char __a,__vector unsigned char __b)6254*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector unsigned char __a, __vector unsigned char __b) {
6255*bed243d3SAndroid Build Coastguard Worker return ~(__a & __b);
6256*bed243d3SAndroid Build Coastguard Worker }
6257*bed243d3SAndroid Build Coastguard Worker
6258*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_nand(__vector __bool short __a,__vector __bool short __b)6259*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector __bool short __a, __vector __bool short __b) {
6260*bed243d3SAndroid Build Coastguard Worker return ~(__a & __b);
6261*bed243d3SAndroid Build Coastguard Worker }
6262*bed243d3SAndroid Build Coastguard Worker
6263*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_nand(__vector signed short __a,__vector signed short __b)6264*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector signed short __a, __vector signed short __b) {
6265*bed243d3SAndroid Build Coastguard Worker return ~(__a & __b);
6266*bed243d3SAndroid Build Coastguard Worker }
6267*bed243d3SAndroid Build Coastguard Worker
6268*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_nand(__vector unsigned short __a,__vector unsigned short __b)6269*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector unsigned short __a, __vector unsigned short __b) {
6270*bed243d3SAndroid Build Coastguard Worker return ~(__a & __b);
6271*bed243d3SAndroid Build Coastguard Worker }
6272*bed243d3SAndroid Build Coastguard Worker
6273*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_nand(__vector __bool int __a,__vector __bool int __b)6274*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector __bool int __a, __vector __bool int __b) {
6275*bed243d3SAndroid Build Coastguard Worker return ~(__a & __b);
6276*bed243d3SAndroid Build Coastguard Worker }
6277*bed243d3SAndroid Build Coastguard Worker
6278*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_nand(__vector signed int __a,__vector signed int __b)6279*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector signed int __a, __vector signed int __b) {
6280*bed243d3SAndroid Build Coastguard Worker return ~(__a & __b);
6281*bed243d3SAndroid Build Coastguard Worker }
6282*bed243d3SAndroid Build Coastguard Worker
6283*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_nand(__vector unsigned int __a,__vector unsigned int __b)6284*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector unsigned int __a, __vector unsigned int __b) {
6285*bed243d3SAndroid Build Coastguard Worker return ~(__a & __b);
6286*bed243d3SAndroid Build Coastguard Worker }
6287*bed243d3SAndroid Build Coastguard Worker
6288*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_nand(__vector __bool long long __a,__vector __bool long long __b)6289*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector __bool long long __a, __vector __bool long long __b) {
6290*bed243d3SAndroid Build Coastguard Worker return ~(__a & __b);
6291*bed243d3SAndroid Build Coastguard Worker }
6292*bed243d3SAndroid Build Coastguard Worker
6293*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_nand(__vector signed long long __a,__vector signed long long __b)6294*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector signed long long __a, __vector signed long long __b) {
6295*bed243d3SAndroid Build Coastguard Worker return ~(__a & __b);
6296*bed243d3SAndroid Build Coastguard Worker }
6297*bed243d3SAndroid Build Coastguard Worker
6298*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_nand(__vector unsigned long long __a,__vector unsigned long long __b)6299*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {
6300*bed243d3SAndroid Build Coastguard Worker return ~(__a & __b);
6301*bed243d3SAndroid Build Coastguard Worker }
6302*bed243d3SAndroid Build Coastguard Worker
6303*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_nand(__vector float __a,__vector float __b)6304*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector float __a, __vector float __b) {
6305*bed243d3SAndroid Build Coastguard Worker return (__vector float)~((__vector unsigned int)__a &
6306*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b);
6307*bed243d3SAndroid Build Coastguard Worker }
6308*bed243d3SAndroid Build Coastguard Worker
6309*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_nand(__vector double __a,__vector double __b)6310*bed243d3SAndroid Build Coastguard Worker vec_nand(__vector double __a, __vector double __b) {
6311*bed243d3SAndroid Build Coastguard Worker return (__vector double)~((__vector unsigned long long)__a &
6312*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b);
6313*bed243d3SAndroid Build Coastguard Worker }
6314*bed243d3SAndroid Build Coastguard Worker #endif
6315*bed243d3SAndroid Build Coastguard Worker
6316*bed243d3SAndroid Build Coastguard Worker /*-- vec_eqv ----------------------------------------------------------------*/
6317*bed243d3SAndroid Build Coastguard Worker
6318*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
6319*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_eqv(__vector __bool char __a,__vector __bool char __b)6320*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector __bool char __a, __vector __bool char __b) {
6321*bed243d3SAndroid Build Coastguard Worker return ~(__a ^ __b);
6322*bed243d3SAndroid Build Coastguard Worker }
6323*bed243d3SAndroid Build Coastguard Worker
6324*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_eqv(__vector signed char __a,__vector signed char __b)6325*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector signed char __a, __vector signed char __b) {
6326*bed243d3SAndroid Build Coastguard Worker return ~(__a ^ __b);
6327*bed243d3SAndroid Build Coastguard Worker }
6328*bed243d3SAndroid Build Coastguard Worker
6329*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_eqv(__vector unsigned char __a,__vector unsigned char __b)6330*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector unsigned char __a, __vector unsigned char __b) {
6331*bed243d3SAndroid Build Coastguard Worker return ~(__a ^ __b);
6332*bed243d3SAndroid Build Coastguard Worker }
6333*bed243d3SAndroid Build Coastguard Worker
6334*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_eqv(__vector __bool short __a,__vector __bool short __b)6335*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector __bool short __a, __vector __bool short __b) {
6336*bed243d3SAndroid Build Coastguard Worker return ~(__a ^ __b);
6337*bed243d3SAndroid Build Coastguard Worker }
6338*bed243d3SAndroid Build Coastguard Worker
6339*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_eqv(__vector signed short __a,__vector signed short __b)6340*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector signed short __a, __vector signed short __b) {
6341*bed243d3SAndroid Build Coastguard Worker return ~(__a ^ __b);
6342*bed243d3SAndroid Build Coastguard Worker }
6343*bed243d3SAndroid Build Coastguard Worker
6344*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_eqv(__vector unsigned short __a,__vector unsigned short __b)6345*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector unsigned short __a, __vector unsigned short __b) {
6346*bed243d3SAndroid Build Coastguard Worker return ~(__a ^ __b);
6347*bed243d3SAndroid Build Coastguard Worker }
6348*bed243d3SAndroid Build Coastguard Worker
6349*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_eqv(__vector __bool int __a,__vector __bool int __b)6350*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector __bool int __a, __vector __bool int __b) {
6351*bed243d3SAndroid Build Coastguard Worker return ~(__a ^ __b);
6352*bed243d3SAndroid Build Coastguard Worker }
6353*bed243d3SAndroid Build Coastguard Worker
6354*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_eqv(__vector signed int __a,__vector signed int __b)6355*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector signed int __a, __vector signed int __b) {
6356*bed243d3SAndroid Build Coastguard Worker return ~(__a ^ __b);
6357*bed243d3SAndroid Build Coastguard Worker }
6358*bed243d3SAndroid Build Coastguard Worker
6359*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_eqv(__vector unsigned int __a,__vector unsigned int __b)6360*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector unsigned int __a, __vector unsigned int __b) {
6361*bed243d3SAndroid Build Coastguard Worker return ~(__a ^ __b);
6362*bed243d3SAndroid Build Coastguard Worker }
6363*bed243d3SAndroid Build Coastguard Worker
6364*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_eqv(__vector __bool long long __a,__vector __bool long long __b)6365*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector __bool long long __a, __vector __bool long long __b) {
6366*bed243d3SAndroid Build Coastguard Worker return ~(__a ^ __b);
6367*bed243d3SAndroid Build Coastguard Worker }
6368*bed243d3SAndroid Build Coastguard Worker
6369*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_eqv(__vector signed long long __a,__vector signed long long __b)6370*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector signed long long __a, __vector signed long long __b) {
6371*bed243d3SAndroid Build Coastguard Worker return ~(__a ^ __b);
6372*bed243d3SAndroid Build Coastguard Worker }
6373*bed243d3SAndroid Build Coastguard Worker
6374*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_eqv(__vector unsigned long long __a,__vector unsigned long long __b)6375*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {
6376*bed243d3SAndroid Build Coastguard Worker return ~(__a ^ __b);
6377*bed243d3SAndroid Build Coastguard Worker }
6378*bed243d3SAndroid Build Coastguard Worker
6379*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_eqv(__vector float __a,__vector float __b)6380*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector float __a, __vector float __b) {
6381*bed243d3SAndroid Build Coastguard Worker return (__vector float)~((__vector unsigned int)__a ^
6382*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b);
6383*bed243d3SAndroid Build Coastguard Worker }
6384*bed243d3SAndroid Build Coastguard Worker
6385*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_eqv(__vector double __a,__vector double __b)6386*bed243d3SAndroid Build Coastguard Worker vec_eqv(__vector double __a, __vector double __b) {
6387*bed243d3SAndroid Build Coastguard Worker return (__vector double)~((__vector unsigned long long)__a ^
6388*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__b);
6389*bed243d3SAndroid Build Coastguard Worker }
6390*bed243d3SAndroid Build Coastguard Worker #endif
6391*bed243d3SAndroid Build Coastguard Worker
6392*bed243d3SAndroid Build Coastguard Worker /*-- vec_cntlz --------------------------------------------------------------*/
6393*bed243d3SAndroid Build Coastguard Worker
6394*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector signed char __a)6395*bed243d3SAndroid Build Coastguard Worker vec_cntlz(__vector signed char __a) {
6396*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vclzb((__vector unsigned char)__a);
6397*bed243d3SAndroid Build Coastguard Worker }
6398*bed243d3SAndroid Build Coastguard Worker
6399*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector unsigned char __a)6400*bed243d3SAndroid Build Coastguard Worker vec_cntlz(__vector unsigned char __a) {
6401*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vclzb(__a);
6402*bed243d3SAndroid Build Coastguard Worker }
6403*bed243d3SAndroid Build Coastguard Worker
6404*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector signed short __a)6405*bed243d3SAndroid Build Coastguard Worker vec_cntlz(__vector signed short __a) {
6406*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vclzh((__vector unsigned short)__a);
6407*bed243d3SAndroid Build Coastguard Worker }
6408*bed243d3SAndroid Build Coastguard Worker
6409*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector unsigned short __a)6410*bed243d3SAndroid Build Coastguard Worker vec_cntlz(__vector unsigned short __a) {
6411*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vclzh(__a);
6412*bed243d3SAndroid Build Coastguard Worker }
6413*bed243d3SAndroid Build Coastguard Worker
6414*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector signed int __a)6415*bed243d3SAndroid Build Coastguard Worker vec_cntlz(__vector signed int __a) {
6416*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vclzf((__vector unsigned int)__a);
6417*bed243d3SAndroid Build Coastguard Worker }
6418*bed243d3SAndroid Build Coastguard Worker
6419*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector unsigned int __a)6420*bed243d3SAndroid Build Coastguard Worker vec_cntlz(__vector unsigned int __a) {
6421*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vclzf(__a);
6422*bed243d3SAndroid Build Coastguard Worker }
6423*bed243d3SAndroid Build Coastguard Worker
6424*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector signed long long __a)6425*bed243d3SAndroid Build Coastguard Worker vec_cntlz(__vector signed long long __a) {
6426*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vclzg((__vector unsigned long long)__a);
6427*bed243d3SAndroid Build Coastguard Worker }
6428*bed243d3SAndroid Build Coastguard Worker
6429*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector unsigned long long __a)6430*bed243d3SAndroid Build Coastguard Worker vec_cntlz(__vector unsigned long long __a) {
6431*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vclzg(__a);
6432*bed243d3SAndroid Build Coastguard Worker }
6433*bed243d3SAndroid Build Coastguard Worker
6434*bed243d3SAndroid Build Coastguard Worker /*-- vec_cnttz --------------------------------------------------------------*/
6435*bed243d3SAndroid Build Coastguard Worker
6436*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector signed char __a)6437*bed243d3SAndroid Build Coastguard Worker vec_cnttz(__vector signed char __a) {
6438*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vctzb((__vector unsigned char)__a);
6439*bed243d3SAndroid Build Coastguard Worker }
6440*bed243d3SAndroid Build Coastguard Worker
6441*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector unsigned char __a)6442*bed243d3SAndroid Build Coastguard Worker vec_cnttz(__vector unsigned char __a) {
6443*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vctzb(__a);
6444*bed243d3SAndroid Build Coastguard Worker }
6445*bed243d3SAndroid Build Coastguard Worker
6446*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector signed short __a)6447*bed243d3SAndroid Build Coastguard Worker vec_cnttz(__vector signed short __a) {
6448*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vctzh((__vector unsigned short)__a);
6449*bed243d3SAndroid Build Coastguard Worker }
6450*bed243d3SAndroid Build Coastguard Worker
6451*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector unsigned short __a)6452*bed243d3SAndroid Build Coastguard Worker vec_cnttz(__vector unsigned short __a) {
6453*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vctzh(__a);
6454*bed243d3SAndroid Build Coastguard Worker }
6455*bed243d3SAndroid Build Coastguard Worker
6456*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector signed int __a)6457*bed243d3SAndroid Build Coastguard Worker vec_cnttz(__vector signed int __a) {
6458*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vctzf((__vector unsigned int)__a);
6459*bed243d3SAndroid Build Coastguard Worker }
6460*bed243d3SAndroid Build Coastguard Worker
6461*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector unsigned int __a)6462*bed243d3SAndroid Build Coastguard Worker vec_cnttz(__vector unsigned int __a) {
6463*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vctzf(__a);
6464*bed243d3SAndroid Build Coastguard Worker }
6465*bed243d3SAndroid Build Coastguard Worker
6466*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector signed long long __a)6467*bed243d3SAndroid Build Coastguard Worker vec_cnttz(__vector signed long long __a) {
6468*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vctzg((__vector unsigned long long)__a);
6469*bed243d3SAndroid Build Coastguard Worker }
6470*bed243d3SAndroid Build Coastguard Worker
6471*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector unsigned long long __a)6472*bed243d3SAndroid Build Coastguard Worker vec_cnttz(__vector unsigned long long __a) {
6473*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vctzg(__a);
6474*bed243d3SAndroid Build Coastguard Worker }
6475*bed243d3SAndroid Build Coastguard Worker
6476*bed243d3SAndroid Build Coastguard Worker /*-- vec_popcnt -------------------------------------------------------------*/
6477*bed243d3SAndroid Build Coastguard Worker
6478*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector signed char __a)6479*bed243d3SAndroid Build Coastguard Worker vec_popcnt(__vector signed char __a) {
6480*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpopctb((__vector unsigned char)__a);
6481*bed243d3SAndroid Build Coastguard Worker }
6482*bed243d3SAndroid Build Coastguard Worker
6483*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector unsigned char __a)6484*bed243d3SAndroid Build Coastguard Worker vec_popcnt(__vector unsigned char __a) {
6485*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpopctb(__a);
6486*bed243d3SAndroid Build Coastguard Worker }
6487*bed243d3SAndroid Build Coastguard Worker
6488*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector signed short __a)6489*bed243d3SAndroid Build Coastguard Worker vec_popcnt(__vector signed short __a) {
6490*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpopcth((__vector unsigned short)__a);
6491*bed243d3SAndroid Build Coastguard Worker }
6492*bed243d3SAndroid Build Coastguard Worker
6493*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector unsigned short __a)6494*bed243d3SAndroid Build Coastguard Worker vec_popcnt(__vector unsigned short __a) {
6495*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpopcth(__a);
6496*bed243d3SAndroid Build Coastguard Worker }
6497*bed243d3SAndroid Build Coastguard Worker
6498*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector signed int __a)6499*bed243d3SAndroid Build Coastguard Worker vec_popcnt(__vector signed int __a) {
6500*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpopctf((__vector unsigned int)__a);
6501*bed243d3SAndroid Build Coastguard Worker }
6502*bed243d3SAndroid Build Coastguard Worker
6503*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector unsigned int __a)6504*bed243d3SAndroid Build Coastguard Worker vec_popcnt(__vector unsigned int __a) {
6505*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpopctf(__a);
6506*bed243d3SAndroid Build Coastguard Worker }
6507*bed243d3SAndroid Build Coastguard Worker
6508*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector signed long long __a)6509*bed243d3SAndroid Build Coastguard Worker vec_popcnt(__vector signed long long __a) {
6510*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpopctg((__vector unsigned long long)__a);
6511*bed243d3SAndroid Build Coastguard Worker }
6512*bed243d3SAndroid Build Coastguard Worker
6513*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector unsigned long long __a)6514*bed243d3SAndroid Build Coastguard Worker vec_popcnt(__vector unsigned long long __a) {
6515*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vpopctg(__a);
6516*bed243d3SAndroid Build Coastguard Worker }
6517*bed243d3SAndroid Build Coastguard Worker
6518*bed243d3SAndroid Build Coastguard Worker /*-- vec_rl -----------------------------------------------------------------*/
6519*bed243d3SAndroid Build Coastguard Worker
6520*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_rl(__vector signed char __a,__vector unsigned char __b)6521*bed243d3SAndroid Build Coastguard Worker vec_rl(__vector signed char __a, __vector unsigned char __b) {
6522*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_verllvb(
6523*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6524*bed243d3SAndroid Build Coastguard Worker }
6525*bed243d3SAndroid Build Coastguard Worker
6526*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_rl(__vector unsigned char __a,__vector unsigned char __b)6527*bed243d3SAndroid Build Coastguard Worker vec_rl(__vector unsigned char __a, __vector unsigned char __b) {
6528*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_verllvb(__a, __b);
6529*bed243d3SAndroid Build Coastguard Worker }
6530*bed243d3SAndroid Build Coastguard Worker
6531*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_rl(__vector signed short __a,__vector unsigned short __b)6532*bed243d3SAndroid Build Coastguard Worker vec_rl(__vector signed short __a, __vector unsigned short __b) {
6533*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_verllvh(
6534*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__a, __b);
6535*bed243d3SAndroid Build Coastguard Worker }
6536*bed243d3SAndroid Build Coastguard Worker
6537*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_rl(__vector unsigned short __a,__vector unsigned short __b)6538*bed243d3SAndroid Build Coastguard Worker vec_rl(__vector unsigned short __a, __vector unsigned short __b) {
6539*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_verllvh(__a, __b);
6540*bed243d3SAndroid Build Coastguard Worker }
6541*bed243d3SAndroid Build Coastguard Worker
6542*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_rl(__vector signed int __a,__vector unsigned int __b)6543*bed243d3SAndroid Build Coastguard Worker vec_rl(__vector signed int __a, __vector unsigned int __b) {
6544*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_verllvf(
6545*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__a, __b);
6546*bed243d3SAndroid Build Coastguard Worker }
6547*bed243d3SAndroid Build Coastguard Worker
6548*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_rl(__vector unsigned int __a,__vector unsigned int __b)6549*bed243d3SAndroid Build Coastguard Worker vec_rl(__vector unsigned int __a, __vector unsigned int __b) {
6550*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_verllvf(__a, __b);
6551*bed243d3SAndroid Build Coastguard Worker }
6552*bed243d3SAndroid Build Coastguard Worker
6553*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_rl(__vector signed long long __a,__vector unsigned long long __b)6554*bed243d3SAndroid Build Coastguard Worker vec_rl(__vector signed long long __a, __vector unsigned long long __b) {
6555*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_verllvg(
6556*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__a, __b);
6557*bed243d3SAndroid Build Coastguard Worker }
6558*bed243d3SAndroid Build Coastguard Worker
6559*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_rl(__vector unsigned long long __a,__vector unsigned long long __b)6560*bed243d3SAndroid Build Coastguard Worker vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) {
6561*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_verllvg(__a, __b);
6562*bed243d3SAndroid Build Coastguard Worker }
6563*bed243d3SAndroid Build Coastguard Worker
6564*bed243d3SAndroid Build Coastguard Worker /*-- vec_rli ----------------------------------------------------------------*/
6565*bed243d3SAndroid Build Coastguard Worker
6566*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_rli(__vector signed char __a,unsigned long __b)6567*bed243d3SAndroid Build Coastguard Worker vec_rli(__vector signed char __a, unsigned long __b) {
6568*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_verllb(
6569*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (unsigned char)__b);
6570*bed243d3SAndroid Build Coastguard Worker }
6571*bed243d3SAndroid Build Coastguard Worker
6572*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_rli(__vector unsigned char __a,unsigned long __b)6573*bed243d3SAndroid Build Coastguard Worker vec_rli(__vector unsigned char __a, unsigned long __b) {
6574*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_verllb(__a, (unsigned char)__b);
6575*bed243d3SAndroid Build Coastguard Worker }
6576*bed243d3SAndroid Build Coastguard Worker
6577*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_rli(__vector signed short __a,unsigned long __b)6578*bed243d3SAndroid Build Coastguard Worker vec_rli(__vector signed short __a, unsigned long __b) {
6579*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_verllh(
6580*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__a, (unsigned char)__b);
6581*bed243d3SAndroid Build Coastguard Worker }
6582*bed243d3SAndroid Build Coastguard Worker
6583*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_rli(__vector unsigned short __a,unsigned long __b)6584*bed243d3SAndroid Build Coastguard Worker vec_rli(__vector unsigned short __a, unsigned long __b) {
6585*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_verllh(__a, (unsigned char)__b);
6586*bed243d3SAndroid Build Coastguard Worker }
6587*bed243d3SAndroid Build Coastguard Worker
6588*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_rli(__vector signed int __a,unsigned long __b)6589*bed243d3SAndroid Build Coastguard Worker vec_rli(__vector signed int __a, unsigned long __b) {
6590*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_verllf(
6591*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__a, (unsigned char)__b);
6592*bed243d3SAndroid Build Coastguard Worker }
6593*bed243d3SAndroid Build Coastguard Worker
6594*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_rli(__vector unsigned int __a,unsigned long __b)6595*bed243d3SAndroid Build Coastguard Worker vec_rli(__vector unsigned int __a, unsigned long __b) {
6596*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_verllf(__a, (unsigned char)__b);
6597*bed243d3SAndroid Build Coastguard Worker }
6598*bed243d3SAndroid Build Coastguard Worker
6599*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_rli(__vector signed long long __a,unsigned long __b)6600*bed243d3SAndroid Build Coastguard Worker vec_rli(__vector signed long long __a, unsigned long __b) {
6601*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_verllg(
6602*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__a, (unsigned char)__b);
6603*bed243d3SAndroid Build Coastguard Worker }
6604*bed243d3SAndroid Build Coastguard Worker
6605*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_rli(__vector unsigned long long __a,unsigned long __b)6606*bed243d3SAndroid Build Coastguard Worker vec_rli(__vector unsigned long long __a, unsigned long __b) {
6607*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_verllg(__a, (unsigned char)__b);
6608*bed243d3SAndroid Build Coastguard Worker }
6609*bed243d3SAndroid Build Coastguard Worker
6610*bed243d3SAndroid Build Coastguard Worker /*-- vec_rl_mask ------------------------------------------------------------*/
6611*bed243d3SAndroid Build Coastguard Worker
6612*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed char
6613*bed243d3SAndroid Build Coastguard Worker vec_rl_mask(__vector signed char __a, __vector unsigned char __b,
6614*bed243d3SAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
6615*bed243d3SAndroid Build Coastguard Worker
6616*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned char
6617*bed243d3SAndroid Build Coastguard Worker vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b,
6618*bed243d3SAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
6619*bed243d3SAndroid Build Coastguard Worker
6620*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed short
6621*bed243d3SAndroid Build Coastguard Worker vec_rl_mask(__vector signed short __a, __vector unsigned short __b,
6622*bed243d3SAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
6623*bed243d3SAndroid Build Coastguard Worker
6624*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned short
6625*bed243d3SAndroid Build Coastguard Worker vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b,
6626*bed243d3SAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
6627*bed243d3SAndroid Build Coastguard Worker
6628*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed int
6629*bed243d3SAndroid Build Coastguard Worker vec_rl_mask(__vector signed int __a, __vector unsigned int __b,
6630*bed243d3SAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
6631*bed243d3SAndroid Build Coastguard Worker
6632*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned int
6633*bed243d3SAndroid Build Coastguard Worker vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b,
6634*bed243d3SAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
6635*bed243d3SAndroid Build Coastguard Worker
6636*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed long long
6637*bed243d3SAndroid Build Coastguard Worker vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b,
6638*bed243d3SAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
6639*bed243d3SAndroid Build Coastguard Worker
6640*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned long long
6641*bed243d3SAndroid Build Coastguard Worker vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b,
6642*bed243d3SAndroid Build Coastguard Worker unsigned char __c) __constant(__c);
6643*bed243d3SAndroid Build Coastguard Worker
6644*bed243d3SAndroid Build Coastguard Worker #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
6645*bed243d3SAndroid Build Coastguard Worker __extension__ ({ \
6646*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __res; \
6647*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __x = (__vector unsigned char)(X); \
6648*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __y = (__vector unsigned char)(Y); \
6649*bed243d3SAndroid Build Coastguard Worker switch (sizeof ((X)[0])) { \
6650*bed243d3SAndroid Build Coastguard Worker case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \
6651*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__x, (__vector unsigned char)__x, \
6652*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__y, (Z)); break; \
6653*bed243d3SAndroid Build Coastguard Worker case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \
6654*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__x, (__vector unsigned short)__x, \
6655*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__y, (Z)); break; \
6656*bed243d3SAndroid Build Coastguard Worker case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \
6657*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__x, (__vector unsigned int)__x, \
6658*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__y, (Z)); break; \
6659*bed243d3SAndroid Build Coastguard Worker default: __res = (__vector unsigned char) __builtin_s390_verimg( \
6660*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__x, (__vector unsigned long long)__x, \
6661*bed243d3SAndroid Build Coastguard Worker (__vector unsigned long long)__y, (Z)); break; \
6662*bed243d3SAndroid Build Coastguard Worker } __res; }))
6663*bed243d3SAndroid Build Coastguard Worker
6664*bed243d3SAndroid Build Coastguard Worker /*-- vec_sll ----------------------------------------------------------------*/
6665*bed243d3SAndroid Build Coastguard Worker
6666*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned char __b)6667*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector signed char __a, __vector unsigned char __b) {
6668*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsl(
6669*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6670*bed243d3SAndroid Build Coastguard Worker }
6671*bed243d3SAndroid Build Coastguard Worker
6672*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6673*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned short __b)6674*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector signed char __a, __vector unsigned short __b) {
6675*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsl(
6676*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6677*bed243d3SAndroid Build Coastguard Worker }
6678*bed243d3SAndroid Build Coastguard Worker
6679*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6680*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned int __b)6681*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector signed char __a, __vector unsigned int __b) {
6682*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsl(
6683*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6684*bed243d3SAndroid Build Coastguard Worker }
6685*bed243d3SAndroid Build Coastguard Worker
6686*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6687*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned char __b)6688*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector __bool char __a, __vector unsigned char __b) {
6689*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vsl(
6690*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6691*bed243d3SAndroid Build Coastguard Worker }
6692*bed243d3SAndroid Build Coastguard Worker
6693*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6694*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned short __b)6695*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector __bool char __a, __vector unsigned short __b) {
6696*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vsl(
6697*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6698*bed243d3SAndroid Build Coastguard Worker }
6699*bed243d3SAndroid Build Coastguard Worker
6700*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6701*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned int __b)6702*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector __bool char __a, __vector unsigned int __b) {
6703*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vsl(
6704*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6705*bed243d3SAndroid Build Coastguard Worker }
6706*bed243d3SAndroid Build Coastguard Worker
6707*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned char __b)6708*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector unsigned char __a, __vector unsigned char __b) {
6709*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsl(__a, __b);
6710*bed243d3SAndroid Build Coastguard Worker }
6711*bed243d3SAndroid Build Coastguard Worker
6712*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6713*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned short __b)6714*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector unsigned char __a, __vector unsigned short __b) {
6715*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
6716*bed243d3SAndroid Build Coastguard Worker }
6717*bed243d3SAndroid Build Coastguard Worker
6718*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6719*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned int __b)6720*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector unsigned char __a, __vector unsigned int __b) {
6721*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
6722*bed243d3SAndroid Build Coastguard Worker }
6723*bed243d3SAndroid Build Coastguard Worker
6724*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned char __b)6725*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector signed short __a, __vector unsigned char __b) {
6726*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsl(
6727*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6728*bed243d3SAndroid Build Coastguard Worker }
6729*bed243d3SAndroid Build Coastguard Worker
6730*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6731*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned short __b)6732*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector signed short __a, __vector unsigned short __b) {
6733*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsl(
6734*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6735*bed243d3SAndroid Build Coastguard Worker }
6736*bed243d3SAndroid Build Coastguard Worker
6737*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6738*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned int __b)6739*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector signed short __a, __vector unsigned int __b) {
6740*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsl(
6741*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6742*bed243d3SAndroid Build Coastguard Worker }
6743*bed243d3SAndroid Build Coastguard Worker
6744*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6745*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned char __b)6746*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector __bool short __a, __vector unsigned char __b) {
6747*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vsl(
6748*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6749*bed243d3SAndroid Build Coastguard Worker }
6750*bed243d3SAndroid Build Coastguard Worker
6751*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6752*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned short __b)6753*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector __bool short __a, __vector unsigned short __b) {
6754*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vsl(
6755*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6756*bed243d3SAndroid Build Coastguard Worker }
6757*bed243d3SAndroid Build Coastguard Worker
6758*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6759*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned int __b)6760*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector __bool short __a, __vector unsigned int __b) {
6761*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vsl(
6762*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6763*bed243d3SAndroid Build Coastguard Worker }
6764*bed243d3SAndroid Build Coastguard Worker
6765*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned char __b)6766*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector unsigned short __a, __vector unsigned char __b) {
6767*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsl(
6768*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6769*bed243d3SAndroid Build Coastguard Worker }
6770*bed243d3SAndroid Build Coastguard Worker
6771*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6772*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned short __b)6773*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector unsigned short __a, __vector unsigned short __b) {
6774*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsl(
6775*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6776*bed243d3SAndroid Build Coastguard Worker }
6777*bed243d3SAndroid Build Coastguard Worker
6778*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6779*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned int __b)6780*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector unsigned short __a, __vector unsigned int __b) {
6781*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsl(
6782*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6783*bed243d3SAndroid Build Coastguard Worker }
6784*bed243d3SAndroid Build Coastguard Worker
6785*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned char __b)6786*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector signed int __a, __vector unsigned char __b) {
6787*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsl(
6788*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6789*bed243d3SAndroid Build Coastguard Worker }
6790*bed243d3SAndroid Build Coastguard Worker
6791*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6792*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned short __b)6793*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector signed int __a, __vector unsigned short __b) {
6794*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsl(
6795*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6796*bed243d3SAndroid Build Coastguard Worker }
6797*bed243d3SAndroid Build Coastguard Worker
6798*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6799*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned int __b)6800*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector signed int __a, __vector unsigned int __b) {
6801*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsl(
6802*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6803*bed243d3SAndroid Build Coastguard Worker }
6804*bed243d3SAndroid Build Coastguard Worker
6805*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6806*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned char __b)6807*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector __bool int __a, __vector unsigned char __b) {
6808*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vsl(
6809*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6810*bed243d3SAndroid Build Coastguard Worker }
6811*bed243d3SAndroid Build Coastguard Worker
6812*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6813*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned short __b)6814*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector __bool int __a, __vector unsigned short __b) {
6815*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vsl(
6816*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6817*bed243d3SAndroid Build Coastguard Worker }
6818*bed243d3SAndroid Build Coastguard Worker
6819*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6820*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned int __b)6821*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector __bool int __a, __vector unsigned int __b) {
6822*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vsl(
6823*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6824*bed243d3SAndroid Build Coastguard Worker }
6825*bed243d3SAndroid Build Coastguard Worker
6826*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned char __b)6827*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector unsigned int __a, __vector unsigned char __b) {
6828*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsl(
6829*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6830*bed243d3SAndroid Build Coastguard Worker }
6831*bed243d3SAndroid Build Coastguard Worker
6832*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6833*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned short __b)6834*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector unsigned int __a, __vector unsigned short __b) {
6835*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsl(
6836*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6837*bed243d3SAndroid Build Coastguard Worker }
6838*bed243d3SAndroid Build Coastguard Worker
6839*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6840*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned int __b)6841*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector unsigned int __a, __vector unsigned int __b) {
6842*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsl(
6843*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6844*bed243d3SAndroid Build Coastguard Worker }
6845*bed243d3SAndroid Build Coastguard Worker
6846*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned char __b)6847*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector signed long long __a, __vector unsigned char __b) {
6848*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsl(
6849*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6850*bed243d3SAndroid Build Coastguard Worker }
6851*bed243d3SAndroid Build Coastguard Worker
6852*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6853*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned short __b)6854*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector signed long long __a, __vector unsigned short __b) {
6855*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsl(
6856*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6857*bed243d3SAndroid Build Coastguard Worker }
6858*bed243d3SAndroid Build Coastguard Worker
6859*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6860*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned int __b)6861*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector signed long long __a, __vector unsigned int __b) {
6862*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsl(
6863*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6864*bed243d3SAndroid Build Coastguard Worker }
6865*bed243d3SAndroid Build Coastguard Worker
6866*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6867*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned char __b)6868*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector __bool long long __a, __vector unsigned char __b) {
6869*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)__builtin_s390_vsl(
6870*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6871*bed243d3SAndroid Build Coastguard Worker }
6872*bed243d3SAndroid Build Coastguard Worker
6873*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6874*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned short __b)6875*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector __bool long long __a, __vector unsigned short __b) {
6876*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)__builtin_s390_vsl(
6877*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6878*bed243d3SAndroid Build Coastguard Worker }
6879*bed243d3SAndroid Build Coastguard Worker
6880*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6881*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned int __b)6882*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector __bool long long __a, __vector unsigned int __b) {
6883*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)__builtin_s390_vsl(
6884*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6885*bed243d3SAndroid Build Coastguard Worker }
6886*bed243d3SAndroid Build Coastguard Worker
6887*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned char __b)6888*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector unsigned long long __a, __vector unsigned char __b) {
6889*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsl(
6890*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6891*bed243d3SAndroid Build Coastguard Worker }
6892*bed243d3SAndroid Build Coastguard Worker
6893*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6894*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned short __b)6895*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector unsigned long long __a, __vector unsigned short __b) {
6896*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsl(
6897*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6898*bed243d3SAndroid Build Coastguard Worker }
6899*bed243d3SAndroid Build Coastguard Worker
6900*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
6901*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned int __b)6902*bed243d3SAndroid Build Coastguard Worker vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {
6903*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsl(
6904*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6905*bed243d3SAndroid Build Coastguard Worker }
6906*bed243d3SAndroid Build Coastguard Worker
6907*bed243d3SAndroid Build Coastguard Worker /*-- vec_slb ----------------------------------------------------------------*/
6908*bed243d3SAndroid Build Coastguard Worker
6909*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a,__vector signed char __b)6910*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector signed char __a, __vector signed char __b) {
6911*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vslb(
6912*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6913*bed243d3SAndroid Build Coastguard Worker }
6914*bed243d3SAndroid Build Coastguard Worker
6915*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a,__vector unsigned char __b)6916*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector signed char __a, __vector unsigned char __b) {
6917*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vslb(
6918*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
6919*bed243d3SAndroid Build Coastguard Worker }
6920*bed243d3SAndroid Build Coastguard Worker
6921*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a,__vector signed char __b)6922*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector unsigned char __a, __vector signed char __b) {
6923*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vslb(__a, (__vector unsigned char)__b);
6924*bed243d3SAndroid Build Coastguard Worker }
6925*bed243d3SAndroid Build Coastguard Worker
6926*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a,__vector unsigned char __b)6927*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector unsigned char __a, __vector unsigned char __b) {
6928*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vslb(__a, __b);
6929*bed243d3SAndroid Build Coastguard Worker }
6930*bed243d3SAndroid Build Coastguard Worker
6931*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector signed short __b)6932*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector signed short __a, __vector signed short __b) {
6933*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vslb(
6934*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6935*bed243d3SAndroid Build Coastguard Worker }
6936*bed243d3SAndroid Build Coastguard Worker
6937*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector unsigned short __b)6938*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector signed short __a, __vector unsigned short __b) {
6939*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vslb(
6940*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6941*bed243d3SAndroid Build Coastguard Worker }
6942*bed243d3SAndroid Build Coastguard Worker
6943*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector signed short __b)6944*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector unsigned short __a, __vector signed short __b) {
6945*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vslb(
6946*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6947*bed243d3SAndroid Build Coastguard Worker }
6948*bed243d3SAndroid Build Coastguard Worker
6949*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector unsigned short __b)6950*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector unsigned short __a, __vector unsigned short __b) {
6951*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vslb(
6952*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6953*bed243d3SAndroid Build Coastguard Worker }
6954*bed243d3SAndroid Build Coastguard Worker
6955*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector signed int __b)6956*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector signed int __a, __vector signed int __b) {
6957*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vslb(
6958*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6959*bed243d3SAndroid Build Coastguard Worker }
6960*bed243d3SAndroid Build Coastguard Worker
6961*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector unsigned int __b)6962*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector signed int __a, __vector unsigned int __b) {
6963*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vslb(
6964*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6965*bed243d3SAndroid Build Coastguard Worker }
6966*bed243d3SAndroid Build Coastguard Worker
6967*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector signed int __b)6968*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector unsigned int __a, __vector signed int __b) {
6969*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vslb(
6970*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6971*bed243d3SAndroid Build Coastguard Worker }
6972*bed243d3SAndroid Build Coastguard Worker
6973*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector unsigned int __b)6974*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector unsigned int __a, __vector unsigned int __b) {
6975*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vslb(
6976*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6977*bed243d3SAndroid Build Coastguard Worker }
6978*bed243d3SAndroid Build Coastguard Worker
6979*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector signed long long __b)6980*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector signed long long __a, __vector signed long long __b) {
6981*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vslb(
6982*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6983*bed243d3SAndroid Build Coastguard Worker }
6984*bed243d3SAndroid Build Coastguard Worker
6985*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector unsigned long long __b)6986*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector signed long long __a, __vector unsigned long long __b) {
6987*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vslb(
6988*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6989*bed243d3SAndroid Build Coastguard Worker }
6990*bed243d3SAndroid Build Coastguard Worker
6991*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector signed long long __b)6992*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector unsigned long long __a, __vector signed long long __b) {
6993*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vslb(
6994*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
6995*bed243d3SAndroid Build Coastguard Worker }
6996*bed243d3SAndroid Build Coastguard Worker
6997*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector unsigned long long __b)6998*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {
6999*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vslb(
7000*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7001*bed243d3SAndroid Build Coastguard Worker }
7002*bed243d3SAndroid Build Coastguard Worker
7003*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
7004*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector signed int __b)7005*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector float __a, __vector signed int __b) {
7006*bed243d3SAndroid Build Coastguard Worker return (__vector float)__builtin_s390_vslb(
7007*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7008*bed243d3SAndroid Build Coastguard Worker }
7009*bed243d3SAndroid Build Coastguard Worker
7010*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector unsigned int __b)7011*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector float __a, __vector unsigned int __b) {
7012*bed243d3SAndroid Build Coastguard Worker return (__vector float)__builtin_s390_vslb(
7013*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7014*bed243d3SAndroid Build Coastguard Worker }
7015*bed243d3SAndroid Build Coastguard Worker #endif
7016*bed243d3SAndroid Build Coastguard Worker
7017*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector signed long long __b)7018*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector double __a, __vector signed long long __b) {
7019*bed243d3SAndroid Build Coastguard Worker return (__vector double)__builtin_s390_vslb(
7020*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7021*bed243d3SAndroid Build Coastguard Worker }
7022*bed243d3SAndroid Build Coastguard Worker
7023*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector unsigned long long __b)7024*bed243d3SAndroid Build Coastguard Worker vec_slb(__vector double __a, __vector unsigned long long __b) {
7025*bed243d3SAndroid Build Coastguard Worker return (__vector double)__builtin_s390_vslb(
7026*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7027*bed243d3SAndroid Build Coastguard Worker }
7028*bed243d3SAndroid Build Coastguard Worker
7029*bed243d3SAndroid Build Coastguard Worker /*-- vec_sld ----------------------------------------------------------------*/
7030*bed243d3SAndroid Build Coastguard Worker
7031*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed char
7032*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector signed char __a, __vector signed char __b, int __c)
7033*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7034*bed243d3SAndroid Build Coastguard Worker
7035*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector __bool char
7036*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)
7037*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7038*bed243d3SAndroid Build Coastguard Worker
7039*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned char
7040*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c)
7041*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7042*bed243d3SAndroid Build Coastguard Worker
7043*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed short
7044*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector signed short __a, __vector signed short __b, int __c)
7045*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7046*bed243d3SAndroid Build Coastguard Worker
7047*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector __bool short
7048*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)
7049*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7050*bed243d3SAndroid Build Coastguard Worker
7051*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned short
7052*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c)
7053*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7054*bed243d3SAndroid Build Coastguard Worker
7055*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed int
7056*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector signed int __a, __vector signed int __b, int __c)
7057*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7058*bed243d3SAndroid Build Coastguard Worker
7059*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector __bool int
7060*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)
7061*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7062*bed243d3SAndroid Build Coastguard Worker
7063*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned int
7064*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c)
7065*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7066*bed243d3SAndroid Build Coastguard Worker
7067*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed long long
7068*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)
7069*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7070*bed243d3SAndroid Build Coastguard Worker
7071*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector __bool long long
7072*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)
7073*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7074*bed243d3SAndroid Build Coastguard Worker
7075*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned long long
7076*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,
7077*bed243d3SAndroid Build Coastguard Worker int __c)
7078*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7079*bed243d3SAndroid Build Coastguard Worker
7080*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
7081*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector float
7082*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector float __a, __vector float __b, int __c)
7083*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7084*bed243d3SAndroid Build Coastguard Worker #endif
7085*bed243d3SAndroid Build Coastguard Worker
7086*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector double
7087*bed243d3SAndroid Build Coastguard Worker vec_sld(__vector double __a, __vector double __b, int __c)
7088*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 15);
7089*bed243d3SAndroid Build Coastguard Worker
7090*bed243d3SAndroid Build Coastguard Worker #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
7091*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vsldb((__vector unsigned char)(X), \
7092*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)(Y), (Z)))
7093*bed243d3SAndroid Build Coastguard Worker
7094*bed243d3SAndroid Build Coastguard Worker /*-- vec_sldw ---------------------------------------------------------------*/
7095*bed243d3SAndroid Build Coastguard Worker
7096*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed char
7097*bed243d3SAndroid Build Coastguard Worker vec_sldw(__vector signed char __a, __vector signed char __b, int __c)
7098*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
7099*bed243d3SAndroid Build Coastguard Worker
7100*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned char
7101*bed243d3SAndroid Build Coastguard Worker vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c)
7102*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
7103*bed243d3SAndroid Build Coastguard Worker
7104*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed short
7105*bed243d3SAndroid Build Coastguard Worker vec_sldw(__vector signed short __a, __vector signed short __b, int __c)
7106*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
7107*bed243d3SAndroid Build Coastguard Worker
7108*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned short
7109*bed243d3SAndroid Build Coastguard Worker vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c)
7110*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
7111*bed243d3SAndroid Build Coastguard Worker
7112*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed int
7113*bed243d3SAndroid Build Coastguard Worker vec_sldw(__vector signed int __a, __vector signed int __b, int __c)
7114*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
7115*bed243d3SAndroid Build Coastguard Worker
7116*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned int
7117*bed243d3SAndroid Build Coastguard Worker vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c)
7118*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
7119*bed243d3SAndroid Build Coastguard Worker
7120*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed long long
7121*bed243d3SAndroid Build Coastguard Worker vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c)
7122*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
7123*bed243d3SAndroid Build Coastguard Worker
7124*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned long long
7125*bed243d3SAndroid Build Coastguard Worker vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,
7126*bed243d3SAndroid Build Coastguard Worker int __c)
7127*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
7128*bed243d3SAndroid Build Coastguard Worker
7129*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7130*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector double
7131*bed243d3SAndroid Build Coastguard Worker vec_sldw(__vector double __a, __vector double __b, int __c)
7132*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 3);
7133*bed243d3SAndroid Build Coastguard Worker
7134*bed243d3SAndroid Build Coastguard Worker #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
7135*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vsldb((__vector unsigned char)(X), \
7136*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)(Y), (Z) * 4))
7137*bed243d3SAndroid Build Coastguard Worker
7138*bed243d3SAndroid Build Coastguard Worker /*-- vec_sldb ---------------------------------------------------------------*/
7139*bed243d3SAndroid Build Coastguard Worker
7140*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 13
7141*bed243d3SAndroid Build Coastguard Worker
7142*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed char
7143*bed243d3SAndroid Build Coastguard Worker vec_sldb(__vector signed char __a, __vector signed char __b, int __c)
7144*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7145*bed243d3SAndroid Build Coastguard Worker
7146*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned char
7147*bed243d3SAndroid Build Coastguard Worker vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c)
7148*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7149*bed243d3SAndroid Build Coastguard Worker
7150*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed short
7151*bed243d3SAndroid Build Coastguard Worker vec_sldb(__vector signed short __a, __vector signed short __b, int __c)
7152*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7153*bed243d3SAndroid Build Coastguard Worker
7154*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned short
7155*bed243d3SAndroid Build Coastguard Worker vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c)
7156*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7157*bed243d3SAndroid Build Coastguard Worker
7158*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed int
7159*bed243d3SAndroid Build Coastguard Worker vec_sldb(__vector signed int __a, __vector signed int __b, int __c)
7160*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7161*bed243d3SAndroid Build Coastguard Worker
7162*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned int
7163*bed243d3SAndroid Build Coastguard Worker vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c)
7164*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7165*bed243d3SAndroid Build Coastguard Worker
7166*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed long long
7167*bed243d3SAndroid Build Coastguard Worker vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c)
7168*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7169*bed243d3SAndroid Build Coastguard Worker
7170*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned long long
7171*bed243d3SAndroid Build Coastguard Worker vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,
7172*bed243d3SAndroid Build Coastguard Worker int __c)
7173*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7174*bed243d3SAndroid Build Coastguard Worker
7175*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector float
7176*bed243d3SAndroid Build Coastguard Worker vec_sldb(__vector float __a, __vector float __b, int __c)
7177*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7178*bed243d3SAndroid Build Coastguard Worker
7179*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector double
7180*bed243d3SAndroid Build Coastguard Worker vec_sldb(__vector double __a, __vector double __b, int __c)
7181*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7182*bed243d3SAndroid Build Coastguard Worker
7183*bed243d3SAndroid Build Coastguard Worker #define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
7184*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vsld((__vector unsigned char)(X), \
7185*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)(Y), (Z)))
7186*bed243d3SAndroid Build Coastguard Worker
7187*bed243d3SAndroid Build Coastguard Worker #endif
7188*bed243d3SAndroid Build Coastguard Worker
7189*bed243d3SAndroid Build Coastguard Worker /*-- vec_sral ---------------------------------------------------------------*/
7190*bed243d3SAndroid Build Coastguard Worker
7191*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned char __b)7192*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector signed char __a, __vector unsigned char __b) {
7193*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsra(
7194*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7195*bed243d3SAndroid Build Coastguard Worker }
7196*bed243d3SAndroid Build Coastguard Worker
7197*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7198*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned short __b)7199*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector signed char __a, __vector unsigned short __b) {
7200*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsra(
7201*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7202*bed243d3SAndroid Build Coastguard Worker }
7203*bed243d3SAndroid Build Coastguard Worker
7204*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7205*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned int __b)7206*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector signed char __a, __vector unsigned int __b) {
7207*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsra(
7208*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7209*bed243d3SAndroid Build Coastguard Worker }
7210*bed243d3SAndroid Build Coastguard Worker
7211*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7212*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned char __b)7213*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector __bool char __a, __vector unsigned char __b) {
7214*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vsra(
7215*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7216*bed243d3SAndroid Build Coastguard Worker }
7217*bed243d3SAndroid Build Coastguard Worker
7218*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7219*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned short __b)7220*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector __bool char __a, __vector unsigned short __b) {
7221*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vsra(
7222*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7223*bed243d3SAndroid Build Coastguard Worker }
7224*bed243d3SAndroid Build Coastguard Worker
7225*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7226*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned int __b)7227*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector __bool char __a, __vector unsigned int __b) {
7228*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vsra(
7229*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7230*bed243d3SAndroid Build Coastguard Worker }
7231*bed243d3SAndroid Build Coastguard Worker
7232*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned char __b)7233*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector unsigned char __a, __vector unsigned char __b) {
7234*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsra(__a, __b);
7235*bed243d3SAndroid Build Coastguard Worker }
7236*bed243d3SAndroid Build Coastguard Worker
7237*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7238*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned short __b)7239*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector unsigned char __a, __vector unsigned short __b) {
7240*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
7241*bed243d3SAndroid Build Coastguard Worker }
7242*bed243d3SAndroid Build Coastguard Worker
7243*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7244*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned int __b)7245*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector unsigned char __a, __vector unsigned int __b) {
7246*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
7247*bed243d3SAndroid Build Coastguard Worker }
7248*bed243d3SAndroid Build Coastguard Worker
7249*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned char __b)7250*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector signed short __a, __vector unsigned char __b) {
7251*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsra(
7252*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7253*bed243d3SAndroid Build Coastguard Worker }
7254*bed243d3SAndroid Build Coastguard Worker
7255*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7256*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned short __b)7257*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector signed short __a, __vector unsigned short __b) {
7258*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsra(
7259*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7260*bed243d3SAndroid Build Coastguard Worker }
7261*bed243d3SAndroid Build Coastguard Worker
7262*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7263*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned int __b)7264*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector signed short __a, __vector unsigned int __b) {
7265*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsra(
7266*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7267*bed243d3SAndroid Build Coastguard Worker }
7268*bed243d3SAndroid Build Coastguard Worker
7269*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7270*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned char __b)7271*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector __bool short __a, __vector unsigned char __b) {
7272*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vsra(
7273*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7274*bed243d3SAndroid Build Coastguard Worker }
7275*bed243d3SAndroid Build Coastguard Worker
7276*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7277*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned short __b)7278*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector __bool short __a, __vector unsigned short __b) {
7279*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vsra(
7280*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7281*bed243d3SAndroid Build Coastguard Worker }
7282*bed243d3SAndroid Build Coastguard Worker
7283*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7284*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned int __b)7285*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector __bool short __a, __vector unsigned int __b) {
7286*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vsra(
7287*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7288*bed243d3SAndroid Build Coastguard Worker }
7289*bed243d3SAndroid Build Coastguard Worker
7290*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned char __b)7291*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector unsigned short __a, __vector unsigned char __b) {
7292*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsra(
7293*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7294*bed243d3SAndroid Build Coastguard Worker }
7295*bed243d3SAndroid Build Coastguard Worker
7296*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7297*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned short __b)7298*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector unsigned short __a, __vector unsigned short __b) {
7299*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsra(
7300*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7301*bed243d3SAndroid Build Coastguard Worker }
7302*bed243d3SAndroid Build Coastguard Worker
7303*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7304*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned int __b)7305*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector unsigned short __a, __vector unsigned int __b) {
7306*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsra(
7307*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7308*bed243d3SAndroid Build Coastguard Worker }
7309*bed243d3SAndroid Build Coastguard Worker
7310*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned char __b)7311*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector signed int __a, __vector unsigned char __b) {
7312*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsra(
7313*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7314*bed243d3SAndroid Build Coastguard Worker }
7315*bed243d3SAndroid Build Coastguard Worker
7316*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7317*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned short __b)7318*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector signed int __a, __vector unsigned short __b) {
7319*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsra(
7320*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7321*bed243d3SAndroid Build Coastguard Worker }
7322*bed243d3SAndroid Build Coastguard Worker
7323*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7324*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned int __b)7325*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector signed int __a, __vector unsigned int __b) {
7326*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsra(
7327*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7328*bed243d3SAndroid Build Coastguard Worker }
7329*bed243d3SAndroid Build Coastguard Worker
7330*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7331*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned char __b)7332*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector __bool int __a, __vector unsigned char __b) {
7333*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vsra(
7334*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7335*bed243d3SAndroid Build Coastguard Worker }
7336*bed243d3SAndroid Build Coastguard Worker
7337*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7338*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned short __b)7339*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector __bool int __a, __vector unsigned short __b) {
7340*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vsra(
7341*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7342*bed243d3SAndroid Build Coastguard Worker }
7343*bed243d3SAndroid Build Coastguard Worker
7344*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7345*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned int __b)7346*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector __bool int __a, __vector unsigned int __b) {
7347*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vsra(
7348*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7349*bed243d3SAndroid Build Coastguard Worker }
7350*bed243d3SAndroid Build Coastguard Worker
7351*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned char __b)7352*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector unsigned int __a, __vector unsigned char __b) {
7353*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsra(
7354*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7355*bed243d3SAndroid Build Coastguard Worker }
7356*bed243d3SAndroid Build Coastguard Worker
7357*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7358*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned short __b)7359*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector unsigned int __a, __vector unsigned short __b) {
7360*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsra(
7361*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7362*bed243d3SAndroid Build Coastguard Worker }
7363*bed243d3SAndroid Build Coastguard Worker
7364*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7365*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned int __b)7366*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector unsigned int __a, __vector unsigned int __b) {
7367*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsra(
7368*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7369*bed243d3SAndroid Build Coastguard Worker }
7370*bed243d3SAndroid Build Coastguard Worker
7371*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned char __b)7372*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector signed long long __a, __vector unsigned char __b) {
7373*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsra(
7374*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7375*bed243d3SAndroid Build Coastguard Worker }
7376*bed243d3SAndroid Build Coastguard Worker
7377*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7378*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned short __b)7379*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector signed long long __a, __vector unsigned short __b) {
7380*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsra(
7381*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7382*bed243d3SAndroid Build Coastguard Worker }
7383*bed243d3SAndroid Build Coastguard Worker
7384*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7385*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned int __b)7386*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector signed long long __a, __vector unsigned int __b) {
7387*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsra(
7388*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7389*bed243d3SAndroid Build Coastguard Worker }
7390*bed243d3SAndroid Build Coastguard Worker
7391*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7392*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned char __b)7393*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector __bool long long __a, __vector unsigned char __b) {
7394*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)__builtin_s390_vsra(
7395*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7396*bed243d3SAndroid Build Coastguard Worker }
7397*bed243d3SAndroid Build Coastguard Worker
7398*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7399*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned short __b)7400*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector __bool long long __a, __vector unsigned short __b) {
7401*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)__builtin_s390_vsra(
7402*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7403*bed243d3SAndroid Build Coastguard Worker }
7404*bed243d3SAndroid Build Coastguard Worker
7405*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7406*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned int __b)7407*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector __bool long long __a, __vector unsigned int __b) {
7408*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)__builtin_s390_vsra(
7409*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7410*bed243d3SAndroid Build Coastguard Worker }
7411*bed243d3SAndroid Build Coastguard Worker
7412*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned char __b)7413*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector unsigned long long __a, __vector unsigned char __b) {
7414*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsra(
7415*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7416*bed243d3SAndroid Build Coastguard Worker }
7417*bed243d3SAndroid Build Coastguard Worker
7418*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7419*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned short __b)7420*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector unsigned long long __a, __vector unsigned short __b) {
7421*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsra(
7422*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7423*bed243d3SAndroid Build Coastguard Worker }
7424*bed243d3SAndroid Build Coastguard Worker
7425*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7426*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned int __b)7427*bed243d3SAndroid Build Coastguard Worker vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {
7428*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsra(
7429*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7430*bed243d3SAndroid Build Coastguard Worker }
7431*bed243d3SAndroid Build Coastguard Worker
7432*bed243d3SAndroid Build Coastguard Worker /*-- vec_srab ---------------------------------------------------------------*/
7433*bed243d3SAndroid Build Coastguard Worker
7434*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a,__vector signed char __b)7435*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector signed char __a, __vector signed char __b) {
7436*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsrab(
7437*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7438*bed243d3SAndroid Build Coastguard Worker }
7439*bed243d3SAndroid Build Coastguard Worker
7440*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a,__vector unsigned char __b)7441*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector signed char __a, __vector unsigned char __b) {
7442*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsrab(
7443*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7444*bed243d3SAndroid Build Coastguard Worker }
7445*bed243d3SAndroid Build Coastguard Worker
7446*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a,__vector signed char __b)7447*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector unsigned char __a, __vector signed char __b) {
7448*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);
7449*bed243d3SAndroid Build Coastguard Worker }
7450*bed243d3SAndroid Build Coastguard Worker
7451*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a,__vector unsigned char __b)7452*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector unsigned char __a, __vector unsigned char __b) {
7453*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsrab(__a, __b);
7454*bed243d3SAndroid Build Coastguard Worker }
7455*bed243d3SAndroid Build Coastguard Worker
7456*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector signed short __b)7457*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector signed short __a, __vector signed short __b) {
7458*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsrab(
7459*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7460*bed243d3SAndroid Build Coastguard Worker }
7461*bed243d3SAndroid Build Coastguard Worker
7462*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector unsigned short __b)7463*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector signed short __a, __vector unsigned short __b) {
7464*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsrab(
7465*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7466*bed243d3SAndroid Build Coastguard Worker }
7467*bed243d3SAndroid Build Coastguard Worker
7468*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector signed short __b)7469*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector unsigned short __a, __vector signed short __b) {
7470*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsrab(
7471*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7472*bed243d3SAndroid Build Coastguard Worker }
7473*bed243d3SAndroid Build Coastguard Worker
7474*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector unsigned short __b)7475*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector unsigned short __a, __vector unsigned short __b) {
7476*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsrab(
7477*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7478*bed243d3SAndroid Build Coastguard Worker }
7479*bed243d3SAndroid Build Coastguard Worker
7480*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector signed int __b)7481*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector signed int __a, __vector signed int __b) {
7482*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsrab(
7483*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7484*bed243d3SAndroid Build Coastguard Worker }
7485*bed243d3SAndroid Build Coastguard Worker
7486*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector unsigned int __b)7487*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector signed int __a, __vector unsigned int __b) {
7488*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsrab(
7489*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7490*bed243d3SAndroid Build Coastguard Worker }
7491*bed243d3SAndroid Build Coastguard Worker
7492*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector signed int __b)7493*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector unsigned int __a, __vector signed int __b) {
7494*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsrab(
7495*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7496*bed243d3SAndroid Build Coastguard Worker }
7497*bed243d3SAndroid Build Coastguard Worker
7498*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector unsigned int __b)7499*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector unsigned int __a, __vector unsigned int __b) {
7500*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsrab(
7501*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7502*bed243d3SAndroid Build Coastguard Worker }
7503*bed243d3SAndroid Build Coastguard Worker
7504*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector signed long long __b)7505*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector signed long long __a, __vector signed long long __b) {
7506*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsrab(
7507*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7508*bed243d3SAndroid Build Coastguard Worker }
7509*bed243d3SAndroid Build Coastguard Worker
7510*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector unsigned long long __b)7511*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector signed long long __a, __vector unsigned long long __b) {
7512*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsrab(
7513*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7514*bed243d3SAndroid Build Coastguard Worker }
7515*bed243d3SAndroid Build Coastguard Worker
7516*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector signed long long __b)7517*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector unsigned long long __a, __vector signed long long __b) {
7518*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsrab(
7519*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7520*bed243d3SAndroid Build Coastguard Worker }
7521*bed243d3SAndroid Build Coastguard Worker
7522*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector unsigned long long __b)7523*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {
7524*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsrab(
7525*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7526*bed243d3SAndroid Build Coastguard Worker }
7527*bed243d3SAndroid Build Coastguard Worker
7528*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
7529*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector signed int __b)7530*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector float __a, __vector signed int __b) {
7531*bed243d3SAndroid Build Coastguard Worker return (__vector float)__builtin_s390_vsrab(
7532*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7533*bed243d3SAndroid Build Coastguard Worker }
7534*bed243d3SAndroid Build Coastguard Worker
7535*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector unsigned int __b)7536*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector float __a, __vector unsigned int __b) {
7537*bed243d3SAndroid Build Coastguard Worker return (__vector float)__builtin_s390_vsrab(
7538*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7539*bed243d3SAndroid Build Coastguard Worker }
7540*bed243d3SAndroid Build Coastguard Worker #endif
7541*bed243d3SAndroid Build Coastguard Worker
7542*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector signed long long __b)7543*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector double __a, __vector signed long long __b) {
7544*bed243d3SAndroid Build Coastguard Worker return (__vector double)__builtin_s390_vsrab(
7545*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7546*bed243d3SAndroid Build Coastguard Worker }
7547*bed243d3SAndroid Build Coastguard Worker
7548*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector unsigned long long __b)7549*bed243d3SAndroid Build Coastguard Worker vec_srab(__vector double __a, __vector unsigned long long __b) {
7550*bed243d3SAndroid Build Coastguard Worker return (__vector double)__builtin_s390_vsrab(
7551*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7552*bed243d3SAndroid Build Coastguard Worker }
7553*bed243d3SAndroid Build Coastguard Worker
7554*bed243d3SAndroid Build Coastguard Worker /*-- vec_srl ----------------------------------------------------------------*/
7555*bed243d3SAndroid Build Coastguard Worker
7556*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned char __b)7557*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector signed char __a, __vector unsigned char __b) {
7558*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsrl(
7559*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7560*bed243d3SAndroid Build Coastguard Worker }
7561*bed243d3SAndroid Build Coastguard Worker
7562*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7563*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned short __b)7564*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector signed char __a, __vector unsigned short __b) {
7565*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsrl(
7566*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7567*bed243d3SAndroid Build Coastguard Worker }
7568*bed243d3SAndroid Build Coastguard Worker
7569*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7570*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned int __b)7571*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector signed char __a, __vector unsigned int __b) {
7572*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsrl(
7573*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7574*bed243d3SAndroid Build Coastguard Worker }
7575*bed243d3SAndroid Build Coastguard Worker
7576*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7577*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned char __b)7578*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector __bool char __a, __vector unsigned char __b) {
7579*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vsrl(
7580*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7581*bed243d3SAndroid Build Coastguard Worker }
7582*bed243d3SAndroid Build Coastguard Worker
7583*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7584*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned short __b)7585*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector __bool char __a, __vector unsigned short __b) {
7586*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vsrl(
7587*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7588*bed243d3SAndroid Build Coastguard Worker }
7589*bed243d3SAndroid Build Coastguard Worker
7590*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7591*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned int __b)7592*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector __bool char __a, __vector unsigned int __b) {
7593*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vsrl(
7594*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7595*bed243d3SAndroid Build Coastguard Worker }
7596*bed243d3SAndroid Build Coastguard Worker
7597*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned char __b)7598*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector unsigned char __a, __vector unsigned char __b) {
7599*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsrl(__a, __b);
7600*bed243d3SAndroid Build Coastguard Worker }
7601*bed243d3SAndroid Build Coastguard Worker
7602*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7603*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned short __b)7604*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector unsigned char __a, __vector unsigned short __b) {
7605*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
7606*bed243d3SAndroid Build Coastguard Worker }
7607*bed243d3SAndroid Build Coastguard Worker
7608*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7609*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned int __b)7610*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector unsigned char __a, __vector unsigned int __b) {
7611*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
7612*bed243d3SAndroid Build Coastguard Worker }
7613*bed243d3SAndroid Build Coastguard Worker
7614*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned char __b)7615*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector signed short __a, __vector unsigned char __b) {
7616*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsrl(
7617*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7618*bed243d3SAndroid Build Coastguard Worker }
7619*bed243d3SAndroid Build Coastguard Worker
7620*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7621*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned short __b)7622*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector signed short __a, __vector unsigned short __b) {
7623*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsrl(
7624*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7625*bed243d3SAndroid Build Coastguard Worker }
7626*bed243d3SAndroid Build Coastguard Worker
7627*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7628*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned int __b)7629*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector signed short __a, __vector unsigned int __b) {
7630*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsrl(
7631*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7632*bed243d3SAndroid Build Coastguard Worker }
7633*bed243d3SAndroid Build Coastguard Worker
7634*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7635*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned char __b)7636*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector __bool short __a, __vector unsigned char __b) {
7637*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vsrl(
7638*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7639*bed243d3SAndroid Build Coastguard Worker }
7640*bed243d3SAndroid Build Coastguard Worker
7641*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7642*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned short __b)7643*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector __bool short __a, __vector unsigned short __b) {
7644*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vsrl(
7645*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7646*bed243d3SAndroid Build Coastguard Worker }
7647*bed243d3SAndroid Build Coastguard Worker
7648*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7649*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned int __b)7650*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector __bool short __a, __vector unsigned int __b) {
7651*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vsrl(
7652*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7653*bed243d3SAndroid Build Coastguard Worker }
7654*bed243d3SAndroid Build Coastguard Worker
7655*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned char __b)7656*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector unsigned short __a, __vector unsigned char __b) {
7657*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsrl(
7658*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7659*bed243d3SAndroid Build Coastguard Worker }
7660*bed243d3SAndroid Build Coastguard Worker
7661*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7662*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned short __b)7663*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector unsigned short __a, __vector unsigned short __b) {
7664*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsrl(
7665*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7666*bed243d3SAndroid Build Coastguard Worker }
7667*bed243d3SAndroid Build Coastguard Worker
7668*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7669*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned int __b)7670*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector unsigned short __a, __vector unsigned int __b) {
7671*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsrl(
7672*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7673*bed243d3SAndroid Build Coastguard Worker }
7674*bed243d3SAndroid Build Coastguard Worker
7675*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned char __b)7676*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector signed int __a, __vector unsigned char __b) {
7677*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsrl(
7678*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7679*bed243d3SAndroid Build Coastguard Worker }
7680*bed243d3SAndroid Build Coastguard Worker
7681*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7682*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned short __b)7683*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector signed int __a, __vector unsigned short __b) {
7684*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsrl(
7685*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7686*bed243d3SAndroid Build Coastguard Worker }
7687*bed243d3SAndroid Build Coastguard Worker
7688*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7689*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned int __b)7690*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector signed int __a, __vector unsigned int __b) {
7691*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsrl(
7692*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7693*bed243d3SAndroid Build Coastguard Worker }
7694*bed243d3SAndroid Build Coastguard Worker
7695*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7696*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned char __b)7697*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector __bool int __a, __vector unsigned char __b) {
7698*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vsrl(
7699*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7700*bed243d3SAndroid Build Coastguard Worker }
7701*bed243d3SAndroid Build Coastguard Worker
7702*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7703*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned short __b)7704*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector __bool int __a, __vector unsigned short __b) {
7705*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vsrl(
7706*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7707*bed243d3SAndroid Build Coastguard Worker }
7708*bed243d3SAndroid Build Coastguard Worker
7709*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7710*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned int __b)7711*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector __bool int __a, __vector unsigned int __b) {
7712*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vsrl(
7713*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7714*bed243d3SAndroid Build Coastguard Worker }
7715*bed243d3SAndroid Build Coastguard Worker
7716*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned char __b)7717*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector unsigned int __a, __vector unsigned char __b) {
7718*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsrl(
7719*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7720*bed243d3SAndroid Build Coastguard Worker }
7721*bed243d3SAndroid Build Coastguard Worker
7722*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7723*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned short __b)7724*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector unsigned int __a, __vector unsigned short __b) {
7725*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsrl(
7726*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7727*bed243d3SAndroid Build Coastguard Worker }
7728*bed243d3SAndroid Build Coastguard Worker
7729*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7730*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned int __b)7731*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector unsigned int __a, __vector unsigned int __b) {
7732*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsrl(
7733*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7734*bed243d3SAndroid Build Coastguard Worker }
7735*bed243d3SAndroid Build Coastguard Worker
7736*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned char __b)7737*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector signed long long __a, __vector unsigned char __b) {
7738*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsrl(
7739*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7740*bed243d3SAndroid Build Coastguard Worker }
7741*bed243d3SAndroid Build Coastguard Worker
7742*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7743*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned short __b)7744*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector signed long long __a, __vector unsigned short __b) {
7745*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsrl(
7746*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7747*bed243d3SAndroid Build Coastguard Worker }
7748*bed243d3SAndroid Build Coastguard Worker
7749*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7750*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned int __b)7751*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector signed long long __a, __vector unsigned int __b) {
7752*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsrl(
7753*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7754*bed243d3SAndroid Build Coastguard Worker }
7755*bed243d3SAndroid Build Coastguard Worker
7756*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7757*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned char __b)7758*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector __bool long long __a, __vector unsigned char __b) {
7759*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)__builtin_s390_vsrl(
7760*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7761*bed243d3SAndroid Build Coastguard Worker }
7762*bed243d3SAndroid Build Coastguard Worker
7763*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7764*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned short __b)7765*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector __bool long long __a, __vector unsigned short __b) {
7766*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)__builtin_s390_vsrl(
7767*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7768*bed243d3SAndroid Build Coastguard Worker }
7769*bed243d3SAndroid Build Coastguard Worker
7770*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7771*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned int __b)7772*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector __bool long long __a, __vector unsigned int __b) {
7773*bed243d3SAndroid Build Coastguard Worker return (__vector __bool long long)__builtin_s390_vsrl(
7774*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7775*bed243d3SAndroid Build Coastguard Worker }
7776*bed243d3SAndroid Build Coastguard Worker
7777*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned char __b)7778*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector unsigned long long __a, __vector unsigned char __b) {
7779*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsrl(
7780*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7781*bed243d3SAndroid Build Coastguard Worker }
7782*bed243d3SAndroid Build Coastguard Worker
7783*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7784*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned short __b)7785*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector unsigned long long __a, __vector unsigned short __b) {
7786*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsrl(
7787*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7788*bed243d3SAndroid Build Coastguard Worker }
7789*bed243d3SAndroid Build Coastguard Worker
7790*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
7791*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned int __b)7792*bed243d3SAndroid Build Coastguard Worker vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {
7793*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsrl(
7794*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7795*bed243d3SAndroid Build Coastguard Worker }
7796*bed243d3SAndroid Build Coastguard Worker
7797*bed243d3SAndroid Build Coastguard Worker /*-- vec_srb ----------------------------------------------------------------*/
7798*bed243d3SAndroid Build Coastguard Worker
7799*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a,__vector signed char __b)7800*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector signed char __a, __vector signed char __b) {
7801*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsrlb(
7802*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7803*bed243d3SAndroid Build Coastguard Worker }
7804*bed243d3SAndroid Build Coastguard Worker
7805*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a,__vector unsigned char __b)7806*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector signed char __a, __vector unsigned char __b) {
7807*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__builtin_s390_vsrlb(
7808*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, __b);
7809*bed243d3SAndroid Build Coastguard Worker }
7810*bed243d3SAndroid Build Coastguard Worker
7811*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a,__vector signed char __b)7812*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector unsigned char __a, __vector signed char __b) {
7813*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);
7814*bed243d3SAndroid Build Coastguard Worker }
7815*bed243d3SAndroid Build Coastguard Worker
7816*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a,__vector unsigned char __b)7817*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector unsigned char __a, __vector unsigned char __b) {
7818*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsrlb(__a, __b);
7819*bed243d3SAndroid Build Coastguard Worker }
7820*bed243d3SAndroid Build Coastguard Worker
7821*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector signed short __b)7822*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector signed short __a, __vector signed short __b) {
7823*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsrlb(
7824*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7825*bed243d3SAndroid Build Coastguard Worker }
7826*bed243d3SAndroid Build Coastguard Worker
7827*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector unsigned short __b)7828*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector signed short __a, __vector unsigned short __b) {
7829*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__builtin_s390_vsrlb(
7830*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7831*bed243d3SAndroid Build Coastguard Worker }
7832*bed243d3SAndroid Build Coastguard Worker
7833*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector signed short __b)7834*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector unsigned short __a, __vector signed short __b) {
7835*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsrlb(
7836*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7837*bed243d3SAndroid Build Coastguard Worker }
7838*bed243d3SAndroid Build Coastguard Worker
7839*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector unsigned short __b)7840*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector unsigned short __a, __vector unsigned short __b) {
7841*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned short)__builtin_s390_vsrlb(
7842*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7843*bed243d3SAndroid Build Coastguard Worker }
7844*bed243d3SAndroid Build Coastguard Worker
7845*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector signed int __b)7846*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector signed int __a, __vector signed int __b) {
7847*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsrlb(
7848*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7849*bed243d3SAndroid Build Coastguard Worker }
7850*bed243d3SAndroid Build Coastguard Worker
7851*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector unsigned int __b)7852*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector signed int __a, __vector unsigned int __b) {
7853*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__builtin_s390_vsrlb(
7854*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7855*bed243d3SAndroid Build Coastguard Worker }
7856*bed243d3SAndroid Build Coastguard Worker
7857*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector signed int __b)7858*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector unsigned int __a, __vector signed int __b) {
7859*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsrlb(
7860*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7861*bed243d3SAndroid Build Coastguard Worker }
7862*bed243d3SAndroid Build Coastguard Worker
7863*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector unsigned int __b)7864*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector unsigned int __a, __vector unsigned int __b) {
7865*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned int)__builtin_s390_vsrlb(
7866*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7867*bed243d3SAndroid Build Coastguard Worker }
7868*bed243d3SAndroid Build Coastguard Worker
7869*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector signed long long __b)7870*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector signed long long __a, __vector signed long long __b) {
7871*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsrlb(
7872*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7873*bed243d3SAndroid Build Coastguard Worker }
7874*bed243d3SAndroid Build Coastguard Worker
7875*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector unsigned long long __b)7876*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector signed long long __a, __vector unsigned long long __b) {
7877*bed243d3SAndroid Build Coastguard Worker return (__vector signed long long)__builtin_s390_vsrlb(
7878*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7879*bed243d3SAndroid Build Coastguard Worker }
7880*bed243d3SAndroid Build Coastguard Worker
7881*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector signed long long __b)7882*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector unsigned long long __a, __vector signed long long __b) {
7883*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsrlb(
7884*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7885*bed243d3SAndroid Build Coastguard Worker }
7886*bed243d3SAndroid Build Coastguard Worker
7887*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector unsigned long long __b)7888*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {
7889*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned long long)__builtin_s390_vsrlb(
7890*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7891*bed243d3SAndroid Build Coastguard Worker }
7892*bed243d3SAndroid Build Coastguard Worker
7893*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
7894*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector signed int __b)7895*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector float __a, __vector signed int __b) {
7896*bed243d3SAndroid Build Coastguard Worker return (__vector float)__builtin_s390_vsrlb(
7897*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7898*bed243d3SAndroid Build Coastguard Worker }
7899*bed243d3SAndroid Build Coastguard Worker
7900*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector unsigned int __b)7901*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector float __a, __vector unsigned int __b) {
7902*bed243d3SAndroid Build Coastguard Worker return (__vector float)__builtin_s390_vsrlb(
7903*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7904*bed243d3SAndroid Build Coastguard Worker }
7905*bed243d3SAndroid Build Coastguard Worker #endif
7906*bed243d3SAndroid Build Coastguard Worker
7907*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector signed long long __b)7908*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector double __a, __vector signed long long __b) {
7909*bed243d3SAndroid Build Coastguard Worker return (__vector double)__builtin_s390_vsrlb(
7910*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7911*bed243d3SAndroid Build Coastguard Worker }
7912*bed243d3SAndroid Build Coastguard Worker
7913*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector unsigned long long __b)7914*bed243d3SAndroid Build Coastguard Worker vec_srb(__vector double __a, __vector unsigned long long __b) {
7915*bed243d3SAndroid Build Coastguard Worker return (__vector double)__builtin_s390_vsrlb(
7916*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__a, (__vector unsigned char)__b);
7917*bed243d3SAndroid Build Coastguard Worker }
7918*bed243d3SAndroid Build Coastguard Worker
7919*bed243d3SAndroid Build Coastguard Worker /*-- vec_srdb ---------------------------------------------------------------*/
7920*bed243d3SAndroid Build Coastguard Worker
7921*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 13
7922*bed243d3SAndroid Build Coastguard Worker
7923*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed char
7924*bed243d3SAndroid Build Coastguard Worker vec_srdb(__vector signed char __a, __vector signed char __b, int __c)
7925*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7926*bed243d3SAndroid Build Coastguard Worker
7927*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned char
7928*bed243d3SAndroid Build Coastguard Worker vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c)
7929*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7930*bed243d3SAndroid Build Coastguard Worker
7931*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed short
7932*bed243d3SAndroid Build Coastguard Worker vec_srdb(__vector signed short __a, __vector signed short __b, int __c)
7933*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7934*bed243d3SAndroid Build Coastguard Worker
7935*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned short
7936*bed243d3SAndroid Build Coastguard Worker vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c)
7937*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7938*bed243d3SAndroid Build Coastguard Worker
7939*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed int
7940*bed243d3SAndroid Build Coastguard Worker vec_srdb(__vector signed int __a, __vector signed int __b, int __c)
7941*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7942*bed243d3SAndroid Build Coastguard Worker
7943*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned int
7944*bed243d3SAndroid Build Coastguard Worker vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c)
7945*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7946*bed243d3SAndroid Build Coastguard Worker
7947*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector signed long long
7948*bed243d3SAndroid Build Coastguard Worker vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c)
7949*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7950*bed243d3SAndroid Build Coastguard Worker
7951*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned long long
7952*bed243d3SAndroid Build Coastguard Worker vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,
7953*bed243d3SAndroid Build Coastguard Worker int __c)
7954*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7955*bed243d3SAndroid Build Coastguard Worker
7956*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector float
7957*bed243d3SAndroid Build Coastguard Worker vec_srdb(__vector float __a, __vector float __b, int __c)
7958*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7959*bed243d3SAndroid Build Coastguard Worker
7960*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector double
7961*bed243d3SAndroid Build Coastguard Worker vec_srdb(__vector double __a, __vector double __b, int __c)
7962*bed243d3SAndroid Build Coastguard Worker __constant_range(__c, 0, 7);
7963*bed243d3SAndroid Build Coastguard Worker
7964*bed243d3SAndroid Build Coastguard Worker #define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
7965*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vsrd((__vector unsigned char)(X), \
7966*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)(Y), (Z)))
7967*bed243d3SAndroid Build Coastguard Worker
7968*bed243d3SAndroid Build Coastguard Worker #endif
7969*bed243d3SAndroid Build Coastguard Worker
7970*bed243d3SAndroid Build Coastguard Worker /*-- vec_abs ----------------------------------------------------------------*/
7971*bed243d3SAndroid Build Coastguard Worker
7972*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_abs(__vector signed char __a)7973*bed243d3SAndroid Build Coastguard Worker vec_abs(__vector signed char __a) {
7974*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0));
7975*bed243d3SAndroid Build Coastguard Worker }
7976*bed243d3SAndroid Build Coastguard Worker
7977*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_abs(__vector signed short __a)7978*bed243d3SAndroid Build Coastguard Worker vec_abs(__vector signed short __a) {
7979*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0));
7980*bed243d3SAndroid Build Coastguard Worker }
7981*bed243d3SAndroid Build Coastguard Worker
7982*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_abs(__vector signed int __a)7983*bed243d3SAndroid Build Coastguard Worker vec_abs(__vector signed int __a) {
7984*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0));
7985*bed243d3SAndroid Build Coastguard Worker }
7986*bed243d3SAndroid Build Coastguard Worker
7987*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_abs(__vector signed long long __a)7988*bed243d3SAndroid Build Coastguard Worker vec_abs(__vector signed long long __a) {
7989*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));
7990*bed243d3SAndroid Build Coastguard Worker }
7991*bed243d3SAndroid Build Coastguard Worker
7992*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
7993*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_abs(__vector float __a)7994*bed243d3SAndroid Build Coastguard Worker vec_abs(__vector float __a) {
7995*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vflpsb(__a);
7996*bed243d3SAndroid Build Coastguard Worker }
7997*bed243d3SAndroid Build Coastguard Worker #endif
7998*bed243d3SAndroid Build Coastguard Worker
7999*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_abs(__vector double __a)8000*bed243d3SAndroid Build Coastguard Worker vec_abs(__vector double __a) {
8001*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vflpdb(__a);
8002*bed243d3SAndroid Build Coastguard Worker }
8003*bed243d3SAndroid Build Coastguard Worker
8004*bed243d3SAndroid Build Coastguard Worker /*-- vec_nabs ---------------------------------------------------------------*/
8005*bed243d3SAndroid Build Coastguard Worker
8006*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
8007*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_nabs(__vector float __a)8008*bed243d3SAndroid Build Coastguard Worker vec_nabs(__vector float __a) {
8009*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vflnsb(__a);
8010*bed243d3SAndroid Build Coastguard Worker }
8011*bed243d3SAndroid Build Coastguard Worker #endif
8012*bed243d3SAndroid Build Coastguard Worker
8013*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_nabs(__vector double __a)8014*bed243d3SAndroid Build Coastguard Worker vec_nabs(__vector double __a) {
8015*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vflndb(__a);
8016*bed243d3SAndroid Build Coastguard Worker }
8017*bed243d3SAndroid Build Coastguard Worker
8018*bed243d3SAndroid Build Coastguard Worker /*-- vec_max ----------------------------------------------------------------*/
8019*bed243d3SAndroid Build Coastguard Worker
8020*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a,__vector signed char __b)8021*bed243d3SAndroid Build Coastguard Worker vec_max(__vector signed char __a, __vector signed char __b) {
8022*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8023*bed243d3SAndroid Build Coastguard Worker }
8024*bed243d3SAndroid Build Coastguard Worker
8025*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8026*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a,__vector __bool char __b)8027*bed243d3SAndroid Build Coastguard Worker vec_max(__vector signed char __a, __vector __bool char __b) {
8028*bed243d3SAndroid Build Coastguard Worker __vector signed char __bc = (__vector signed char)__b;
8029*bed243d3SAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8030*bed243d3SAndroid Build Coastguard Worker }
8031*bed243d3SAndroid Build Coastguard Worker
8032*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8033*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_max(__vector __bool char __a,__vector signed char __b)8034*bed243d3SAndroid Build Coastguard Worker vec_max(__vector __bool char __a, __vector signed char __b) {
8035*bed243d3SAndroid Build Coastguard Worker __vector signed char __ac = (__vector signed char)__a;
8036*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8037*bed243d3SAndroid Build Coastguard Worker }
8038*bed243d3SAndroid Build Coastguard Worker
8039*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a,__vector unsigned char __b)8040*bed243d3SAndroid Build Coastguard Worker vec_max(__vector unsigned char __a, __vector unsigned char __b) {
8041*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8042*bed243d3SAndroid Build Coastguard Worker }
8043*bed243d3SAndroid Build Coastguard Worker
8044*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8045*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a,__vector __bool char __b)8046*bed243d3SAndroid Build Coastguard Worker vec_max(__vector unsigned char __a, __vector __bool char __b) {
8047*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __bc = (__vector unsigned char)__b;
8048*bed243d3SAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8049*bed243d3SAndroid Build Coastguard Worker }
8050*bed243d3SAndroid Build Coastguard Worker
8051*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8052*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector __bool char __a,__vector unsigned char __b)8053*bed243d3SAndroid Build Coastguard Worker vec_max(__vector __bool char __a, __vector unsigned char __b) {
8054*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __ac = (__vector unsigned char)__a;
8055*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8056*bed243d3SAndroid Build Coastguard Worker }
8057*bed243d3SAndroid Build Coastguard Worker
8058*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a,__vector signed short __b)8059*bed243d3SAndroid Build Coastguard Worker vec_max(__vector signed short __a, __vector signed short __b) {
8060*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8061*bed243d3SAndroid Build Coastguard Worker }
8062*bed243d3SAndroid Build Coastguard Worker
8063*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8064*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a,__vector __bool short __b)8065*bed243d3SAndroid Build Coastguard Worker vec_max(__vector signed short __a, __vector __bool short __b) {
8066*bed243d3SAndroid Build Coastguard Worker __vector signed short __bc = (__vector signed short)__b;
8067*bed243d3SAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8068*bed243d3SAndroid Build Coastguard Worker }
8069*bed243d3SAndroid Build Coastguard Worker
8070*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8071*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_max(__vector __bool short __a,__vector signed short __b)8072*bed243d3SAndroid Build Coastguard Worker vec_max(__vector __bool short __a, __vector signed short __b) {
8073*bed243d3SAndroid Build Coastguard Worker __vector signed short __ac = (__vector signed short)__a;
8074*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8075*bed243d3SAndroid Build Coastguard Worker }
8076*bed243d3SAndroid Build Coastguard Worker
8077*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a,__vector unsigned short __b)8078*bed243d3SAndroid Build Coastguard Worker vec_max(__vector unsigned short __a, __vector unsigned short __b) {
8079*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8080*bed243d3SAndroid Build Coastguard Worker }
8081*bed243d3SAndroid Build Coastguard Worker
8082*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8083*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a,__vector __bool short __b)8084*bed243d3SAndroid Build Coastguard Worker vec_max(__vector unsigned short __a, __vector __bool short __b) {
8085*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __bc = (__vector unsigned short)__b;
8086*bed243d3SAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8087*bed243d3SAndroid Build Coastguard Worker }
8088*bed243d3SAndroid Build Coastguard Worker
8089*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8090*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector __bool short __a,__vector unsigned short __b)8091*bed243d3SAndroid Build Coastguard Worker vec_max(__vector __bool short __a, __vector unsigned short __b) {
8092*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __ac = (__vector unsigned short)__a;
8093*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8094*bed243d3SAndroid Build Coastguard Worker }
8095*bed243d3SAndroid Build Coastguard Worker
8096*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a,__vector signed int __b)8097*bed243d3SAndroid Build Coastguard Worker vec_max(__vector signed int __a, __vector signed int __b) {
8098*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8099*bed243d3SAndroid Build Coastguard Worker }
8100*bed243d3SAndroid Build Coastguard Worker
8101*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8102*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a,__vector __bool int __b)8103*bed243d3SAndroid Build Coastguard Worker vec_max(__vector signed int __a, __vector __bool int __b) {
8104*bed243d3SAndroid Build Coastguard Worker __vector signed int __bc = (__vector signed int)__b;
8105*bed243d3SAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8106*bed243d3SAndroid Build Coastguard Worker }
8107*bed243d3SAndroid Build Coastguard Worker
8108*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8109*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_max(__vector __bool int __a,__vector signed int __b)8110*bed243d3SAndroid Build Coastguard Worker vec_max(__vector __bool int __a, __vector signed int __b) {
8111*bed243d3SAndroid Build Coastguard Worker __vector signed int __ac = (__vector signed int)__a;
8112*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8113*bed243d3SAndroid Build Coastguard Worker }
8114*bed243d3SAndroid Build Coastguard Worker
8115*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a,__vector unsigned int __b)8116*bed243d3SAndroid Build Coastguard Worker vec_max(__vector unsigned int __a, __vector unsigned int __b) {
8117*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8118*bed243d3SAndroid Build Coastguard Worker }
8119*bed243d3SAndroid Build Coastguard Worker
8120*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8121*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a,__vector __bool int __b)8122*bed243d3SAndroid Build Coastguard Worker vec_max(__vector unsigned int __a, __vector __bool int __b) {
8123*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __bc = (__vector unsigned int)__b;
8124*bed243d3SAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8125*bed243d3SAndroid Build Coastguard Worker }
8126*bed243d3SAndroid Build Coastguard Worker
8127*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8128*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector __bool int __a,__vector unsigned int __b)8129*bed243d3SAndroid Build Coastguard Worker vec_max(__vector __bool int __a, __vector unsigned int __b) {
8130*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __ac = (__vector unsigned int)__a;
8131*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8132*bed243d3SAndroid Build Coastguard Worker }
8133*bed243d3SAndroid Build Coastguard Worker
8134*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a,__vector signed long long __b)8135*bed243d3SAndroid Build Coastguard Worker vec_max(__vector signed long long __a, __vector signed long long __b) {
8136*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8137*bed243d3SAndroid Build Coastguard Worker }
8138*bed243d3SAndroid Build Coastguard Worker
8139*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8140*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a,__vector __bool long long __b)8141*bed243d3SAndroid Build Coastguard Worker vec_max(__vector signed long long __a, __vector __bool long long __b) {
8142*bed243d3SAndroid Build Coastguard Worker __vector signed long long __bc = (__vector signed long long)__b;
8143*bed243d3SAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8144*bed243d3SAndroid Build Coastguard Worker }
8145*bed243d3SAndroid Build Coastguard Worker
8146*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8147*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector __bool long long __a,__vector signed long long __b)8148*bed243d3SAndroid Build Coastguard Worker vec_max(__vector __bool long long __a, __vector signed long long __b) {
8149*bed243d3SAndroid Build Coastguard Worker __vector signed long long __ac = (__vector signed long long)__a;
8150*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8151*bed243d3SAndroid Build Coastguard Worker }
8152*bed243d3SAndroid Build Coastguard Worker
8153*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a,__vector unsigned long long __b)8154*bed243d3SAndroid Build Coastguard Worker vec_max(__vector unsigned long long __a, __vector unsigned long long __b) {
8155*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8156*bed243d3SAndroid Build Coastguard Worker }
8157*bed243d3SAndroid Build Coastguard Worker
8158*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8159*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a,__vector __bool long long __b)8160*bed243d3SAndroid Build Coastguard Worker vec_max(__vector unsigned long long __a, __vector __bool long long __b) {
8161*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __bc = (__vector unsigned long long)__b;
8162*bed243d3SAndroid Build Coastguard Worker return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8163*bed243d3SAndroid Build Coastguard Worker }
8164*bed243d3SAndroid Build Coastguard Worker
8165*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8166*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector __bool long long __a,__vector unsigned long long __b)8167*bed243d3SAndroid Build Coastguard Worker vec_max(__vector __bool long long __a, __vector unsigned long long __b) {
8168*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __ac = (__vector unsigned long long)__a;
8169*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8170*bed243d3SAndroid Build Coastguard Worker }
8171*bed243d3SAndroid Build Coastguard Worker
8172*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
8173*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_max(__vector float __a,__vector float __b)8174*bed243d3SAndroid Build Coastguard Worker vec_max(__vector float __a, __vector float __b) {
8175*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfmaxsb(__a, __b, 0);
8176*bed243d3SAndroid Build Coastguard Worker }
8177*bed243d3SAndroid Build Coastguard Worker #endif
8178*bed243d3SAndroid Build Coastguard Worker
8179*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_max(__vector double __a,__vector double __b)8180*bed243d3SAndroid Build Coastguard Worker vec_max(__vector double __a, __vector double __b) {
8181*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
8182*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfmaxdb(__a, __b, 0);
8183*bed243d3SAndroid Build Coastguard Worker #else
8184*bed243d3SAndroid Build Coastguard Worker return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8185*bed243d3SAndroid Build Coastguard Worker #endif
8186*bed243d3SAndroid Build Coastguard Worker }
8187*bed243d3SAndroid Build Coastguard Worker
8188*bed243d3SAndroid Build Coastguard Worker /*-- vec_min ----------------------------------------------------------------*/
8189*bed243d3SAndroid Build Coastguard Worker
8190*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a,__vector signed char __b)8191*bed243d3SAndroid Build Coastguard Worker vec_min(__vector signed char __a, __vector signed char __b) {
8192*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8193*bed243d3SAndroid Build Coastguard Worker }
8194*bed243d3SAndroid Build Coastguard Worker
8195*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8196*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a,__vector __bool char __b)8197*bed243d3SAndroid Build Coastguard Worker vec_min(__vector signed char __a, __vector __bool char __b) {
8198*bed243d3SAndroid Build Coastguard Worker __vector signed char __bc = (__vector signed char)__b;
8199*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8200*bed243d3SAndroid Build Coastguard Worker }
8201*bed243d3SAndroid Build Coastguard Worker
8202*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8203*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_min(__vector __bool char __a,__vector signed char __b)8204*bed243d3SAndroid Build Coastguard Worker vec_min(__vector __bool char __a, __vector signed char __b) {
8205*bed243d3SAndroid Build Coastguard Worker __vector signed char __ac = (__vector signed char)__a;
8206*bed243d3SAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8207*bed243d3SAndroid Build Coastguard Worker }
8208*bed243d3SAndroid Build Coastguard Worker
8209*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a,__vector unsigned char __b)8210*bed243d3SAndroid Build Coastguard Worker vec_min(__vector unsigned char __a, __vector unsigned char __b) {
8211*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8212*bed243d3SAndroid Build Coastguard Worker }
8213*bed243d3SAndroid Build Coastguard Worker
8214*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8215*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a,__vector __bool char __b)8216*bed243d3SAndroid Build Coastguard Worker vec_min(__vector unsigned char __a, __vector __bool char __b) {
8217*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __bc = (__vector unsigned char)__b;
8218*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8219*bed243d3SAndroid Build Coastguard Worker }
8220*bed243d3SAndroid Build Coastguard Worker
8221*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8222*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector __bool char __a,__vector unsigned char __b)8223*bed243d3SAndroid Build Coastguard Worker vec_min(__vector __bool char __a, __vector unsigned char __b) {
8224*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __ac = (__vector unsigned char)__a;
8225*bed243d3SAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8226*bed243d3SAndroid Build Coastguard Worker }
8227*bed243d3SAndroid Build Coastguard Worker
8228*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a,__vector signed short __b)8229*bed243d3SAndroid Build Coastguard Worker vec_min(__vector signed short __a, __vector signed short __b) {
8230*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8231*bed243d3SAndroid Build Coastguard Worker }
8232*bed243d3SAndroid Build Coastguard Worker
8233*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8234*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a,__vector __bool short __b)8235*bed243d3SAndroid Build Coastguard Worker vec_min(__vector signed short __a, __vector __bool short __b) {
8236*bed243d3SAndroid Build Coastguard Worker __vector signed short __bc = (__vector signed short)__b;
8237*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8238*bed243d3SAndroid Build Coastguard Worker }
8239*bed243d3SAndroid Build Coastguard Worker
8240*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8241*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_min(__vector __bool short __a,__vector signed short __b)8242*bed243d3SAndroid Build Coastguard Worker vec_min(__vector __bool short __a, __vector signed short __b) {
8243*bed243d3SAndroid Build Coastguard Worker __vector signed short __ac = (__vector signed short)__a;
8244*bed243d3SAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8245*bed243d3SAndroid Build Coastguard Worker }
8246*bed243d3SAndroid Build Coastguard Worker
8247*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a,__vector unsigned short __b)8248*bed243d3SAndroid Build Coastguard Worker vec_min(__vector unsigned short __a, __vector unsigned short __b) {
8249*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8250*bed243d3SAndroid Build Coastguard Worker }
8251*bed243d3SAndroid Build Coastguard Worker
8252*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8253*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a,__vector __bool short __b)8254*bed243d3SAndroid Build Coastguard Worker vec_min(__vector unsigned short __a, __vector __bool short __b) {
8255*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __bc = (__vector unsigned short)__b;
8256*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8257*bed243d3SAndroid Build Coastguard Worker }
8258*bed243d3SAndroid Build Coastguard Worker
8259*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8260*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector __bool short __a,__vector unsigned short __b)8261*bed243d3SAndroid Build Coastguard Worker vec_min(__vector __bool short __a, __vector unsigned short __b) {
8262*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __ac = (__vector unsigned short)__a;
8263*bed243d3SAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8264*bed243d3SAndroid Build Coastguard Worker }
8265*bed243d3SAndroid Build Coastguard Worker
8266*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a,__vector signed int __b)8267*bed243d3SAndroid Build Coastguard Worker vec_min(__vector signed int __a, __vector signed int __b) {
8268*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8269*bed243d3SAndroid Build Coastguard Worker }
8270*bed243d3SAndroid Build Coastguard Worker
8271*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8272*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a,__vector __bool int __b)8273*bed243d3SAndroid Build Coastguard Worker vec_min(__vector signed int __a, __vector __bool int __b) {
8274*bed243d3SAndroid Build Coastguard Worker __vector signed int __bc = (__vector signed int)__b;
8275*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8276*bed243d3SAndroid Build Coastguard Worker }
8277*bed243d3SAndroid Build Coastguard Worker
8278*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8279*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_min(__vector __bool int __a,__vector signed int __b)8280*bed243d3SAndroid Build Coastguard Worker vec_min(__vector __bool int __a, __vector signed int __b) {
8281*bed243d3SAndroid Build Coastguard Worker __vector signed int __ac = (__vector signed int)__a;
8282*bed243d3SAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8283*bed243d3SAndroid Build Coastguard Worker }
8284*bed243d3SAndroid Build Coastguard Worker
8285*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a,__vector unsigned int __b)8286*bed243d3SAndroid Build Coastguard Worker vec_min(__vector unsigned int __a, __vector unsigned int __b) {
8287*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8288*bed243d3SAndroid Build Coastguard Worker }
8289*bed243d3SAndroid Build Coastguard Worker
8290*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8291*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a,__vector __bool int __b)8292*bed243d3SAndroid Build Coastguard Worker vec_min(__vector unsigned int __a, __vector __bool int __b) {
8293*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __bc = (__vector unsigned int)__b;
8294*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8295*bed243d3SAndroid Build Coastguard Worker }
8296*bed243d3SAndroid Build Coastguard Worker
8297*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8298*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector __bool int __a,__vector unsigned int __b)8299*bed243d3SAndroid Build Coastguard Worker vec_min(__vector __bool int __a, __vector unsigned int __b) {
8300*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __ac = (__vector unsigned int)__a;
8301*bed243d3SAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8302*bed243d3SAndroid Build Coastguard Worker }
8303*bed243d3SAndroid Build Coastguard Worker
8304*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a,__vector signed long long __b)8305*bed243d3SAndroid Build Coastguard Worker vec_min(__vector signed long long __a, __vector signed long long __b) {
8306*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8307*bed243d3SAndroid Build Coastguard Worker }
8308*bed243d3SAndroid Build Coastguard Worker
8309*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8310*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a,__vector __bool long long __b)8311*bed243d3SAndroid Build Coastguard Worker vec_min(__vector signed long long __a, __vector __bool long long __b) {
8312*bed243d3SAndroid Build Coastguard Worker __vector signed long long __bc = (__vector signed long long)__b;
8313*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8314*bed243d3SAndroid Build Coastguard Worker }
8315*bed243d3SAndroid Build Coastguard Worker
8316*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8317*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector __bool long long __a,__vector signed long long __b)8318*bed243d3SAndroid Build Coastguard Worker vec_min(__vector __bool long long __a, __vector signed long long __b) {
8319*bed243d3SAndroid Build Coastguard Worker __vector signed long long __ac = (__vector signed long long)__a;
8320*bed243d3SAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8321*bed243d3SAndroid Build Coastguard Worker }
8322*bed243d3SAndroid Build Coastguard Worker
8323*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a,__vector unsigned long long __b)8324*bed243d3SAndroid Build Coastguard Worker vec_min(__vector unsigned long long __a, __vector unsigned long long __b) {
8325*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8326*bed243d3SAndroid Build Coastguard Worker }
8327*bed243d3SAndroid Build Coastguard Worker
8328*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8329*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a,__vector __bool long long __b)8330*bed243d3SAndroid Build Coastguard Worker vec_min(__vector unsigned long long __a, __vector __bool long long __b) {
8331*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __bc = (__vector unsigned long long)__b;
8332*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8333*bed243d3SAndroid Build Coastguard Worker }
8334*bed243d3SAndroid Build Coastguard Worker
8335*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
8336*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector __bool long long __a,__vector unsigned long long __b)8337*bed243d3SAndroid Build Coastguard Worker vec_min(__vector __bool long long __a, __vector unsigned long long __b) {
8338*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __ac = (__vector unsigned long long)__a;
8339*bed243d3SAndroid Build Coastguard Worker return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8340*bed243d3SAndroid Build Coastguard Worker }
8341*bed243d3SAndroid Build Coastguard Worker
8342*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
8343*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_min(__vector float __a,__vector float __b)8344*bed243d3SAndroid Build Coastguard Worker vec_min(__vector float __a, __vector float __b) {
8345*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfminsb(__a, __b, 0);
8346*bed243d3SAndroid Build Coastguard Worker }
8347*bed243d3SAndroid Build Coastguard Worker #endif
8348*bed243d3SAndroid Build Coastguard Worker
8349*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_min(__vector double __a,__vector double __b)8350*bed243d3SAndroid Build Coastguard Worker vec_min(__vector double __a, __vector double __b) {
8351*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
8352*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfmindb(__a, __b, 0);
8353*bed243d3SAndroid Build Coastguard Worker #else
8354*bed243d3SAndroid Build Coastguard Worker return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8355*bed243d3SAndroid Build Coastguard Worker #endif
8356*bed243d3SAndroid Build Coastguard Worker }
8357*bed243d3SAndroid Build Coastguard Worker
8358*bed243d3SAndroid Build Coastguard Worker /*-- vec_add_u128 -----------------------------------------------------------*/
8359*bed243d3SAndroid Build Coastguard Worker
8360*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector unsigned char
vec_add_u128(__vector unsigned char __a,__vector unsigned char __b)8361*bed243d3SAndroid Build Coastguard Worker vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {
8362*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)((__int128)__a + (__int128)__b);
8363*bed243d3SAndroid Build Coastguard Worker }
8364*bed243d3SAndroid Build Coastguard Worker
8365*bed243d3SAndroid Build Coastguard Worker /*-- vec_addc ---------------------------------------------------------------*/
8366*bed243d3SAndroid Build Coastguard Worker
8367*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_addc(__vector unsigned char __a,__vector unsigned char __b)8368*bed243d3SAndroid Build Coastguard Worker vec_addc(__vector unsigned char __a, __vector unsigned char __b) {
8369*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vaccb(__a, __b);
8370*bed243d3SAndroid Build Coastguard Worker }
8371*bed243d3SAndroid Build Coastguard Worker
8372*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_addc(__vector unsigned short __a,__vector unsigned short __b)8373*bed243d3SAndroid Build Coastguard Worker vec_addc(__vector unsigned short __a, __vector unsigned short __b) {
8374*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vacch(__a, __b);
8375*bed243d3SAndroid Build Coastguard Worker }
8376*bed243d3SAndroid Build Coastguard Worker
8377*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_addc(__vector unsigned int __a,__vector unsigned int __b)8378*bed243d3SAndroid Build Coastguard Worker vec_addc(__vector unsigned int __a, __vector unsigned int __b) {
8379*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vaccf(__a, __b);
8380*bed243d3SAndroid Build Coastguard Worker }
8381*bed243d3SAndroid Build Coastguard Worker
8382*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_addc(__vector unsigned long long __a,__vector unsigned long long __b)8383*bed243d3SAndroid Build Coastguard Worker vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {
8384*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vaccg(__a, __b);
8385*bed243d3SAndroid Build Coastguard Worker }
8386*bed243d3SAndroid Build Coastguard Worker
8387*bed243d3SAndroid Build Coastguard Worker /*-- vec_addc_u128 ----------------------------------------------------------*/
8388*bed243d3SAndroid Build Coastguard Worker
8389*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector unsigned char
vec_addc_u128(__vector unsigned char __a,__vector unsigned char __b)8390*bed243d3SAndroid Build Coastguard Worker vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {
8391*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)
8392*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
8393*bed243d3SAndroid Build Coastguard Worker }
8394*bed243d3SAndroid Build Coastguard Worker
8395*bed243d3SAndroid Build Coastguard Worker /*-- vec_adde_u128 ----------------------------------------------------------*/
8396*bed243d3SAndroid Build Coastguard Worker
8397*bed243d3SAndroid 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)8398*bed243d3SAndroid Build Coastguard Worker vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,
8399*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
8400*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)
8401*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
8402*bed243d3SAndroid Build Coastguard Worker (unsigned __int128)__c);
8403*bed243d3SAndroid Build Coastguard Worker }
8404*bed243d3SAndroid Build Coastguard Worker
8405*bed243d3SAndroid Build Coastguard Worker /*-- vec_addec_u128 ---------------------------------------------------------*/
8406*bed243d3SAndroid Build Coastguard Worker
8407*bed243d3SAndroid 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)8408*bed243d3SAndroid Build Coastguard Worker vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,
8409*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
8410*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)
8411*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
8412*bed243d3SAndroid Build Coastguard Worker (unsigned __int128)__c);
8413*bed243d3SAndroid Build Coastguard Worker }
8414*bed243d3SAndroid Build Coastguard Worker
8415*bed243d3SAndroid Build Coastguard Worker /*-- vec_avg ----------------------------------------------------------------*/
8416*bed243d3SAndroid Build Coastguard Worker
8417*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_avg(__vector signed char __a,__vector signed char __b)8418*bed243d3SAndroid Build Coastguard Worker vec_avg(__vector signed char __a, __vector signed char __b) {
8419*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vavgb(__a, __b);
8420*bed243d3SAndroid Build Coastguard Worker }
8421*bed243d3SAndroid Build Coastguard Worker
8422*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_avg(__vector signed short __a,__vector signed short __b)8423*bed243d3SAndroid Build Coastguard Worker vec_avg(__vector signed short __a, __vector signed short __b) {
8424*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vavgh(__a, __b);
8425*bed243d3SAndroid Build Coastguard Worker }
8426*bed243d3SAndroid Build Coastguard Worker
8427*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_avg(__vector signed int __a,__vector signed int __b)8428*bed243d3SAndroid Build Coastguard Worker vec_avg(__vector signed int __a, __vector signed int __b) {
8429*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vavgf(__a, __b);
8430*bed243d3SAndroid Build Coastguard Worker }
8431*bed243d3SAndroid Build Coastguard Worker
8432*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_avg(__vector signed long long __a,__vector signed long long __b)8433*bed243d3SAndroid Build Coastguard Worker vec_avg(__vector signed long long __a, __vector signed long long __b) {
8434*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vavgg(__a, __b);
8435*bed243d3SAndroid Build Coastguard Worker }
8436*bed243d3SAndroid Build Coastguard Worker
8437*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_avg(__vector unsigned char __a,__vector unsigned char __b)8438*bed243d3SAndroid Build Coastguard Worker vec_avg(__vector unsigned char __a, __vector unsigned char __b) {
8439*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vavglb(__a, __b);
8440*bed243d3SAndroid Build Coastguard Worker }
8441*bed243d3SAndroid Build Coastguard Worker
8442*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_avg(__vector unsigned short __a,__vector unsigned short __b)8443*bed243d3SAndroid Build Coastguard Worker vec_avg(__vector unsigned short __a, __vector unsigned short __b) {
8444*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vavglh(__a, __b);
8445*bed243d3SAndroid Build Coastguard Worker }
8446*bed243d3SAndroid Build Coastguard Worker
8447*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_avg(__vector unsigned int __a,__vector unsigned int __b)8448*bed243d3SAndroid Build Coastguard Worker vec_avg(__vector unsigned int __a, __vector unsigned int __b) {
8449*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vavglf(__a, __b);
8450*bed243d3SAndroid Build Coastguard Worker }
8451*bed243d3SAndroid Build Coastguard Worker
8452*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_avg(__vector unsigned long long __a,__vector unsigned long long __b)8453*bed243d3SAndroid Build Coastguard Worker vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {
8454*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vavglg(__a, __b);
8455*bed243d3SAndroid Build Coastguard Worker }
8456*bed243d3SAndroid Build Coastguard Worker
8457*bed243d3SAndroid Build Coastguard Worker /*-- vec_checksum -----------------------------------------------------------*/
8458*bed243d3SAndroid Build Coastguard Worker
8459*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector unsigned int
vec_checksum(__vector unsigned int __a,__vector unsigned int __b)8460*bed243d3SAndroid Build Coastguard Worker vec_checksum(__vector unsigned int __a, __vector unsigned int __b) {
8461*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vcksm(__a, __b);
8462*bed243d3SAndroid Build Coastguard Worker }
8463*bed243d3SAndroid Build Coastguard Worker
8464*bed243d3SAndroid Build Coastguard Worker /*-- vec_gfmsum -------------------------------------------------------------*/
8465*bed243d3SAndroid Build Coastguard Worker
8466*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum(__vector unsigned char __a,__vector unsigned char __b)8467*bed243d3SAndroid Build Coastguard Worker vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) {
8468*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vgfmb(__a, __b);
8469*bed243d3SAndroid Build Coastguard Worker }
8470*bed243d3SAndroid Build Coastguard Worker
8471*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum(__vector unsigned short __a,__vector unsigned short __b)8472*bed243d3SAndroid Build Coastguard Worker vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) {
8473*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vgfmh(__a, __b);
8474*bed243d3SAndroid Build Coastguard Worker }
8475*bed243d3SAndroid Build Coastguard Worker
8476*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_gfmsum(__vector unsigned int __a,__vector unsigned int __b)8477*bed243d3SAndroid Build Coastguard Worker vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {
8478*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vgfmf(__a, __b);
8479*bed243d3SAndroid Build Coastguard Worker }
8480*bed243d3SAndroid Build Coastguard Worker
8481*bed243d3SAndroid Build Coastguard Worker /*-- vec_gfmsum_128 ---------------------------------------------------------*/
8482*bed243d3SAndroid Build Coastguard Worker
8483*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_gfmsum_128(__vector unsigned long long __a,__vector unsigned long long __b)8484*bed243d3SAndroid Build Coastguard Worker vec_gfmsum_128(__vector unsigned long long __a,
8485*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __b) {
8486*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)__builtin_s390_vgfmg(__a, __b);
8487*bed243d3SAndroid Build Coastguard Worker }
8488*bed243d3SAndroid Build Coastguard Worker
8489*bed243d3SAndroid Build Coastguard Worker /*-- vec_gfmsum_accum -------------------------------------------------------*/
8490*bed243d3SAndroid Build Coastguard Worker
8491*bed243d3SAndroid 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)8492*bed243d3SAndroid Build Coastguard Worker vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b,
8493*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
8494*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vgfmab(__a, __b, __c);
8495*bed243d3SAndroid Build Coastguard Worker }
8496*bed243d3SAndroid Build Coastguard Worker
8497*bed243d3SAndroid 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)8498*bed243d3SAndroid Build Coastguard Worker vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b,
8499*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
8500*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vgfmah(__a, __b, __c);
8501*bed243d3SAndroid Build Coastguard Worker }
8502*bed243d3SAndroid Build Coastguard Worker
8503*bed243d3SAndroid 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)8504*bed243d3SAndroid Build Coastguard Worker vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,
8505*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __c) {
8506*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vgfmaf(__a, __b, __c);
8507*bed243d3SAndroid Build Coastguard Worker }
8508*bed243d3SAndroid Build Coastguard Worker
8509*bed243d3SAndroid Build Coastguard Worker /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
8510*bed243d3SAndroid Build Coastguard Worker
8511*bed243d3SAndroid 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)8512*bed243d3SAndroid Build Coastguard Worker vec_gfmsum_accum_128(__vector unsigned long long __a,
8513*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __b,
8514*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
8515*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)
8516*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
8517*bed243d3SAndroid Build Coastguard Worker }
8518*bed243d3SAndroid Build Coastguard Worker
8519*bed243d3SAndroid Build Coastguard Worker /*-- vec_mladd --------------------------------------------------------------*/
8520*bed243d3SAndroid Build Coastguard Worker
8521*bed243d3SAndroid 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)8522*bed243d3SAndroid Build Coastguard Worker vec_mladd(__vector signed char __a, __vector signed char __b,
8523*bed243d3SAndroid Build Coastguard Worker __vector signed char __c) {
8524*bed243d3SAndroid Build Coastguard Worker return __a * __b + __c;
8525*bed243d3SAndroid Build Coastguard Worker }
8526*bed243d3SAndroid Build Coastguard Worker
8527*bed243d3SAndroid 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)8528*bed243d3SAndroid Build Coastguard Worker vec_mladd(__vector unsigned char __a, __vector signed char __b,
8529*bed243d3SAndroid Build Coastguard Worker __vector signed char __c) {
8530*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)__a * __b + __c;
8531*bed243d3SAndroid Build Coastguard Worker }
8532*bed243d3SAndroid Build Coastguard Worker
8533*bed243d3SAndroid 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)8534*bed243d3SAndroid Build Coastguard Worker vec_mladd(__vector signed char __a, __vector unsigned char __b,
8535*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
8536*bed243d3SAndroid Build Coastguard Worker return __a * (__vector signed char)__b + (__vector signed char)__c;
8537*bed243d3SAndroid Build Coastguard Worker }
8538*bed243d3SAndroid Build Coastguard Worker
8539*bed243d3SAndroid 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)8540*bed243d3SAndroid Build Coastguard Worker vec_mladd(__vector unsigned char __a, __vector unsigned char __b,
8541*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
8542*bed243d3SAndroid Build Coastguard Worker return __a * __b + __c;
8543*bed243d3SAndroid Build Coastguard Worker }
8544*bed243d3SAndroid Build Coastguard Worker
8545*bed243d3SAndroid 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)8546*bed243d3SAndroid Build Coastguard Worker vec_mladd(__vector signed short __a, __vector signed short __b,
8547*bed243d3SAndroid Build Coastguard Worker __vector signed short __c) {
8548*bed243d3SAndroid Build Coastguard Worker return __a * __b + __c;
8549*bed243d3SAndroid Build Coastguard Worker }
8550*bed243d3SAndroid Build Coastguard Worker
8551*bed243d3SAndroid 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)8552*bed243d3SAndroid Build Coastguard Worker vec_mladd(__vector unsigned short __a, __vector signed short __b,
8553*bed243d3SAndroid Build Coastguard Worker __vector signed short __c) {
8554*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)__a * __b + __c;
8555*bed243d3SAndroid Build Coastguard Worker }
8556*bed243d3SAndroid Build Coastguard Worker
8557*bed243d3SAndroid 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)8558*bed243d3SAndroid Build Coastguard Worker vec_mladd(__vector signed short __a, __vector unsigned short __b,
8559*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
8560*bed243d3SAndroid Build Coastguard Worker return __a * (__vector signed short)__b + (__vector signed short)__c;
8561*bed243d3SAndroid Build Coastguard Worker }
8562*bed243d3SAndroid Build Coastguard Worker
8563*bed243d3SAndroid 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)8564*bed243d3SAndroid Build Coastguard Worker vec_mladd(__vector unsigned short __a, __vector unsigned short __b,
8565*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
8566*bed243d3SAndroid Build Coastguard Worker return __a * __b + __c;
8567*bed243d3SAndroid Build Coastguard Worker }
8568*bed243d3SAndroid Build Coastguard Worker
8569*bed243d3SAndroid 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)8570*bed243d3SAndroid Build Coastguard Worker vec_mladd(__vector signed int __a, __vector signed int __b,
8571*bed243d3SAndroid Build Coastguard Worker __vector signed int __c) {
8572*bed243d3SAndroid Build Coastguard Worker return __a * __b + __c;
8573*bed243d3SAndroid Build Coastguard Worker }
8574*bed243d3SAndroid Build Coastguard Worker
8575*bed243d3SAndroid 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)8576*bed243d3SAndroid Build Coastguard Worker vec_mladd(__vector unsigned int __a, __vector signed int __b,
8577*bed243d3SAndroid Build Coastguard Worker __vector signed int __c) {
8578*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)__a * __b + __c;
8579*bed243d3SAndroid Build Coastguard Worker }
8580*bed243d3SAndroid Build Coastguard Worker
8581*bed243d3SAndroid 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)8582*bed243d3SAndroid Build Coastguard Worker vec_mladd(__vector signed int __a, __vector unsigned int __b,
8583*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
8584*bed243d3SAndroid Build Coastguard Worker return __a * (__vector signed int)__b + (__vector signed int)__c;
8585*bed243d3SAndroid Build Coastguard Worker }
8586*bed243d3SAndroid Build Coastguard Worker
8587*bed243d3SAndroid 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)8588*bed243d3SAndroid Build Coastguard Worker vec_mladd(__vector unsigned int __a, __vector unsigned int __b,
8589*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
8590*bed243d3SAndroid Build Coastguard Worker return __a * __b + __c;
8591*bed243d3SAndroid Build Coastguard Worker }
8592*bed243d3SAndroid Build Coastguard Worker
8593*bed243d3SAndroid Build Coastguard Worker /*-- vec_mhadd --------------------------------------------------------------*/
8594*bed243d3SAndroid Build Coastguard Worker
8595*bed243d3SAndroid 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)8596*bed243d3SAndroid Build Coastguard Worker vec_mhadd(__vector signed char __a, __vector signed char __b,
8597*bed243d3SAndroid Build Coastguard Worker __vector signed char __c) {
8598*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmahb(__a, __b, __c);
8599*bed243d3SAndroid Build Coastguard Worker }
8600*bed243d3SAndroid Build Coastguard Worker
8601*bed243d3SAndroid 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)8602*bed243d3SAndroid Build Coastguard Worker vec_mhadd(__vector unsigned char __a, __vector unsigned char __b,
8603*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
8604*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmalhb(__a, __b, __c);
8605*bed243d3SAndroid Build Coastguard Worker }
8606*bed243d3SAndroid Build Coastguard Worker
8607*bed243d3SAndroid 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)8608*bed243d3SAndroid Build Coastguard Worker vec_mhadd(__vector signed short __a, __vector signed short __b,
8609*bed243d3SAndroid Build Coastguard Worker __vector signed short __c) {
8610*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmahh(__a, __b, __c);
8611*bed243d3SAndroid Build Coastguard Worker }
8612*bed243d3SAndroid Build Coastguard Worker
8613*bed243d3SAndroid 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)8614*bed243d3SAndroid Build Coastguard Worker vec_mhadd(__vector unsigned short __a, __vector unsigned short __b,
8615*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
8616*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmalhh(__a, __b, __c);
8617*bed243d3SAndroid Build Coastguard Worker }
8618*bed243d3SAndroid Build Coastguard Worker
8619*bed243d3SAndroid 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)8620*bed243d3SAndroid Build Coastguard Worker vec_mhadd(__vector signed int __a, __vector signed int __b,
8621*bed243d3SAndroid Build Coastguard Worker __vector signed int __c) {
8622*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmahf(__a, __b, __c);
8623*bed243d3SAndroid Build Coastguard Worker }
8624*bed243d3SAndroid Build Coastguard Worker
8625*bed243d3SAndroid 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)8626*bed243d3SAndroid Build Coastguard Worker vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,
8627*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
8628*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmalhf(__a, __b, __c);
8629*bed243d3SAndroid Build Coastguard Worker }
8630*bed243d3SAndroid Build Coastguard Worker
8631*bed243d3SAndroid Build Coastguard Worker /*-- vec_meadd --------------------------------------------------------------*/
8632*bed243d3SAndroid Build Coastguard Worker
8633*bed243d3SAndroid 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)8634*bed243d3SAndroid Build Coastguard Worker vec_meadd(__vector signed char __a, __vector signed char __b,
8635*bed243d3SAndroid Build Coastguard Worker __vector signed short __c) {
8636*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmaeb(__a, __b, __c);
8637*bed243d3SAndroid Build Coastguard Worker }
8638*bed243d3SAndroid Build Coastguard Worker
8639*bed243d3SAndroid 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)8640*bed243d3SAndroid Build Coastguard Worker vec_meadd(__vector unsigned char __a, __vector unsigned char __b,
8641*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
8642*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmaleb(__a, __b, __c);
8643*bed243d3SAndroid Build Coastguard Worker }
8644*bed243d3SAndroid Build Coastguard Worker
8645*bed243d3SAndroid 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)8646*bed243d3SAndroid Build Coastguard Worker vec_meadd(__vector signed short __a, __vector signed short __b,
8647*bed243d3SAndroid Build Coastguard Worker __vector signed int __c) {
8648*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmaeh(__a, __b, __c);
8649*bed243d3SAndroid Build Coastguard Worker }
8650*bed243d3SAndroid Build Coastguard Worker
8651*bed243d3SAndroid 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)8652*bed243d3SAndroid Build Coastguard Worker vec_meadd(__vector unsigned short __a, __vector unsigned short __b,
8653*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
8654*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmaleh(__a, __b, __c);
8655*bed243d3SAndroid Build Coastguard Worker }
8656*bed243d3SAndroid Build Coastguard Worker
8657*bed243d3SAndroid 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)8658*bed243d3SAndroid Build Coastguard Worker vec_meadd(__vector signed int __a, __vector signed int __b,
8659*bed243d3SAndroid Build Coastguard Worker __vector signed long long __c) {
8660*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmaef(__a, __b, __c);
8661*bed243d3SAndroid Build Coastguard Worker }
8662*bed243d3SAndroid Build Coastguard Worker
8663*bed243d3SAndroid 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)8664*bed243d3SAndroid Build Coastguard Worker vec_meadd(__vector unsigned int __a, __vector unsigned int __b,
8665*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __c) {
8666*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmalef(__a, __b, __c);
8667*bed243d3SAndroid Build Coastguard Worker }
8668*bed243d3SAndroid Build Coastguard Worker
8669*bed243d3SAndroid Build Coastguard Worker /*-- vec_moadd --------------------------------------------------------------*/
8670*bed243d3SAndroid Build Coastguard Worker
8671*bed243d3SAndroid 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)8672*bed243d3SAndroid Build Coastguard Worker vec_moadd(__vector signed char __a, __vector signed char __b,
8673*bed243d3SAndroid Build Coastguard Worker __vector signed short __c) {
8674*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmaob(__a, __b, __c);
8675*bed243d3SAndroid Build Coastguard Worker }
8676*bed243d3SAndroid Build Coastguard Worker
8677*bed243d3SAndroid 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)8678*bed243d3SAndroid Build Coastguard Worker vec_moadd(__vector unsigned char __a, __vector unsigned char __b,
8679*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
8680*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmalob(__a, __b, __c);
8681*bed243d3SAndroid Build Coastguard Worker }
8682*bed243d3SAndroid Build Coastguard Worker
8683*bed243d3SAndroid 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)8684*bed243d3SAndroid Build Coastguard Worker vec_moadd(__vector signed short __a, __vector signed short __b,
8685*bed243d3SAndroid Build Coastguard Worker __vector signed int __c) {
8686*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmaoh(__a, __b, __c);
8687*bed243d3SAndroid Build Coastguard Worker }
8688*bed243d3SAndroid Build Coastguard Worker
8689*bed243d3SAndroid 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)8690*bed243d3SAndroid Build Coastguard Worker vec_moadd(__vector unsigned short __a, __vector unsigned short __b,
8691*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
8692*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmaloh(__a, __b, __c);
8693*bed243d3SAndroid Build Coastguard Worker }
8694*bed243d3SAndroid Build Coastguard Worker
8695*bed243d3SAndroid 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)8696*bed243d3SAndroid Build Coastguard Worker vec_moadd(__vector signed int __a, __vector signed int __b,
8697*bed243d3SAndroid Build Coastguard Worker __vector signed long long __c) {
8698*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmaof(__a, __b, __c);
8699*bed243d3SAndroid Build Coastguard Worker }
8700*bed243d3SAndroid Build Coastguard Worker
8701*bed243d3SAndroid 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)8702*bed243d3SAndroid Build Coastguard Worker vec_moadd(__vector unsigned int __a, __vector unsigned int __b,
8703*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __c) {
8704*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmalof(__a, __b, __c);
8705*bed243d3SAndroid Build Coastguard Worker }
8706*bed243d3SAndroid Build Coastguard Worker
8707*bed243d3SAndroid Build Coastguard Worker /*-- vec_mulh ---------------------------------------------------------------*/
8708*bed243d3SAndroid Build Coastguard Worker
8709*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_mulh(__vector signed char __a,__vector signed char __b)8710*bed243d3SAndroid Build Coastguard Worker vec_mulh(__vector signed char __a, __vector signed char __b) {
8711*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmhb(__a, __b);
8712*bed243d3SAndroid Build Coastguard Worker }
8713*bed243d3SAndroid Build Coastguard Worker
8714*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_mulh(__vector unsigned char __a,__vector unsigned char __b)8715*bed243d3SAndroid Build Coastguard Worker vec_mulh(__vector unsigned char __a, __vector unsigned char __b) {
8716*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmlhb(__a, __b);
8717*bed243d3SAndroid Build Coastguard Worker }
8718*bed243d3SAndroid Build Coastguard Worker
8719*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_mulh(__vector signed short __a,__vector signed short __b)8720*bed243d3SAndroid Build Coastguard Worker vec_mulh(__vector signed short __a, __vector signed short __b) {
8721*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmhh(__a, __b);
8722*bed243d3SAndroid Build Coastguard Worker }
8723*bed243d3SAndroid Build Coastguard Worker
8724*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_mulh(__vector unsigned short __a,__vector unsigned short __b)8725*bed243d3SAndroid Build Coastguard Worker vec_mulh(__vector unsigned short __a, __vector unsigned short __b) {
8726*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmlhh(__a, __b);
8727*bed243d3SAndroid Build Coastguard Worker }
8728*bed243d3SAndroid Build Coastguard Worker
8729*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_mulh(__vector signed int __a,__vector signed int __b)8730*bed243d3SAndroid Build Coastguard Worker vec_mulh(__vector signed int __a, __vector signed int __b) {
8731*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmhf(__a, __b);
8732*bed243d3SAndroid Build Coastguard Worker }
8733*bed243d3SAndroid Build Coastguard Worker
8734*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_mulh(__vector unsigned int __a,__vector unsigned int __b)8735*bed243d3SAndroid Build Coastguard Worker vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {
8736*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmlhf(__a, __b);
8737*bed243d3SAndroid Build Coastguard Worker }
8738*bed243d3SAndroid Build Coastguard Worker
8739*bed243d3SAndroid Build Coastguard Worker /*-- vec_mule ---------------------------------------------------------------*/
8740*bed243d3SAndroid Build Coastguard Worker
8741*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_mule(__vector signed char __a,__vector signed char __b)8742*bed243d3SAndroid Build Coastguard Worker vec_mule(__vector signed char __a, __vector signed char __b) {
8743*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmeb(__a, __b);
8744*bed243d3SAndroid Build Coastguard Worker }
8745*bed243d3SAndroid Build Coastguard Worker
8746*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_mule(__vector unsigned char __a,__vector unsigned char __b)8747*bed243d3SAndroid Build Coastguard Worker vec_mule(__vector unsigned char __a, __vector unsigned char __b) {
8748*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmleb(__a, __b);
8749*bed243d3SAndroid Build Coastguard Worker }
8750*bed243d3SAndroid Build Coastguard Worker
8751*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_mule(__vector signed short __a,__vector signed short __b)8752*bed243d3SAndroid Build Coastguard Worker vec_mule(__vector signed short __a, __vector signed short __b) {
8753*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmeh(__a, __b);
8754*bed243d3SAndroid Build Coastguard Worker }
8755*bed243d3SAndroid Build Coastguard Worker
8756*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_mule(__vector unsigned short __a,__vector unsigned short __b)8757*bed243d3SAndroid Build Coastguard Worker vec_mule(__vector unsigned short __a, __vector unsigned short __b) {
8758*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmleh(__a, __b);
8759*bed243d3SAndroid Build Coastguard Worker }
8760*bed243d3SAndroid Build Coastguard Worker
8761*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_mule(__vector signed int __a,__vector signed int __b)8762*bed243d3SAndroid Build Coastguard Worker vec_mule(__vector signed int __a, __vector signed int __b) {
8763*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmef(__a, __b);
8764*bed243d3SAndroid Build Coastguard Worker }
8765*bed243d3SAndroid Build Coastguard Worker
8766*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_mule(__vector unsigned int __a,__vector unsigned int __b)8767*bed243d3SAndroid Build Coastguard Worker vec_mule(__vector unsigned int __a, __vector unsigned int __b) {
8768*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmlef(__a, __b);
8769*bed243d3SAndroid Build Coastguard Worker }
8770*bed243d3SAndroid Build Coastguard Worker
8771*bed243d3SAndroid Build Coastguard Worker /*-- vec_mulo ---------------------------------------------------------------*/
8772*bed243d3SAndroid Build Coastguard Worker
8773*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_mulo(__vector signed char __a,__vector signed char __b)8774*bed243d3SAndroid Build Coastguard Worker vec_mulo(__vector signed char __a, __vector signed char __b) {
8775*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmob(__a, __b);
8776*bed243d3SAndroid Build Coastguard Worker }
8777*bed243d3SAndroid Build Coastguard Worker
8778*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_mulo(__vector unsigned char __a,__vector unsigned char __b)8779*bed243d3SAndroid Build Coastguard Worker vec_mulo(__vector unsigned char __a, __vector unsigned char __b) {
8780*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmlob(__a, __b);
8781*bed243d3SAndroid Build Coastguard Worker }
8782*bed243d3SAndroid Build Coastguard Worker
8783*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_mulo(__vector signed short __a,__vector signed short __b)8784*bed243d3SAndroid Build Coastguard Worker vec_mulo(__vector signed short __a, __vector signed short __b) {
8785*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmoh(__a, __b);
8786*bed243d3SAndroid Build Coastguard Worker }
8787*bed243d3SAndroid Build Coastguard Worker
8788*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_mulo(__vector unsigned short __a,__vector unsigned short __b)8789*bed243d3SAndroid Build Coastguard Worker vec_mulo(__vector unsigned short __a, __vector unsigned short __b) {
8790*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmloh(__a, __b);
8791*bed243d3SAndroid Build Coastguard Worker }
8792*bed243d3SAndroid Build Coastguard Worker
8793*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_mulo(__vector signed int __a,__vector signed int __b)8794*bed243d3SAndroid Build Coastguard Worker vec_mulo(__vector signed int __a, __vector signed int __b) {
8795*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmof(__a, __b);
8796*bed243d3SAndroid Build Coastguard Worker }
8797*bed243d3SAndroid Build Coastguard Worker
8798*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_mulo(__vector unsigned int __a,__vector unsigned int __b)8799*bed243d3SAndroid Build Coastguard Worker vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {
8800*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vmlof(__a, __b);
8801*bed243d3SAndroid Build Coastguard Worker }
8802*bed243d3SAndroid Build Coastguard Worker
8803*bed243d3SAndroid Build Coastguard Worker /*-- vec_msum_u128 ----------------------------------------------------------*/
8804*bed243d3SAndroid Build Coastguard Worker
8805*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
8806*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector unsigned char
8807*bed243d3SAndroid Build Coastguard Worker vec_msum_u128(__vector unsigned long long __a, __vector unsigned long long __b,
8808*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int __d)
8809*bed243d3SAndroid Build Coastguard Worker __constant_range(__d, 0, 15);
8810*bed243d3SAndroid Build Coastguard Worker
8811*bed243d3SAndroid Build Coastguard Worker #define vec_msum_u128(X, Y, Z, W) \
8812*bed243d3SAndroid Build Coastguard Worker ((__typeof__((vec_msum_u128)((X), (Y), (Z), (W)))) \
8813*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
8814*bed243d3SAndroid Build Coastguard Worker #endif
8815*bed243d3SAndroid Build Coastguard Worker
8816*bed243d3SAndroid Build Coastguard Worker /*-- vec_sub_u128 -----------------------------------------------------------*/
8817*bed243d3SAndroid Build Coastguard Worker
8818*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector unsigned char
vec_sub_u128(__vector unsigned char __a,__vector unsigned char __b)8819*bed243d3SAndroid Build Coastguard Worker vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {
8820*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)((__int128)__a - (__int128)__b);
8821*bed243d3SAndroid Build Coastguard Worker }
8822*bed243d3SAndroid Build Coastguard Worker
8823*bed243d3SAndroid Build Coastguard Worker /*-- vec_subc ---------------------------------------------------------------*/
8824*bed243d3SAndroid Build Coastguard Worker
8825*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_subc(__vector unsigned char __a,__vector unsigned char __b)8826*bed243d3SAndroid Build Coastguard Worker vec_subc(__vector unsigned char __a, __vector unsigned char __b) {
8827*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vscbib(__a, __b);
8828*bed243d3SAndroid Build Coastguard Worker }
8829*bed243d3SAndroid Build Coastguard Worker
8830*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_subc(__vector unsigned short __a,__vector unsigned short __b)8831*bed243d3SAndroid Build Coastguard Worker vec_subc(__vector unsigned short __a, __vector unsigned short __b) {
8832*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vscbih(__a, __b);
8833*bed243d3SAndroid Build Coastguard Worker }
8834*bed243d3SAndroid Build Coastguard Worker
8835*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_subc(__vector unsigned int __a,__vector unsigned int __b)8836*bed243d3SAndroid Build Coastguard Worker vec_subc(__vector unsigned int __a, __vector unsigned int __b) {
8837*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vscbif(__a, __b);
8838*bed243d3SAndroid Build Coastguard Worker }
8839*bed243d3SAndroid Build Coastguard Worker
8840*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_subc(__vector unsigned long long __a,__vector unsigned long long __b)8841*bed243d3SAndroid Build Coastguard Worker vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {
8842*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vscbig(__a, __b);
8843*bed243d3SAndroid Build Coastguard Worker }
8844*bed243d3SAndroid Build Coastguard Worker
8845*bed243d3SAndroid Build Coastguard Worker /*-- vec_subc_u128 ----------------------------------------------------------*/
8846*bed243d3SAndroid Build Coastguard Worker
8847*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector unsigned char
vec_subc_u128(__vector unsigned char __a,__vector unsigned char __b)8848*bed243d3SAndroid Build Coastguard Worker vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {
8849*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)
8850*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
8851*bed243d3SAndroid Build Coastguard Worker }
8852*bed243d3SAndroid Build Coastguard Worker
8853*bed243d3SAndroid Build Coastguard Worker /*-- vec_sube_u128 ----------------------------------------------------------*/
8854*bed243d3SAndroid Build Coastguard Worker
8855*bed243d3SAndroid 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)8856*bed243d3SAndroid Build Coastguard Worker vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,
8857*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
8858*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)
8859*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
8860*bed243d3SAndroid Build Coastguard Worker (unsigned __int128)__c);
8861*bed243d3SAndroid Build Coastguard Worker }
8862*bed243d3SAndroid Build Coastguard Worker
8863*bed243d3SAndroid Build Coastguard Worker /*-- vec_subec_u128 ---------------------------------------------------------*/
8864*bed243d3SAndroid Build Coastguard Worker
8865*bed243d3SAndroid 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)8866*bed243d3SAndroid Build Coastguard Worker vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,
8867*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
8868*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)
8869*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
8870*bed243d3SAndroid Build Coastguard Worker (unsigned __int128)__c);
8871*bed243d3SAndroid Build Coastguard Worker }
8872*bed243d3SAndroid Build Coastguard Worker
8873*bed243d3SAndroid Build Coastguard Worker /*-- vec_sum2 ---------------------------------------------------------------*/
8874*bed243d3SAndroid Build Coastguard Worker
8875*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned short __a,__vector unsigned short __b)8876*bed243d3SAndroid Build Coastguard Worker vec_sum2(__vector unsigned short __a, __vector unsigned short __b) {
8877*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsumgh(__a, __b);
8878*bed243d3SAndroid Build Coastguard Worker }
8879*bed243d3SAndroid Build Coastguard Worker
8880*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned int __a,__vector unsigned int __b)8881*bed243d3SAndroid Build Coastguard Worker vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {
8882*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsumgf(__a, __b);
8883*bed243d3SAndroid Build Coastguard Worker }
8884*bed243d3SAndroid Build Coastguard Worker
8885*bed243d3SAndroid Build Coastguard Worker /*-- vec_sum_u128 -----------------------------------------------------------*/
8886*bed243d3SAndroid Build Coastguard Worker
8887*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned int __a,__vector unsigned int __b)8888*bed243d3SAndroid Build Coastguard Worker vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {
8889*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)__builtin_s390_vsumqf(__a, __b);
8890*bed243d3SAndroid Build Coastguard Worker }
8891*bed243d3SAndroid Build Coastguard Worker
8892*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned long long __a,__vector unsigned long long __b)8893*bed243d3SAndroid Build Coastguard Worker vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {
8894*bed243d3SAndroid Build Coastguard Worker return (__vector unsigned char)__builtin_s390_vsumqg(__a, __b);
8895*bed243d3SAndroid Build Coastguard Worker }
8896*bed243d3SAndroid Build Coastguard Worker
8897*bed243d3SAndroid Build Coastguard Worker /*-- vec_sum4 ---------------------------------------------------------------*/
8898*bed243d3SAndroid Build Coastguard Worker
8899*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned char __a,__vector unsigned char __b)8900*bed243d3SAndroid Build Coastguard Worker vec_sum4(__vector unsigned char __a, __vector unsigned char __b) {
8901*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsumb(__a, __b);
8902*bed243d3SAndroid Build Coastguard Worker }
8903*bed243d3SAndroid Build Coastguard Worker
8904*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned short __a,__vector unsigned short __b)8905*bed243d3SAndroid Build Coastguard Worker vec_sum4(__vector unsigned short __a, __vector unsigned short __b) {
8906*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vsumh(__a, __b);
8907*bed243d3SAndroid Build Coastguard Worker }
8908*bed243d3SAndroid Build Coastguard Worker
8909*bed243d3SAndroid Build Coastguard Worker /*-- vec_test_mask ----------------------------------------------------------*/
8910*bed243d3SAndroid Build Coastguard Worker
8911*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(__vector signed char __a,__vector unsigned char __b)8912*bed243d3SAndroid Build Coastguard Worker vec_test_mask(__vector signed char __a, __vector unsigned char __b) {
8913*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vtm((__vector unsigned char)__a,
8914*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
8915*bed243d3SAndroid Build Coastguard Worker }
8916*bed243d3SAndroid Build Coastguard Worker
8917*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned char __a,__vector unsigned char __b)8918*bed243d3SAndroid Build Coastguard Worker vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) {
8919*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vtm(__a, __b);
8920*bed243d3SAndroid Build Coastguard Worker }
8921*bed243d3SAndroid Build Coastguard Worker
8922*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(__vector signed short __a,__vector unsigned short __b)8923*bed243d3SAndroid Build Coastguard Worker vec_test_mask(__vector signed short __a, __vector unsigned short __b) {
8924*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vtm((__vector unsigned char)__a,
8925*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
8926*bed243d3SAndroid Build Coastguard Worker }
8927*bed243d3SAndroid Build Coastguard Worker
8928*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned short __a,__vector unsigned short __b)8929*bed243d3SAndroid Build Coastguard Worker vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) {
8930*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vtm((__vector unsigned char)__a,
8931*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
8932*bed243d3SAndroid Build Coastguard Worker }
8933*bed243d3SAndroid Build Coastguard Worker
8934*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(__vector signed int __a,__vector unsigned int __b)8935*bed243d3SAndroid Build Coastguard Worker vec_test_mask(__vector signed int __a, __vector unsigned int __b) {
8936*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vtm((__vector unsigned char)__a,
8937*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
8938*bed243d3SAndroid Build Coastguard Worker }
8939*bed243d3SAndroid Build Coastguard Worker
8940*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned int __a,__vector unsigned int __b)8941*bed243d3SAndroid Build Coastguard Worker vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) {
8942*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vtm((__vector unsigned char)__a,
8943*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
8944*bed243d3SAndroid Build Coastguard Worker }
8945*bed243d3SAndroid Build Coastguard Worker
8946*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(__vector signed long long __a,__vector unsigned long long __b)8947*bed243d3SAndroid Build Coastguard Worker vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) {
8948*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vtm((__vector unsigned char)__a,
8949*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
8950*bed243d3SAndroid Build Coastguard Worker }
8951*bed243d3SAndroid Build Coastguard Worker
8952*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned long long __a,__vector unsigned long long __b)8953*bed243d3SAndroid Build Coastguard Worker vec_test_mask(__vector unsigned long long __a,
8954*bed243d3SAndroid Build Coastguard Worker __vector unsigned long long __b) {
8955*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vtm((__vector unsigned char)__a,
8956*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
8957*bed243d3SAndroid Build Coastguard Worker }
8958*bed243d3SAndroid Build Coastguard Worker
8959*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
8960*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(__vector float __a,__vector unsigned int __b)8961*bed243d3SAndroid Build Coastguard Worker vec_test_mask(__vector float __a, __vector unsigned int __b) {
8962*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vtm((__vector unsigned char)__a,
8963*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
8964*bed243d3SAndroid Build Coastguard Worker }
8965*bed243d3SAndroid Build Coastguard Worker #endif
8966*bed243d3SAndroid Build Coastguard Worker
8967*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai int
vec_test_mask(__vector double __a,__vector unsigned long long __b)8968*bed243d3SAndroid Build Coastguard Worker vec_test_mask(__vector double __a, __vector unsigned long long __b) {
8969*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vtm((__vector unsigned char)__a,
8970*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
8971*bed243d3SAndroid Build Coastguard Worker }
8972*bed243d3SAndroid Build Coastguard Worker
8973*bed243d3SAndroid Build Coastguard Worker /*-- vec_madd ---------------------------------------------------------------*/
8974*bed243d3SAndroid Build Coastguard Worker
8975*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
8976*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_madd(__vector float __a,__vector float __b,__vector float __c)8977*bed243d3SAndroid Build Coastguard Worker vec_madd(__vector float __a, __vector float __b, __vector float __c) {
8978*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfmasb(__a, __b, __c);
8979*bed243d3SAndroid Build Coastguard Worker }
8980*bed243d3SAndroid Build Coastguard Worker #endif
8981*bed243d3SAndroid Build Coastguard Worker
8982*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_madd(__vector double __a,__vector double __b,__vector double __c)8983*bed243d3SAndroid Build Coastguard Worker vec_madd(__vector double __a, __vector double __b, __vector double __c) {
8984*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfmadb(__a, __b, __c);
8985*bed243d3SAndroid Build Coastguard Worker }
8986*bed243d3SAndroid Build Coastguard Worker
8987*bed243d3SAndroid Build Coastguard Worker /*-- vec_msub ---------------------------------------------------------------*/
8988*bed243d3SAndroid Build Coastguard Worker
8989*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
8990*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_msub(__vector float __a,__vector float __b,__vector float __c)8991*bed243d3SAndroid Build Coastguard Worker vec_msub(__vector float __a, __vector float __b, __vector float __c) {
8992*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfmssb(__a, __b, __c);
8993*bed243d3SAndroid Build Coastguard Worker }
8994*bed243d3SAndroid Build Coastguard Worker #endif
8995*bed243d3SAndroid Build Coastguard Worker
8996*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_msub(__vector double __a,__vector double __b,__vector double __c)8997*bed243d3SAndroid Build Coastguard Worker vec_msub(__vector double __a, __vector double __b, __vector double __c) {
8998*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfmsdb(__a, __b, __c);
8999*bed243d3SAndroid Build Coastguard Worker }
9000*bed243d3SAndroid Build Coastguard Worker
9001*bed243d3SAndroid Build Coastguard Worker /*-- vec_nmadd ---------------------------------------------------------------*/
9002*bed243d3SAndroid Build Coastguard Worker
9003*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9004*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_nmadd(__vector float __a,__vector float __b,__vector float __c)9005*bed243d3SAndroid Build Coastguard Worker vec_nmadd(__vector float __a, __vector float __b, __vector float __c) {
9006*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfnmasb(__a, __b, __c);
9007*bed243d3SAndroid Build Coastguard Worker }
9008*bed243d3SAndroid Build Coastguard Worker
9009*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_nmadd(__vector double __a,__vector double __b,__vector double __c)9010*bed243d3SAndroid Build Coastguard Worker vec_nmadd(__vector double __a, __vector double __b, __vector double __c) {
9011*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfnmadb(__a, __b, __c);
9012*bed243d3SAndroid Build Coastguard Worker }
9013*bed243d3SAndroid Build Coastguard Worker #endif
9014*bed243d3SAndroid Build Coastguard Worker
9015*bed243d3SAndroid Build Coastguard Worker /*-- vec_nmsub ---------------------------------------------------------------*/
9016*bed243d3SAndroid Build Coastguard Worker
9017*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9018*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_nmsub(__vector float __a,__vector float __b,__vector float __c)9019*bed243d3SAndroid Build Coastguard Worker vec_nmsub(__vector float __a, __vector float __b, __vector float __c) {
9020*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfnmssb(__a, __b, __c);
9021*bed243d3SAndroid Build Coastguard Worker }
9022*bed243d3SAndroid Build Coastguard Worker
9023*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_nmsub(__vector double __a,__vector double __b,__vector double __c)9024*bed243d3SAndroid Build Coastguard Worker vec_nmsub(__vector double __a, __vector double __b, __vector double __c) {
9025*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfnmsdb(__a, __b, __c);
9026*bed243d3SAndroid Build Coastguard Worker }
9027*bed243d3SAndroid Build Coastguard Worker #endif
9028*bed243d3SAndroid Build Coastguard Worker
9029*bed243d3SAndroid Build Coastguard Worker /*-- vec_sqrt ---------------------------------------------------------------*/
9030*bed243d3SAndroid Build Coastguard Worker
9031*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9032*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_sqrt(__vector float __a)9033*bed243d3SAndroid Build Coastguard Worker vec_sqrt(__vector float __a) {
9034*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfsqsb(__a);
9035*bed243d3SAndroid Build Coastguard Worker }
9036*bed243d3SAndroid Build Coastguard Worker #endif
9037*bed243d3SAndroid Build Coastguard Worker
9038*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_sqrt(__vector double __a)9039*bed243d3SAndroid Build Coastguard Worker vec_sqrt(__vector double __a) {
9040*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfsqdb(__a);
9041*bed243d3SAndroid Build Coastguard Worker }
9042*bed243d3SAndroid Build Coastguard Worker
9043*bed243d3SAndroid Build Coastguard Worker /*-- vec_ld2f ---------------------------------------------------------------*/
9044*bed243d3SAndroid Build Coastguard Worker
9045*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
9046*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector double
vec_ld2f(const float * __ptr)9047*bed243d3SAndroid Build Coastguard Worker vec_ld2f(const float *__ptr) {
9048*bed243d3SAndroid Build Coastguard Worker typedef float __v2f32 __attribute__((__vector_size__(8)));
9049*bed243d3SAndroid Build Coastguard Worker return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double);
9050*bed243d3SAndroid Build Coastguard Worker }
9051*bed243d3SAndroid Build Coastguard Worker
9052*bed243d3SAndroid Build Coastguard Worker /*-- vec_st2f ---------------------------------------------------------------*/
9053*bed243d3SAndroid Build Coastguard Worker
9054*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
9055*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai void
vec_st2f(__vector double __a,float * __ptr)9056*bed243d3SAndroid Build Coastguard Worker vec_st2f(__vector double __a, float *__ptr) {
9057*bed243d3SAndroid Build Coastguard Worker typedef float __v2f32 __attribute__((__vector_size__(8)));
9058*bed243d3SAndroid Build Coastguard Worker *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
9059*bed243d3SAndroid Build Coastguard Worker }
9060*bed243d3SAndroid Build Coastguard Worker
9061*bed243d3SAndroid Build Coastguard Worker /*-- vec_ctd ----------------------------------------------------------------*/
9062*bed243d3SAndroid Build Coastguard Worker
9063*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
9064*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_ctd(__vector signed long long __a,int __b)9065*bed243d3SAndroid Build Coastguard Worker vec_ctd(__vector signed long long __a, int __b)
9066*bed243d3SAndroid Build Coastguard Worker __constant_range(__b, 0, 31) {
9067*bed243d3SAndroid Build Coastguard Worker __vector double __conv = __builtin_convertvector(__a, __vector double);
9068*bed243d3SAndroid Build Coastguard Worker __conv *= ((__vector double)(__vector unsigned long long)
9069*bed243d3SAndroid Build Coastguard Worker ((0x3ffULL - __b) << 52));
9070*bed243d3SAndroid Build Coastguard Worker return __conv;
9071*bed243d3SAndroid Build Coastguard Worker }
9072*bed243d3SAndroid Build Coastguard Worker
9073*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
9074*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_ctd(__vector unsigned long long __a,int __b)9075*bed243d3SAndroid Build Coastguard Worker vec_ctd(__vector unsigned long long __a, int __b)
9076*bed243d3SAndroid Build Coastguard Worker __constant_range(__b, 0, 31) {
9077*bed243d3SAndroid Build Coastguard Worker __vector double __conv = __builtin_convertvector(__a, __vector double);
9078*bed243d3SAndroid Build Coastguard Worker __conv *= ((__vector double)(__vector unsigned long long)
9079*bed243d3SAndroid Build Coastguard Worker ((0x3ffULL - __b) << 52));
9080*bed243d3SAndroid Build Coastguard Worker return __conv;
9081*bed243d3SAndroid Build Coastguard Worker }
9082*bed243d3SAndroid Build Coastguard Worker
9083*bed243d3SAndroid Build Coastguard Worker /*-- vec_ctsl ---------------------------------------------------------------*/
9084*bed243d3SAndroid Build Coastguard Worker
9085*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
9086*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_ctsl(__vector double __a,int __b)9087*bed243d3SAndroid Build Coastguard Worker vec_ctsl(__vector double __a, int __b)
9088*bed243d3SAndroid Build Coastguard Worker __constant_range(__b, 0, 31) {
9089*bed243d3SAndroid Build Coastguard Worker __a *= ((__vector double)(__vector unsigned long long)
9090*bed243d3SAndroid Build Coastguard Worker ((0x3ffULL + __b) << 52));
9091*bed243d3SAndroid Build Coastguard Worker return __builtin_convertvector(__a, __vector signed long long);
9092*bed243d3SAndroid Build Coastguard Worker }
9093*bed243d3SAndroid Build Coastguard Worker
9094*bed243d3SAndroid Build Coastguard Worker /*-- vec_ctul ---------------------------------------------------------------*/
9095*bed243d3SAndroid Build Coastguard Worker
9096*bed243d3SAndroid Build Coastguard Worker // This prototype is deprecated.
9097*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_ctul(__vector double __a,int __b)9098*bed243d3SAndroid Build Coastguard Worker vec_ctul(__vector double __a, int __b)
9099*bed243d3SAndroid Build Coastguard Worker __constant_range(__b, 0, 31) {
9100*bed243d3SAndroid Build Coastguard Worker __a *= ((__vector double)(__vector unsigned long long)
9101*bed243d3SAndroid Build Coastguard Worker ((0x3ffULL + __b) << 52));
9102*bed243d3SAndroid Build Coastguard Worker return __builtin_convertvector(__a, __vector unsigned long long);
9103*bed243d3SAndroid Build Coastguard Worker }
9104*bed243d3SAndroid Build Coastguard Worker
9105*bed243d3SAndroid Build Coastguard Worker /*-- vec_doublee ------------------------------------------------------------*/
9106*bed243d3SAndroid Build Coastguard Worker
9107*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9108*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector double
vec_doublee(__vector float __a)9109*bed243d3SAndroid Build Coastguard Worker vec_doublee(__vector float __a) {
9110*bed243d3SAndroid Build Coastguard Worker typedef float __v2f32 __attribute__((__vector_size__(8)));
9111*bed243d3SAndroid Build Coastguard Worker __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
9112*bed243d3SAndroid Build Coastguard Worker return __builtin_convertvector(__pack, __vector double);
9113*bed243d3SAndroid Build Coastguard Worker }
9114*bed243d3SAndroid Build Coastguard Worker #endif
9115*bed243d3SAndroid Build Coastguard Worker
9116*bed243d3SAndroid Build Coastguard Worker /*-- vec_floate -------------------------------------------------------------*/
9117*bed243d3SAndroid Build Coastguard Worker
9118*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9119*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_ai __vector float
vec_floate(__vector double __a)9120*bed243d3SAndroid Build Coastguard Worker vec_floate(__vector double __a) {
9121*bed243d3SAndroid Build Coastguard Worker typedef float __v2f32 __attribute__((__vector_size__(8)));
9122*bed243d3SAndroid Build Coastguard Worker __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
9123*bed243d3SAndroid Build Coastguard Worker return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
9124*bed243d3SAndroid Build Coastguard Worker }
9125*bed243d3SAndroid Build Coastguard Worker #endif
9126*bed243d3SAndroid Build Coastguard Worker
9127*bed243d3SAndroid Build Coastguard Worker /*-- vec_double -------------------------------------------------------------*/
9128*bed243d3SAndroid Build Coastguard Worker
9129*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_double(__vector signed long long __a)9130*bed243d3SAndroid Build Coastguard Worker vec_double(__vector signed long long __a) {
9131*bed243d3SAndroid Build Coastguard Worker return __builtin_convertvector(__a, __vector double);
9132*bed243d3SAndroid Build Coastguard Worker }
9133*bed243d3SAndroid Build Coastguard Worker
9134*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_double(__vector unsigned long long __a)9135*bed243d3SAndroid Build Coastguard Worker vec_double(__vector unsigned long long __a) {
9136*bed243d3SAndroid Build Coastguard Worker return __builtin_convertvector(__a, __vector double);
9137*bed243d3SAndroid Build Coastguard Worker }
9138*bed243d3SAndroid Build Coastguard Worker
9139*bed243d3SAndroid Build Coastguard Worker /*-- vec_float --------------------------------------------------------------*/
9140*bed243d3SAndroid Build Coastguard Worker
9141*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 13
9142*bed243d3SAndroid Build Coastguard Worker
9143*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_float(__vector signed int __a)9144*bed243d3SAndroid Build Coastguard Worker vec_float(__vector signed int __a) {
9145*bed243d3SAndroid Build Coastguard Worker return __builtin_convertvector(__a, __vector float);
9146*bed243d3SAndroid Build Coastguard Worker }
9147*bed243d3SAndroid Build Coastguard Worker
9148*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_float(__vector unsigned int __a)9149*bed243d3SAndroid Build Coastguard Worker vec_float(__vector unsigned int __a) {
9150*bed243d3SAndroid Build Coastguard Worker return __builtin_convertvector(__a, __vector float);
9151*bed243d3SAndroid Build Coastguard Worker }
9152*bed243d3SAndroid Build Coastguard Worker
9153*bed243d3SAndroid Build Coastguard Worker #endif
9154*bed243d3SAndroid Build Coastguard Worker
9155*bed243d3SAndroid Build Coastguard Worker /*-- vec_signed -------------------------------------------------------------*/
9156*bed243d3SAndroid Build Coastguard Worker
9157*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed long long
vec_signed(__vector double __a)9158*bed243d3SAndroid Build Coastguard Worker vec_signed(__vector double __a) {
9159*bed243d3SAndroid Build Coastguard Worker return __builtin_convertvector(__a, __vector signed long long);
9160*bed243d3SAndroid Build Coastguard Worker }
9161*bed243d3SAndroid Build Coastguard Worker
9162*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 13
9163*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_signed(__vector float __a)9164*bed243d3SAndroid Build Coastguard Worker vec_signed(__vector float __a) {
9165*bed243d3SAndroid Build Coastguard Worker return __builtin_convertvector(__a, __vector signed int);
9166*bed243d3SAndroid Build Coastguard Worker }
9167*bed243d3SAndroid Build Coastguard Worker #endif
9168*bed243d3SAndroid Build Coastguard Worker
9169*bed243d3SAndroid Build Coastguard Worker /*-- vec_unsigned -----------------------------------------------------------*/
9170*bed243d3SAndroid Build Coastguard Worker
9171*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned long long
vec_unsigned(__vector double __a)9172*bed243d3SAndroid Build Coastguard Worker vec_unsigned(__vector double __a) {
9173*bed243d3SAndroid Build Coastguard Worker return __builtin_convertvector(__a, __vector unsigned long long);
9174*bed243d3SAndroid Build Coastguard Worker }
9175*bed243d3SAndroid Build Coastguard Worker
9176*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 13
9177*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_unsigned(__vector float __a)9178*bed243d3SAndroid Build Coastguard Worker vec_unsigned(__vector float __a) {
9179*bed243d3SAndroid Build Coastguard Worker return __builtin_convertvector(__a, __vector unsigned int);
9180*bed243d3SAndroid Build Coastguard Worker }
9181*bed243d3SAndroid Build Coastguard Worker #endif
9182*bed243d3SAndroid Build Coastguard Worker
9183*bed243d3SAndroid Build Coastguard Worker /*-- vec_roundp -------------------------------------------------------------*/
9184*bed243d3SAndroid Build Coastguard Worker
9185*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9186*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_roundp(__vector float __a)9187*bed243d3SAndroid Build Coastguard Worker vec_roundp(__vector float __a) {
9188*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfisb(__a, 4, 6);
9189*bed243d3SAndroid Build Coastguard Worker }
9190*bed243d3SAndroid Build Coastguard Worker #endif
9191*bed243d3SAndroid Build Coastguard Worker
9192*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_roundp(__vector double __a)9193*bed243d3SAndroid Build Coastguard Worker vec_roundp(__vector double __a) {
9194*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 6);
9195*bed243d3SAndroid Build Coastguard Worker }
9196*bed243d3SAndroid Build Coastguard Worker
9197*bed243d3SAndroid Build Coastguard Worker /*-- vec_ceil ---------------------------------------------------------------*/
9198*bed243d3SAndroid Build Coastguard Worker
9199*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9200*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_ceil(__vector float __a)9201*bed243d3SAndroid Build Coastguard Worker vec_ceil(__vector float __a) {
9202*bed243d3SAndroid Build Coastguard Worker // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9203*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfisb(__a, 4, 6);
9204*bed243d3SAndroid Build Coastguard Worker }
9205*bed243d3SAndroid Build Coastguard Worker #endif
9206*bed243d3SAndroid Build Coastguard Worker
9207*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_ceil(__vector double __a)9208*bed243d3SAndroid Build Coastguard Worker vec_ceil(__vector double __a) {
9209*bed243d3SAndroid Build Coastguard Worker // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9210*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 6);
9211*bed243d3SAndroid Build Coastguard Worker }
9212*bed243d3SAndroid Build Coastguard Worker
9213*bed243d3SAndroid Build Coastguard Worker /*-- vec_roundm -------------------------------------------------------------*/
9214*bed243d3SAndroid Build Coastguard Worker
9215*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9216*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_roundm(__vector float __a)9217*bed243d3SAndroid Build Coastguard Worker vec_roundm(__vector float __a) {
9218*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfisb(__a, 4, 7);
9219*bed243d3SAndroid Build Coastguard Worker }
9220*bed243d3SAndroid Build Coastguard Worker #endif
9221*bed243d3SAndroid Build Coastguard Worker
9222*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_roundm(__vector double __a)9223*bed243d3SAndroid Build Coastguard Worker vec_roundm(__vector double __a) {
9224*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 7);
9225*bed243d3SAndroid Build Coastguard Worker }
9226*bed243d3SAndroid Build Coastguard Worker
9227*bed243d3SAndroid Build Coastguard Worker /*-- vec_floor --------------------------------------------------------------*/
9228*bed243d3SAndroid Build Coastguard Worker
9229*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9230*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_floor(__vector float __a)9231*bed243d3SAndroid Build Coastguard Worker vec_floor(__vector float __a) {
9232*bed243d3SAndroid Build Coastguard Worker // On this platform, vec_floor never triggers the IEEE-inexact exception.
9233*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfisb(__a, 4, 7);
9234*bed243d3SAndroid Build Coastguard Worker }
9235*bed243d3SAndroid Build Coastguard Worker #endif
9236*bed243d3SAndroid Build Coastguard Worker
9237*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_floor(__vector double __a)9238*bed243d3SAndroid Build Coastguard Worker vec_floor(__vector double __a) {
9239*bed243d3SAndroid Build Coastguard Worker // On this platform, vec_floor never triggers the IEEE-inexact exception.
9240*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 7);
9241*bed243d3SAndroid Build Coastguard Worker }
9242*bed243d3SAndroid Build Coastguard Worker
9243*bed243d3SAndroid Build Coastguard Worker /*-- vec_roundz -------------------------------------------------------------*/
9244*bed243d3SAndroid Build Coastguard Worker
9245*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9246*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_roundz(__vector float __a)9247*bed243d3SAndroid Build Coastguard Worker vec_roundz(__vector float __a) {
9248*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfisb(__a, 4, 5);
9249*bed243d3SAndroid Build Coastguard Worker }
9250*bed243d3SAndroid Build Coastguard Worker #endif
9251*bed243d3SAndroid Build Coastguard Worker
9252*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_roundz(__vector double __a)9253*bed243d3SAndroid Build Coastguard Worker vec_roundz(__vector double __a) {
9254*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 5);
9255*bed243d3SAndroid Build Coastguard Worker }
9256*bed243d3SAndroid Build Coastguard Worker
9257*bed243d3SAndroid Build Coastguard Worker /*-- vec_trunc --------------------------------------------------------------*/
9258*bed243d3SAndroid Build Coastguard Worker
9259*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9260*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_trunc(__vector float __a)9261*bed243d3SAndroid Build Coastguard Worker vec_trunc(__vector float __a) {
9262*bed243d3SAndroid Build Coastguard Worker // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9263*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfisb(__a, 4, 5);
9264*bed243d3SAndroid Build Coastguard Worker }
9265*bed243d3SAndroid Build Coastguard Worker #endif
9266*bed243d3SAndroid Build Coastguard Worker
9267*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_trunc(__vector double __a)9268*bed243d3SAndroid Build Coastguard Worker vec_trunc(__vector double __a) {
9269*bed243d3SAndroid Build Coastguard Worker // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9270*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 5);
9271*bed243d3SAndroid Build Coastguard Worker }
9272*bed243d3SAndroid Build Coastguard Worker
9273*bed243d3SAndroid Build Coastguard Worker /*-- vec_roundc -------------------------------------------------------------*/
9274*bed243d3SAndroid Build Coastguard Worker
9275*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9276*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_roundc(__vector float __a)9277*bed243d3SAndroid Build Coastguard Worker vec_roundc(__vector float __a) {
9278*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfisb(__a, 4, 0);
9279*bed243d3SAndroid Build Coastguard Worker }
9280*bed243d3SAndroid Build Coastguard Worker #endif
9281*bed243d3SAndroid Build Coastguard Worker
9282*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_roundc(__vector double __a)9283*bed243d3SAndroid Build Coastguard Worker vec_roundc(__vector double __a) {
9284*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 0);
9285*bed243d3SAndroid Build Coastguard Worker }
9286*bed243d3SAndroid Build Coastguard Worker
9287*bed243d3SAndroid Build Coastguard Worker /*-- vec_rint ---------------------------------------------------------------*/
9288*bed243d3SAndroid Build Coastguard Worker
9289*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9290*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_rint(__vector float __a)9291*bed243d3SAndroid Build Coastguard Worker vec_rint(__vector float __a) {
9292*bed243d3SAndroid Build Coastguard Worker // vec_rint may trigger the IEEE-inexact exception.
9293*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfisb(__a, 0, 0);
9294*bed243d3SAndroid Build Coastguard Worker }
9295*bed243d3SAndroid Build Coastguard Worker #endif
9296*bed243d3SAndroid Build Coastguard Worker
9297*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_rint(__vector double __a)9298*bed243d3SAndroid Build Coastguard Worker vec_rint(__vector double __a) {
9299*bed243d3SAndroid Build Coastguard Worker // vec_rint may trigger the IEEE-inexact exception.
9300*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 0, 0);
9301*bed243d3SAndroid Build Coastguard Worker }
9302*bed243d3SAndroid Build Coastguard Worker
9303*bed243d3SAndroid Build Coastguard Worker /*-- vec_round --------------------------------------------------------------*/
9304*bed243d3SAndroid Build Coastguard Worker
9305*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9306*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector float
vec_round(__vector float __a)9307*bed243d3SAndroid Build Coastguard Worker vec_round(__vector float __a) {
9308*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfisb(__a, 4, 4);
9309*bed243d3SAndroid Build Coastguard Worker }
9310*bed243d3SAndroid Build Coastguard Worker #endif
9311*bed243d3SAndroid Build Coastguard Worker
9312*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector double
vec_round(__vector double __a)9313*bed243d3SAndroid Build Coastguard Worker vec_round(__vector double __a) {
9314*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfidb(__a, 4, 4);
9315*bed243d3SAndroid Build Coastguard Worker }
9316*bed243d3SAndroid Build Coastguard Worker
9317*bed243d3SAndroid Build Coastguard Worker /*-- vec_fp_test_data_class -------------------------------------------------*/
9318*bed243d3SAndroid Build Coastguard Worker
9319*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 12
9320*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector __bool int
9321*bed243d3SAndroid Build Coastguard Worker vec_fp_test_data_class(__vector float __a, int __b, int *__c)
9322*bed243d3SAndroid Build Coastguard Worker __constant_range(__b, 0, 4095);
9323*bed243d3SAndroid Build Coastguard Worker
9324*bed243d3SAndroid Build Coastguard Worker extern __ATTRS_o __vector __bool long long
9325*bed243d3SAndroid Build Coastguard Worker vec_fp_test_data_class(__vector double __a, int __b, int *__c)
9326*bed243d3SAndroid Build Coastguard Worker __constant_range(__b, 0, 4095);
9327*bed243d3SAndroid Build Coastguard Worker
9328*bed243d3SAndroid Build Coastguard Worker #define vec_fp_test_data_class(X, Y, Z) \
9329*bed243d3SAndroid Build Coastguard Worker ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
9330*bed243d3SAndroid Build Coastguard Worker __extension__ ({ \
9331*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __res; \
9332*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __x = (__vector unsigned char)(X); \
9333*bed243d3SAndroid Build Coastguard Worker int *__z = (Z); \
9334*bed243d3SAndroid Build Coastguard Worker switch (sizeof ((X)[0])) { \
9335*bed243d3SAndroid Build Coastguard Worker case 4: __res = (__vector unsigned char) \
9336*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vftcisb((__vector float)__x, (Y), __z); \
9337*bed243d3SAndroid Build Coastguard Worker break; \
9338*bed243d3SAndroid Build Coastguard Worker default: __res = (__vector unsigned char) \
9339*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vftcidb((__vector double)__x, (Y), __z); \
9340*bed243d3SAndroid Build Coastguard Worker break; \
9341*bed243d3SAndroid Build Coastguard Worker } __res; }))
9342*bed243d3SAndroid Build Coastguard Worker #else
9343*bed243d3SAndroid Build Coastguard Worker #define vec_fp_test_data_class(X, Y, Z) \
9344*bed243d3SAndroid Build Coastguard Worker ((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
9345*bed243d3SAndroid Build Coastguard Worker #endif
9346*bed243d3SAndroid Build Coastguard Worker
9347*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_ZERO_P (1 << 11)
9348*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_ZERO_N (1 << 10)
9349*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
9350*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
9351*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
9352*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
9353*bed243d3SAndroid Build Coastguard Worker __VEC_CLASS_FP_NORMAL_N)
9354*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
9355*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
9356*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
9357*bed243d3SAndroid Build Coastguard Worker __VEC_CLASS_FP_SUBNORMAL_N)
9358*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
9359*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
9360*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
9361*bed243d3SAndroid Build Coastguard Worker __VEC_CLASS_FP_INFINITY_N)
9362*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_QNAN_P (1 << 3)
9363*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_QNAN_N (1 << 2)
9364*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
9365*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_SNAN_P (1 << 1)
9366*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_SNAN_N (1 << 0)
9367*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
9368*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
9369*bed243d3SAndroid Build Coastguard Worker #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
9370*bed243d3SAndroid Build Coastguard Worker __VEC_CLASS_FP_SUBNORMAL | \
9371*bed243d3SAndroid Build Coastguard Worker __VEC_CLASS_FP_ZERO | \
9372*bed243d3SAndroid Build Coastguard Worker __VEC_CLASS_FP_INFINITY)
9373*bed243d3SAndroid Build Coastguard Worker
9374*bed243d3SAndroid Build Coastguard Worker /*-- vec_extend_to_fp32_hi --------------------------------------------------*/
9375*bed243d3SAndroid Build Coastguard Worker
9376*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 14
9377*bed243d3SAndroid Build Coastguard Worker #define vec_extend_to_fp32_hi(X, W) \
9378*bed243d3SAndroid Build Coastguard Worker ((__vector float)__builtin_s390_vclfnhs((X), (W)));
9379*bed243d3SAndroid Build Coastguard Worker #endif
9380*bed243d3SAndroid Build Coastguard Worker
9381*bed243d3SAndroid Build Coastguard Worker /*-- vec_extend_to_fp32_hi --------------------------------------------------*/
9382*bed243d3SAndroid Build Coastguard Worker
9383*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 14
9384*bed243d3SAndroid Build Coastguard Worker #define vec_extend_to_fp32_lo(X, W) \
9385*bed243d3SAndroid Build Coastguard Worker ((__vector float)__builtin_s390_vclfnls((X), (W)));
9386*bed243d3SAndroid Build Coastguard Worker #endif
9387*bed243d3SAndroid Build Coastguard Worker
9388*bed243d3SAndroid Build Coastguard Worker /*-- vec_round_from_fp32 ----------------------------------------------------*/
9389*bed243d3SAndroid Build Coastguard Worker
9390*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 14
9391*bed243d3SAndroid Build Coastguard Worker #define vec_round_from_fp32(X, Y, W) \
9392*bed243d3SAndroid Build Coastguard Worker ((__vector unsigned short)__builtin_s390_vcrnfs((X), (Y), (W)));
9393*bed243d3SAndroid Build Coastguard Worker #endif
9394*bed243d3SAndroid Build Coastguard Worker
9395*bed243d3SAndroid Build Coastguard Worker /*-- vec_convert_to_fp16 ----------------------------------------------------*/
9396*bed243d3SAndroid Build Coastguard Worker
9397*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 14
9398*bed243d3SAndroid Build Coastguard Worker #define vec_convert_to_fp16(X, W) \
9399*bed243d3SAndroid Build Coastguard Worker ((__vector unsigned short)__builtin_s390_vcfn((X), (W)));
9400*bed243d3SAndroid Build Coastguard Worker #endif
9401*bed243d3SAndroid Build Coastguard Worker
9402*bed243d3SAndroid Build Coastguard Worker /*-- vec_convert_from_fp16 --------------------------------------------------*/
9403*bed243d3SAndroid Build Coastguard Worker
9404*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 14
9405*bed243d3SAndroid Build Coastguard Worker #define vec_convert_from_fp16(X, W) \
9406*bed243d3SAndroid Build Coastguard Worker ((__vector unsigned short)__builtin_s390_vcnf((X), (W)));
9407*bed243d3SAndroid Build Coastguard Worker #endif
9408*bed243d3SAndroid Build Coastguard Worker
9409*bed243d3SAndroid Build Coastguard Worker /*-- vec_cp_until_zero ------------------------------------------------------*/
9410*bed243d3SAndroid Build Coastguard Worker
9411*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero(__vector signed char __a)9412*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero(__vector signed char __a) {
9413*bed243d3SAndroid Build Coastguard Worker return ((__vector signed char)
9414*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vistrb((__vector unsigned char)__a));
9415*bed243d3SAndroid Build Coastguard Worker }
9416*bed243d3SAndroid Build Coastguard Worker
9417*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero(__vector __bool char __a)9418*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero(__vector __bool char __a) {
9419*bed243d3SAndroid Build Coastguard Worker return ((__vector __bool char)
9420*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vistrb((__vector unsigned char)__a));
9421*bed243d3SAndroid Build Coastguard Worker }
9422*bed243d3SAndroid Build Coastguard Worker
9423*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero(__vector unsigned char __a)9424*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero(__vector unsigned char __a) {
9425*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vistrb(__a);
9426*bed243d3SAndroid Build Coastguard Worker }
9427*bed243d3SAndroid Build Coastguard Worker
9428*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero(__vector signed short __a)9429*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero(__vector signed short __a) {
9430*bed243d3SAndroid Build Coastguard Worker return ((__vector signed short)
9431*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vistrh((__vector unsigned short)__a));
9432*bed243d3SAndroid Build Coastguard Worker }
9433*bed243d3SAndroid Build Coastguard Worker
9434*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero(__vector __bool short __a)9435*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero(__vector __bool short __a) {
9436*bed243d3SAndroid Build Coastguard Worker return ((__vector __bool short)
9437*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vistrh((__vector unsigned short)__a));
9438*bed243d3SAndroid Build Coastguard Worker }
9439*bed243d3SAndroid Build Coastguard Worker
9440*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero(__vector unsigned short __a)9441*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero(__vector unsigned short __a) {
9442*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vistrh(__a);
9443*bed243d3SAndroid Build Coastguard Worker }
9444*bed243d3SAndroid Build Coastguard Worker
9445*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero(__vector signed int __a)9446*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero(__vector signed int __a) {
9447*bed243d3SAndroid Build Coastguard Worker return ((__vector signed int)
9448*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vistrf((__vector unsigned int)__a));
9449*bed243d3SAndroid Build Coastguard Worker }
9450*bed243d3SAndroid Build Coastguard Worker
9451*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero(__vector __bool int __a)9452*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero(__vector __bool int __a) {
9453*bed243d3SAndroid Build Coastguard Worker return ((__vector __bool int)
9454*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vistrf((__vector unsigned int)__a));
9455*bed243d3SAndroid Build Coastguard Worker }
9456*bed243d3SAndroid Build Coastguard Worker
9457*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero(__vector unsigned int __a)9458*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero(__vector unsigned int __a) {
9459*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vistrf(__a);
9460*bed243d3SAndroid Build Coastguard Worker }
9461*bed243d3SAndroid Build Coastguard Worker
9462*bed243d3SAndroid Build Coastguard Worker /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
9463*bed243d3SAndroid Build Coastguard Worker
9464*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero_cc(__vector signed char __a,int * __cc)9465*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero_cc(__vector signed char __a, int *__cc) {
9466*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
9467*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
9468*bed243d3SAndroid Build Coastguard Worker }
9469*bed243d3SAndroid Build Coastguard Worker
9470*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero_cc(__vector __bool char __a,int * __cc)9471*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) {
9472*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)
9473*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
9474*bed243d3SAndroid Build Coastguard Worker }
9475*bed243d3SAndroid Build Coastguard Worker
9476*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero_cc(__vector unsigned char __a,int * __cc)9477*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) {
9478*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vistrbs(__a, __cc);
9479*bed243d3SAndroid Build Coastguard Worker }
9480*bed243d3SAndroid Build Coastguard Worker
9481*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero_cc(__vector signed short __a,int * __cc)9482*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero_cc(__vector signed short __a, int *__cc) {
9483*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
9484*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
9485*bed243d3SAndroid Build Coastguard Worker }
9486*bed243d3SAndroid Build Coastguard Worker
9487*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero_cc(__vector __bool short __a,int * __cc)9488*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) {
9489*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)
9490*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
9491*bed243d3SAndroid Build Coastguard Worker }
9492*bed243d3SAndroid Build Coastguard Worker
9493*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero_cc(__vector unsigned short __a,int * __cc)9494*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) {
9495*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vistrhs(__a, __cc);
9496*bed243d3SAndroid Build Coastguard Worker }
9497*bed243d3SAndroid Build Coastguard Worker
9498*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero_cc(__vector signed int __a,int * __cc)9499*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero_cc(__vector signed int __a, int *__cc) {
9500*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
9501*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
9502*bed243d3SAndroid Build Coastguard Worker }
9503*bed243d3SAndroid Build Coastguard Worker
9504*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero_cc(__vector __bool int __a,int * __cc)9505*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) {
9506*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)
9507*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
9508*bed243d3SAndroid Build Coastguard Worker }
9509*bed243d3SAndroid Build Coastguard Worker
9510*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero_cc(__vector unsigned int __a,int * __cc)9511*bed243d3SAndroid Build Coastguard Worker vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) {
9512*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vistrfs(__a, __cc);
9513*bed243d3SAndroid Build Coastguard Worker }
9514*bed243d3SAndroid Build Coastguard Worker
9515*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpeq_idx ----------------------------------------------------------*/
9516*bed243d3SAndroid Build Coastguard Worker
9517*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx(__vector signed char __a,__vector signed char __b)9518*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) {
9519*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
9520*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeeb((__vector unsigned char)__a,
9521*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
9522*bed243d3SAndroid Build Coastguard Worker }
9523*bed243d3SAndroid Build Coastguard Worker
9524*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector __bool char __a,__vector __bool char __b)9525*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) {
9526*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeeb((__vector unsigned char)__a,
9527*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
9528*bed243d3SAndroid Build Coastguard Worker }
9529*bed243d3SAndroid Build Coastguard Worker
9530*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector unsigned char __a,__vector unsigned char __b)9531*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) {
9532*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeeb(__a, __b);
9533*bed243d3SAndroid Build Coastguard Worker }
9534*bed243d3SAndroid Build Coastguard Worker
9535*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx(__vector signed short __a,__vector signed short __b)9536*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) {
9537*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
9538*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeeh((__vector unsigned short)__a,
9539*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b);
9540*bed243d3SAndroid Build Coastguard Worker }
9541*bed243d3SAndroid Build Coastguard Worker
9542*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector __bool short __a,__vector __bool short __b)9543*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) {
9544*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeeh((__vector unsigned short)__a,
9545*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b);
9546*bed243d3SAndroid Build Coastguard Worker }
9547*bed243d3SAndroid Build Coastguard Worker
9548*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector unsigned short __a,__vector unsigned short __b)9549*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) {
9550*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeeh(__a, __b);
9551*bed243d3SAndroid Build Coastguard Worker }
9552*bed243d3SAndroid Build Coastguard Worker
9553*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx(__vector signed int __a,__vector signed int __b)9554*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) {
9555*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
9556*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeef((__vector unsigned int)__a,
9557*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b);
9558*bed243d3SAndroid Build Coastguard Worker }
9559*bed243d3SAndroid Build Coastguard Worker
9560*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector __bool int __a,__vector __bool int __b)9561*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) {
9562*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeef((__vector unsigned int)__a,
9563*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b);
9564*bed243d3SAndroid Build Coastguard Worker }
9565*bed243d3SAndroid Build Coastguard Worker
9566*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector unsigned int __a,__vector unsigned int __b)9567*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) {
9568*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeef(__a, __b);
9569*bed243d3SAndroid Build Coastguard Worker }
9570*bed243d3SAndroid Build Coastguard Worker
9571*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
9572*bed243d3SAndroid Build Coastguard Worker
9573*bed243d3SAndroid 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)9574*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
9575*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
9576*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeebs((__vector unsigned char)__a,
9577*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, __cc);
9578*bed243d3SAndroid Build Coastguard Worker }
9579*bed243d3SAndroid Build Coastguard Worker
9580*bed243d3SAndroid 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)9581*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
9582*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeebs((__vector unsigned char)__a,
9583*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, __cc);
9584*bed243d3SAndroid Build Coastguard Worker }
9585*bed243d3SAndroid Build Coastguard Worker
9586*bed243d3SAndroid 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)9587*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9588*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9589*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeebs(__a, __b, __cc);
9590*bed243d3SAndroid Build Coastguard Worker }
9591*bed243d3SAndroid Build Coastguard Worker
9592*bed243d3SAndroid 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)9593*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b,
9594*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9595*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
9596*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeehs((__vector unsigned short)__a,
9597*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, __cc);
9598*bed243d3SAndroid Build Coastguard Worker }
9599*bed243d3SAndroid Build Coastguard Worker
9600*bed243d3SAndroid 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)9601*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) {
9602*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeehs((__vector unsigned short)__a,
9603*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, __cc);
9604*bed243d3SAndroid Build Coastguard Worker }
9605*bed243d3SAndroid Build Coastguard Worker
9606*bed243d3SAndroid 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)9607*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9608*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9609*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeehs(__a, __b, __cc);
9610*bed243d3SAndroid Build Coastguard Worker }
9611*bed243d3SAndroid Build Coastguard Worker
9612*bed243d3SAndroid 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)9613*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
9614*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
9615*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeefs((__vector unsigned int)__a,
9616*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, __cc);
9617*bed243d3SAndroid Build Coastguard Worker }
9618*bed243d3SAndroid Build Coastguard Worker
9619*bed243d3SAndroid 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)9620*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
9621*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeefs((__vector unsigned int)__a,
9622*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, __cc);
9623*bed243d3SAndroid Build Coastguard Worker }
9624*bed243d3SAndroid Build Coastguard Worker
9625*bed243d3SAndroid 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)9626*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9627*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9628*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeefs(__a, __b, __cc);
9629*bed243d3SAndroid Build Coastguard Worker }
9630*bed243d3SAndroid Build Coastguard Worker
9631*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
9632*bed243d3SAndroid Build Coastguard Worker
9633*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx(__vector signed char __a,__vector signed char __b)9634*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) {
9635*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
9636*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeezb((__vector unsigned char)__a,
9637*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
9638*bed243d3SAndroid Build Coastguard Worker }
9639*bed243d3SAndroid Build Coastguard Worker
9640*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector __bool char __a,__vector __bool char __b)9641*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
9642*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeezb((__vector unsigned char)__a,
9643*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
9644*bed243d3SAndroid Build Coastguard Worker }
9645*bed243d3SAndroid Build Coastguard Worker
9646*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)9647*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
9648*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeezb(__a, __b);
9649*bed243d3SAndroid Build Coastguard Worker }
9650*bed243d3SAndroid Build Coastguard Worker
9651*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx(__vector signed short __a,__vector signed short __b)9652*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) {
9653*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
9654*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeezh((__vector unsigned short)__a,
9655*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b);
9656*bed243d3SAndroid Build Coastguard Worker }
9657*bed243d3SAndroid Build Coastguard Worker
9658*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector __bool short __a,__vector __bool short __b)9659*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
9660*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeezh((__vector unsigned short)__a,
9661*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b);
9662*bed243d3SAndroid Build Coastguard Worker }
9663*bed243d3SAndroid Build Coastguard Worker
9664*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)9665*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
9666*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeezh(__a, __b);
9667*bed243d3SAndroid Build Coastguard Worker }
9668*bed243d3SAndroid Build Coastguard Worker
9669*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx(__vector signed int __a,__vector signed int __b)9670*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) {
9671*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
9672*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeezf((__vector unsigned int)__a,
9673*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b);
9674*bed243d3SAndroid Build Coastguard Worker }
9675*bed243d3SAndroid Build Coastguard Worker
9676*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector __bool int __a,__vector __bool int __b)9677*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
9678*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeezf((__vector unsigned int)__a,
9679*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b);
9680*bed243d3SAndroid Build Coastguard Worker }
9681*bed243d3SAndroid Build Coastguard Worker
9682*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)9683*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
9684*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeezf(__a, __b);
9685*bed243d3SAndroid Build Coastguard Worker }
9686*bed243d3SAndroid Build Coastguard Worker
9687*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
9688*bed243d3SAndroid Build Coastguard Worker
9689*bed243d3SAndroid 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)9690*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
9691*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9692*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
9693*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeezbs((__vector unsigned char)__a,
9694*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, __cc);
9695*bed243d3SAndroid Build Coastguard Worker }
9696*bed243d3SAndroid Build Coastguard Worker
9697*bed243d3SAndroid 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)9698*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
9699*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9700*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeezbs((__vector unsigned char)__a,
9701*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, __cc);
9702*bed243d3SAndroid Build Coastguard Worker }
9703*bed243d3SAndroid Build Coastguard Worker
9704*bed243d3SAndroid 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)9705*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9706*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9707*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeezbs(__a, __b, __cc);
9708*bed243d3SAndroid Build Coastguard Worker }
9709*bed243d3SAndroid Build Coastguard Worker
9710*bed243d3SAndroid 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)9711*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
9712*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9713*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
9714*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeezhs((__vector unsigned short)__a,
9715*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, __cc);
9716*bed243d3SAndroid Build Coastguard Worker }
9717*bed243d3SAndroid Build Coastguard Worker
9718*bed243d3SAndroid 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)9719*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
9720*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9721*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeezhs((__vector unsigned short)__a,
9722*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, __cc);
9723*bed243d3SAndroid Build Coastguard Worker }
9724*bed243d3SAndroid Build Coastguard Worker
9725*bed243d3SAndroid 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)9726*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9727*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9728*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeezhs(__a, __b, __cc);
9729*bed243d3SAndroid Build Coastguard Worker }
9730*bed243d3SAndroid Build Coastguard Worker
9731*bed243d3SAndroid 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)9732*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
9733*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9734*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
9735*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeezfs((__vector unsigned int)__a,
9736*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, __cc);
9737*bed243d3SAndroid Build Coastguard Worker }
9738*bed243d3SAndroid Build Coastguard Worker
9739*bed243d3SAndroid 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)9740*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
9741*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9742*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeezfs((__vector unsigned int)__a,
9743*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, __cc);
9744*bed243d3SAndroid Build Coastguard Worker }
9745*bed243d3SAndroid Build Coastguard Worker
9746*bed243d3SAndroid 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)9747*bed243d3SAndroid Build Coastguard Worker vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9748*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9749*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeezfs(__a, __b, __cc);
9750*bed243d3SAndroid Build Coastguard Worker }
9751*bed243d3SAndroid Build Coastguard Worker
9752*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpne_idx ----------------------------------------------------------*/
9753*bed243d3SAndroid Build Coastguard Worker
9754*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx(__vector signed char __a,__vector signed char __b)9755*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx(__vector signed char __a, __vector signed char __b) {
9756*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
9757*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeneb((__vector unsigned char)__a,
9758*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
9759*bed243d3SAndroid Build Coastguard Worker }
9760*bed243d3SAndroid Build Coastguard Worker
9761*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector __bool char __a,__vector __bool char __b)9762*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) {
9763*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeneb((__vector unsigned char)__a,
9764*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
9765*bed243d3SAndroid Build Coastguard Worker }
9766*bed243d3SAndroid Build Coastguard Worker
9767*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector unsigned char __a,__vector unsigned char __b)9768*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) {
9769*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeneb(__a, __b);
9770*bed243d3SAndroid Build Coastguard Worker }
9771*bed243d3SAndroid Build Coastguard Worker
9772*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx(__vector signed short __a,__vector signed short __b)9773*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx(__vector signed short __a, __vector signed short __b) {
9774*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
9775*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfeneh((__vector unsigned short)__a,
9776*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b);
9777*bed243d3SAndroid Build Coastguard Worker }
9778*bed243d3SAndroid Build Coastguard Worker
9779*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector __bool short __a,__vector __bool short __b)9780*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) {
9781*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeneh((__vector unsigned short)__a,
9782*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b);
9783*bed243d3SAndroid Build Coastguard Worker }
9784*bed243d3SAndroid Build Coastguard Worker
9785*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector unsigned short __a,__vector unsigned short __b)9786*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) {
9787*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfeneh(__a, __b);
9788*bed243d3SAndroid Build Coastguard Worker }
9789*bed243d3SAndroid Build Coastguard Worker
9790*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx(__vector signed int __a,__vector signed int __b)9791*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx(__vector signed int __a, __vector signed int __b) {
9792*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
9793*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfenef((__vector unsigned int)__a,
9794*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b);
9795*bed243d3SAndroid Build Coastguard Worker }
9796*bed243d3SAndroid Build Coastguard Worker
9797*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector __bool int __a,__vector __bool int __b)9798*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) {
9799*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenef((__vector unsigned int)__a,
9800*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b);
9801*bed243d3SAndroid Build Coastguard Worker }
9802*bed243d3SAndroid Build Coastguard Worker
9803*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector unsigned int __a,__vector unsigned int __b)9804*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) {
9805*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenef(__a, __b);
9806*bed243d3SAndroid Build Coastguard Worker }
9807*bed243d3SAndroid Build Coastguard Worker
9808*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
9809*bed243d3SAndroid Build Coastguard Worker
9810*bed243d3SAndroid 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)9811*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
9812*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
9813*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfenebs((__vector unsigned char)__a,
9814*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, __cc);
9815*bed243d3SAndroid Build Coastguard Worker }
9816*bed243d3SAndroid Build Coastguard Worker
9817*bed243d3SAndroid 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)9818*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
9819*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenebs((__vector unsigned char)__a,
9820*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, __cc);
9821*bed243d3SAndroid Build Coastguard Worker }
9822*bed243d3SAndroid Build Coastguard Worker
9823*bed243d3SAndroid 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)9824*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9825*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9826*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenebs(__a, __b, __cc);
9827*bed243d3SAndroid Build Coastguard Worker }
9828*bed243d3SAndroid Build Coastguard Worker
9829*bed243d3SAndroid 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)9830*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b,
9831*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9832*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
9833*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfenehs((__vector unsigned short)__a,
9834*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, __cc);
9835*bed243d3SAndroid Build Coastguard Worker }
9836*bed243d3SAndroid Build Coastguard Worker
9837*bed243d3SAndroid 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)9838*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b,
9839*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9840*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenehs((__vector unsigned short)__a,
9841*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, __cc);
9842*bed243d3SAndroid Build Coastguard Worker }
9843*bed243d3SAndroid Build Coastguard Worker
9844*bed243d3SAndroid 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)9845*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9846*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9847*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenehs(__a, __b, __cc);
9848*bed243d3SAndroid Build Coastguard Worker }
9849*bed243d3SAndroid Build Coastguard Worker
9850*bed243d3SAndroid 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)9851*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
9852*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
9853*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfenefs((__vector unsigned int)__a,
9854*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, __cc);
9855*bed243d3SAndroid Build Coastguard Worker }
9856*bed243d3SAndroid Build Coastguard Worker
9857*bed243d3SAndroid 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)9858*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
9859*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenefs((__vector unsigned int)__a,
9860*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, __cc);
9861*bed243d3SAndroid Build Coastguard Worker }
9862*bed243d3SAndroid Build Coastguard Worker
9863*bed243d3SAndroid 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)9864*bed243d3SAndroid Build Coastguard Worker vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9865*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9866*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenefs(__a, __b, __cc);
9867*bed243d3SAndroid Build Coastguard Worker }
9868*bed243d3SAndroid Build Coastguard Worker
9869*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
9870*bed243d3SAndroid Build Coastguard Worker
9871*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx(__vector signed char __a,__vector signed char __b)9872*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) {
9873*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
9874*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfenezb((__vector unsigned char)__a,
9875*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
9876*bed243d3SAndroid Build Coastguard Worker }
9877*bed243d3SAndroid Build Coastguard Worker
9878*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector __bool char __a,__vector __bool char __b)9879*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
9880*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenezb((__vector unsigned char)__a,
9881*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b);
9882*bed243d3SAndroid Build Coastguard Worker }
9883*bed243d3SAndroid Build Coastguard Worker
9884*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)9885*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
9886*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenezb(__a, __b);
9887*bed243d3SAndroid Build Coastguard Worker }
9888*bed243d3SAndroid Build Coastguard Worker
9889*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx(__vector signed short __a,__vector signed short __b)9890*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) {
9891*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
9892*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfenezh((__vector unsigned short)__a,
9893*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b);
9894*bed243d3SAndroid Build Coastguard Worker }
9895*bed243d3SAndroid Build Coastguard Worker
9896*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector __bool short __a,__vector __bool short __b)9897*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
9898*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenezh((__vector unsigned short)__a,
9899*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b);
9900*bed243d3SAndroid Build Coastguard Worker }
9901*bed243d3SAndroid Build Coastguard Worker
9902*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)9903*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
9904*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenezh(__a, __b);
9905*bed243d3SAndroid Build Coastguard Worker }
9906*bed243d3SAndroid Build Coastguard Worker
9907*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx(__vector signed int __a,__vector signed int __b)9908*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) {
9909*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
9910*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfenezf((__vector unsigned int)__a,
9911*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b);
9912*bed243d3SAndroid Build Coastguard Worker }
9913*bed243d3SAndroid Build Coastguard Worker
9914*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector __bool int __a,__vector __bool int __b)9915*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
9916*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenezf((__vector unsigned int)__a,
9917*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b);
9918*bed243d3SAndroid Build Coastguard Worker }
9919*bed243d3SAndroid Build Coastguard Worker
9920*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)9921*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
9922*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenezf(__a, __b);
9923*bed243d3SAndroid Build Coastguard Worker }
9924*bed243d3SAndroid Build Coastguard Worker
9925*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
9926*bed243d3SAndroid Build Coastguard Worker
9927*bed243d3SAndroid 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)9928*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
9929*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9930*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
9931*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfenezbs((__vector unsigned char)__a,
9932*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, __cc);
9933*bed243d3SAndroid Build Coastguard Worker }
9934*bed243d3SAndroid Build Coastguard Worker
9935*bed243d3SAndroid 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)9936*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
9937*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9938*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenezbs((__vector unsigned char)__a,
9939*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, __cc);
9940*bed243d3SAndroid Build Coastguard Worker }
9941*bed243d3SAndroid Build Coastguard Worker
9942*bed243d3SAndroid 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)9943*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9944*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9945*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenezbs(__a, __b, __cc);
9946*bed243d3SAndroid Build Coastguard Worker }
9947*bed243d3SAndroid Build Coastguard Worker
9948*bed243d3SAndroid 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)9949*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
9950*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9951*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
9952*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfenezhs((__vector unsigned short)__a,
9953*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, __cc);
9954*bed243d3SAndroid Build Coastguard Worker }
9955*bed243d3SAndroid Build Coastguard Worker
9956*bed243d3SAndroid 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)9957*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
9958*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9959*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenezhs((__vector unsigned short)__a,
9960*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, __cc);
9961*bed243d3SAndroid Build Coastguard Worker }
9962*bed243d3SAndroid Build Coastguard Worker
9963*bed243d3SAndroid 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)9964*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9965*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9966*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenezhs(__a, __b, __cc);
9967*bed243d3SAndroid Build Coastguard Worker }
9968*bed243d3SAndroid Build Coastguard Worker
9969*bed243d3SAndroid 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)9970*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
9971*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9972*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
9973*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfenezfs((__vector unsigned int)__a,
9974*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, __cc);
9975*bed243d3SAndroid Build Coastguard Worker }
9976*bed243d3SAndroid Build Coastguard Worker
9977*bed243d3SAndroid 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)9978*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
9979*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9980*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenezfs((__vector unsigned int)__a,
9981*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, __cc);
9982*bed243d3SAndroid Build Coastguard Worker }
9983*bed243d3SAndroid Build Coastguard Worker
9984*bed243d3SAndroid 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)9985*bed243d3SAndroid Build Coastguard Worker vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9986*bed243d3SAndroid Build Coastguard Worker int *__cc) {
9987*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfenezfs(__a, __b, __cc);
9988*bed243d3SAndroid Build Coastguard Worker }
9989*bed243d3SAndroid Build Coastguard Worker
9990*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmprg --------------------------------------------------------------*/
9991*bed243d3SAndroid Build Coastguard Worker
9992*bed243d3SAndroid 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)9993*bed243d3SAndroid Build Coastguard Worker vec_cmprg(__vector unsigned char __a, __vector unsigned char __b,
9994*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
9995*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
9996*bed243d3SAndroid Build Coastguard Worker }
9997*bed243d3SAndroid Build Coastguard Worker
9998*bed243d3SAndroid 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)9999*bed243d3SAndroid Build Coastguard Worker vec_cmprg(__vector unsigned short __a, __vector unsigned short __b,
10000*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
10001*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
10002*bed243d3SAndroid Build Coastguard Worker }
10003*bed243d3SAndroid Build Coastguard Worker
10004*bed243d3SAndroid 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)10005*bed243d3SAndroid Build Coastguard Worker vec_cmprg(__vector unsigned int __a, __vector unsigned int __b,
10006*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
10007*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
10008*bed243d3SAndroid Build Coastguard Worker }
10009*bed243d3SAndroid Build Coastguard Worker
10010*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmprg_cc -----------------------------------------------------------*/
10011*bed243d3SAndroid Build Coastguard Worker
10012*bed243d3SAndroid 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)10013*bed243d3SAndroid Build Coastguard Worker vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b,
10014*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
10015*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
10016*bed243d3SAndroid Build Coastguard Worker }
10017*bed243d3SAndroid Build Coastguard Worker
10018*bed243d3SAndroid 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)10019*bed243d3SAndroid Build Coastguard Worker vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b,
10020*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c, int *__cc) {
10021*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
10022*bed243d3SAndroid Build Coastguard Worker }
10023*bed243d3SAndroid Build Coastguard Worker
10024*bed243d3SAndroid 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)10025*bed243d3SAndroid Build Coastguard Worker vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b,
10026*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c, int *__cc) {
10027*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
10028*bed243d3SAndroid Build Coastguard Worker }
10029*bed243d3SAndroid Build Coastguard Worker
10030*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmprg_idx ----------------------------------------------------------*/
10031*bed243d3SAndroid Build Coastguard Worker
10032*bed243d3SAndroid 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)10033*bed243d3SAndroid Build Coastguard Worker vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b,
10034*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
10035*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrcb(__a, __b, __c, 0);
10036*bed243d3SAndroid Build Coastguard Worker }
10037*bed243d3SAndroid Build Coastguard Worker
10038*bed243d3SAndroid 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)10039*bed243d3SAndroid Build Coastguard Worker vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b,
10040*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
10041*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrch(__a, __b, __c, 0);
10042*bed243d3SAndroid Build Coastguard Worker }
10043*bed243d3SAndroid Build Coastguard Worker
10044*bed243d3SAndroid 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)10045*bed243d3SAndroid Build Coastguard Worker vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b,
10046*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
10047*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrcf(__a, __b, __c, 0);
10048*bed243d3SAndroid Build Coastguard Worker }
10049*bed243d3SAndroid Build Coastguard Worker
10050*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
10051*bed243d3SAndroid Build Coastguard Worker
10052*bed243d3SAndroid 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)10053*bed243d3SAndroid Build Coastguard Worker vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
10054*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
10055*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
10056*bed243d3SAndroid Build Coastguard Worker }
10057*bed243d3SAndroid Build Coastguard Worker
10058*bed243d3SAndroid 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)10059*bed243d3SAndroid Build Coastguard Worker vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
10060*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c, int *__cc) {
10061*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
10062*bed243d3SAndroid Build Coastguard Worker }
10063*bed243d3SAndroid Build Coastguard Worker
10064*bed243d3SAndroid 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)10065*bed243d3SAndroid Build Coastguard Worker vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
10066*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c, int *__cc) {
10067*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
10068*bed243d3SAndroid Build Coastguard Worker }
10069*bed243d3SAndroid Build Coastguard Worker
10070*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
10071*bed243d3SAndroid Build Coastguard Worker
10072*bed243d3SAndroid 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)10073*bed243d3SAndroid Build Coastguard Worker vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
10074*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
10075*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrczb(__a, __b, __c, 0);
10076*bed243d3SAndroid Build Coastguard Worker }
10077*bed243d3SAndroid Build Coastguard Worker
10078*bed243d3SAndroid 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)10079*bed243d3SAndroid Build Coastguard Worker vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
10080*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
10081*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrczh(__a, __b, __c, 0);
10082*bed243d3SAndroid Build Coastguard Worker }
10083*bed243d3SAndroid Build Coastguard Worker
10084*bed243d3SAndroid 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)10085*bed243d3SAndroid Build Coastguard Worker vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
10086*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
10087*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrczf(__a, __b, __c, 0);
10088*bed243d3SAndroid Build Coastguard Worker }
10089*bed243d3SAndroid Build Coastguard Worker
10090*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
10091*bed243d3SAndroid Build Coastguard Worker
10092*bed243d3SAndroid 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)10093*bed243d3SAndroid Build Coastguard Worker vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
10094*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
10095*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
10096*bed243d3SAndroid Build Coastguard Worker }
10097*bed243d3SAndroid Build Coastguard Worker
10098*bed243d3SAndroid 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)10099*bed243d3SAndroid Build Coastguard Worker vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
10100*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c, int *__cc) {
10101*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
10102*bed243d3SAndroid Build Coastguard Worker }
10103*bed243d3SAndroid Build Coastguard Worker
10104*bed243d3SAndroid 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)10105*bed243d3SAndroid Build Coastguard Worker vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
10106*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c, int *__cc) {
10107*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
10108*bed243d3SAndroid Build Coastguard Worker }
10109*bed243d3SAndroid Build Coastguard Worker
10110*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpnrg -------------------------------------------------------------*/
10111*bed243d3SAndroid Build Coastguard Worker
10112*bed243d3SAndroid 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)10113*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b,
10114*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
10115*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
10116*bed243d3SAndroid Build Coastguard Worker }
10117*bed243d3SAndroid Build Coastguard Worker
10118*bed243d3SAndroid 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)10119*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b,
10120*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
10121*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
10122*bed243d3SAndroid Build Coastguard Worker }
10123*bed243d3SAndroid Build Coastguard Worker
10124*bed243d3SAndroid 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)10125*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b,
10126*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
10127*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
10128*bed243d3SAndroid Build Coastguard Worker }
10129*bed243d3SAndroid Build Coastguard Worker
10130*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
10131*bed243d3SAndroid Build Coastguard Worker
10132*bed243d3SAndroid 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)10133*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b,
10134*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
10135*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)
10136*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
10137*bed243d3SAndroid Build Coastguard Worker }
10138*bed243d3SAndroid Build Coastguard Worker
10139*bed243d3SAndroid 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)10140*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b,
10141*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c, int *__cc) {
10142*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)
10143*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
10144*bed243d3SAndroid Build Coastguard Worker }
10145*bed243d3SAndroid Build Coastguard Worker
10146*bed243d3SAndroid 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)10147*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b,
10148*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c, int *__cc) {
10149*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)
10150*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
10151*bed243d3SAndroid Build Coastguard Worker }
10152*bed243d3SAndroid Build Coastguard Worker
10153*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
10154*bed243d3SAndroid Build Coastguard Worker
10155*bed243d3SAndroid 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)10156*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b,
10157*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
10158*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrcb(__a, __b, __c, 8);
10159*bed243d3SAndroid Build Coastguard Worker }
10160*bed243d3SAndroid Build Coastguard Worker
10161*bed243d3SAndroid 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)10162*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b,
10163*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
10164*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrch(__a, __b, __c, 8);
10165*bed243d3SAndroid Build Coastguard Worker }
10166*bed243d3SAndroid Build Coastguard Worker
10167*bed243d3SAndroid 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)10168*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b,
10169*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
10170*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrcf(__a, __b, __c, 8);
10171*bed243d3SAndroid Build Coastguard Worker }
10172*bed243d3SAndroid Build Coastguard Worker
10173*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
10174*bed243d3SAndroid Build Coastguard Worker
10175*bed243d3SAndroid 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)10176*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
10177*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
10178*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
10179*bed243d3SAndroid Build Coastguard Worker }
10180*bed243d3SAndroid Build Coastguard Worker
10181*bed243d3SAndroid 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)10182*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
10183*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c, int *__cc) {
10184*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
10185*bed243d3SAndroid Build Coastguard Worker }
10186*bed243d3SAndroid Build Coastguard Worker
10187*bed243d3SAndroid 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)10188*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
10189*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c, int *__cc) {
10190*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
10191*bed243d3SAndroid Build Coastguard Worker }
10192*bed243d3SAndroid Build Coastguard Worker
10193*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
10194*bed243d3SAndroid Build Coastguard Worker
10195*bed243d3SAndroid 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)10196*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
10197*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c) {
10198*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrczb(__a, __b, __c, 8);
10199*bed243d3SAndroid Build Coastguard Worker }
10200*bed243d3SAndroid Build Coastguard Worker
10201*bed243d3SAndroid 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)10202*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
10203*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c) {
10204*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrczh(__a, __b, __c, 8);
10205*bed243d3SAndroid Build Coastguard Worker }
10206*bed243d3SAndroid Build Coastguard Worker
10207*bed243d3SAndroid 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)10208*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
10209*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c) {
10210*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrczf(__a, __b, __c, 8);
10211*bed243d3SAndroid Build Coastguard Worker }
10212*bed243d3SAndroid Build Coastguard Worker
10213*bed243d3SAndroid Build Coastguard Worker /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
10214*bed243d3SAndroid Build Coastguard Worker
10215*bed243d3SAndroid 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)10216*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,
10217*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __b,
10218*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
10219*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
10220*bed243d3SAndroid Build Coastguard Worker }
10221*bed243d3SAndroid Build Coastguard Worker
10222*bed243d3SAndroid 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)10223*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,
10224*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __b,
10225*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __c, int *__cc) {
10226*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
10227*bed243d3SAndroid Build Coastguard Worker }
10228*bed243d3SAndroid Build Coastguard Worker
10229*bed243d3SAndroid 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)10230*bed243d3SAndroid Build Coastguard Worker vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,
10231*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __b,
10232*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __c, int *__cc) {
10233*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
10234*bed243d3SAndroid Build Coastguard Worker }
10235*bed243d3SAndroid Build Coastguard Worker
10236*bed243d3SAndroid Build Coastguard Worker /*-- vec_find_any_eq --------------------------------------------------------*/
10237*bed243d3SAndroid Build Coastguard Worker
10238*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector signed char __a,__vector signed char __b)10239*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq(__vector signed char __a, __vector signed char __b) {
10240*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)
10241*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaeb((__vector unsigned char)__a,
10242*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 4);
10243*bed243d3SAndroid Build Coastguard Worker }
10244*bed243d3SAndroid Build Coastguard Worker
10245*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector __bool char __a,__vector __bool char __b)10246*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) {
10247*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)
10248*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaeb((__vector unsigned char)__a,
10249*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 4);
10250*bed243d3SAndroid Build Coastguard Worker }
10251*bed243d3SAndroid Build Coastguard Worker
10252*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector unsigned char __a,__vector unsigned char __b)10253*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
10254*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4);
10255*bed243d3SAndroid Build Coastguard Worker }
10256*bed243d3SAndroid Build Coastguard Worker
10257*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector signed short __a,__vector signed short __b)10258*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq(__vector signed short __a, __vector signed short __b) {
10259*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)
10260*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaeh((__vector unsigned short)__a,
10261*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 4);
10262*bed243d3SAndroid Build Coastguard Worker }
10263*bed243d3SAndroid Build Coastguard Worker
10264*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector __bool short __a,__vector __bool short __b)10265*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) {
10266*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)
10267*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaeh((__vector unsigned short)__a,
10268*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 4);
10269*bed243d3SAndroid Build Coastguard Worker }
10270*bed243d3SAndroid Build Coastguard Worker
10271*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector unsigned short __a,__vector unsigned short __b)10272*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
10273*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4);
10274*bed243d3SAndroid Build Coastguard Worker }
10275*bed243d3SAndroid Build Coastguard Worker
10276*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector signed int __a,__vector signed int __b)10277*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq(__vector signed int __a, __vector signed int __b) {
10278*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)
10279*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaef((__vector unsigned int)__a,
10280*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 4);
10281*bed243d3SAndroid Build Coastguard Worker }
10282*bed243d3SAndroid Build Coastguard Worker
10283*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector __bool int __a,__vector __bool int __b)10284*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) {
10285*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)
10286*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaef((__vector unsigned int)__a,
10287*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 4);
10288*bed243d3SAndroid Build Coastguard Worker }
10289*bed243d3SAndroid Build Coastguard Worker
10290*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector unsigned int __a,__vector unsigned int __b)10291*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
10292*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4);
10293*bed243d3SAndroid Build Coastguard Worker }
10294*bed243d3SAndroid Build Coastguard Worker
10295*bed243d3SAndroid Build Coastguard Worker /*-- vec_find_any_eq_cc -----------------------------------------------------*/
10296*bed243d3SAndroid Build Coastguard Worker
10297*bed243d3SAndroid 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)10298*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b,
10299*bed243d3SAndroid Build Coastguard Worker int *__cc) {
10300*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)
10301*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaebs((__vector unsigned char)__a,
10302*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 4, __cc);
10303*bed243d3SAndroid Build Coastguard Worker }
10304*bed243d3SAndroid Build Coastguard Worker
10305*bed243d3SAndroid 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)10306*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b,
10307*bed243d3SAndroid Build Coastguard Worker int *__cc) {
10308*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)
10309*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaebs((__vector unsigned char)__a,
10310*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 4, __cc);
10311*bed243d3SAndroid Build Coastguard Worker }
10312*bed243d3SAndroid Build Coastguard Worker
10313*bed243d3SAndroid 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)10314*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b,
10315*bed243d3SAndroid Build Coastguard Worker int *__cc) {
10316*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
10317*bed243d3SAndroid Build Coastguard Worker }
10318*bed243d3SAndroid Build Coastguard Worker
10319*bed243d3SAndroid 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)10320*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b,
10321*bed243d3SAndroid Build Coastguard Worker int *__cc) {
10322*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)
10323*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaehs((__vector unsigned short)__a,
10324*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 4, __cc);
10325*bed243d3SAndroid Build Coastguard Worker }
10326*bed243d3SAndroid Build Coastguard Worker
10327*bed243d3SAndroid 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)10328*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b,
10329*bed243d3SAndroid Build Coastguard Worker int *__cc) {
10330*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)
10331*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaehs((__vector unsigned short)__a,
10332*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 4, __cc);
10333*bed243d3SAndroid Build Coastguard Worker }
10334*bed243d3SAndroid Build Coastguard Worker
10335*bed243d3SAndroid 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)10336*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b,
10337*bed243d3SAndroid Build Coastguard Worker int *__cc) {
10338*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
10339*bed243d3SAndroid Build Coastguard Worker }
10340*bed243d3SAndroid Build Coastguard Worker
10341*bed243d3SAndroid 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)10342*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b,
10343*bed243d3SAndroid Build Coastguard Worker int *__cc) {
10344*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)
10345*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaefs((__vector unsigned int)__a,
10346*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 4, __cc);
10347*bed243d3SAndroid Build Coastguard Worker }
10348*bed243d3SAndroid Build Coastguard Worker
10349*bed243d3SAndroid 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)10350*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b,
10351*bed243d3SAndroid Build Coastguard Worker int *__cc) {
10352*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)
10353*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaefs((__vector unsigned int)__a,
10354*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 4, __cc);
10355*bed243d3SAndroid Build Coastguard Worker }
10356*bed243d3SAndroid Build Coastguard Worker
10357*bed243d3SAndroid 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)10358*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b,
10359*bed243d3SAndroid Build Coastguard Worker int *__cc) {
10360*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
10361*bed243d3SAndroid Build Coastguard Worker }
10362*bed243d3SAndroid Build Coastguard Worker
10363*bed243d3SAndroid Build Coastguard Worker /*-- vec_find_any_eq_idx ----------------------------------------------------*/
10364*bed243d3SAndroid Build Coastguard Worker
10365*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx(__vector signed char __a,__vector signed char __b)10366*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) {
10367*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
10368*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaeb((__vector unsigned char)__a,
10369*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 0);
10370*bed243d3SAndroid Build Coastguard Worker }
10371*bed243d3SAndroid Build Coastguard Worker
10372*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector __bool char __a,__vector __bool char __b)10373*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) {
10374*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaeb((__vector unsigned char)__a,
10375*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 0);
10376*bed243d3SAndroid Build Coastguard Worker }
10377*bed243d3SAndroid Build Coastguard Worker
10378*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector unsigned char __a,__vector unsigned char __b)10379*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) {
10380*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaeb(__a, __b, 0);
10381*bed243d3SAndroid Build Coastguard Worker }
10382*bed243d3SAndroid Build Coastguard Worker
10383*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx(__vector signed short __a,__vector signed short __b)10384*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) {
10385*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
10386*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaeh((__vector unsigned short)__a,
10387*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 0);
10388*bed243d3SAndroid Build Coastguard Worker }
10389*bed243d3SAndroid Build Coastguard Worker
10390*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector __bool short __a,__vector __bool short __b)10391*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) {
10392*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaeh((__vector unsigned short)__a,
10393*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 0);
10394*bed243d3SAndroid Build Coastguard Worker }
10395*bed243d3SAndroid Build Coastguard Worker
10396*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector unsigned short __a,__vector unsigned short __b)10397*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) {
10398*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaeh(__a, __b, 0);
10399*bed243d3SAndroid Build Coastguard Worker }
10400*bed243d3SAndroid Build Coastguard Worker
10401*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx(__vector signed int __a,__vector signed int __b)10402*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) {
10403*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
10404*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaef((__vector unsigned int)__a,
10405*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 0);
10406*bed243d3SAndroid Build Coastguard Worker }
10407*bed243d3SAndroid Build Coastguard Worker
10408*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector __bool int __a,__vector __bool int __b)10409*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) {
10410*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaef((__vector unsigned int)__a,
10411*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 0);
10412*bed243d3SAndroid Build Coastguard Worker }
10413*bed243d3SAndroid Build Coastguard Worker
10414*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector unsigned int __a,__vector unsigned int __b)10415*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) {
10416*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaef(__a, __b, 0);
10417*bed243d3SAndroid Build Coastguard Worker }
10418*bed243d3SAndroid Build Coastguard Worker
10419*bed243d3SAndroid Build Coastguard Worker /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
10420*bed243d3SAndroid Build Coastguard Worker
10421*bed243d3SAndroid 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)10422*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(__vector signed char __a,
10423*bed243d3SAndroid Build Coastguard Worker __vector signed char __b, int *__cc) {
10424*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
10425*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaebs((__vector unsigned char)__a,
10426*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 0, __cc);
10427*bed243d3SAndroid Build Coastguard Worker }
10428*bed243d3SAndroid Build Coastguard Worker
10429*bed243d3SAndroid 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)10430*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(__vector __bool char __a,
10431*bed243d3SAndroid Build Coastguard Worker __vector __bool char __b, int *__cc) {
10432*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaebs((__vector unsigned char)__a,
10433*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 0, __cc);
10434*bed243d3SAndroid Build Coastguard Worker }
10435*bed243d3SAndroid Build Coastguard Worker
10436*bed243d3SAndroid 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)10437*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(__vector unsigned char __a,
10438*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __b, int *__cc) {
10439*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaebs(__a, __b, 0, __cc);
10440*bed243d3SAndroid Build Coastguard Worker }
10441*bed243d3SAndroid Build Coastguard Worker
10442*bed243d3SAndroid 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)10443*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(__vector signed short __a,
10444*bed243d3SAndroid Build Coastguard Worker __vector signed short __b, int *__cc) {
10445*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
10446*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaehs((__vector unsigned short)__a,
10447*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 0, __cc);
10448*bed243d3SAndroid Build Coastguard Worker }
10449*bed243d3SAndroid Build Coastguard Worker
10450*bed243d3SAndroid 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)10451*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(__vector __bool short __a,
10452*bed243d3SAndroid Build Coastguard Worker __vector __bool short __b, int *__cc) {
10453*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaehs((__vector unsigned short)__a,
10454*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 0, __cc);
10455*bed243d3SAndroid Build Coastguard Worker }
10456*bed243d3SAndroid Build Coastguard Worker
10457*bed243d3SAndroid 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)10458*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(__vector unsigned short __a,
10459*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __b, int *__cc) {
10460*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaehs(__a, __b, 0, __cc);
10461*bed243d3SAndroid Build Coastguard Worker }
10462*bed243d3SAndroid Build Coastguard Worker
10463*bed243d3SAndroid 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)10464*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(__vector signed int __a,
10465*bed243d3SAndroid Build Coastguard Worker __vector signed int __b, int *__cc) {
10466*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
10467*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaefs((__vector unsigned int)__a,
10468*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 0, __cc);
10469*bed243d3SAndroid Build Coastguard Worker }
10470*bed243d3SAndroid Build Coastguard Worker
10471*bed243d3SAndroid 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)10472*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(__vector __bool int __a,
10473*bed243d3SAndroid Build Coastguard Worker __vector __bool int __b, int *__cc) {
10474*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaefs((__vector unsigned int)__a,
10475*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 0, __cc);
10476*bed243d3SAndroid Build Coastguard Worker }
10477*bed243d3SAndroid Build Coastguard Worker
10478*bed243d3SAndroid 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)10479*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_idx_cc(__vector unsigned int __a,
10480*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __b, int *__cc) {
10481*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaefs(__a, __b, 0, __cc);
10482*bed243d3SAndroid Build Coastguard Worker }
10483*bed243d3SAndroid Build Coastguard Worker
10484*bed243d3SAndroid Build Coastguard Worker /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
10485*bed243d3SAndroid Build Coastguard Worker
10486*bed243d3SAndroid 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)10487*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(__vector signed char __a,
10488*bed243d3SAndroid Build Coastguard Worker __vector signed char __b) {
10489*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
10490*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaezb((__vector unsigned char)__a,
10491*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 0);
10492*bed243d3SAndroid Build Coastguard Worker }
10493*bed243d3SAndroid Build Coastguard Worker
10494*bed243d3SAndroid 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)10495*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(__vector __bool char __a,
10496*bed243d3SAndroid Build Coastguard Worker __vector __bool char __b) {
10497*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezb((__vector unsigned char)__a,
10498*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 0);
10499*bed243d3SAndroid Build Coastguard Worker }
10500*bed243d3SAndroid Build Coastguard Worker
10501*bed243d3SAndroid 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)10502*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(__vector unsigned char __a,
10503*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __b) {
10504*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezb(__a, __b, 0);
10505*bed243d3SAndroid Build Coastguard Worker }
10506*bed243d3SAndroid Build Coastguard Worker
10507*bed243d3SAndroid 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)10508*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(__vector signed short __a,
10509*bed243d3SAndroid Build Coastguard Worker __vector signed short __b) {
10510*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
10511*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaezh((__vector unsigned short)__a,
10512*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 0);
10513*bed243d3SAndroid Build Coastguard Worker }
10514*bed243d3SAndroid Build Coastguard Worker
10515*bed243d3SAndroid 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)10516*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(__vector __bool short __a,
10517*bed243d3SAndroid Build Coastguard Worker __vector __bool short __b) {
10518*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezh((__vector unsigned short)__a,
10519*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 0);
10520*bed243d3SAndroid Build Coastguard Worker }
10521*bed243d3SAndroid Build Coastguard Worker
10522*bed243d3SAndroid 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)10523*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(__vector unsigned short __a,
10524*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __b) {
10525*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezh(__a, __b, 0);
10526*bed243d3SAndroid Build Coastguard Worker }
10527*bed243d3SAndroid Build Coastguard Worker
10528*bed243d3SAndroid 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)10529*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(__vector signed int __a,
10530*bed243d3SAndroid Build Coastguard Worker __vector signed int __b) {
10531*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
10532*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaezf((__vector unsigned int)__a,
10533*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 0);
10534*bed243d3SAndroid Build Coastguard Worker }
10535*bed243d3SAndroid Build Coastguard Worker
10536*bed243d3SAndroid 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)10537*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(__vector __bool int __a,
10538*bed243d3SAndroid Build Coastguard Worker __vector __bool int __b) {
10539*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezf((__vector unsigned int)__a,
10540*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 0);
10541*bed243d3SAndroid Build Coastguard Worker }
10542*bed243d3SAndroid Build Coastguard Worker
10543*bed243d3SAndroid 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)10544*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx(__vector unsigned int __a,
10545*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __b) {
10546*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezf(__a, __b, 0);
10547*bed243d3SAndroid Build Coastguard Worker }
10548*bed243d3SAndroid Build Coastguard Worker
10549*bed243d3SAndroid Build Coastguard Worker /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
10550*bed243d3SAndroid Build Coastguard Worker
10551*bed243d3SAndroid 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)10552*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(__vector signed char __a,
10553*bed243d3SAndroid Build Coastguard Worker __vector signed char __b, int *__cc) {
10554*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
10555*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaezbs((__vector unsigned char)__a,
10556*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 0, __cc);
10557*bed243d3SAndroid Build Coastguard Worker }
10558*bed243d3SAndroid Build Coastguard Worker
10559*bed243d3SAndroid 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)10560*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,
10561*bed243d3SAndroid Build Coastguard Worker __vector __bool char __b, int *__cc) {
10562*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezbs((__vector unsigned char)__a,
10563*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 0, __cc);
10564*bed243d3SAndroid Build Coastguard Worker }
10565*bed243d3SAndroid Build Coastguard Worker
10566*bed243d3SAndroid 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)10567*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,
10568*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __b, int *__cc) {
10569*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
10570*bed243d3SAndroid Build Coastguard Worker }
10571*bed243d3SAndroid Build Coastguard Worker
10572*bed243d3SAndroid 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)10573*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(__vector signed short __a,
10574*bed243d3SAndroid Build Coastguard Worker __vector signed short __b, int *__cc) {
10575*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
10576*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaezhs((__vector unsigned short)__a,
10577*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 0, __cc);
10578*bed243d3SAndroid Build Coastguard Worker }
10579*bed243d3SAndroid Build Coastguard Worker
10580*bed243d3SAndroid 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)10581*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,
10582*bed243d3SAndroid Build Coastguard Worker __vector __bool short __b, int *__cc) {
10583*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezhs((__vector unsigned short)__a,
10584*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 0, __cc);
10585*bed243d3SAndroid Build Coastguard Worker }
10586*bed243d3SAndroid Build Coastguard Worker
10587*bed243d3SAndroid 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)10588*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,
10589*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __b, int *__cc) {
10590*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
10591*bed243d3SAndroid Build Coastguard Worker }
10592*bed243d3SAndroid Build Coastguard Worker
10593*bed243d3SAndroid 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)10594*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(__vector signed int __a,
10595*bed243d3SAndroid Build Coastguard Worker __vector signed int __b, int *__cc) {
10596*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
10597*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaezfs((__vector unsigned int)__a,
10598*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 0, __cc);
10599*bed243d3SAndroid Build Coastguard Worker }
10600*bed243d3SAndroid Build Coastguard Worker
10601*bed243d3SAndroid 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)10602*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,
10603*bed243d3SAndroid Build Coastguard Worker __vector __bool int __b, int *__cc) {
10604*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezfs((__vector unsigned int)__a,
10605*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 0, __cc);
10606*bed243d3SAndroid Build Coastguard Worker }
10607*bed243d3SAndroid Build Coastguard Worker
10608*bed243d3SAndroid 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)10609*bed243d3SAndroid Build Coastguard Worker vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,
10610*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __b, int *__cc) {
10611*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
10612*bed243d3SAndroid Build Coastguard Worker }
10613*bed243d3SAndroid Build Coastguard Worker
10614*bed243d3SAndroid Build Coastguard Worker /*-- vec_find_any_ne --------------------------------------------------------*/
10615*bed243d3SAndroid Build Coastguard Worker
10616*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector signed char __a,__vector signed char __b)10617*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne(__vector signed char __a, __vector signed char __b) {
10618*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)
10619*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaeb((__vector unsigned char)__a,
10620*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 12);
10621*bed243d3SAndroid Build Coastguard Worker }
10622*bed243d3SAndroid Build Coastguard Worker
10623*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector __bool char __a,__vector __bool char __b)10624*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) {
10625*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)
10626*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaeb((__vector unsigned char)__a,
10627*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 12);
10628*bed243d3SAndroid Build Coastguard Worker }
10629*bed243d3SAndroid Build Coastguard Worker
10630*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector unsigned char __a,__vector unsigned char __b)10631*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
10632*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12);
10633*bed243d3SAndroid Build Coastguard Worker }
10634*bed243d3SAndroid Build Coastguard Worker
10635*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector signed short __a,__vector signed short __b)10636*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne(__vector signed short __a, __vector signed short __b) {
10637*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)
10638*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaeh((__vector unsigned short)__a,
10639*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 12);
10640*bed243d3SAndroid Build Coastguard Worker }
10641*bed243d3SAndroid Build Coastguard Worker
10642*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector __bool short __a,__vector __bool short __b)10643*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) {
10644*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)
10645*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaeh((__vector unsigned short)__a,
10646*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 12);
10647*bed243d3SAndroid Build Coastguard Worker }
10648*bed243d3SAndroid Build Coastguard Worker
10649*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector unsigned short __a,__vector unsigned short __b)10650*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
10651*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12);
10652*bed243d3SAndroid Build Coastguard Worker }
10653*bed243d3SAndroid Build Coastguard Worker
10654*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector signed int __a,__vector signed int __b)10655*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne(__vector signed int __a, __vector signed int __b) {
10656*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)
10657*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaef((__vector unsigned int)__a,
10658*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 12);
10659*bed243d3SAndroid Build Coastguard Worker }
10660*bed243d3SAndroid Build Coastguard Worker
10661*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector __bool int __a,__vector __bool int __b)10662*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) {
10663*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)
10664*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaef((__vector unsigned int)__a,
10665*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 12);
10666*bed243d3SAndroid Build Coastguard Worker }
10667*bed243d3SAndroid Build Coastguard Worker
10668*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector unsigned int __a,__vector unsigned int __b)10669*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
10670*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12);
10671*bed243d3SAndroid Build Coastguard Worker }
10672*bed243d3SAndroid Build Coastguard Worker
10673*bed243d3SAndroid Build Coastguard Worker /*-- vec_find_any_ne_cc -----------------------------------------------------*/
10674*bed243d3SAndroid Build Coastguard Worker
10675*bed243d3SAndroid 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)10676*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_cc(__vector signed char __a,
10677*bed243d3SAndroid Build Coastguard Worker __vector signed char __b, int *__cc) {
10678*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)
10679*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaebs((__vector unsigned char)__a,
10680*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 12, __cc);
10681*bed243d3SAndroid Build Coastguard Worker }
10682*bed243d3SAndroid Build Coastguard Worker
10683*bed243d3SAndroid 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)10684*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_cc(__vector __bool char __a,
10685*bed243d3SAndroid Build Coastguard Worker __vector __bool char __b, int *__cc) {
10686*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)
10687*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaebs((__vector unsigned char)__a,
10688*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 12, __cc);
10689*bed243d3SAndroid Build Coastguard Worker }
10690*bed243d3SAndroid Build Coastguard Worker
10691*bed243d3SAndroid 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)10692*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_cc(__vector unsigned char __a,
10693*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __b, int *__cc) {
10694*bed243d3SAndroid Build Coastguard Worker return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
10695*bed243d3SAndroid Build Coastguard Worker }
10696*bed243d3SAndroid Build Coastguard Worker
10697*bed243d3SAndroid 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)10698*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_cc(__vector signed short __a,
10699*bed243d3SAndroid Build Coastguard Worker __vector signed short __b, int *__cc) {
10700*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)
10701*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaehs((__vector unsigned short)__a,
10702*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 12, __cc);
10703*bed243d3SAndroid Build Coastguard Worker }
10704*bed243d3SAndroid Build Coastguard Worker
10705*bed243d3SAndroid 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)10706*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_cc(__vector __bool short __a,
10707*bed243d3SAndroid Build Coastguard Worker __vector __bool short __b, int *__cc) {
10708*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)
10709*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaehs((__vector unsigned short)__a,
10710*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 12, __cc);
10711*bed243d3SAndroid Build Coastguard Worker }
10712*bed243d3SAndroid Build Coastguard Worker
10713*bed243d3SAndroid 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)10714*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_cc(__vector unsigned short __a,
10715*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __b, int *__cc) {
10716*bed243d3SAndroid Build Coastguard Worker return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
10717*bed243d3SAndroid Build Coastguard Worker }
10718*bed243d3SAndroid Build Coastguard Worker
10719*bed243d3SAndroid 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)10720*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_cc(__vector signed int __a,
10721*bed243d3SAndroid Build Coastguard Worker __vector signed int __b, int *__cc) {
10722*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)
10723*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaefs((__vector unsigned int)__a,
10724*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 12, __cc);
10725*bed243d3SAndroid Build Coastguard Worker }
10726*bed243d3SAndroid Build Coastguard Worker
10727*bed243d3SAndroid 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)10728*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_cc(__vector __bool int __a,
10729*bed243d3SAndroid Build Coastguard Worker __vector __bool int __b, int *__cc) {
10730*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)
10731*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaefs((__vector unsigned int)__a,
10732*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 12, __cc);
10733*bed243d3SAndroid Build Coastguard Worker }
10734*bed243d3SAndroid Build Coastguard Worker
10735*bed243d3SAndroid 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)10736*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_cc(__vector unsigned int __a,
10737*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __b, int *__cc) {
10738*bed243d3SAndroid Build Coastguard Worker return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
10739*bed243d3SAndroid Build Coastguard Worker }
10740*bed243d3SAndroid Build Coastguard Worker
10741*bed243d3SAndroid Build Coastguard Worker /*-- vec_find_any_ne_idx ----------------------------------------------------*/
10742*bed243d3SAndroid Build Coastguard Worker
10743*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx(__vector signed char __a,__vector signed char __b)10744*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) {
10745*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
10746*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaeb((__vector unsigned char)__a,
10747*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 8);
10748*bed243d3SAndroid Build Coastguard Worker }
10749*bed243d3SAndroid Build Coastguard Worker
10750*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector __bool char __a,__vector __bool char __b)10751*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) {
10752*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaeb((__vector unsigned char)__a,
10753*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 8);
10754*bed243d3SAndroid Build Coastguard Worker }
10755*bed243d3SAndroid Build Coastguard Worker
10756*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector unsigned char __a,__vector unsigned char __b)10757*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) {
10758*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaeb(__a, __b, 8);
10759*bed243d3SAndroid Build Coastguard Worker }
10760*bed243d3SAndroid Build Coastguard Worker
10761*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx(__vector signed short __a,__vector signed short __b)10762*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) {
10763*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
10764*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaeh((__vector unsigned short)__a,
10765*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 8);
10766*bed243d3SAndroid Build Coastguard Worker }
10767*bed243d3SAndroid Build Coastguard Worker
10768*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector __bool short __a,__vector __bool short __b)10769*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) {
10770*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaeh((__vector unsigned short)__a,
10771*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 8);
10772*bed243d3SAndroid Build Coastguard Worker }
10773*bed243d3SAndroid Build Coastguard Worker
10774*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector unsigned short __a,__vector unsigned short __b)10775*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) {
10776*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaeh(__a, __b, 8);
10777*bed243d3SAndroid Build Coastguard Worker }
10778*bed243d3SAndroid Build Coastguard Worker
10779*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx(__vector signed int __a,__vector signed int __b)10780*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) {
10781*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
10782*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaef((__vector unsigned int)__a,
10783*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 8);
10784*bed243d3SAndroid Build Coastguard Worker }
10785*bed243d3SAndroid Build Coastguard Worker
10786*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector __bool int __a,__vector __bool int __b)10787*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) {
10788*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaef((__vector unsigned int)__a,
10789*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 8);
10790*bed243d3SAndroid Build Coastguard Worker }
10791*bed243d3SAndroid Build Coastguard Worker
10792*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector unsigned int __a,__vector unsigned int __b)10793*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) {
10794*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaef(__a, __b, 8);
10795*bed243d3SAndroid Build Coastguard Worker }
10796*bed243d3SAndroid Build Coastguard Worker
10797*bed243d3SAndroid Build Coastguard Worker /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
10798*bed243d3SAndroid Build Coastguard Worker
10799*bed243d3SAndroid 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)10800*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(__vector signed char __a,
10801*bed243d3SAndroid Build Coastguard Worker __vector signed char __b, int *__cc) {
10802*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
10803*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaebs((__vector unsigned char)__a,
10804*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 8, __cc);
10805*bed243d3SAndroid Build Coastguard Worker }
10806*bed243d3SAndroid Build Coastguard Worker
10807*bed243d3SAndroid 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)10808*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(__vector __bool char __a,
10809*bed243d3SAndroid Build Coastguard Worker __vector __bool char __b, int *__cc) {
10810*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaebs((__vector unsigned char)__a,
10811*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 8, __cc);
10812*bed243d3SAndroid Build Coastguard Worker }
10813*bed243d3SAndroid Build Coastguard Worker
10814*bed243d3SAndroid 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)10815*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(__vector unsigned char __a,
10816*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __b,
10817*bed243d3SAndroid Build Coastguard Worker int *__cc) {
10818*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaebs(__a, __b, 8, __cc);
10819*bed243d3SAndroid Build Coastguard Worker }
10820*bed243d3SAndroid Build Coastguard Worker
10821*bed243d3SAndroid 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)10822*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(__vector signed short __a,
10823*bed243d3SAndroid Build Coastguard Worker __vector signed short __b, int *__cc) {
10824*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
10825*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaehs((__vector unsigned short)__a,
10826*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 8, __cc);
10827*bed243d3SAndroid Build Coastguard Worker }
10828*bed243d3SAndroid Build Coastguard Worker
10829*bed243d3SAndroid 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)10830*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(__vector __bool short __a,
10831*bed243d3SAndroid Build Coastguard Worker __vector __bool short __b, int *__cc) {
10832*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaehs((__vector unsigned short)__a,
10833*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 8, __cc);
10834*bed243d3SAndroid Build Coastguard Worker }
10835*bed243d3SAndroid Build Coastguard Worker
10836*bed243d3SAndroid 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)10837*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(__vector unsigned short __a,
10838*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __b, int *__cc) {
10839*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaehs(__a, __b, 8, __cc);
10840*bed243d3SAndroid Build Coastguard Worker }
10841*bed243d3SAndroid Build Coastguard Worker
10842*bed243d3SAndroid 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)10843*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(__vector signed int __a,
10844*bed243d3SAndroid Build Coastguard Worker __vector signed int __b, int *__cc) {
10845*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
10846*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaefs((__vector unsigned int)__a,
10847*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 8, __cc);
10848*bed243d3SAndroid Build Coastguard Worker }
10849*bed243d3SAndroid Build Coastguard Worker
10850*bed243d3SAndroid 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)10851*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(__vector __bool int __a,
10852*bed243d3SAndroid Build Coastguard Worker __vector __bool int __b, int *__cc) {
10853*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaefs((__vector unsigned int)__a,
10854*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 8, __cc);
10855*bed243d3SAndroid Build Coastguard Worker }
10856*bed243d3SAndroid Build Coastguard Worker
10857*bed243d3SAndroid 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)10858*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_idx_cc(__vector unsigned int __a,
10859*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __b, int *__cc) {
10860*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaefs(__a, __b, 8, __cc);
10861*bed243d3SAndroid Build Coastguard Worker }
10862*bed243d3SAndroid Build Coastguard Worker
10863*bed243d3SAndroid Build Coastguard Worker /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
10864*bed243d3SAndroid Build Coastguard Worker
10865*bed243d3SAndroid 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)10866*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(__vector signed char __a,
10867*bed243d3SAndroid Build Coastguard Worker __vector signed char __b) {
10868*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
10869*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaezb((__vector unsigned char)__a,
10870*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 8);
10871*bed243d3SAndroid Build Coastguard Worker }
10872*bed243d3SAndroid Build Coastguard Worker
10873*bed243d3SAndroid 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)10874*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(__vector __bool char __a,
10875*bed243d3SAndroid Build Coastguard Worker __vector __bool char __b) {
10876*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezb((__vector unsigned char)__a,
10877*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 8);
10878*bed243d3SAndroid Build Coastguard Worker }
10879*bed243d3SAndroid Build Coastguard Worker
10880*bed243d3SAndroid 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)10881*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(__vector unsigned char __a,
10882*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __b) {
10883*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezb(__a, __b, 8);
10884*bed243d3SAndroid Build Coastguard Worker }
10885*bed243d3SAndroid Build Coastguard Worker
10886*bed243d3SAndroid 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)10887*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(__vector signed short __a,
10888*bed243d3SAndroid Build Coastguard Worker __vector signed short __b) {
10889*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
10890*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaezh((__vector unsigned short)__a,
10891*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 8);
10892*bed243d3SAndroid Build Coastguard Worker }
10893*bed243d3SAndroid Build Coastguard Worker
10894*bed243d3SAndroid 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)10895*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(__vector __bool short __a,
10896*bed243d3SAndroid Build Coastguard Worker __vector __bool short __b) {
10897*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezh((__vector unsigned short)__a,
10898*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 8);
10899*bed243d3SAndroid Build Coastguard Worker }
10900*bed243d3SAndroid Build Coastguard Worker
10901*bed243d3SAndroid 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)10902*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(__vector unsigned short __a,
10903*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __b) {
10904*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezh(__a, __b, 8);
10905*bed243d3SAndroid Build Coastguard Worker }
10906*bed243d3SAndroid Build Coastguard Worker
10907*bed243d3SAndroid 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)10908*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(__vector signed int __a,
10909*bed243d3SAndroid Build Coastguard Worker __vector signed int __b) {
10910*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
10911*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaezf((__vector unsigned int)__a,
10912*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 8);
10913*bed243d3SAndroid Build Coastguard Worker }
10914*bed243d3SAndroid Build Coastguard Worker
10915*bed243d3SAndroid 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)10916*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(__vector __bool int __a,
10917*bed243d3SAndroid Build Coastguard Worker __vector __bool int __b) {
10918*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezf((__vector unsigned int)__a,
10919*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 8);
10920*bed243d3SAndroid Build Coastguard Worker }
10921*bed243d3SAndroid Build Coastguard Worker
10922*bed243d3SAndroid 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)10923*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx(__vector unsigned int __a,
10924*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __b) {
10925*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezf(__a, __b, 8);
10926*bed243d3SAndroid Build Coastguard Worker }
10927*bed243d3SAndroid Build Coastguard Worker
10928*bed243d3SAndroid Build Coastguard Worker /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
10929*bed243d3SAndroid Build Coastguard Worker
10930*bed243d3SAndroid 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)10931*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(__vector signed char __a,
10932*bed243d3SAndroid Build Coastguard Worker __vector signed char __b, int *__cc) {
10933*bed243d3SAndroid Build Coastguard Worker return (__vector signed char)
10934*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaezbs((__vector unsigned char)__a,
10935*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 8, __cc);
10936*bed243d3SAndroid Build Coastguard Worker }
10937*bed243d3SAndroid Build Coastguard Worker
10938*bed243d3SAndroid 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)10939*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,
10940*bed243d3SAndroid Build Coastguard Worker __vector __bool char __b, int *__cc) {
10941*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezbs((__vector unsigned char)__a,
10942*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, 8, __cc);
10943*bed243d3SAndroid Build Coastguard Worker }
10944*bed243d3SAndroid Build Coastguard Worker
10945*bed243d3SAndroid 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)10946*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,
10947*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __b, int *__cc) {
10948*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
10949*bed243d3SAndroid Build Coastguard Worker }
10950*bed243d3SAndroid Build Coastguard Worker
10951*bed243d3SAndroid 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)10952*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(__vector signed short __a,
10953*bed243d3SAndroid Build Coastguard Worker __vector signed short __b, int *__cc) {
10954*bed243d3SAndroid Build Coastguard Worker return (__vector signed short)
10955*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaezhs((__vector unsigned short)__a,
10956*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 8, __cc);
10957*bed243d3SAndroid Build Coastguard Worker }
10958*bed243d3SAndroid Build Coastguard Worker
10959*bed243d3SAndroid 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)10960*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,
10961*bed243d3SAndroid Build Coastguard Worker __vector __bool short __b, int *__cc) {
10962*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezhs((__vector unsigned short)__a,
10963*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, 8, __cc);
10964*bed243d3SAndroid Build Coastguard Worker }
10965*bed243d3SAndroid Build Coastguard Worker
10966*bed243d3SAndroid 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)10967*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,
10968*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __b, int *__cc) {
10969*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
10970*bed243d3SAndroid Build Coastguard Worker }
10971*bed243d3SAndroid Build Coastguard Worker
10972*bed243d3SAndroid 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)10973*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(__vector signed int __a,
10974*bed243d3SAndroid Build Coastguard Worker __vector signed int __b, int *__cc) {
10975*bed243d3SAndroid Build Coastguard Worker return (__vector signed int)
10976*bed243d3SAndroid Build Coastguard Worker __builtin_s390_vfaezfs((__vector unsigned int)__a,
10977*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 8, __cc);
10978*bed243d3SAndroid Build Coastguard Worker }
10979*bed243d3SAndroid Build Coastguard Worker
10980*bed243d3SAndroid 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)10981*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,
10982*bed243d3SAndroid Build Coastguard Worker __vector __bool int __b, int *__cc) {
10983*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezfs((__vector unsigned int)__a,
10984*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, 8, __cc);
10985*bed243d3SAndroid Build Coastguard Worker }
10986*bed243d3SAndroid Build Coastguard Worker
10987*bed243d3SAndroid 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)10988*bed243d3SAndroid Build Coastguard Worker vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,
10989*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __b, int *__cc) {
10990*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
10991*bed243d3SAndroid Build Coastguard Worker }
10992*bed243d3SAndroid Build Coastguard Worker
10993*bed243d3SAndroid Build Coastguard Worker /*-- vec_search_string_cc ---------------------------------------------------*/
10994*bed243d3SAndroid Build Coastguard Worker
10995*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 13
10996*bed243d3SAndroid Build Coastguard Worker
10997*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector signed char __a,__vector signed char __b,__vector unsigned char __c,int * __cc)10998*bed243d3SAndroid Build Coastguard Worker vec_search_string_cc(__vector signed char __a, __vector signed char __b,
10999*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11000*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrsb((__vector unsigned char)__a,
11001*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, __c, __cc);
11002*bed243d3SAndroid Build Coastguard Worker }
11003*bed243d3SAndroid Build Coastguard Worker
11004*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c,int * __cc)11005*bed243d3SAndroid Build Coastguard Worker vec_search_string_cc(__vector __bool char __a, __vector __bool char __b,
11006*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11007*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrsb((__vector unsigned char)__a,
11008*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, __c, __cc);
11009*bed243d3SAndroid Build Coastguard Worker }
11010*bed243d3SAndroid Build Coastguard Worker
11011*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)11012*bed243d3SAndroid Build Coastguard Worker vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b,
11013*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11014*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrsb(__a, __b, __c, __cc);
11015*bed243d3SAndroid Build Coastguard Worker }
11016*bed243d3SAndroid Build Coastguard Worker
11017*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector signed short __a,__vector signed short __b,__vector unsigned char __c,int * __cc)11018*bed243d3SAndroid Build Coastguard Worker vec_search_string_cc(__vector signed short __a, __vector signed short __b,
11019*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11020*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrsh((__vector unsigned short)__a,
11021*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, __c, __cc);
11022*bed243d3SAndroid Build Coastguard Worker }
11023*bed243d3SAndroid Build Coastguard Worker
11024*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector __bool short __a,__vector __bool short __b,__vector unsigned char __c,int * __cc)11025*bed243d3SAndroid Build Coastguard Worker vec_search_string_cc(__vector __bool short __a, __vector __bool short __b,
11026*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11027*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrsh((__vector unsigned short)__a,
11028*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, __c, __cc);
11029*bed243d3SAndroid Build Coastguard Worker }
11030*bed243d3SAndroid Build Coastguard Worker
11031*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned char __c,int * __cc)11032*bed243d3SAndroid Build Coastguard Worker vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b,
11033*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11034*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrsh(__a, __b, __c, __cc);
11035*bed243d3SAndroid Build Coastguard Worker }
11036*bed243d3SAndroid Build Coastguard Worker
11037*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector signed int __a,__vector signed int __b,__vector unsigned char __c,int * __cc)11038*bed243d3SAndroid Build Coastguard Worker vec_search_string_cc(__vector signed int __a, __vector signed int __b,
11039*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11040*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrsf((__vector unsigned int)__a,
11041*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, __c, __cc);
11042*bed243d3SAndroid Build Coastguard Worker }
11043*bed243d3SAndroid Build Coastguard Worker
11044*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector __bool int __a,__vector __bool int __b,__vector unsigned char __c,int * __cc)11045*bed243d3SAndroid Build Coastguard Worker vec_search_string_cc(__vector __bool int __a, __vector __bool int __b,
11046*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11047*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrsf((__vector unsigned int)__a,
11048*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, __c, __cc);
11049*bed243d3SAndroid Build Coastguard Worker }
11050*bed243d3SAndroid Build Coastguard Worker
11051*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned char __c,int * __cc)11052*bed243d3SAndroid Build Coastguard Worker vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b,
11053*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11054*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrsf(__a, __b, __c, __cc);
11055*bed243d3SAndroid Build Coastguard Worker }
11056*bed243d3SAndroid Build Coastguard Worker
11057*bed243d3SAndroid Build Coastguard Worker #endif
11058*bed243d3SAndroid Build Coastguard Worker
11059*bed243d3SAndroid Build Coastguard Worker /*-- vec_search_string_until_zero_cc ----------------------------------------*/
11060*bed243d3SAndroid Build Coastguard Worker
11061*bed243d3SAndroid Build Coastguard Worker #if __ARCH__ >= 13
11062*bed243d3SAndroid Build Coastguard Worker
11063*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector signed char __a,__vector signed char __b,__vector unsigned char __c,int * __cc)11064*bed243d3SAndroid Build Coastguard Worker vec_search_string_until_zero_cc(__vector signed char __a,
11065*bed243d3SAndroid Build Coastguard Worker __vector signed char __b,
11066*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11067*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrszb((__vector unsigned char)__a,
11068*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, __c, __cc);
11069*bed243d3SAndroid Build Coastguard Worker }
11070*bed243d3SAndroid Build Coastguard Worker
11071*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c,int * __cc)11072*bed243d3SAndroid Build Coastguard Worker vec_search_string_until_zero_cc(__vector __bool char __a,
11073*bed243d3SAndroid Build Coastguard Worker __vector __bool char __b,
11074*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11075*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrszb((__vector unsigned char)__a,
11076*bed243d3SAndroid Build Coastguard Worker (__vector unsigned char)__b, __c, __cc);
11077*bed243d3SAndroid Build Coastguard Worker }
11078*bed243d3SAndroid Build Coastguard Worker
11079*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)11080*bed243d3SAndroid Build Coastguard Worker vec_search_string_until_zero_cc(__vector unsigned char __a,
11081*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __b,
11082*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11083*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrszb(__a, __b, __c, __cc);
11084*bed243d3SAndroid Build Coastguard Worker }
11085*bed243d3SAndroid Build Coastguard Worker
11086*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector signed short __a,__vector signed short __b,__vector unsigned char __c,int * __cc)11087*bed243d3SAndroid Build Coastguard Worker vec_search_string_until_zero_cc(__vector signed short __a,
11088*bed243d3SAndroid Build Coastguard Worker __vector signed short __b,
11089*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11090*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrszh((__vector unsigned short)__a,
11091*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, __c, __cc);
11092*bed243d3SAndroid Build Coastguard Worker }
11093*bed243d3SAndroid Build Coastguard Worker
11094*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector __bool short __a,__vector __bool short __b,__vector unsigned char __c,int * __cc)11095*bed243d3SAndroid Build Coastguard Worker vec_search_string_until_zero_cc(__vector __bool short __a,
11096*bed243d3SAndroid Build Coastguard Worker __vector __bool short __b,
11097*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11098*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrszh((__vector unsigned short)__a,
11099*bed243d3SAndroid Build Coastguard Worker (__vector unsigned short)__b, __c, __cc);
11100*bed243d3SAndroid Build Coastguard Worker }
11101*bed243d3SAndroid Build Coastguard Worker
11102*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned char __c,int * __cc)11103*bed243d3SAndroid Build Coastguard Worker vec_search_string_until_zero_cc(__vector unsigned short __a,
11104*bed243d3SAndroid Build Coastguard Worker __vector unsigned short __b,
11105*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11106*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrszh(__a, __b, __c, __cc);
11107*bed243d3SAndroid Build Coastguard Worker }
11108*bed243d3SAndroid Build Coastguard Worker
11109*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector signed int __a,__vector signed int __b,__vector unsigned char __c,int * __cc)11110*bed243d3SAndroid Build Coastguard Worker vec_search_string_until_zero_cc(__vector signed int __a,
11111*bed243d3SAndroid Build Coastguard Worker __vector signed int __b,
11112*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11113*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrszf((__vector unsigned int)__a,
11114*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, __c, __cc);
11115*bed243d3SAndroid Build Coastguard Worker }
11116*bed243d3SAndroid Build Coastguard Worker
11117*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector __bool int __a,__vector __bool int __b,__vector unsigned char __c,int * __cc)11118*bed243d3SAndroid Build Coastguard Worker vec_search_string_until_zero_cc(__vector __bool int __a,
11119*bed243d3SAndroid Build Coastguard Worker __vector __bool int __b,
11120*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11121*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrszf((__vector unsigned int)__a,
11122*bed243d3SAndroid Build Coastguard Worker (__vector unsigned int)__b, __c, __cc);
11123*bed243d3SAndroid Build Coastguard Worker }
11124*bed243d3SAndroid Build Coastguard Worker
11125*bed243d3SAndroid Build Coastguard Worker static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned char __c,int * __cc)11126*bed243d3SAndroid Build Coastguard Worker vec_search_string_until_zero_cc(__vector unsigned int __a,
11127*bed243d3SAndroid Build Coastguard Worker __vector unsigned int __b,
11128*bed243d3SAndroid Build Coastguard Worker __vector unsigned char __c, int *__cc) {
11129*bed243d3SAndroid Build Coastguard Worker return __builtin_s390_vstrszf(__a, __b, __c, __cc);
11130*bed243d3SAndroid Build Coastguard Worker }
11131*bed243d3SAndroid Build Coastguard Worker
11132*bed243d3SAndroid Build Coastguard Worker #endif
11133*bed243d3SAndroid Build Coastguard Worker
11134*bed243d3SAndroid Build Coastguard Worker #undef __constant_pow2_range
11135*bed243d3SAndroid Build Coastguard Worker #undef __constant_range
11136*bed243d3SAndroid Build Coastguard Worker #undef __constant
11137*bed243d3SAndroid Build Coastguard Worker #undef __ATTRS_o
11138*bed243d3SAndroid Build Coastguard Worker #undef __ATTRS_o_ai
11139*bed243d3SAndroid Build Coastguard Worker #undef __ATTRS_ai
11140*bed243d3SAndroid Build Coastguard Worker
11141*bed243d3SAndroid Build Coastguard Worker #else
11142*bed243d3SAndroid Build Coastguard Worker
11143*bed243d3SAndroid Build Coastguard Worker #error "Use -fzvector to enable vector extensions"
11144*bed243d3SAndroid Build Coastguard Worker
11145*bed243d3SAndroid Build Coastguard Worker #endif
11146