1 /*===---- vecintrin.h - Vector intrinsics ----------------------------------===
2  *
3  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4  * See https://llvm.org/LICENSE.txt for license information.
5  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6  *
7  *===-----------------------------------------------------------------------===
8  */
9 
10 #if defined(__s390x__) && defined(__VEC__)
11 
12 #define __ATTRS_ai __attribute__((__always_inline__))
13 #define __ATTRS_o __attribute__((__overloadable__))
14 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
15 
16 #define __constant(PARM) \
17   __attribute__((__enable_if__ ((PARM) == (PARM), \
18      "argument must be a constant integer")))
19 #define __constant_range(PARM, LOW, HIGH) \
20   __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
21      "argument must be a constant integer from " #LOW " to " #HIGH)))
22 #define __constant_pow2_range(PARM, LOW, HIGH) \
23   __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
24                                 ((PARM) & ((PARM) - 1)) == 0, \
25      "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
26 
27 /*-- __lcbb -----------------------------------------------------------------*/
28 
29 extern __ATTRS_o unsigned int
30 __lcbb(const void *__ptr, unsigned short __len)
31   __constant_pow2_range(__len, 64, 4096);
32 
33 #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
34   __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
35                            ((Y) == 64 ? 0 : \
36                             (Y) == 128 ? 1 : \
37                             (Y) == 256 ? 2 : \
38                             (Y) == 512 ? 3 : \
39                             (Y) == 1024 ? 4 : \
40                             (Y) == 2048 ? 5 : \
41                             (Y) == 4096 ? 6 : 0) : 0))
42 
43 /*-- vec_extract ------------------------------------------------------------*/
44 
45 static inline __ATTRS_o_ai signed char
vec_extract(__vector signed char __vec,int __index)46 vec_extract(__vector signed char __vec, int __index) {
47   return __vec[__index & 15];
48 }
49 
50 static inline __ATTRS_o_ai unsigned char
vec_extract(__vector __bool char __vec,int __index)51 vec_extract(__vector __bool char __vec, int __index) {
52   return __vec[__index & 15];
53 }
54 
55 static inline __ATTRS_o_ai unsigned char
vec_extract(__vector unsigned char __vec,int __index)56 vec_extract(__vector unsigned char __vec, int __index) {
57   return __vec[__index & 15];
58 }
59 
60 static inline __ATTRS_o_ai signed short
vec_extract(__vector signed short __vec,int __index)61 vec_extract(__vector signed short __vec, int __index) {
62   return __vec[__index & 7];
63 }
64 
65 static inline __ATTRS_o_ai unsigned short
vec_extract(__vector __bool short __vec,int __index)66 vec_extract(__vector __bool short __vec, int __index) {
67   return __vec[__index & 7];
68 }
69 
70 static inline __ATTRS_o_ai unsigned short
vec_extract(__vector unsigned short __vec,int __index)71 vec_extract(__vector unsigned short __vec, int __index) {
72   return __vec[__index & 7];
73 }
74 
75 static inline __ATTRS_o_ai signed int
vec_extract(__vector signed int __vec,int __index)76 vec_extract(__vector signed int __vec, int __index) {
77   return __vec[__index & 3];
78 }
79 
80 static inline __ATTRS_o_ai unsigned int
vec_extract(__vector __bool int __vec,int __index)81 vec_extract(__vector __bool int __vec, int __index) {
82   return __vec[__index & 3];
83 }
84 
85 static inline __ATTRS_o_ai unsigned int
vec_extract(__vector unsigned int __vec,int __index)86 vec_extract(__vector unsigned int __vec, int __index) {
87   return __vec[__index & 3];
88 }
89 
90 static inline __ATTRS_o_ai signed long long
vec_extract(__vector signed long long __vec,int __index)91 vec_extract(__vector signed long long __vec, int __index) {
92   return __vec[__index & 1];
93 }
94 
95 static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector __bool long long __vec,int __index)96 vec_extract(__vector __bool long long __vec, int __index) {
97   return __vec[__index & 1];
98 }
99 
100 static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector unsigned long long __vec,int __index)101 vec_extract(__vector unsigned long long __vec, int __index) {
102   return __vec[__index & 1];
103 }
104 
105 #if __ARCH__ >= 12
106 static inline __ATTRS_o_ai float
vec_extract(__vector float __vec,int __index)107 vec_extract(__vector float __vec, int __index) {
108   return __vec[__index & 3];
109 }
110 #endif
111 
112 static inline __ATTRS_o_ai double
vec_extract(__vector double __vec,int __index)113 vec_extract(__vector double __vec, int __index) {
114   return __vec[__index & 1];
115 }
116 
117 /*-- vec_insert -------------------------------------------------------------*/
118 
119 static inline __ATTRS_o_ai __vector signed char
vec_insert(signed char __scalar,__vector signed char __vec,int __index)120 vec_insert(signed char __scalar, __vector signed char __vec, int __index) {
121   __vec[__index & 15] = __scalar;
122   return __vec;
123 }
124 
125 // This prototype is deprecated.
126 static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar,__vector __bool char __vec,int __index)127 vec_insert(unsigned char __scalar, __vector __bool char __vec, int __index) {
128   __vector unsigned char __newvec = (__vector unsigned char)__vec;
129   __newvec[__index & 15] = (unsigned char)__scalar;
130   return __newvec;
131 }
132 
133 static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar,__vector unsigned char __vec,int __index)134 vec_insert(unsigned char __scalar, __vector unsigned char __vec, int __index) {
135   __vec[__index & 15] = __scalar;
136   return __vec;
137 }
138 
139 static inline __ATTRS_o_ai __vector signed short
vec_insert(signed short __scalar,__vector signed short __vec,int __index)140 vec_insert(signed short __scalar, __vector signed short __vec, int __index) {
141   __vec[__index & 7] = __scalar;
142   return __vec;
143 }
144 
145 // This prototype is deprecated.
146 static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar,__vector __bool short __vec,int __index)147 vec_insert(unsigned short __scalar, __vector __bool short __vec,
148            int __index) {
149   __vector unsigned short __newvec = (__vector unsigned short)__vec;
150   __newvec[__index & 7] = (unsigned short)__scalar;
151   return __newvec;
152 }
153 
154 static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar,__vector unsigned short __vec,int __index)155 vec_insert(unsigned short __scalar, __vector unsigned short __vec,
156            int __index) {
157   __vec[__index & 7] = __scalar;
158   return __vec;
159 }
160 
161 static inline __ATTRS_o_ai __vector signed int
vec_insert(signed int __scalar,__vector signed int __vec,int __index)162 vec_insert(signed int __scalar, __vector signed int __vec, int __index) {
163   __vec[__index & 3] = __scalar;
164   return __vec;
165 }
166 
167 // This prototype is deprecated.
168 static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar,__vector __bool int __vec,int __index)169 vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) {
170   __vector unsigned int __newvec = (__vector unsigned int)__vec;
171   __newvec[__index & 3] = __scalar;
172   return __newvec;
173 }
174 
175 static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar,__vector unsigned int __vec,int __index)176 vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) {
177   __vec[__index & 3] = __scalar;
178   return __vec;
179 }
180 
181 static inline __ATTRS_o_ai __vector signed long long
vec_insert(signed long long __scalar,__vector signed long long __vec,int __index)182 vec_insert(signed long long __scalar, __vector signed long long __vec,
183            int __index) {
184   __vec[__index & 1] = __scalar;
185   return __vec;
186 }
187 
188 // This prototype is deprecated.
189 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert(unsigned long long __scalar,__vector __bool long long __vec,int __index)190 vec_insert(unsigned long long __scalar, __vector __bool long long __vec,
191            int __index) {
192   __vector unsigned long long __newvec = (__vector unsigned long long)__vec;
193   __newvec[__index & 1] = __scalar;
194   return __newvec;
195 }
196 
197 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert(unsigned long long __scalar,__vector unsigned long long __vec,int __index)198 vec_insert(unsigned long long __scalar, __vector unsigned long long __vec,
199            int __index) {
200   __vec[__index & 1] = __scalar;
201   return __vec;
202 }
203 
204 #if __ARCH__ >= 12
205 static inline __ATTRS_o_ai __vector float
vec_insert(float __scalar,__vector float __vec,int __index)206 vec_insert(float __scalar, __vector float __vec, int __index) {
207   __vec[__index & 1] = __scalar;
208   return __vec;
209 }
210 #endif
211 
212 static inline __ATTRS_o_ai __vector double
vec_insert(double __scalar,__vector double __vec,int __index)213 vec_insert(double __scalar, __vector double __vec, int __index) {
214   __vec[__index & 1] = __scalar;
215   return __vec;
216 }
217 
218 /*-- vec_promote ------------------------------------------------------------*/
219 
220 static inline __ATTRS_o_ai __vector signed char
vec_promote(signed char __scalar,int __index)221 vec_promote(signed char __scalar, int __index) {
222   const __vector signed char __zero = (__vector signed char)0;
223   __vector signed char __vec = __builtin_shufflevector(__zero, __zero,
224     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
225   __vec[__index & 15] = __scalar;
226   return __vec;
227 }
228 
229 static inline __ATTRS_o_ai __vector unsigned char
vec_promote(unsigned char __scalar,int __index)230 vec_promote(unsigned char __scalar, int __index) {
231   const __vector unsigned char __zero = (__vector unsigned char)0;
232   __vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
233     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
234   __vec[__index & 15] = __scalar;
235   return __vec;
236 }
237 
238 static inline __ATTRS_o_ai __vector signed short
vec_promote(signed short __scalar,int __index)239 vec_promote(signed short __scalar, int __index) {
240   const __vector signed short __zero = (__vector signed short)0;
241   __vector signed short __vec = __builtin_shufflevector(__zero, __zero,
242                                 -1, -1, -1, -1, -1, -1, -1, -1);
243   __vec[__index & 7] = __scalar;
244   return __vec;
245 }
246 
247 static inline __ATTRS_o_ai __vector unsigned short
vec_promote(unsigned short __scalar,int __index)248 vec_promote(unsigned short __scalar, int __index) {
249   const __vector unsigned short __zero = (__vector unsigned short)0;
250   __vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
251                                   -1, -1, -1, -1, -1, -1, -1, -1);
252   __vec[__index & 7] = __scalar;
253   return __vec;
254 }
255 
256 static inline __ATTRS_o_ai __vector signed int
vec_promote(signed int __scalar,int __index)257 vec_promote(signed int __scalar, int __index) {
258   const __vector signed int __zero = (__vector signed int)0;
259   __vector signed int __vec = __builtin_shufflevector(__zero, __zero,
260                                                       -1, -1, -1, -1);
261   __vec[__index & 3] = __scalar;
262   return __vec;
263 }
264 
265 static inline __ATTRS_o_ai __vector unsigned int
vec_promote(unsigned int __scalar,int __index)266 vec_promote(unsigned int __scalar, int __index) {
267   const __vector unsigned int __zero = (__vector unsigned int)0;
268   __vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
269                                                         -1, -1, -1, -1);
270   __vec[__index & 3] = __scalar;
271   return __vec;
272 }
273 
274 static inline __ATTRS_o_ai __vector signed long long
vec_promote(signed long long __scalar,int __index)275 vec_promote(signed long long __scalar, int __index) {
276   const __vector signed long long __zero = (__vector signed long long)0;
277   __vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
278                                                             -1, -1);
279   __vec[__index & 1] = __scalar;
280   return __vec;
281 }
282 
283 static inline __ATTRS_o_ai __vector unsigned long long
vec_promote(unsigned long long __scalar,int __index)284 vec_promote(unsigned long long __scalar, int __index) {
285   const __vector unsigned long long __zero = (__vector unsigned long long)0;
286   __vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
287                                                               -1, -1);
288   __vec[__index & 1] = __scalar;
289   return __vec;
290 }
291 
292 #if __ARCH__ >= 12
293 static inline __ATTRS_o_ai __vector float
vec_promote(float __scalar,int __index)294 vec_promote(float __scalar, int __index) {
295   const __vector float __zero = (__vector float)0.0f;
296   __vector float __vec = __builtin_shufflevector(__zero, __zero,
297                                                  -1, -1, -1, -1);
298   __vec[__index & 3] = __scalar;
299   return __vec;
300 }
301 #endif
302 
303 static inline __ATTRS_o_ai __vector double
vec_promote(double __scalar,int __index)304 vec_promote(double __scalar, int __index) {
305   const __vector double __zero = (__vector double)0.0;
306   __vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
307   __vec[__index & 1] = __scalar;
308   return __vec;
309 }
310 
311 /*-- vec_insert_and_zero ----------------------------------------------------*/
312 
313 static inline __ATTRS_o_ai __vector signed char
vec_insert_and_zero(const signed char * __ptr)314 vec_insert_and_zero(const signed char *__ptr) {
315   __vector signed char __vec = (__vector signed char)0;
316   __vec[7] = *__ptr;
317   return __vec;
318 }
319 
320 static inline __ATTRS_o_ai __vector unsigned char
vec_insert_and_zero(const unsigned char * __ptr)321 vec_insert_and_zero(const unsigned char *__ptr) {
322   __vector unsigned char __vec = (__vector unsigned char)0;
323   __vec[7] = *__ptr;
324   return __vec;
325 }
326 
327 static inline __ATTRS_o_ai __vector signed short
vec_insert_and_zero(const signed short * __ptr)328 vec_insert_and_zero(const signed short *__ptr) {
329   __vector signed short __vec = (__vector signed short)0;
330   __vec[3] = *__ptr;
331   return __vec;
332 }
333 
334 static inline __ATTRS_o_ai __vector unsigned short
vec_insert_and_zero(const unsigned short * __ptr)335 vec_insert_and_zero(const unsigned short *__ptr) {
336   __vector unsigned short __vec = (__vector unsigned short)0;
337   __vec[3] = *__ptr;
338   return __vec;
339 }
340 
341 static inline __ATTRS_o_ai __vector signed int
vec_insert_and_zero(const signed int * __ptr)342 vec_insert_and_zero(const signed int *__ptr) {
343   __vector signed int __vec = (__vector signed int)0;
344   __vec[1] = *__ptr;
345   return __vec;
346 }
347 
348 static inline __ATTRS_o_ai __vector unsigned int
vec_insert_and_zero(const unsigned int * __ptr)349 vec_insert_and_zero(const unsigned int *__ptr) {
350   __vector unsigned int __vec = (__vector unsigned int)0;
351   __vec[1] = *__ptr;
352   return __vec;
353 }
354 
355 static inline __ATTRS_o_ai __vector signed long long
vec_insert_and_zero(const signed long long * __ptr)356 vec_insert_and_zero(const signed long long *__ptr) {
357   __vector signed long long __vec = (__vector signed long long)0;
358   __vec[0] = *__ptr;
359   return __vec;
360 }
361 
362 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert_and_zero(const unsigned long long * __ptr)363 vec_insert_and_zero(const unsigned long long *__ptr) {
364   __vector unsigned long long __vec = (__vector unsigned long long)0;
365   __vec[0] = *__ptr;
366   return __vec;
367 }
368 
369 #if __ARCH__ >= 12
370 static inline __ATTRS_o_ai __vector float
vec_insert_and_zero(const float * __ptr)371 vec_insert_and_zero(const float *__ptr) {
372   __vector float __vec = (__vector float)0.0f;
373   __vec[1] = *__ptr;
374   return __vec;
375 }
376 #endif
377 
378 static inline __ATTRS_o_ai __vector double
vec_insert_and_zero(const double * __ptr)379 vec_insert_and_zero(const double *__ptr) {
380   __vector double __vec = (__vector double)0.0;
381   __vec[0] = *__ptr;
382   return __vec;
383 }
384 
385 /*-- vec_perm ---------------------------------------------------------------*/
386 
387 static inline __ATTRS_o_ai __vector signed char
vec_perm(__vector signed char __a,__vector signed char __b,__vector unsigned char __c)388 vec_perm(__vector signed char __a, __vector signed char __b,
389          __vector unsigned char __c) {
390   return (__vector signed char)__builtin_s390_vperm(
391            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
392 }
393 
394 static inline __ATTRS_o_ai __vector unsigned char
vec_perm(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)395 vec_perm(__vector unsigned char __a, __vector unsigned char __b,
396          __vector unsigned char __c) {
397   return (__vector unsigned char)__builtin_s390_vperm(
398            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
399 }
400 
401 static inline __ATTRS_o_ai __vector __bool char
vec_perm(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c)402 vec_perm(__vector __bool char __a, __vector __bool char __b,
403          __vector unsigned char __c) {
404   return (__vector __bool char)__builtin_s390_vperm(
405            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
406 }
407 
408 static inline __ATTRS_o_ai __vector signed short
vec_perm(__vector signed short __a,__vector signed short __b,__vector unsigned char __c)409 vec_perm(__vector signed short __a, __vector signed short __b,
410          __vector unsigned char __c) {
411   return (__vector signed short)__builtin_s390_vperm(
412            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
413 }
414 
415 static inline __ATTRS_o_ai __vector unsigned short
vec_perm(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned char __c)416 vec_perm(__vector unsigned short __a, __vector unsigned short __b,
417          __vector unsigned char __c) {
418   return (__vector unsigned short)__builtin_s390_vperm(
419            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
420 }
421 
422 static inline __ATTRS_o_ai __vector __bool short
vec_perm(__vector __bool short __a,__vector __bool short __b,__vector unsigned char __c)423 vec_perm(__vector __bool short __a, __vector __bool short __b,
424          __vector unsigned char __c) {
425   return (__vector __bool short)__builtin_s390_vperm(
426            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
427 }
428 
429 static inline __ATTRS_o_ai __vector signed int
vec_perm(__vector signed int __a,__vector signed int __b,__vector unsigned char __c)430 vec_perm(__vector signed int __a, __vector signed int __b,
431          __vector unsigned char __c) {
432   return (__vector signed int)__builtin_s390_vperm(
433            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
434 }
435 
436 static inline __ATTRS_o_ai __vector unsigned int
vec_perm(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned char __c)437 vec_perm(__vector unsigned int __a, __vector unsigned int __b,
438          __vector unsigned char __c) {
439   return (__vector unsigned int)__builtin_s390_vperm(
440            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
441 }
442 
443 static inline __ATTRS_o_ai __vector __bool int
vec_perm(__vector __bool int __a,__vector __bool int __b,__vector unsigned char __c)444 vec_perm(__vector __bool int __a, __vector __bool int __b,
445          __vector unsigned char __c) {
446   return (__vector __bool int)__builtin_s390_vperm(
447            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
448 }
449 
450 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 vec_perm(__vector signed long long __a, __vector signed long long __b,
452          __vector unsigned char __c) {
453   return (__vector signed long long)__builtin_s390_vperm(
454            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
455 }
456 
457 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 vec_perm(__vector unsigned long long __a, __vector unsigned long long __b,
459          __vector unsigned char __c) {
460   return (__vector unsigned long long)__builtin_s390_vperm(
461            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
462 }
463 
464 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 vec_perm(__vector __bool long long __a, __vector __bool long long __b,
466          __vector unsigned char __c) {
467   return (__vector __bool long long)__builtin_s390_vperm(
468            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
469 }
470 
471 #if __ARCH__ >= 12
472 static inline __ATTRS_o_ai __vector float
vec_perm(__vector float __a,__vector float __b,__vector unsigned char __c)473 vec_perm(__vector float __a, __vector float __b,
474          __vector unsigned char __c) {
475   return (__vector float)__builtin_s390_vperm(
476            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
477 }
478 #endif
479 
480 static inline __ATTRS_o_ai __vector double
vec_perm(__vector double __a,__vector double __b,__vector unsigned char __c)481 vec_perm(__vector double __a, __vector double __b,
482          __vector unsigned char __c) {
483   return (__vector double)__builtin_s390_vperm(
484            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
485 }
486 
487 /*-- vec_permi --------------------------------------------------------------*/
488 
489 // This prototype is deprecated.
490 extern __ATTRS_o __vector signed long long
491 vec_permi(__vector signed long long __a, __vector signed long long __b,
492           int __c)
493   __constant_range(__c, 0, 3);
494 
495 // This prototype is deprecated.
496 extern __ATTRS_o __vector unsigned long long
497 vec_permi(__vector unsigned long long __a, __vector unsigned long long __b,
498           int __c)
499   __constant_range(__c, 0, 3);
500 
501 // This prototype is deprecated.
502 extern __ATTRS_o __vector __bool long long
503 vec_permi(__vector __bool long long __a, __vector __bool long long __b,
504           int __c)
505   __constant_range(__c, 0, 3);
506 
507 // This prototype is deprecated.
508 extern __ATTRS_o __vector double
509 vec_permi(__vector double __a, __vector double __b, int __c)
510   __constant_range(__c, 0, 3);
511 
512 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
513   __builtin_s390_vpdi((__vector unsigned long long)(X), \
514                       (__vector unsigned long long)(Y), \
515                       (((Z) & 2) << 1) | ((Z) & 1)))
516 
517 /*-- vec_bperm_u128 ---------------------------------------------------------*/
518 
519 #if __ARCH__ >= 12
520 static inline __ATTRS_ai __vector unsigned long long
vec_bperm_u128(__vector unsigned char __a,__vector unsigned char __b)521 vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {
522   return __builtin_s390_vbperm(__a, __b);
523 }
524 #endif
525 
526 /*-- vec_revb ---------------------------------------------------------------*/
527 
528 static inline __ATTRS_o_ai __vector signed short
vec_revb(__vector signed short __vec)529 vec_revb(__vector signed short __vec) {
530   return (__vector signed short)
531          __builtin_s390_vlbrh((__vector unsigned short)__vec);
532 }
533 
534 static inline __ATTRS_o_ai __vector unsigned short
vec_revb(__vector unsigned short __vec)535 vec_revb(__vector unsigned short __vec) {
536   return __builtin_s390_vlbrh(__vec);
537 }
538 
539 static inline __ATTRS_o_ai __vector signed int
vec_revb(__vector signed int __vec)540 vec_revb(__vector signed int __vec) {
541   return (__vector signed int)
542          __builtin_s390_vlbrf((__vector unsigned int)__vec);
543 }
544 
545 static inline __ATTRS_o_ai __vector unsigned int
vec_revb(__vector unsigned int __vec)546 vec_revb(__vector unsigned int __vec) {
547   return __builtin_s390_vlbrf(__vec);
548 }
549 
550 static inline __ATTRS_o_ai __vector signed long long
vec_revb(__vector signed long long __vec)551 vec_revb(__vector signed long long __vec) {
552   return (__vector signed long long)
553          __builtin_s390_vlbrg((__vector unsigned long long)__vec);
554 }
555 
556 static inline __ATTRS_o_ai __vector unsigned long long
vec_revb(__vector unsigned long long __vec)557 vec_revb(__vector unsigned long long __vec) {
558   return __builtin_s390_vlbrg(__vec);
559 }
560 
561 #if __ARCH__ >= 12
562 static inline __ATTRS_o_ai __vector float
vec_revb(__vector float __vec)563 vec_revb(__vector float __vec) {
564   return (__vector float)
565          __builtin_s390_vlbrf((__vector unsigned int)__vec);
566 }
567 #endif
568 
569 static inline __ATTRS_o_ai __vector double
vec_revb(__vector double __vec)570 vec_revb(__vector double __vec) {
571   return (__vector double)
572          __builtin_s390_vlbrg((__vector unsigned long long)__vec);
573 }
574 
575 /*-- vec_reve ---------------------------------------------------------------*/
576 
577 static inline __ATTRS_o_ai __vector signed char
vec_reve(__vector signed char __vec)578 vec_reve(__vector signed char __vec) {
579   return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
580                                   __vec[11], __vec[10], __vec[9], __vec[8],
581                                   __vec[7], __vec[6], __vec[5], __vec[4],
582                                   __vec[3], __vec[2], __vec[1], __vec[0] };
583 }
584 
585 static inline __ATTRS_o_ai __vector unsigned char
vec_reve(__vector unsigned char __vec)586 vec_reve(__vector unsigned char __vec) {
587   return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
588                                     __vec[11], __vec[10], __vec[9], __vec[8],
589                                     __vec[7], __vec[6], __vec[5], __vec[4],
590                                     __vec[3], __vec[2], __vec[1], __vec[0] };
591 }
592 
593 static inline __ATTRS_o_ai __vector __bool char
vec_reve(__vector __bool char __vec)594 vec_reve(__vector __bool char __vec) {
595   return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
596                                   __vec[11], __vec[10], __vec[9], __vec[8],
597                                   __vec[7], __vec[6], __vec[5], __vec[4],
598                                   __vec[3], __vec[2], __vec[1], __vec[0] };
599 }
600 
601 static inline __ATTRS_o_ai __vector signed short
vec_reve(__vector signed short __vec)602 vec_reve(__vector signed short __vec) {
603   return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
604                                    __vec[3], __vec[2], __vec[1], __vec[0] };
605 }
606 
607 static inline __ATTRS_o_ai __vector unsigned short
vec_reve(__vector unsigned short __vec)608 vec_reve(__vector unsigned short __vec) {
609   return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
610                                      __vec[3], __vec[2], __vec[1], __vec[0] };
611 }
612 
613 static inline __ATTRS_o_ai __vector __bool short
vec_reve(__vector __bool short __vec)614 vec_reve(__vector __bool short __vec) {
615   return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
616                                    __vec[3], __vec[2], __vec[1], __vec[0] };
617 }
618 
619 static inline __ATTRS_o_ai __vector signed int
vec_reve(__vector signed int __vec)620 vec_reve(__vector signed int __vec) {
621   return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
622 }
623 
624 static inline __ATTRS_o_ai __vector unsigned int
vec_reve(__vector unsigned int __vec)625 vec_reve(__vector unsigned int __vec) {
626   return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
627 }
628 
629 static inline __ATTRS_o_ai __vector __bool int
vec_reve(__vector __bool int __vec)630 vec_reve(__vector __bool int __vec) {
631   return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
632 }
633 
634 static inline __ATTRS_o_ai __vector signed long long
vec_reve(__vector signed long long __vec)635 vec_reve(__vector signed long long __vec) {
636   return (__vector signed long long) { __vec[1], __vec[0] };
637 }
638 
639 static inline __ATTRS_o_ai __vector unsigned long long
vec_reve(__vector unsigned long long __vec)640 vec_reve(__vector unsigned long long __vec) {
641   return (__vector unsigned long long) { __vec[1], __vec[0] };
642 }
643 
644 static inline __ATTRS_o_ai __vector __bool long long
vec_reve(__vector __bool long long __vec)645 vec_reve(__vector __bool long long __vec) {
646   return (__vector __bool long long) { __vec[1], __vec[0] };
647 }
648 
649 #if __ARCH__ >= 12
650 static inline __ATTRS_o_ai __vector float
vec_reve(__vector float __vec)651 vec_reve(__vector float __vec) {
652   return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
653 }
654 #endif
655 
656 static inline __ATTRS_o_ai __vector double
vec_reve(__vector double __vec)657 vec_reve(__vector double __vec) {
658   return (__vector double) { __vec[1], __vec[0] };
659 }
660 
661 /*-- vec_sel ----------------------------------------------------------------*/
662 
663 static inline __ATTRS_o_ai __vector signed char
vec_sel(__vector signed char __a,__vector signed char __b,__vector unsigned char __c)664 vec_sel(__vector signed char __a, __vector signed char __b,
665         __vector unsigned char __c) {
666   return (((__vector signed char)__c & __b) |
667           (~(__vector signed char)__c & __a));
668 }
669 
670 static inline __ATTRS_o_ai __vector signed char
vec_sel(__vector signed char __a,__vector signed char __b,__vector __bool char __c)671 vec_sel(__vector signed char __a, __vector signed char __b,
672         __vector __bool char __c) {
673   return (((__vector signed char)__c & __b) |
674           (~(__vector signed char)__c & __a));
675 }
676 
677 static inline __ATTRS_o_ai __vector __bool char
vec_sel(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c)678 vec_sel(__vector __bool char __a, __vector __bool char __b,
679         __vector unsigned char __c) {
680   return (((__vector __bool char)__c & __b) |
681           (~(__vector __bool char)__c & __a));
682 }
683 
684 static inline __ATTRS_o_ai __vector __bool char
vec_sel(__vector __bool char __a,__vector __bool char __b,__vector __bool char __c)685 vec_sel(__vector __bool char __a, __vector __bool char __b,
686         __vector __bool char __c) {
687   return (__c & __b) | (~__c & __a);
688 }
689 
690 static inline __ATTRS_o_ai __vector unsigned char
vec_sel(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)691 vec_sel(__vector unsigned char __a, __vector unsigned char __b,
692         __vector unsigned char __c) {
693   return (__c & __b) | (~__c & __a);
694 }
695 
696 static inline __ATTRS_o_ai __vector unsigned char
vec_sel(__vector unsigned char __a,__vector unsigned char __b,__vector __bool char __c)697 vec_sel(__vector unsigned char __a, __vector unsigned char __b,
698         __vector __bool char __c) {
699   return (((__vector unsigned char)__c & __b) |
700           (~(__vector unsigned char)__c & __a));
701 }
702 
703 static inline __ATTRS_o_ai __vector signed short
vec_sel(__vector signed short __a,__vector signed short __b,__vector unsigned short __c)704 vec_sel(__vector signed short __a, __vector signed short __b,
705         __vector unsigned short __c) {
706   return (((__vector signed short)__c & __b) |
707           (~(__vector signed short)__c & __a));
708 }
709 
710 static inline __ATTRS_o_ai __vector signed short
vec_sel(__vector signed short __a,__vector signed short __b,__vector __bool short __c)711 vec_sel(__vector signed short __a, __vector signed short __b,
712         __vector __bool short __c) {
713   return (((__vector signed short)__c & __b) |
714           (~(__vector signed short)__c & __a));
715 }
716 
717 static inline __ATTRS_o_ai __vector __bool short
vec_sel(__vector __bool short __a,__vector __bool short __b,__vector unsigned short __c)718 vec_sel(__vector __bool short __a, __vector __bool short __b,
719         __vector unsigned short __c) {
720   return (((__vector __bool short)__c & __b) |
721           (~(__vector __bool short)__c & __a));
722 }
723 
724 static inline __ATTRS_o_ai __vector __bool short
vec_sel(__vector __bool short __a,__vector __bool short __b,__vector __bool short __c)725 vec_sel(__vector __bool short __a, __vector __bool short __b,
726         __vector __bool short __c) {
727   return (__c & __b) | (~__c & __a);
728 }
729 
730 static inline __ATTRS_o_ai __vector unsigned short
vec_sel(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)731 vec_sel(__vector unsigned short __a, __vector unsigned short __b,
732         __vector unsigned short __c) {
733   return (__c & __b) | (~__c & __a);
734 }
735 
736 static inline __ATTRS_o_ai __vector unsigned short
vec_sel(__vector unsigned short __a,__vector unsigned short __b,__vector __bool short __c)737 vec_sel(__vector unsigned short __a, __vector unsigned short __b,
738         __vector __bool short __c) {
739   return (((__vector unsigned short)__c & __b) |
740           (~(__vector unsigned short)__c & __a));
741 }
742 
743 static inline __ATTRS_o_ai __vector signed int
vec_sel(__vector signed int __a,__vector signed int __b,__vector unsigned int __c)744 vec_sel(__vector signed int __a, __vector signed int __b,
745         __vector unsigned int __c) {
746   return (((__vector signed int)__c & __b) |
747           (~(__vector signed int)__c & __a));
748 }
749 
750 static inline __ATTRS_o_ai __vector signed int
vec_sel(__vector signed int __a,__vector signed int __b,__vector __bool int __c)751 vec_sel(__vector signed int __a, __vector signed int __b,
752         __vector __bool int __c) {
753   return (((__vector signed int)__c & __b) |
754           (~(__vector signed int)__c & __a));
755 }
756 
757 static inline __ATTRS_o_ai __vector __bool int
vec_sel(__vector __bool int __a,__vector __bool int __b,__vector unsigned int __c)758 vec_sel(__vector __bool int __a, __vector __bool int __b,
759         __vector unsigned int __c) {
760   return (((__vector __bool int)__c & __b) |
761           (~(__vector __bool int)__c & __a));
762 }
763 
764 static inline __ATTRS_o_ai __vector __bool int
vec_sel(__vector __bool int __a,__vector __bool int __b,__vector __bool int __c)765 vec_sel(__vector __bool int __a, __vector __bool int __b,
766         __vector __bool int __c) {
767   return (__c & __b) | (~__c & __a);
768 }
769 
770 static inline __ATTRS_o_ai __vector unsigned int
vec_sel(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)771 vec_sel(__vector unsigned int __a, __vector unsigned int __b,
772         __vector unsigned int __c) {
773   return (__c & __b) | (~__c & __a);
774 }
775 
776 static inline __ATTRS_o_ai __vector unsigned int
vec_sel(__vector unsigned int __a,__vector unsigned int __b,__vector __bool int __c)777 vec_sel(__vector unsigned int __a, __vector unsigned int __b,
778         __vector __bool int __c) {
779   return (((__vector unsigned int)__c & __b) |
780           (~(__vector unsigned int)__c & __a));
781 }
782 
783 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 vec_sel(__vector signed long long __a, __vector signed long long __b,
785         __vector unsigned long long __c) {
786   return (((__vector signed long long)__c & __b) |
787           (~(__vector signed long long)__c & __a));
788 }
789 
790 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 vec_sel(__vector signed long long __a, __vector signed long long __b,
792         __vector __bool long long __c) {
793   return (((__vector signed long long)__c & __b) |
794           (~(__vector signed long long)__c & __a));
795 }
796 
797 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 vec_sel(__vector __bool long long __a, __vector __bool long long __b,
799         __vector unsigned long long __c) {
800   return (((__vector __bool long long)__c & __b) |
801           (~(__vector __bool long long)__c & __a));
802 }
803 
804 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 vec_sel(__vector __bool long long __a, __vector __bool long long __b,
806         __vector __bool long long __c) {
807   return (__c & __b) | (~__c & __a);
808 }
809 
810 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 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
812         __vector unsigned long long __c) {
813   return (__c & __b) | (~__c & __a);
814 }
815 
816 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 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
818         __vector __bool long long __c) {
819   return (((__vector unsigned long long)__c & __b) |
820           (~(__vector unsigned long long)__c & __a));
821 }
822 
823 #if __ARCH__ >= 12
824 static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a,__vector float __b,__vector unsigned int __c)825 vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {
826   return (__vector float)((__c & (__vector unsigned int)__b) |
827                           (~__c & (__vector unsigned int)__a));
828 }
829 
830 static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a,__vector float __b,__vector __bool int __c)831 vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) {
832   __vector unsigned int __ac = (__vector unsigned int)__a;
833   __vector unsigned int __bc = (__vector unsigned int)__b;
834   __vector unsigned int __cc = (__vector unsigned int)__c;
835   return (__vector float)((__cc & __bc) | (~__cc & __ac));
836 }
837 #endif
838 
839 static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a,__vector double __b,__vector unsigned long long __c)840 vec_sel(__vector double __a, __vector double __b,
841         __vector unsigned long long __c) {
842   return (__vector double)((__c & (__vector unsigned long long)__b) |
843                          (~__c & (__vector unsigned long long)__a));
844 }
845 
846 static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a,__vector double __b,__vector __bool long long __c)847 vec_sel(__vector double __a, __vector double __b,
848         __vector __bool long long __c) {
849   __vector unsigned long long __ac = (__vector unsigned long long)__a;
850   __vector unsigned long long __bc = (__vector unsigned long long)__b;
851   __vector unsigned long long __cc = (__vector unsigned long long)__c;
852   return (__vector double)((__cc & __bc) | (~__cc & __ac));
853 }
854 
855 /*-- vec_gather_element -----------------------------------------------------*/
856 
857 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 vec_gather_element(__vector signed int __vec,
859                    __vector unsigned int __offset,
860                    const signed int *__ptr, int __index)
861   __constant_range(__index, 0, 3) {
862   __vec[__index] = *(const signed int *)(
863     (const char *)__ptr + __offset[__index]);
864   return __vec;
865 }
866 
867 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 vec_gather_element(__vector __bool int __vec,
869                    __vector unsigned int __offset,
870                    const unsigned int *__ptr, int __index)
871   __constant_range(__index, 0, 3) {
872   __vec[__index] = *(const unsigned int *)(
873     (const char *)__ptr + __offset[__index]);
874   return __vec;
875 }
876 
877 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 vec_gather_element(__vector unsigned int __vec,
879                    __vector unsigned int __offset,
880                    const unsigned int *__ptr, int __index)
881   __constant_range(__index, 0, 3) {
882   __vec[__index] = *(const unsigned int *)(
883     (const char *)__ptr + __offset[__index]);
884   return __vec;
885 }
886 
887 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 vec_gather_element(__vector signed long long __vec,
889                    __vector unsigned long long __offset,
890                    const signed long long *__ptr, int __index)
891   __constant_range(__index, 0, 1) {
892   __vec[__index] = *(const signed long long *)(
893     (const char *)__ptr + __offset[__index]);
894   return __vec;
895 }
896 
897 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 vec_gather_element(__vector __bool long long __vec,
899                    __vector unsigned long long __offset,
900                    const unsigned long long *__ptr, int __index)
901   __constant_range(__index, 0, 1) {
902   __vec[__index] = *(const unsigned long long *)(
903     (const char *)__ptr + __offset[__index]);
904   return __vec;
905 }
906 
907 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 vec_gather_element(__vector unsigned long long __vec,
909                    __vector unsigned long long __offset,
910                    const unsigned long long *__ptr, int __index)
911   __constant_range(__index, 0, 1) {
912   __vec[__index] = *(const unsigned long long *)(
913     (const char *)__ptr + __offset[__index]);
914   return __vec;
915 }
916 
917 #if __ARCH__ >= 12
918 static inline __ATTRS_o_ai __vector float
vec_gather_element(__vector float __vec,__vector unsigned int __offset,const float * __ptr,int __index)919 vec_gather_element(__vector float __vec,
920                    __vector unsigned int __offset,
921                    const float *__ptr, int __index)
922   __constant_range(__index, 0, 3) {
923   __vec[__index] = *(const float *)(
924     (const char *)__ptr + __offset[__index]);
925   return __vec;
926 }
927 #endif
928 
929 static inline __ATTRS_o_ai __vector double
vec_gather_element(__vector double __vec,__vector unsigned long long __offset,const double * __ptr,int __index)930 vec_gather_element(__vector double __vec,
931                    __vector unsigned long long __offset,
932                    const double *__ptr, int __index)
933   __constant_range(__index, 0, 1) {
934   __vec[__index] = *(const double *)(
935     (const char *)__ptr + __offset[__index]);
936   return __vec;
937 }
938 
939 /*-- vec_scatter_element ----------------------------------------------------*/
940 
941 static inline __ATTRS_o_ai void
vec_scatter_element(__vector signed int __vec,__vector unsigned int __offset,signed int * __ptr,int __index)942 vec_scatter_element(__vector signed int __vec,
943                     __vector unsigned int __offset,
944                     signed int *__ptr, int __index)
945   __constant_range(__index, 0, 3) {
946   *(signed int *)((char *)__ptr + __offset[__index]) =
947     __vec[__index];
948 }
949 
950 static inline __ATTRS_o_ai void
vec_scatter_element(__vector __bool int __vec,__vector unsigned int __offset,unsigned int * __ptr,int __index)951 vec_scatter_element(__vector __bool int __vec,
952                     __vector unsigned int __offset,
953                     unsigned int *__ptr, int __index)
954   __constant_range(__index, 0, 3) {
955   *(unsigned int *)((char *)__ptr + __offset[__index]) =
956     __vec[__index];
957 }
958 
959 static inline __ATTRS_o_ai void
vec_scatter_element(__vector unsigned int __vec,__vector unsigned int __offset,unsigned int * __ptr,int __index)960 vec_scatter_element(__vector unsigned int __vec,
961                     __vector unsigned int __offset,
962                     unsigned int *__ptr, int __index)
963   __constant_range(__index, 0, 3) {
964   *(unsigned int *)((char *)__ptr + __offset[__index]) =
965     __vec[__index];
966 }
967 
968 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 vec_scatter_element(__vector signed long long __vec,
970                     __vector unsigned long long __offset,
971                     signed long long *__ptr, int __index)
972   __constant_range(__index, 0, 1) {
973   *(signed long long *)((char *)__ptr + __offset[__index]) =
974     __vec[__index];
975 }
976 
977 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 vec_scatter_element(__vector __bool long long __vec,
979                     __vector unsigned long long __offset,
980                     unsigned long long *__ptr, int __index)
981   __constant_range(__index, 0, 1) {
982   *(unsigned long long *)((char *)__ptr + __offset[__index]) =
983     __vec[__index];
984 }
985 
986 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 vec_scatter_element(__vector unsigned long long __vec,
988                     __vector unsigned long long __offset,
989                     unsigned long long *__ptr, int __index)
990   __constant_range(__index, 0, 1) {
991   *(unsigned long long *)((char *)__ptr + __offset[__index]) =
992     __vec[__index];
993 }
994 
995 #if __ARCH__ >= 12
996 static inline __ATTRS_o_ai void
vec_scatter_element(__vector float __vec,__vector unsigned int __offset,float * __ptr,int __index)997 vec_scatter_element(__vector float __vec,
998                     __vector unsigned int __offset,
999                     float *__ptr, int __index)
1000   __constant_range(__index, 0, 3) {
1001   *(float *)((char *)__ptr + __offset[__index]) =
1002     __vec[__index];
1003 }
1004 #endif
1005 
1006 static inline __ATTRS_o_ai void
vec_scatter_element(__vector double __vec,__vector unsigned long long __offset,double * __ptr,int __index)1007 vec_scatter_element(__vector double __vec,
1008                     __vector unsigned long long __offset,
1009                     double *__ptr, int __index)
1010   __constant_range(__index, 0, 1) {
1011   *(double *)((char *)__ptr + __offset[__index]) =
1012     __vec[__index];
1013 }
1014 
1015 /*-- vec_xl -----------------------------------------------------------------*/
1016 
1017 static inline __ATTRS_o_ai __vector signed char
vec_xl(long __offset,const signed char * __ptr)1018 vec_xl(long __offset, const signed char *__ptr) {
1019   __vector signed char V;
1020   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1021                    sizeof(__vector signed char));
1022   return V;
1023 }
1024 
1025 static inline __ATTRS_o_ai __vector unsigned char
vec_xl(long __offset,const unsigned char * __ptr)1026 vec_xl(long __offset, const unsigned char *__ptr) {
1027   __vector unsigned char V;
1028   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1029                    sizeof(__vector unsigned char));
1030   return V;
1031 }
1032 
1033 static inline __ATTRS_o_ai __vector signed short
vec_xl(long __offset,const signed short * __ptr)1034 vec_xl(long __offset, const signed short *__ptr) {
1035   __vector signed short V;
1036   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1037                    sizeof(__vector signed short));
1038   return V;
1039 }
1040 
1041 static inline __ATTRS_o_ai __vector unsigned short
vec_xl(long __offset,const unsigned short * __ptr)1042 vec_xl(long __offset, const unsigned short *__ptr) {
1043   __vector unsigned short V;
1044   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1045                    sizeof(__vector unsigned short));
1046   return V;
1047 }
1048 
1049 static inline __ATTRS_o_ai __vector signed int
vec_xl(long __offset,const signed int * __ptr)1050 vec_xl(long __offset, const signed int *__ptr) {
1051   __vector signed int V;
1052   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1053                    sizeof(__vector signed int));
1054   return V;
1055 }
1056 
1057 static inline __ATTRS_o_ai __vector unsigned int
vec_xl(long __offset,const unsigned int * __ptr)1058 vec_xl(long __offset, const unsigned int *__ptr) {
1059   __vector unsigned int V;
1060   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1061                    sizeof(__vector unsigned int));
1062   return V;
1063 }
1064 
1065 static inline __ATTRS_o_ai __vector signed long long
vec_xl(long __offset,const signed long long * __ptr)1066 vec_xl(long __offset, const signed long long *__ptr) {
1067   __vector signed long long V;
1068   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1069                    sizeof(__vector signed long long));
1070   return V;
1071 }
1072 
1073 static inline __ATTRS_o_ai __vector unsigned long long
vec_xl(long __offset,const unsigned long long * __ptr)1074 vec_xl(long __offset, const unsigned long long *__ptr) {
1075   __vector unsigned long long V;
1076   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1077                    sizeof(__vector unsigned long long));
1078   return V;
1079 }
1080 
1081 #if __ARCH__ >= 12
1082 static inline __ATTRS_o_ai __vector float
vec_xl(long __offset,const float * __ptr)1083 vec_xl(long __offset, const float *__ptr) {
1084   __vector float V;
1085   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1086                    sizeof(__vector float));
1087   return V;
1088 }
1089 #endif
1090 
1091 static inline __ATTRS_o_ai __vector double
vec_xl(long __offset,const double * __ptr)1092 vec_xl(long __offset, const double *__ptr) {
1093   __vector double V;
1094   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1095                    sizeof(__vector double));
1096   return V;
1097 }
1098 
1099 /*-- vec_xld2 ---------------------------------------------------------------*/
1100 
1101 // This prototype is deprecated.
1102 static inline __ATTRS_o_ai __vector signed char
vec_xld2(long __offset,const signed char * __ptr)1103 vec_xld2(long __offset, const signed char *__ptr) {
1104   __vector signed char V;
1105   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1106                    sizeof(__vector signed char));
1107   return V;
1108 }
1109 
1110 // This prototype is deprecated.
1111 static inline __ATTRS_o_ai __vector unsigned char
vec_xld2(long __offset,const unsigned char * __ptr)1112 vec_xld2(long __offset, const unsigned char *__ptr) {
1113   __vector unsigned char V;
1114   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1115                    sizeof(__vector unsigned char));
1116   return V;
1117 }
1118 
1119 // This prototype is deprecated.
1120 static inline __ATTRS_o_ai __vector signed short
vec_xld2(long __offset,const signed short * __ptr)1121 vec_xld2(long __offset, const signed short *__ptr) {
1122   __vector signed short V;
1123   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1124                    sizeof(__vector signed short));
1125   return V;
1126 }
1127 
1128 // This prototype is deprecated.
1129 static inline __ATTRS_o_ai __vector unsigned short
vec_xld2(long __offset,const unsigned short * __ptr)1130 vec_xld2(long __offset, const unsigned short *__ptr) {
1131   __vector unsigned short V;
1132   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1133                    sizeof(__vector unsigned short));
1134   return V;
1135 }
1136 
1137 // This prototype is deprecated.
1138 static inline __ATTRS_o_ai __vector signed int
vec_xld2(long __offset,const signed int * __ptr)1139 vec_xld2(long __offset, const signed int *__ptr) {
1140   __vector signed int V;
1141   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1142                    sizeof(__vector signed int));
1143   return V;
1144 }
1145 
1146 // This prototype is deprecated.
1147 static inline __ATTRS_o_ai __vector unsigned int
vec_xld2(long __offset,const unsigned int * __ptr)1148 vec_xld2(long __offset, const unsigned int *__ptr) {
1149   __vector unsigned int V;
1150   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1151                    sizeof(__vector unsigned int));
1152   return V;
1153 }
1154 
1155 // This prototype is deprecated.
1156 static inline __ATTRS_o_ai __vector signed long long
vec_xld2(long __offset,const signed long long * __ptr)1157 vec_xld2(long __offset, const signed long long *__ptr) {
1158   __vector signed long long V;
1159   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1160                    sizeof(__vector signed long long));
1161   return V;
1162 }
1163 
1164 // This prototype is deprecated.
1165 static inline __ATTRS_o_ai __vector unsigned long long
vec_xld2(long __offset,const unsigned long long * __ptr)1166 vec_xld2(long __offset, const unsigned long long *__ptr) {
1167   __vector unsigned long long V;
1168   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1169                    sizeof(__vector unsigned long long));
1170   return V;
1171 }
1172 
1173 // This prototype is deprecated.
1174 static inline __ATTRS_o_ai __vector double
vec_xld2(long __offset,const double * __ptr)1175 vec_xld2(long __offset, const double *__ptr) {
1176   __vector double V;
1177   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1178                    sizeof(__vector double));
1179   return V;
1180 }
1181 
1182 /*-- vec_xlw4 ---------------------------------------------------------------*/
1183 
1184 // This prototype is deprecated.
1185 static inline __ATTRS_o_ai __vector signed char
vec_xlw4(long __offset,const signed char * __ptr)1186 vec_xlw4(long __offset, const signed char *__ptr) {
1187   __vector signed char V;
1188   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1189                    sizeof(__vector signed char));
1190   return V;
1191 }
1192 
1193 // This prototype is deprecated.
1194 static inline __ATTRS_o_ai __vector unsigned char
vec_xlw4(long __offset,const unsigned char * __ptr)1195 vec_xlw4(long __offset, const unsigned char *__ptr) {
1196   __vector unsigned char V;
1197   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1198                    sizeof(__vector unsigned char));
1199   return V;
1200 }
1201 
1202 // This prototype is deprecated.
1203 static inline __ATTRS_o_ai __vector signed short
vec_xlw4(long __offset,const signed short * __ptr)1204 vec_xlw4(long __offset, const signed short *__ptr) {
1205   __vector signed short V;
1206   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1207                    sizeof(__vector signed short));
1208   return V;
1209 }
1210 
1211 // This prototype is deprecated.
1212 static inline __ATTRS_o_ai __vector unsigned short
vec_xlw4(long __offset,const unsigned short * __ptr)1213 vec_xlw4(long __offset, const unsigned short *__ptr) {
1214   __vector unsigned short V;
1215   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1216                    sizeof(__vector unsigned short));
1217   return V;
1218 }
1219 
1220 // This prototype is deprecated.
1221 static inline __ATTRS_o_ai __vector signed int
vec_xlw4(long __offset,const signed int * __ptr)1222 vec_xlw4(long __offset, const signed int *__ptr) {
1223   __vector signed int V;
1224   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1225                    sizeof(__vector signed int));
1226   return V;
1227 }
1228 
1229 // This prototype is deprecated.
1230 static inline __ATTRS_o_ai __vector unsigned int
vec_xlw4(long __offset,const unsigned int * __ptr)1231 vec_xlw4(long __offset, const unsigned int *__ptr) {
1232   __vector unsigned int V;
1233   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1234                    sizeof(__vector unsigned int));
1235   return V;
1236 }
1237 
1238 /*-- vec_xst ----------------------------------------------------------------*/
1239 
1240 static inline __ATTRS_o_ai void
vec_xst(__vector signed char __vec,long __offset,signed char * __ptr)1241 vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {
1242   __vector signed char V = __vec;
1243   __builtin_memcpy(((char *)__ptr + __offset), &V,
1244                    sizeof(__vector signed char));
1245 }
1246 
1247 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1248 vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1249   __vector unsigned char V = __vec;
1250   __builtin_memcpy(((char *)__ptr + __offset), &V,
1251                    sizeof(__vector unsigned char));
1252 }
1253 
1254 static inline __ATTRS_o_ai void
vec_xst(__vector signed short __vec,long __offset,signed short * __ptr)1255 vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {
1256   __vector signed short V = __vec;
1257   __builtin_memcpy(((char *)__ptr + __offset), &V,
1258                    sizeof(__vector signed short));
1259 }
1260 
1261 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1262 vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1263   __vector unsigned short V = __vec;
1264   __builtin_memcpy(((char *)__ptr + __offset), &V,
1265                    sizeof(__vector unsigned short));
1266 }
1267 
1268 static inline __ATTRS_o_ai void
vec_xst(__vector signed int __vec,long __offset,signed int * __ptr)1269 vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {
1270   __vector signed int V = __vec;
1271   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1272 }
1273 
1274 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1275 vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1276   __vector unsigned int V = __vec;
1277   __builtin_memcpy(((char *)__ptr + __offset), &V,
1278                    sizeof(__vector unsigned int));
1279 }
1280 
1281 static inline __ATTRS_o_ai void
vec_xst(__vector signed long long __vec,long __offset,signed long long * __ptr)1282 vec_xst(__vector signed long long __vec, long __offset,
1283         signed long long *__ptr) {
1284   __vector signed long long V = __vec;
1285   __builtin_memcpy(((char *)__ptr + __offset), &V,
1286                    sizeof(__vector signed long long));
1287 }
1288 
1289 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1290 vec_xst(__vector unsigned long long __vec, long __offset,
1291         unsigned long long *__ptr) {
1292   __vector unsigned long long V = __vec;
1293   __builtin_memcpy(((char *)__ptr + __offset), &V,
1294                    sizeof(__vector unsigned long long));
1295 }
1296 
1297 #if __ARCH__ >= 12
1298 static inline __ATTRS_o_ai void
vec_xst(__vector float __vec,long __offset,float * __ptr)1299 vec_xst(__vector float __vec, long __offset, float *__ptr) {
1300   __vector float V = __vec;
1301   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector float));
1302 }
1303 #endif
1304 
1305 static inline __ATTRS_o_ai void
vec_xst(__vector double __vec,long __offset,double * __ptr)1306 vec_xst(__vector double __vec, long __offset, double *__ptr) {
1307   __vector double V = __vec;
1308   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1309 }
1310 
1311 /*-- vec_xstd2 --------------------------------------------------------------*/
1312 
1313 // This prototype is deprecated.
1314 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed char __vec,long __offset,signed char * __ptr)1315 vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {
1316   __vector signed char V = __vec;
1317   __builtin_memcpy(((char *)__ptr + __offset), &V,
1318                    sizeof(__vector signed char));
1319 }
1320 
1321 // This prototype is deprecated.
1322 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1323 vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1324   __vector unsigned char V = __vec;
1325   __builtin_memcpy(((char *)__ptr + __offset), &V,
1326                    sizeof(__vector unsigned char));
1327 }
1328 
1329 // This prototype is deprecated.
1330 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed short __vec,long __offset,signed short * __ptr)1331 vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {
1332   __vector signed short V = __vec;
1333   __builtin_memcpy(((char *)__ptr + __offset), &V,
1334                    sizeof(__vector signed short));
1335 }
1336 
1337 // This prototype is deprecated.
1338 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1339 vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1340   __vector unsigned short V = __vec;
1341   __builtin_memcpy(((char *)__ptr + __offset), &V,
1342                    sizeof(__vector unsigned short));
1343 }
1344 
1345 // This prototype is deprecated.
1346 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed int __vec,long __offset,signed int * __ptr)1347 vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {
1348   __vector signed int V = __vec;
1349   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1350 }
1351 
1352 // This prototype is deprecated.
1353 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1354 vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1355   __vector unsigned int V = __vec;
1356   __builtin_memcpy(((char *)__ptr + __offset), &V,
1357                    sizeof(__vector unsigned int));
1358 }
1359 
1360 // This prototype is deprecated.
1361 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed long long __vec,long __offset,signed long long * __ptr)1362 vec_xstd2(__vector signed long long __vec, long __offset,
1363           signed long long *__ptr) {
1364   __vector signed long long V = __vec;
1365   __builtin_memcpy(((char *)__ptr + __offset), &V,
1366                    sizeof(__vector signed long long));
1367 }
1368 
1369 // This prototype is deprecated.
1370 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1371 vec_xstd2(__vector unsigned long long __vec, long __offset,
1372           unsigned long long *__ptr) {
1373   __vector unsigned long long V = __vec;
1374   __builtin_memcpy(((char *)__ptr + __offset), &V,
1375                    sizeof(__vector unsigned long long));
1376 }
1377 
1378 // This prototype is deprecated.
1379 static inline __ATTRS_o_ai void
vec_xstd2(__vector double __vec,long __offset,double * __ptr)1380 vec_xstd2(__vector double __vec, long __offset, double *__ptr) {
1381   __vector double V = __vec;
1382   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1383 }
1384 
1385 /*-- vec_xstw4 --------------------------------------------------------------*/
1386 
1387 // This prototype is deprecated.
1388 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed char __vec,long __offset,signed char * __ptr)1389 vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {
1390   __vector signed char V = __vec;
1391   __builtin_memcpy(((char *)__ptr + __offset), &V,
1392                    sizeof(__vector signed char));
1393 }
1394 
1395 // This prototype is deprecated.
1396 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1397 vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1398   __vector unsigned char V = __vec;
1399   __builtin_memcpy(((char *)__ptr + __offset), &V,
1400                    sizeof(__vector unsigned char));
1401 }
1402 
1403 // This prototype is deprecated.
1404 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed short __vec,long __offset,signed short * __ptr)1405 vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {
1406   __vector signed short V = __vec;
1407   __builtin_memcpy(((char *)__ptr + __offset), &V,
1408                    sizeof(__vector signed short));
1409 }
1410 
1411 // This prototype is deprecated.
1412 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1413 vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1414   __vector unsigned short V = __vec;
1415   __builtin_memcpy(((char *)__ptr + __offset), &V,
1416                    sizeof(__vector unsigned short));
1417 }
1418 
1419 // This prototype is deprecated.
1420 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed int __vec,long __offset,signed int * __ptr)1421 vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {
1422   __vector signed int V = __vec;
1423   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1424 }
1425 
1426 // This prototype is deprecated.
1427 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1428 vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1429   __vector unsigned int V = __vec;
1430   __builtin_memcpy(((char *)__ptr + __offset), &V,
1431                    sizeof(__vector unsigned int));
1432 }
1433 
1434 /*-- vec_load_bndry ---------------------------------------------------------*/
1435 
1436 extern __ATTRS_o __vector signed char
1437 vec_load_bndry(const signed char *__ptr, unsigned short __len)
1438   __constant_pow2_range(__len, 64, 4096);
1439 
1440 extern __ATTRS_o __vector unsigned char
1441 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1442   __constant_pow2_range(__len, 64, 4096);
1443 
1444 extern __ATTRS_o __vector signed short
1445 vec_load_bndry(const signed short *__ptr, unsigned short __len)
1446   __constant_pow2_range(__len, 64, 4096);
1447 
1448 extern __ATTRS_o __vector unsigned short
1449 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1450   __constant_pow2_range(__len, 64, 4096);
1451 
1452 extern __ATTRS_o __vector signed int
1453 vec_load_bndry(const signed int *__ptr, unsigned short __len)
1454   __constant_pow2_range(__len, 64, 4096);
1455 
1456 extern __ATTRS_o __vector unsigned int
1457 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1458   __constant_pow2_range(__len, 64, 4096);
1459 
1460 extern __ATTRS_o __vector signed long long
1461 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1462   __constant_pow2_range(__len, 64, 4096);
1463 
1464 extern __ATTRS_o __vector unsigned long long
1465 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1466   __constant_pow2_range(__len, 64, 4096);
1467 
1468 #if __ARCH__ >= 12
1469 extern __ATTRS_o __vector float
1470 vec_load_bndry(const float *__ptr, unsigned short __len)
1471   __constant_pow2_range(__len, 64, 4096);
1472 #endif
1473 
1474 extern __ATTRS_o __vector double
1475 vec_load_bndry(const double *__ptr, unsigned short __len)
1476   __constant_pow2_range(__len, 64, 4096);
1477 
1478 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1479   __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1480                             (Y) == 128 ? 1 : \
1481                             (Y) == 256 ? 2 : \
1482                             (Y) == 512 ? 3 : \
1483                             (Y) == 1024 ? 4 : \
1484                             (Y) == 2048 ? 5 : \
1485                             (Y) == 4096 ? 6 : -1)))
1486 
1487 /*-- vec_load_len -----------------------------------------------------------*/
1488 
1489 static inline __ATTRS_o_ai __vector signed char
vec_load_len(const signed char * __ptr,unsigned int __len)1490 vec_load_len(const signed char *__ptr, unsigned int __len) {
1491   return (__vector signed char)__builtin_s390_vll(__len, __ptr);
1492 }
1493 
1494 static inline __ATTRS_o_ai __vector unsigned char
vec_load_len(const unsigned char * __ptr,unsigned int __len)1495 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1496   return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
1497 }
1498 
1499 static inline __ATTRS_o_ai __vector signed short
vec_load_len(const signed short * __ptr,unsigned int __len)1500 vec_load_len(const signed short *__ptr, unsigned int __len) {
1501   return (__vector signed short)__builtin_s390_vll(__len, __ptr);
1502 }
1503 
1504 static inline __ATTRS_o_ai __vector unsigned short
vec_load_len(const unsigned short * __ptr,unsigned int __len)1505 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1506   return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
1507 }
1508 
1509 static inline __ATTRS_o_ai __vector signed int
vec_load_len(const signed int * __ptr,unsigned int __len)1510 vec_load_len(const signed int *__ptr, unsigned int __len) {
1511   return (__vector signed int)__builtin_s390_vll(__len, __ptr);
1512 }
1513 
1514 static inline __ATTRS_o_ai __vector unsigned int
vec_load_len(const unsigned int * __ptr,unsigned int __len)1515 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1516   return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
1517 }
1518 
1519 static inline __ATTRS_o_ai __vector signed long long
vec_load_len(const signed long long * __ptr,unsigned int __len)1520 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1521   return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
1522 }
1523 
1524 static inline __ATTRS_o_ai __vector unsigned long long
vec_load_len(const unsigned long long * __ptr,unsigned int __len)1525 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1526   return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1527 }
1528 
1529 #if __ARCH__ >= 12
1530 static inline __ATTRS_o_ai __vector float
vec_load_len(const float * __ptr,unsigned int __len)1531 vec_load_len(const float *__ptr, unsigned int __len) {
1532   return (__vector float)__builtin_s390_vll(__len, __ptr);
1533 }
1534 #endif
1535 
1536 static inline __ATTRS_o_ai __vector double
vec_load_len(const double * __ptr,unsigned int __len)1537 vec_load_len(const double *__ptr, unsigned int __len) {
1538   return (__vector double)__builtin_s390_vll(__len, __ptr);
1539 }
1540 
1541 /*-- vec_load_len_r ---------------------------------------------------------*/
1542 
1543 #if __ARCH__ >= 12
1544 static inline __ATTRS_ai __vector unsigned char
vec_load_len_r(const unsigned char * __ptr,unsigned int __len)1545 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1546   return (__vector unsigned char)__builtin_s390_vlrl(__len, __ptr);
1547 }
1548 #endif
1549 
1550 /*-- vec_store_len ----------------------------------------------------------*/
1551 
1552 static inline __ATTRS_o_ai void
vec_store_len(__vector signed char __vec,signed char * __ptr,unsigned int __len)1553 vec_store_len(__vector signed char __vec, signed char *__ptr,
1554               unsigned int __len) {
1555   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1556 }
1557 
1558 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1559 vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
1560               unsigned int __len) {
1561   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1562 }
1563 
1564 static inline __ATTRS_o_ai void
vec_store_len(__vector signed short __vec,signed short * __ptr,unsigned int __len)1565 vec_store_len(__vector signed short __vec, signed short *__ptr,
1566               unsigned int __len) {
1567   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1568 }
1569 
1570 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned short __vec,unsigned short * __ptr,unsigned int __len)1571 vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
1572               unsigned int __len) {
1573   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1574 }
1575 
1576 static inline __ATTRS_o_ai void
vec_store_len(__vector signed int __vec,signed int * __ptr,unsigned int __len)1577 vec_store_len(__vector signed int __vec, signed int *__ptr,
1578               unsigned int __len) {
1579   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1580 }
1581 
1582 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned int __vec,unsigned int * __ptr,unsigned int __len)1583 vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
1584               unsigned int __len) {
1585   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1586 }
1587 
1588 static inline __ATTRS_o_ai void
vec_store_len(__vector signed long long __vec,signed long long * __ptr,unsigned int __len)1589 vec_store_len(__vector signed long long __vec, signed long long *__ptr,
1590               unsigned int __len) {
1591   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1592 }
1593 
1594 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned long long __vec,unsigned long long * __ptr,unsigned int __len)1595 vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
1596               unsigned int __len) {
1597   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1598 }
1599 
1600 #if __ARCH__ >= 12
1601 static inline __ATTRS_o_ai void
vec_store_len(__vector float __vec,float * __ptr,unsigned int __len)1602 vec_store_len(__vector float __vec, float *__ptr,
1603               unsigned int __len) {
1604   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1605 }
1606 #endif
1607 
1608 static inline __ATTRS_o_ai void
vec_store_len(__vector double __vec,double * __ptr,unsigned int __len)1609 vec_store_len(__vector double __vec, double *__ptr,
1610               unsigned int __len) {
1611   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1612 }
1613 
1614 /*-- vec_store_len_r --------------------------------------------------------*/
1615 
1616 #if __ARCH__ >= 12
1617 static inline __ATTRS_ai void
vec_store_len_r(__vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1618 vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
1619                 unsigned int __len) {
1620   __builtin_s390_vstrl((__vector signed char)__vec, __len, __ptr);
1621 }
1622 #endif
1623 
1624 /*-- vec_load_pair ----------------------------------------------------------*/
1625 
1626 static inline __ATTRS_o_ai __vector signed long long
vec_load_pair(signed long long __a,signed long long __b)1627 vec_load_pair(signed long long __a, signed long long __b) {
1628   return (__vector signed long long)(__a, __b);
1629 }
1630 
1631 static inline __ATTRS_o_ai __vector unsigned long long
vec_load_pair(unsigned long long __a,unsigned long long __b)1632 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1633   return (__vector unsigned long long)(__a, __b);
1634 }
1635 
1636 /*-- vec_genmask ------------------------------------------------------------*/
1637 
1638 static inline __ATTRS_o_ai __vector unsigned char
vec_genmask(unsigned short __mask)1639 vec_genmask(unsigned short __mask)
1640   __constant(__mask) {
1641   return (__vector unsigned char)(
1642     __mask & 0x8000 ? 0xff : 0,
1643     __mask & 0x4000 ? 0xff : 0,
1644     __mask & 0x2000 ? 0xff : 0,
1645     __mask & 0x1000 ? 0xff : 0,
1646     __mask & 0x0800 ? 0xff : 0,
1647     __mask & 0x0400 ? 0xff : 0,
1648     __mask & 0x0200 ? 0xff : 0,
1649     __mask & 0x0100 ? 0xff : 0,
1650     __mask & 0x0080 ? 0xff : 0,
1651     __mask & 0x0040 ? 0xff : 0,
1652     __mask & 0x0020 ? 0xff : 0,
1653     __mask & 0x0010 ? 0xff : 0,
1654     __mask & 0x0008 ? 0xff : 0,
1655     __mask & 0x0004 ? 0xff : 0,
1656     __mask & 0x0002 ? 0xff : 0,
1657     __mask & 0x0001 ? 0xff : 0);
1658 }
1659 
1660 /*-- vec_genmasks_* ---------------------------------------------------------*/
1661 
1662 static inline __ATTRS_o_ai __vector unsigned char
vec_genmasks_8(unsigned char __first,unsigned char __last)1663 vec_genmasks_8(unsigned char __first, unsigned char __last)
1664   __constant(__first) __constant(__last) {
1665   unsigned char __bit1 = __first & 7;
1666   unsigned char __bit2 = __last & 7;
1667   unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1668   unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1669   unsigned char __value = (__bit1 <= __bit2 ?
1670                            __mask1 & ~__mask2 :
1671                            __mask1 | ~__mask2);
1672   return (__vector unsigned char)__value;
1673 }
1674 
1675 static inline __ATTRS_o_ai __vector unsigned short
vec_genmasks_16(unsigned char __first,unsigned char __last)1676 vec_genmasks_16(unsigned char __first, unsigned char __last)
1677   __constant(__first) __constant(__last) {
1678   unsigned char __bit1 = __first & 15;
1679   unsigned char __bit2 = __last & 15;
1680   unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1681   unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1682   unsigned short __value = (__bit1 <= __bit2 ?
1683                             __mask1 & ~__mask2 :
1684                             __mask1 | ~__mask2);
1685   return (__vector unsigned short)__value;
1686 }
1687 
1688 static inline __ATTRS_o_ai __vector unsigned int
vec_genmasks_32(unsigned char __first,unsigned char __last)1689 vec_genmasks_32(unsigned char __first, unsigned char __last)
1690   __constant(__first) __constant(__last) {
1691   unsigned char __bit1 = __first & 31;
1692   unsigned char __bit2 = __last & 31;
1693   unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1694   unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1695   unsigned int __value = (__bit1 <= __bit2 ?
1696                           __mask1 & ~__mask2 :
1697                           __mask1 | ~__mask2);
1698   return (__vector unsigned int)__value;
1699 }
1700 
1701 static inline __ATTRS_o_ai __vector unsigned long long
vec_genmasks_64(unsigned char __first,unsigned char __last)1702 vec_genmasks_64(unsigned char __first, unsigned char __last)
1703   __constant(__first) __constant(__last) {
1704   unsigned char __bit1 = __first & 63;
1705   unsigned char __bit2 = __last & 63;
1706   unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1707   unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1708   unsigned long long __value = (__bit1 <= __bit2 ?
1709                                 __mask1 & ~__mask2 :
1710                                 __mask1 | ~__mask2);
1711   return (__vector unsigned long long)__value;
1712 }
1713 
1714 /*-- vec_splat --------------------------------------------------------------*/
1715 
1716 static inline __ATTRS_o_ai __vector signed char
vec_splat(__vector signed char __vec,int __index)1717 vec_splat(__vector signed char __vec, int __index)
1718   __constant_range(__index, 0, 15) {
1719   return (__vector signed char)__vec[__index];
1720 }
1721 
1722 static inline __ATTRS_o_ai __vector __bool char
vec_splat(__vector __bool char __vec,int __index)1723 vec_splat(__vector __bool char __vec, int __index)
1724   __constant_range(__index, 0, 15) {
1725   return (__vector __bool char)(__vector unsigned char)__vec[__index];
1726 }
1727 
1728 static inline __ATTRS_o_ai __vector unsigned char
vec_splat(__vector unsigned char __vec,int __index)1729 vec_splat(__vector unsigned char __vec, int __index)
1730   __constant_range(__index, 0, 15) {
1731   return (__vector unsigned char)__vec[__index];
1732 }
1733 
1734 static inline __ATTRS_o_ai __vector signed short
vec_splat(__vector signed short __vec,int __index)1735 vec_splat(__vector signed short __vec, int __index)
1736   __constant_range(__index, 0, 7) {
1737   return (__vector signed short)__vec[__index];
1738 }
1739 
1740 static inline __ATTRS_o_ai __vector __bool short
vec_splat(__vector __bool short __vec,int __index)1741 vec_splat(__vector __bool short __vec, int __index)
1742   __constant_range(__index, 0, 7) {
1743   return (__vector __bool short)(__vector unsigned short)__vec[__index];
1744 }
1745 
1746 static inline __ATTRS_o_ai __vector unsigned short
vec_splat(__vector unsigned short __vec,int __index)1747 vec_splat(__vector unsigned short __vec, int __index)
1748   __constant_range(__index, 0, 7) {
1749   return (__vector unsigned short)__vec[__index];
1750 }
1751 
1752 static inline __ATTRS_o_ai __vector signed int
vec_splat(__vector signed int __vec,int __index)1753 vec_splat(__vector signed int __vec, int __index)
1754   __constant_range(__index, 0, 3) {
1755   return (__vector signed int)__vec[__index];
1756 }
1757 
1758 static inline __ATTRS_o_ai __vector __bool int
vec_splat(__vector __bool int __vec,int __index)1759 vec_splat(__vector __bool int __vec, int __index)
1760   __constant_range(__index, 0, 3) {
1761   return (__vector __bool int)(__vector unsigned int)__vec[__index];
1762 }
1763 
1764 static inline __ATTRS_o_ai __vector unsigned int
vec_splat(__vector unsigned int __vec,int __index)1765 vec_splat(__vector unsigned int __vec, int __index)
1766   __constant_range(__index, 0, 3) {
1767   return (__vector unsigned int)__vec[__index];
1768 }
1769 
1770 static inline __ATTRS_o_ai __vector signed long long
vec_splat(__vector signed long long __vec,int __index)1771 vec_splat(__vector signed long long __vec, int __index)
1772   __constant_range(__index, 0, 1) {
1773   return (__vector signed long long)__vec[__index];
1774 }
1775 
1776 static inline __ATTRS_o_ai __vector __bool long long
vec_splat(__vector __bool long long __vec,int __index)1777 vec_splat(__vector __bool long long __vec, int __index)
1778   __constant_range(__index, 0, 1) {
1779   return ((__vector __bool long long)
1780           (__vector unsigned long long)__vec[__index]);
1781 }
1782 
1783 static inline __ATTRS_o_ai __vector unsigned long long
vec_splat(__vector unsigned long long __vec,int __index)1784 vec_splat(__vector unsigned long long __vec, int __index)
1785   __constant_range(__index, 0, 1) {
1786   return (__vector unsigned long long)__vec[__index];
1787 }
1788 
1789 #if __ARCH__ >= 12
1790 static inline __ATTRS_o_ai __vector float
vec_splat(__vector float __vec,int __index)1791 vec_splat(__vector float __vec, int __index)
1792   __constant_range(__index, 0, 3) {
1793   return (__vector float)__vec[__index];
1794 }
1795 #endif
1796 
1797 static inline __ATTRS_o_ai __vector double
vec_splat(__vector double __vec,int __index)1798 vec_splat(__vector double __vec, int __index)
1799   __constant_range(__index, 0, 1) {
1800   return (__vector double)__vec[__index];
1801 }
1802 
1803 /*-- vec_splat_s* -----------------------------------------------------------*/
1804 
1805 static inline __ATTRS_ai __vector signed char
vec_splat_s8(signed char __scalar)1806 vec_splat_s8(signed char __scalar)
1807   __constant(__scalar) {
1808   return (__vector signed char)__scalar;
1809 }
1810 
1811 static inline __ATTRS_ai __vector signed short
vec_splat_s16(signed short __scalar)1812 vec_splat_s16(signed short __scalar)
1813   __constant(__scalar) {
1814   return (__vector signed short)__scalar;
1815 }
1816 
1817 static inline __ATTRS_ai __vector signed int
vec_splat_s32(signed short __scalar)1818 vec_splat_s32(signed short __scalar)
1819   __constant(__scalar) {
1820   return (__vector signed int)(signed int)__scalar;
1821 }
1822 
1823 static inline __ATTRS_ai __vector signed long long
vec_splat_s64(signed short __scalar)1824 vec_splat_s64(signed short __scalar)
1825   __constant(__scalar) {
1826   return (__vector signed long long)(signed long)__scalar;
1827 }
1828 
1829 /*-- vec_splat_u* -----------------------------------------------------------*/
1830 
1831 static inline __ATTRS_ai __vector unsigned char
vec_splat_u8(unsigned char __scalar)1832 vec_splat_u8(unsigned char __scalar)
1833   __constant(__scalar) {
1834   return (__vector unsigned char)__scalar;
1835 }
1836 
1837 static inline __ATTRS_ai __vector unsigned short
vec_splat_u16(unsigned short __scalar)1838 vec_splat_u16(unsigned short __scalar)
1839   __constant(__scalar) {
1840   return (__vector unsigned short)__scalar;
1841 }
1842 
1843 static inline __ATTRS_ai __vector unsigned int
vec_splat_u32(signed short __scalar)1844 vec_splat_u32(signed short __scalar)
1845   __constant(__scalar) {
1846   return (__vector unsigned int)(signed int)__scalar;
1847 }
1848 
1849 static inline __ATTRS_ai __vector unsigned long long
vec_splat_u64(signed short __scalar)1850 vec_splat_u64(signed short __scalar)
1851   __constant(__scalar) {
1852   return (__vector unsigned long long)(signed long long)__scalar;
1853 }
1854 
1855 /*-- vec_splats -------------------------------------------------------------*/
1856 
1857 static inline __ATTRS_o_ai __vector signed char
vec_splats(signed char __scalar)1858 vec_splats(signed char __scalar) {
1859   return (__vector signed char)__scalar;
1860 }
1861 
1862 static inline __ATTRS_o_ai __vector unsigned char
vec_splats(unsigned char __scalar)1863 vec_splats(unsigned char __scalar) {
1864   return (__vector unsigned char)__scalar;
1865 }
1866 
1867 static inline __ATTRS_o_ai __vector signed short
vec_splats(signed short __scalar)1868 vec_splats(signed short __scalar) {
1869   return (__vector signed short)__scalar;
1870 }
1871 
1872 static inline __ATTRS_o_ai __vector unsigned short
vec_splats(unsigned short __scalar)1873 vec_splats(unsigned short __scalar) {
1874   return (__vector unsigned short)__scalar;
1875 }
1876 
1877 static inline __ATTRS_o_ai __vector signed int
vec_splats(signed int __scalar)1878 vec_splats(signed int __scalar) {
1879   return (__vector signed int)__scalar;
1880 }
1881 
1882 static inline __ATTRS_o_ai __vector unsigned int
vec_splats(unsigned int __scalar)1883 vec_splats(unsigned int __scalar) {
1884   return (__vector unsigned int)__scalar;
1885 }
1886 
1887 static inline __ATTRS_o_ai __vector signed long long
vec_splats(signed long long __scalar)1888 vec_splats(signed long long __scalar) {
1889   return (__vector signed long long)__scalar;
1890 }
1891 
1892 static inline __ATTRS_o_ai __vector unsigned long long
vec_splats(unsigned long long __scalar)1893 vec_splats(unsigned long long __scalar) {
1894   return (__vector unsigned long long)__scalar;
1895 }
1896 
1897 #if __ARCH__ >= 12
1898 static inline __ATTRS_o_ai __vector float
vec_splats(float __scalar)1899 vec_splats(float __scalar) {
1900   return (__vector float)__scalar;
1901 }
1902 #endif
1903 
1904 static inline __ATTRS_o_ai __vector double
vec_splats(double __scalar)1905 vec_splats(double __scalar) {
1906   return (__vector double)__scalar;
1907 }
1908 
1909 /*-- vec_extend_s64 ---------------------------------------------------------*/
1910 
1911 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed char __a)1912 vec_extend_s64(__vector signed char __a) {
1913   return (__vector signed long long)(__a[7], __a[15]);
1914 }
1915 
1916 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed short __a)1917 vec_extend_s64(__vector signed short __a) {
1918   return (__vector signed long long)(__a[3], __a[7]);
1919 }
1920 
1921 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed int __a)1922 vec_extend_s64(__vector signed int __a) {
1923   return (__vector signed long long)(__a[1], __a[3]);
1924 }
1925 
1926 /*-- vec_mergeh -------------------------------------------------------------*/
1927 
1928 static inline __ATTRS_o_ai __vector signed char
vec_mergeh(__vector signed char __a,__vector signed char __b)1929 vec_mergeh(__vector signed char __a, __vector signed char __b) {
1930   return (__vector signed char)(
1931     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1932     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1933 }
1934 
1935 static inline __ATTRS_o_ai __vector __bool char
vec_mergeh(__vector __bool char __a,__vector __bool char __b)1936 vec_mergeh(__vector __bool char __a, __vector __bool char __b) {
1937   return (__vector __bool char)(
1938     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1939     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1940 }
1941 
1942 static inline __ATTRS_o_ai __vector unsigned char
vec_mergeh(__vector unsigned char __a,__vector unsigned char __b)1943 vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {
1944   return (__vector unsigned char)(
1945     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1946     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1947 }
1948 
1949 static inline __ATTRS_o_ai __vector signed short
vec_mergeh(__vector signed short __a,__vector signed short __b)1950 vec_mergeh(__vector signed short __a, __vector signed short __b) {
1951   return (__vector signed short)(
1952     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1953 }
1954 
1955 static inline __ATTRS_o_ai __vector __bool short
vec_mergeh(__vector __bool short __a,__vector __bool short __b)1956 vec_mergeh(__vector __bool short __a, __vector __bool short __b) {
1957   return (__vector __bool short)(
1958     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1959 }
1960 
1961 static inline __ATTRS_o_ai __vector unsigned short
vec_mergeh(__vector unsigned short __a,__vector unsigned short __b)1962 vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {
1963   return (__vector unsigned short)(
1964     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1965 }
1966 
1967 static inline __ATTRS_o_ai __vector signed int
vec_mergeh(__vector signed int __a,__vector signed int __b)1968 vec_mergeh(__vector signed int __a, __vector signed int __b) {
1969   return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1970 }
1971 
1972 static inline __ATTRS_o_ai __vector __bool int
vec_mergeh(__vector __bool int __a,__vector __bool int __b)1973 vec_mergeh(__vector __bool int __a, __vector __bool int __b) {
1974   return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);
1975 }
1976 
1977 static inline __ATTRS_o_ai __vector unsigned int
vec_mergeh(__vector unsigned int __a,__vector unsigned int __b)1978 vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {
1979   return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1980 }
1981 
1982 static inline __ATTRS_o_ai __vector signed long long
vec_mergeh(__vector signed long long __a,__vector signed long long __b)1983 vec_mergeh(__vector signed long long __a, __vector signed long long __b) {
1984   return (__vector signed long long)(__a[0], __b[0]);
1985 }
1986 
1987 static inline __ATTRS_o_ai __vector __bool long long
vec_mergeh(__vector __bool long long __a,__vector __bool long long __b)1988 vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {
1989   return (__vector __bool long long)(__a[0], __b[0]);
1990 }
1991 
1992 static inline __ATTRS_o_ai __vector unsigned long long
vec_mergeh(__vector unsigned long long __a,__vector unsigned long long __b)1993 vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {
1994   return (__vector unsigned long long)(__a[0], __b[0]);
1995 }
1996 
1997 #if __ARCH__ >= 12
1998 static inline __ATTRS_o_ai __vector float
vec_mergeh(__vector float __a,__vector float __b)1999 vec_mergeh(__vector float __a, __vector float __b) {
2000   return (__vector float)(__a[0], __b[0], __a[1], __b[1]);
2001 }
2002 #endif
2003 
2004 static inline __ATTRS_o_ai __vector double
vec_mergeh(__vector double __a,__vector double __b)2005 vec_mergeh(__vector double __a, __vector double __b) {
2006   return (__vector double)(__a[0], __b[0]);
2007 }
2008 
2009 /*-- vec_mergel -------------------------------------------------------------*/
2010 
2011 static inline __ATTRS_o_ai __vector signed char
vec_mergel(__vector signed char __a,__vector signed char __b)2012 vec_mergel(__vector signed char __a, __vector signed char __b) {
2013   return (__vector signed char)(
2014     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2015     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2016 }
2017 
2018 static inline __ATTRS_o_ai __vector __bool char
vec_mergel(__vector __bool char __a,__vector __bool char __b)2019 vec_mergel(__vector __bool char __a, __vector __bool char __b) {
2020   return (__vector __bool char)(
2021     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2022     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2023 }
2024 
2025 static inline __ATTRS_o_ai __vector unsigned char
vec_mergel(__vector unsigned char __a,__vector unsigned char __b)2026 vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {
2027   return (__vector unsigned char)(
2028     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2029     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2030 }
2031 
2032 static inline __ATTRS_o_ai __vector signed short
vec_mergel(__vector signed short __a,__vector signed short __b)2033 vec_mergel(__vector signed short __a, __vector signed short __b) {
2034   return (__vector signed short)(
2035     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2036 }
2037 
2038 static inline __ATTRS_o_ai __vector __bool short
vec_mergel(__vector __bool short __a,__vector __bool short __b)2039 vec_mergel(__vector __bool short __a, __vector __bool short __b) {
2040   return (__vector __bool short)(
2041     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2042 }
2043 
2044 static inline __ATTRS_o_ai __vector unsigned short
vec_mergel(__vector unsigned short __a,__vector unsigned short __b)2045 vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {
2046   return (__vector unsigned short)(
2047     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2048 }
2049 
2050 static inline __ATTRS_o_ai __vector signed int
vec_mergel(__vector signed int __a,__vector signed int __b)2051 vec_mergel(__vector signed int __a, __vector signed int __b) {
2052   return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);
2053 }
2054 
2055 static inline __ATTRS_o_ai __vector __bool int
vec_mergel(__vector __bool int __a,__vector __bool int __b)2056 vec_mergel(__vector __bool int __a, __vector __bool int __b) {
2057   return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);
2058 }
2059 
2060 static inline __ATTRS_o_ai __vector unsigned int
vec_mergel(__vector unsigned int __a,__vector unsigned int __b)2061 vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {
2062   return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
2063 }
2064 
2065 static inline __ATTRS_o_ai __vector signed long long
vec_mergel(__vector signed long long __a,__vector signed long long __b)2066 vec_mergel(__vector signed long long __a, __vector signed long long __b) {
2067   return (__vector signed long long)(__a[1], __b[1]);
2068 }
2069 
2070 static inline __ATTRS_o_ai __vector __bool long long
vec_mergel(__vector __bool long long __a,__vector __bool long long __b)2071 vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {
2072   return (__vector __bool long long)(__a[1], __b[1]);
2073 }
2074 
2075 static inline __ATTRS_o_ai __vector unsigned long long
vec_mergel(__vector unsigned long long __a,__vector unsigned long long __b)2076 vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {
2077   return (__vector unsigned long long)(__a[1], __b[1]);
2078 }
2079 
2080 #if __ARCH__ >= 12
2081 static inline __ATTRS_o_ai __vector float
vec_mergel(__vector float __a,__vector float __b)2082 vec_mergel(__vector float __a, __vector float __b) {
2083   return (__vector float)(__a[2], __b[2], __a[3], __b[3]);
2084 }
2085 #endif
2086 
2087 static inline __ATTRS_o_ai __vector double
vec_mergel(__vector double __a,__vector double __b)2088 vec_mergel(__vector double __a, __vector double __b) {
2089   return (__vector double)(__a[1], __b[1]);
2090 }
2091 
2092 /*-- vec_pack ---------------------------------------------------------------*/
2093 
2094 static inline __ATTRS_o_ai __vector signed char
vec_pack(__vector signed short __a,__vector signed short __b)2095 vec_pack(__vector signed short __a, __vector signed short __b) {
2096   __vector signed char __ac = (__vector signed char)__a;
2097   __vector signed char __bc = (__vector signed char)__b;
2098   return (__vector signed char)(
2099     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2100     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2101 }
2102 
2103 static inline __ATTRS_o_ai __vector __bool char
vec_pack(__vector __bool short __a,__vector __bool short __b)2104 vec_pack(__vector __bool short __a, __vector __bool short __b) {
2105   __vector __bool char __ac = (__vector __bool char)__a;
2106   __vector __bool char __bc = (__vector __bool char)__b;
2107   return (__vector __bool char)(
2108     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2109     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2110 }
2111 
2112 static inline __ATTRS_o_ai __vector unsigned char
vec_pack(__vector unsigned short __a,__vector unsigned short __b)2113 vec_pack(__vector unsigned short __a, __vector unsigned short __b) {
2114   __vector unsigned char __ac = (__vector unsigned char)__a;
2115   __vector unsigned char __bc = (__vector unsigned char)__b;
2116   return (__vector unsigned char)(
2117     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2118     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2119 }
2120 
2121 static inline __ATTRS_o_ai __vector signed short
vec_pack(__vector signed int __a,__vector signed int __b)2122 vec_pack(__vector signed int __a, __vector signed int __b) {
2123   __vector signed short __ac = (__vector signed short)__a;
2124   __vector signed short __bc = (__vector signed short)__b;
2125   return (__vector signed short)(
2126     __ac[1], __ac[3], __ac[5], __ac[7],
2127     __bc[1], __bc[3], __bc[5], __bc[7]);
2128 }
2129 
2130 static inline __ATTRS_o_ai __vector __bool short
vec_pack(__vector __bool int __a,__vector __bool int __b)2131 vec_pack(__vector __bool int __a, __vector __bool int __b) {
2132   __vector __bool short __ac = (__vector __bool short)__a;
2133   __vector __bool short __bc = (__vector __bool short)__b;
2134   return (__vector __bool short)(
2135     __ac[1], __ac[3], __ac[5], __ac[7],
2136     __bc[1], __bc[3], __bc[5], __bc[7]);
2137 }
2138 
2139 static inline __ATTRS_o_ai __vector unsigned short
vec_pack(__vector unsigned int __a,__vector unsigned int __b)2140 vec_pack(__vector unsigned int __a, __vector unsigned int __b) {
2141   __vector unsigned short __ac = (__vector unsigned short)__a;
2142   __vector unsigned short __bc = (__vector unsigned short)__b;
2143   return (__vector unsigned short)(
2144     __ac[1], __ac[3], __ac[5], __ac[7],
2145     __bc[1], __bc[3], __bc[5], __bc[7]);
2146 }
2147 
2148 static inline __ATTRS_o_ai __vector signed int
vec_pack(__vector signed long long __a,__vector signed long long __b)2149 vec_pack(__vector signed long long __a, __vector signed long long __b) {
2150   __vector signed int __ac = (__vector signed int)__a;
2151   __vector signed int __bc = (__vector signed int)__b;
2152   return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2153 }
2154 
2155 static inline __ATTRS_o_ai __vector __bool int
vec_pack(__vector __bool long long __a,__vector __bool long long __b)2156 vec_pack(__vector __bool long long __a, __vector __bool long long __b) {
2157   __vector __bool int __ac = (__vector __bool int)__a;
2158   __vector __bool int __bc = (__vector __bool int)__b;
2159   return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2160 }
2161 
2162 static inline __ATTRS_o_ai __vector unsigned int
vec_pack(__vector unsigned long long __a,__vector unsigned long long __b)2163 vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
2164   __vector unsigned int __ac = (__vector unsigned int)__a;
2165   __vector unsigned int __bc = (__vector unsigned int)__b;
2166   return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2167 }
2168 
2169 /*-- vec_packs --------------------------------------------------------------*/
2170 
2171 static inline __ATTRS_o_ai __vector signed char
vec_packs(__vector signed short __a,__vector signed short __b)2172 vec_packs(__vector signed short __a, __vector signed short __b) {
2173   return __builtin_s390_vpksh(__a, __b);
2174 }
2175 
2176 static inline __ATTRS_o_ai __vector unsigned char
vec_packs(__vector unsigned short __a,__vector unsigned short __b)2177 vec_packs(__vector unsigned short __a, __vector unsigned short __b) {
2178   return __builtin_s390_vpklsh(__a, __b);
2179 }
2180 
2181 static inline __ATTRS_o_ai __vector signed short
vec_packs(__vector signed int __a,__vector signed int __b)2182 vec_packs(__vector signed int __a, __vector signed int __b) {
2183   return __builtin_s390_vpksf(__a, __b);
2184 }
2185 
2186 static inline __ATTRS_o_ai __vector unsigned short
vec_packs(__vector unsigned int __a,__vector unsigned int __b)2187 vec_packs(__vector unsigned int __a, __vector unsigned int __b) {
2188   return __builtin_s390_vpklsf(__a, __b);
2189 }
2190 
2191 static inline __ATTRS_o_ai __vector signed int
vec_packs(__vector signed long long __a,__vector signed long long __b)2192 vec_packs(__vector signed long long __a, __vector signed long long __b) {
2193   return __builtin_s390_vpksg(__a, __b);
2194 }
2195 
2196 static inline __ATTRS_o_ai __vector unsigned int
vec_packs(__vector unsigned long long __a,__vector unsigned long long __b)2197 vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {
2198   return __builtin_s390_vpklsg(__a, __b);
2199 }
2200 
2201 /*-- vec_packs_cc -----------------------------------------------------------*/
2202 
2203 static inline __ATTRS_o_ai __vector signed char
vec_packs_cc(__vector signed short __a,__vector signed short __b,int * __cc)2204 vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {
2205   return __builtin_s390_vpkshs(__a, __b, __cc);
2206 }
2207 
2208 static inline __ATTRS_o_ai __vector unsigned char
vec_packs_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)2209 vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,
2210              int *__cc) {
2211   return __builtin_s390_vpklshs(__a, __b, __cc);
2212 }
2213 
2214 static inline __ATTRS_o_ai __vector signed short
vec_packs_cc(__vector signed int __a,__vector signed int __b,int * __cc)2215 vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
2216   return __builtin_s390_vpksfs(__a, __b, __cc);
2217 }
2218 
2219 static inline __ATTRS_o_ai __vector unsigned short
vec_packs_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)2220 vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2221   return __builtin_s390_vpklsfs(__a, __b, __cc);
2222 }
2223 
2224 static inline __ATTRS_o_ai __vector signed int
vec_packs_cc(__vector signed long long __a,__vector signed long long __b,int * __cc)2225 vec_packs_cc(__vector signed long long __a, __vector signed long long __b,
2226              int *__cc) {
2227   return __builtin_s390_vpksgs(__a, __b, __cc);
2228 }
2229 
2230 static inline __ATTRS_o_ai __vector unsigned int
vec_packs_cc(__vector unsigned long long __a,__vector unsigned long long __b,int * __cc)2231 vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2232              int *__cc) {
2233   return __builtin_s390_vpklsgs(__a, __b, __cc);
2234 }
2235 
2236 /*-- vec_packsu -------------------------------------------------------------*/
2237 
2238 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector signed short __a,__vector signed short __b)2239 vec_packsu(__vector signed short __a, __vector signed short __b) {
2240   const __vector signed short __zero = (__vector signed short)0;
2241   return __builtin_s390_vpklsh(
2242     (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,
2243     (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);
2244 }
2245 
2246 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector unsigned short __a,__vector unsigned short __b)2247 vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {
2248   return __builtin_s390_vpklsh(__a, __b);
2249 }
2250 
2251 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector signed int __a,__vector signed int __b)2252 vec_packsu(__vector signed int __a, __vector signed int __b) {
2253   const __vector signed int __zero = (__vector signed int)0;
2254   return __builtin_s390_vpklsf(
2255     (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,
2256     (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);
2257 }
2258 
2259 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector unsigned int __a,__vector unsigned int __b)2260 vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {
2261   return __builtin_s390_vpklsf(__a, __b);
2262 }
2263 
2264 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector signed long long __a,__vector signed long long __b)2265 vec_packsu(__vector signed long long __a, __vector signed long long __b) {
2266   const __vector signed long long __zero = (__vector signed long long)0;
2267   return __builtin_s390_vpklsg(
2268     (__vector unsigned long long)(__a >= __zero) &
2269     (__vector unsigned long long)__a,
2270     (__vector unsigned long long)(__b >= __zero) &
2271     (__vector unsigned long long)__b);
2272 }
2273 
2274 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector unsigned long long __a,__vector unsigned long long __b)2275 vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {
2276   return __builtin_s390_vpklsg(__a, __b);
2277 }
2278 
2279 /*-- vec_packsu_cc ----------------------------------------------------------*/
2280 
2281 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)2282 vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,
2283               int *__cc) {
2284   return __builtin_s390_vpklshs(__a, __b, __cc);
2285 }
2286 
2287 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)2288 vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2289   return __builtin_s390_vpklsfs(__a, __b, __cc);
2290 }
2291 
2292 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu_cc(__vector unsigned long long __a,__vector unsigned long long __b,int * __cc)2293 vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2294               int *__cc) {
2295   return __builtin_s390_vpklsgs(__a, __b, __cc);
2296 }
2297 
2298 /*-- vec_unpackh ------------------------------------------------------------*/
2299 
2300 static inline __ATTRS_o_ai __vector signed short
vec_unpackh(__vector signed char __a)2301 vec_unpackh(__vector signed char __a) {
2302   return __builtin_s390_vuphb(__a);
2303 }
2304 
2305 static inline __ATTRS_o_ai __vector __bool short
vec_unpackh(__vector __bool char __a)2306 vec_unpackh(__vector __bool char __a) {
2307   return ((__vector __bool short)
2308           __builtin_s390_vuphb((__vector signed char)__a));
2309 }
2310 
2311 static inline __ATTRS_o_ai __vector unsigned short
vec_unpackh(__vector unsigned char __a)2312 vec_unpackh(__vector unsigned char __a) {
2313   return __builtin_s390_vuplhb(__a);
2314 }
2315 
2316 static inline __ATTRS_o_ai __vector signed int
vec_unpackh(__vector signed short __a)2317 vec_unpackh(__vector signed short __a) {
2318   return __builtin_s390_vuphh(__a);
2319 }
2320 
2321 static inline __ATTRS_o_ai __vector __bool int
vec_unpackh(__vector __bool short __a)2322 vec_unpackh(__vector __bool short __a) {
2323   return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);
2324 }
2325 
2326 static inline __ATTRS_o_ai __vector unsigned int
vec_unpackh(__vector unsigned short __a)2327 vec_unpackh(__vector unsigned short __a) {
2328   return __builtin_s390_vuplhh(__a);
2329 }
2330 
2331 static inline __ATTRS_o_ai __vector signed long long
vec_unpackh(__vector signed int __a)2332 vec_unpackh(__vector signed int __a) {
2333   return __builtin_s390_vuphf(__a);
2334 }
2335 
2336 static inline __ATTRS_o_ai __vector __bool long long
vec_unpackh(__vector __bool int __a)2337 vec_unpackh(__vector __bool int __a) {
2338   return ((__vector __bool long long)
2339           __builtin_s390_vuphf((__vector signed int)__a));
2340 }
2341 
2342 static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackh(__vector unsigned int __a)2343 vec_unpackh(__vector unsigned int __a) {
2344   return __builtin_s390_vuplhf(__a);
2345 }
2346 
2347 /*-- vec_unpackl ------------------------------------------------------------*/
2348 
2349 static inline __ATTRS_o_ai __vector signed short
vec_unpackl(__vector signed char __a)2350 vec_unpackl(__vector signed char __a) {
2351   return __builtin_s390_vuplb(__a);
2352 }
2353 
2354 static inline __ATTRS_o_ai __vector __bool short
vec_unpackl(__vector __bool char __a)2355 vec_unpackl(__vector __bool char __a) {
2356   return ((__vector __bool short)
2357           __builtin_s390_vuplb((__vector signed char)__a));
2358 }
2359 
2360 static inline __ATTRS_o_ai __vector unsigned short
vec_unpackl(__vector unsigned char __a)2361 vec_unpackl(__vector unsigned char __a) {
2362   return __builtin_s390_vupllb(__a);
2363 }
2364 
2365 static inline __ATTRS_o_ai __vector signed int
vec_unpackl(__vector signed short __a)2366 vec_unpackl(__vector signed short __a) {
2367   return __builtin_s390_vuplhw(__a);
2368 }
2369 
2370 static inline __ATTRS_o_ai __vector __bool int
vec_unpackl(__vector __bool short __a)2371 vec_unpackl(__vector __bool short __a) {
2372   return ((__vector __bool int)
2373           __builtin_s390_vuplhw((__vector signed short)__a));
2374 }
2375 
2376 static inline __ATTRS_o_ai __vector unsigned int
vec_unpackl(__vector unsigned short __a)2377 vec_unpackl(__vector unsigned short __a) {
2378   return __builtin_s390_vupllh(__a);
2379 }
2380 
2381 static inline __ATTRS_o_ai __vector signed long long
vec_unpackl(__vector signed int __a)2382 vec_unpackl(__vector signed int __a) {
2383   return __builtin_s390_vuplf(__a);
2384 }
2385 
2386 static inline __ATTRS_o_ai __vector __bool long long
vec_unpackl(__vector __bool int __a)2387 vec_unpackl(__vector __bool int __a) {
2388   return ((__vector __bool long long)
2389           __builtin_s390_vuplf((__vector signed int)__a));
2390 }
2391 
2392 static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackl(__vector unsigned int __a)2393 vec_unpackl(__vector unsigned int __a) {
2394   return __builtin_s390_vupllf(__a);
2395 }
2396 
2397 /*-- vec_cmpeq --------------------------------------------------------------*/
2398 
2399 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector __bool char __a,__vector __bool char __b)2400 vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {
2401   return (__vector __bool char)(__a == __b);
2402 }
2403 
2404 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector signed char __a,__vector signed char __b)2405 vec_cmpeq(__vector signed char __a, __vector signed char __b) {
2406   return (__vector __bool char)(__a == __b);
2407 }
2408 
2409 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector unsigned char __a,__vector unsigned char __b)2410 vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {
2411   return (__vector __bool char)(__a == __b);
2412 }
2413 
2414 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector __bool short __a,__vector __bool short __b)2415 vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {
2416   return (__vector __bool short)(__a == __b);
2417 }
2418 
2419 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector signed short __a,__vector signed short __b)2420 vec_cmpeq(__vector signed short __a, __vector signed short __b) {
2421   return (__vector __bool short)(__a == __b);
2422 }
2423 
2424 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector unsigned short __a,__vector unsigned short __b)2425 vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {
2426   return (__vector __bool short)(__a == __b);
2427 }
2428 
2429 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector __bool int __a,__vector __bool int __b)2430 vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {
2431   return (__vector __bool int)(__a == __b);
2432 }
2433 
2434 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector signed int __a,__vector signed int __b)2435 vec_cmpeq(__vector signed int __a, __vector signed int __b) {
2436   return (__vector __bool int)(__a == __b);
2437 }
2438 
2439 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector unsigned int __a,__vector unsigned int __b)2440 vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {
2441   return (__vector __bool int)(__a == __b);
2442 }
2443 
2444 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector __bool long long __a,__vector __bool long long __b)2445 vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {
2446   return (__vector __bool long long)(__a == __b);
2447 }
2448 
2449 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector signed long long __a,__vector signed long long __b)2450 vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {
2451   return (__vector __bool long long)(__a == __b);
2452 }
2453 
2454 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector unsigned long long __a,__vector unsigned long long __b)2455 vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
2456   return (__vector __bool long long)(__a == __b);
2457 }
2458 
2459 #if __ARCH__ >= 12
2460 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector float __a,__vector float __b)2461 vec_cmpeq(__vector float __a, __vector float __b) {
2462   return (__vector __bool int)(__a == __b);
2463 }
2464 #endif
2465 
2466 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector double __a,__vector double __b)2467 vec_cmpeq(__vector double __a, __vector double __b) {
2468   return (__vector __bool long long)(__a == __b);
2469 }
2470 
2471 /*-- vec_cmpge --------------------------------------------------------------*/
2472 
2473 static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector signed char __a,__vector signed char __b)2474 vec_cmpge(__vector signed char __a, __vector signed char __b) {
2475   return (__vector __bool char)(__a >= __b);
2476 }
2477 
2478 static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector unsigned char __a,__vector unsigned char __b)2479 vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {
2480   return (__vector __bool char)(__a >= __b);
2481 }
2482 
2483 static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector signed short __a,__vector signed short __b)2484 vec_cmpge(__vector signed short __a, __vector signed short __b) {
2485   return (__vector __bool short)(__a >= __b);
2486 }
2487 
2488 static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector unsigned short __a,__vector unsigned short __b)2489 vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {
2490   return (__vector __bool short)(__a >= __b);
2491 }
2492 
2493 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector signed int __a,__vector signed int __b)2494 vec_cmpge(__vector signed int __a, __vector signed int __b) {
2495   return (__vector __bool int)(__a >= __b);
2496 }
2497 
2498 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector unsigned int __a,__vector unsigned int __b)2499 vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {
2500   return (__vector __bool int)(__a >= __b);
2501 }
2502 
2503 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector signed long long __a,__vector signed long long __b)2504 vec_cmpge(__vector signed long long __a, __vector signed long long __b) {
2505   return (__vector __bool long long)(__a >= __b);
2506 }
2507 
2508 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector unsigned long long __a,__vector unsigned long long __b)2509 vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
2510   return (__vector __bool long long)(__a >= __b);
2511 }
2512 
2513 #if __ARCH__ >= 12
2514 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector float __a,__vector float __b)2515 vec_cmpge(__vector float __a, __vector float __b) {
2516   return (__vector __bool int)(__a >= __b);
2517 }
2518 #endif
2519 
2520 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector double __a,__vector double __b)2521 vec_cmpge(__vector double __a, __vector double __b) {
2522   return (__vector __bool long long)(__a >= __b);
2523 }
2524 
2525 /*-- vec_cmpgt --------------------------------------------------------------*/
2526 
2527 static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector signed char __a,__vector signed char __b)2528 vec_cmpgt(__vector signed char __a, __vector signed char __b) {
2529   return (__vector __bool char)(__a > __b);
2530 }
2531 
2532 static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector unsigned char __a,__vector unsigned char __b)2533 vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {
2534   return (__vector __bool char)(__a > __b);
2535 }
2536 
2537 static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector signed short __a,__vector signed short __b)2538 vec_cmpgt(__vector signed short __a, __vector signed short __b) {
2539   return (__vector __bool short)(__a > __b);
2540 }
2541 
2542 static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector unsigned short __a,__vector unsigned short __b)2543 vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {
2544   return (__vector __bool short)(__a > __b);
2545 }
2546 
2547 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector signed int __a,__vector signed int __b)2548 vec_cmpgt(__vector signed int __a, __vector signed int __b) {
2549   return (__vector __bool int)(__a > __b);
2550 }
2551 
2552 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector unsigned int __a,__vector unsigned int __b)2553 vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {
2554   return (__vector __bool int)(__a > __b);
2555 }
2556 
2557 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector signed long long __a,__vector signed long long __b)2558 vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {
2559   return (__vector __bool long long)(__a > __b);
2560 }
2561 
2562 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector unsigned long long __a,__vector unsigned long long __b)2563 vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
2564   return (__vector __bool long long)(__a > __b);
2565 }
2566 
2567 #if __ARCH__ >= 12
2568 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector float __a,__vector float __b)2569 vec_cmpgt(__vector float __a, __vector float __b) {
2570   return (__vector __bool int)(__a > __b);
2571 }
2572 #endif
2573 
2574 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector double __a,__vector double __b)2575 vec_cmpgt(__vector double __a, __vector double __b) {
2576   return (__vector __bool long long)(__a > __b);
2577 }
2578 
2579 /*-- vec_cmple --------------------------------------------------------------*/
2580 
2581 static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector signed char __a,__vector signed char __b)2582 vec_cmple(__vector signed char __a, __vector signed char __b) {
2583   return (__vector __bool char)(__a <= __b);
2584 }
2585 
2586 static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector unsigned char __a,__vector unsigned char __b)2587 vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {
2588   return (__vector __bool char)(__a <= __b);
2589 }
2590 
2591 static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector signed short __a,__vector signed short __b)2592 vec_cmple(__vector signed short __a, __vector signed short __b) {
2593   return (__vector __bool short)(__a <= __b);
2594 }
2595 
2596 static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector unsigned short __a,__vector unsigned short __b)2597 vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {
2598   return (__vector __bool short)(__a <= __b);
2599 }
2600 
2601 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector signed int __a,__vector signed int __b)2602 vec_cmple(__vector signed int __a, __vector signed int __b) {
2603   return (__vector __bool int)(__a <= __b);
2604 }
2605 
2606 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector unsigned int __a,__vector unsigned int __b)2607 vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {
2608   return (__vector __bool int)(__a <= __b);
2609 }
2610 
2611 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector signed long long __a,__vector signed long long __b)2612 vec_cmple(__vector signed long long __a, __vector signed long long __b) {
2613   return (__vector __bool long long)(__a <= __b);
2614 }
2615 
2616 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector unsigned long long __a,__vector unsigned long long __b)2617 vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
2618   return (__vector __bool long long)(__a <= __b);
2619 }
2620 
2621 #if __ARCH__ >= 12
2622 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector float __a,__vector float __b)2623 vec_cmple(__vector float __a, __vector float __b) {
2624   return (__vector __bool int)(__a <= __b);
2625 }
2626 #endif
2627 
2628 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector double __a,__vector double __b)2629 vec_cmple(__vector double __a, __vector double __b) {
2630   return (__vector __bool long long)(__a <= __b);
2631 }
2632 
2633 /*-- vec_cmplt --------------------------------------------------------------*/
2634 
2635 static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector signed char __a,__vector signed char __b)2636 vec_cmplt(__vector signed char __a, __vector signed char __b) {
2637   return (__vector __bool char)(__a < __b);
2638 }
2639 
2640 static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector unsigned char __a,__vector unsigned char __b)2641 vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {
2642   return (__vector __bool char)(__a < __b);
2643 }
2644 
2645 static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector signed short __a,__vector signed short __b)2646 vec_cmplt(__vector signed short __a, __vector signed short __b) {
2647   return (__vector __bool short)(__a < __b);
2648 }
2649 
2650 static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector unsigned short __a,__vector unsigned short __b)2651 vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {
2652   return (__vector __bool short)(__a < __b);
2653 }
2654 
2655 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector signed int __a,__vector signed int __b)2656 vec_cmplt(__vector signed int __a, __vector signed int __b) {
2657   return (__vector __bool int)(__a < __b);
2658 }
2659 
2660 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector unsigned int __a,__vector unsigned int __b)2661 vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {
2662   return (__vector __bool int)(__a < __b);
2663 }
2664 
2665 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector signed long long __a,__vector signed long long __b)2666 vec_cmplt(__vector signed long long __a, __vector signed long long __b) {
2667   return (__vector __bool long long)(__a < __b);
2668 }
2669 
2670 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector unsigned long long __a,__vector unsigned long long __b)2671 vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
2672   return (__vector __bool long long)(__a < __b);
2673 }
2674 
2675 #if __ARCH__ >= 12
2676 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector float __a,__vector float __b)2677 vec_cmplt(__vector float __a, __vector float __b) {
2678   return (__vector __bool int)(__a < __b);
2679 }
2680 #endif
2681 
2682 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector double __a,__vector double __b)2683 vec_cmplt(__vector double __a, __vector double __b) {
2684   return (__vector __bool long long)(__a < __b);
2685 }
2686 
2687 /*-- vec_all_eq -------------------------------------------------------------*/
2688 
2689 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a,__vector signed char __b)2690 vec_all_eq(__vector signed char __a, __vector signed char __b) {
2691   int __cc;
2692   __builtin_s390_vceqbs(__a, __b, &__cc);
2693   return __cc == 0;
2694 }
2695 
2696 // This prototype is deprecated.
2697 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a,__vector __bool char __b)2698 vec_all_eq(__vector signed char __a, __vector __bool char __b) {
2699   int __cc;
2700   __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
2701   return __cc == 0;
2702 }
2703 
2704 // This prototype is deprecated.
2705 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector signed char __b)2706 vec_all_eq(__vector __bool char __a, __vector signed char __b) {
2707   int __cc;
2708   __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
2709   return __cc == 0;
2710 }
2711 
2712 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a,__vector unsigned char __b)2713 vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {
2714   int __cc;
2715   __builtin_s390_vceqbs((__vector signed char)__a,
2716                         (__vector signed char)__b, &__cc);
2717   return __cc == 0;
2718 }
2719 
2720 // This prototype is deprecated.
2721 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a,__vector __bool char __b)2722 vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {
2723   int __cc;
2724   __builtin_s390_vceqbs((__vector signed char)__a,
2725                         (__vector signed char)__b, &__cc);
2726   return __cc == 0;
2727 }
2728 
2729 // This prototype is deprecated.
2730 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector unsigned char __b)2731 vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {
2732   int __cc;
2733   __builtin_s390_vceqbs((__vector signed char)__a,
2734                         (__vector signed char)__b, &__cc);
2735   return __cc == 0;
2736 }
2737 
2738 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector __bool char __b)2739 vec_all_eq(__vector __bool char __a, __vector __bool char __b) {
2740   int __cc;
2741   __builtin_s390_vceqbs((__vector signed char)__a,
2742                         (__vector signed char)__b, &__cc);
2743   return __cc == 0;
2744 }
2745 
2746 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a,__vector signed short __b)2747 vec_all_eq(__vector signed short __a, __vector signed short __b) {
2748   int __cc;
2749   __builtin_s390_vceqhs(__a, __b, &__cc);
2750   return __cc == 0;
2751 }
2752 
2753 // This prototype is deprecated.
2754 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a,__vector __bool short __b)2755 vec_all_eq(__vector signed short __a, __vector __bool short __b) {
2756   int __cc;
2757   __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
2758   return __cc == 0;
2759 }
2760 
2761 // This prototype is deprecated.
2762 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector signed short __b)2763 vec_all_eq(__vector __bool short __a, __vector signed short __b) {
2764   int __cc;
2765   __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
2766   return __cc == 0;
2767 }
2768 
2769 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a,__vector unsigned short __b)2770 vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {
2771   int __cc;
2772   __builtin_s390_vceqhs((__vector signed short)__a,
2773                         (__vector signed short)__b, &__cc);
2774   return __cc == 0;
2775 }
2776 
2777 // This prototype is deprecated.
2778 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a,__vector __bool short __b)2779 vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {
2780   int __cc;
2781   __builtin_s390_vceqhs((__vector signed short)__a,
2782                         (__vector signed short)__b, &__cc);
2783   return __cc == 0;
2784 }
2785 
2786 // This prototype is deprecated.
2787 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector unsigned short __b)2788 vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {
2789   int __cc;
2790   __builtin_s390_vceqhs((__vector signed short)__a,
2791                         (__vector signed short)__b, &__cc);
2792   return __cc == 0;
2793 }
2794 
2795 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector __bool short __b)2796 vec_all_eq(__vector __bool short __a, __vector __bool short __b) {
2797   int __cc;
2798   __builtin_s390_vceqhs((__vector signed short)__a,
2799                         (__vector signed short)__b, &__cc);
2800   return __cc == 0;
2801 }
2802 
2803 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a,__vector signed int __b)2804 vec_all_eq(__vector signed int __a, __vector signed int __b) {
2805   int __cc;
2806   __builtin_s390_vceqfs(__a, __b, &__cc);
2807   return __cc == 0;
2808 }
2809 
2810 // This prototype is deprecated.
2811 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a,__vector __bool int __b)2812 vec_all_eq(__vector signed int __a, __vector __bool int __b) {
2813   int __cc;
2814   __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
2815   return __cc == 0;
2816 }
2817 
2818 // This prototype is deprecated.
2819 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector signed int __b)2820 vec_all_eq(__vector __bool int __a, __vector signed int __b) {
2821   int __cc;
2822   __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
2823   return __cc == 0;
2824 }
2825 
2826 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a,__vector unsigned int __b)2827 vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {
2828   int __cc;
2829   __builtin_s390_vceqfs((__vector signed int)__a,
2830                         (__vector signed int)__b, &__cc);
2831   return __cc == 0;
2832 }
2833 
2834 // This prototype is deprecated.
2835 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a,__vector __bool int __b)2836 vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {
2837   int __cc;
2838   __builtin_s390_vceqfs((__vector signed int)__a,
2839                         (__vector signed int)__b, &__cc);
2840   return __cc == 0;
2841 }
2842 
2843 // This prototype is deprecated.
2844 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector unsigned int __b)2845 vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {
2846   int __cc;
2847   __builtin_s390_vceqfs((__vector signed int)__a,
2848                         (__vector signed int)__b, &__cc);
2849   return __cc == 0;
2850 }
2851 
2852 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector __bool int __b)2853 vec_all_eq(__vector __bool int __a, __vector __bool int __b) {
2854   int __cc;
2855   __builtin_s390_vceqfs((__vector signed int)__a,
2856                         (__vector signed int)__b, &__cc);
2857   return __cc == 0;
2858 }
2859 
2860 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a,__vector signed long long __b)2861 vec_all_eq(__vector signed long long __a, __vector signed long long __b) {
2862   int __cc;
2863   __builtin_s390_vceqgs(__a, __b, &__cc);
2864   return __cc == 0;
2865 }
2866 
2867 // This prototype is deprecated.
2868 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a,__vector __bool long long __b)2869 vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {
2870   int __cc;
2871   __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
2872   return __cc == 0;
2873 }
2874 
2875 // This prototype is deprecated.
2876 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector signed long long __b)2877 vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {
2878   int __cc;
2879   __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
2880   return __cc == 0;
2881 }
2882 
2883 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a,__vector unsigned long long __b)2884 vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
2885   int __cc;
2886   __builtin_s390_vceqgs((__vector signed long long)__a,
2887                         (__vector signed long long)__b, &__cc);
2888   return __cc == 0;
2889 }
2890 
2891 // This prototype is deprecated.
2892 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a,__vector __bool long long __b)2893 vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {
2894   int __cc;
2895   __builtin_s390_vceqgs((__vector signed long long)__a,
2896                         (__vector signed long long)__b, &__cc);
2897   return __cc == 0;
2898 }
2899 
2900 // This prototype is deprecated.
2901 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector unsigned long long __b)2902 vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {
2903   int __cc;
2904   __builtin_s390_vceqgs((__vector signed long long)__a,
2905                         (__vector signed long long)__b, &__cc);
2906   return __cc == 0;
2907 }
2908 
2909 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector __bool long long __b)2910 vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
2911   int __cc;
2912   __builtin_s390_vceqgs((__vector signed long long)__a,
2913                         (__vector signed long long)__b, &__cc);
2914   return __cc == 0;
2915 }
2916 
2917 #if __ARCH__ >= 12
2918 static inline __ATTRS_o_ai int
vec_all_eq(__vector float __a,__vector float __b)2919 vec_all_eq(__vector float __a, __vector float __b) {
2920   int __cc;
2921   __builtin_s390_vfcesbs(__a, __b, &__cc);
2922   return __cc == 0;
2923 }
2924 #endif
2925 
2926 static inline __ATTRS_o_ai int
vec_all_eq(__vector double __a,__vector double __b)2927 vec_all_eq(__vector double __a, __vector double __b) {
2928   int __cc;
2929   __builtin_s390_vfcedbs(__a, __b, &__cc);
2930   return __cc == 0;
2931 }
2932 
2933 /*-- vec_all_ne -------------------------------------------------------------*/
2934 
2935 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a,__vector signed char __b)2936 vec_all_ne(__vector signed char __a, __vector signed char __b) {
2937   int __cc;
2938   __builtin_s390_vceqbs(__a, __b, &__cc);
2939   return __cc == 3;
2940 }
2941 
2942 // This prototype is deprecated.
2943 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a,__vector __bool char __b)2944 vec_all_ne(__vector signed char __a, __vector __bool char __b) {
2945   int __cc;
2946   __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
2947   return __cc == 3;
2948 }
2949 
2950 // This prototype is deprecated.
2951 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector signed char __b)2952 vec_all_ne(__vector __bool char __a, __vector signed char __b) {
2953   int __cc;
2954   __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
2955   return __cc == 3;
2956 }
2957 
2958 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a,__vector unsigned char __b)2959 vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {
2960   int __cc;
2961   __builtin_s390_vceqbs((__vector signed char)__a,
2962                         (__vector signed char)__b, &__cc);
2963   return __cc == 3;
2964 }
2965 
2966 // This prototype is deprecated.
2967 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a,__vector __bool char __b)2968 vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {
2969   int __cc;
2970   __builtin_s390_vceqbs((__vector signed char)__a,
2971                         (__vector signed char)__b, &__cc);
2972   return __cc == 3;
2973 }
2974 
2975 // This prototype is deprecated.
2976 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector unsigned char __b)2977 vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {
2978   int __cc;
2979   __builtin_s390_vceqbs((__vector signed char)__a,
2980                         (__vector signed char)__b, &__cc);
2981   return __cc == 3;
2982 }
2983 
2984 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector __bool char __b)2985 vec_all_ne(__vector __bool char __a, __vector __bool char __b) {
2986   int __cc;
2987   __builtin_s390_vceqbs((__vector signed char)__a,
2988                         (__vector signed char)__b, &__cc);
2989   return __cc == 3;
2990 }
2991 
2992 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a,__vector signed short __b)2993 vec_all_ne(__vector signed short __a, __vector signed short __b) {
2994   int __cc;
2995   __builtin_s390_vceqhs(__a, __b, &__cc);
2996   return __cc == 3;
2997 }
2998 
2999 // This prototype is deprecated.
3000 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a,__vector __bool short __b)3001 vec_all_ne(__vector signed short __a, __vector __bool short __b) {
3002   int __cc;
3003   __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
3004   return __cc == 3;
3005 }
3006 
3007 // This prototype is deprecated.
3008 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector signed short __b)3009 vec_all_ne(__vector __bool short __a, __vector signed short __b) {
3010   int __cc;
3011   __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
3012   return __cc == 3;
3013 }
3014 
3015 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a,__vector unsigned short __b)3016 vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {
3017   int __cc;
3018   __builtin_s390_vceqhs((__vector signed short)__a,
3019                         (__vector signed short)__b, &__cc);
3020   return __cc == 3;
3021 }
3022 
3023 // This prototype is deprecated.
3024 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a,__vector __bool short __b)3025 vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {
3026   int __cc;
3027   __builtin_s390_vceqhs((__vector signed short)__a,
3028                         (__vector signed short)__b, &__cc);
3029   return __cc == 3;
3030 }
3031 
3032 // This prototype is deprecated.
3033 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector unsigned short __b)3034 vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {
3035   int __cc;
3036   __builtin_s390_vceqhs((__vector signed short)__a,
3037                         (__vector signed short)__b, &__cc);
3038   return __cc == 3;
3039 }
3040 
3041 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector __bool short __b)3042 vec_all_ne(__vector __bool short __a, __vector __bool short __b) {
3043   int __cc;
3044   __builtin_s390_vceqhs((__vector signed short)__a,
3045                         (__vector signed short)__b, &__cc);
3046   return __cc == 3;
3047 }
3048 
3049 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a,__vector signed int __b)3050 vec_all_ne(__vector signed int __a, __vector signed int __b) {
3051   int __cc;
3052   __builtin_s390_vceqfs(__a, __b, &__cc);
3053   return __cc == 3;
3054 }
3055 
3056 // This prototype is deprecated.
3057 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a,__vector __bool int __b)3058 vec_all_ne(__vector signed int __a, __vector __bool int __b) {
3059   int __cc;
3060   __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
3061   return __cc == 3;
3062 }
3063 
3064 // This prototype is deprecated.
3065 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector signed int __b)3066 vec_all_ne(__vector __bool int __a, __vector signed int __b) {
3067   int __cc;
3068   __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
3069   return __cc == 3;
3070 }
3071 
3072 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a,__vector unsigned int __b)3073 vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {
3074   int __cc;
3075   __builtin_s390_vceqfs((__vector signed int)__a,
3076                         (__vector signed int)__b, &__cc);
3077   return __cc == 3;
3078 }
3079 
3080 // This prototype is deprecated.
3081 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a,__vector __bool int __b)3082 vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {
3083   int __cc;
3084   __builtin_s390_vceqfs((__vector signed int)__a,
3085                         (__vector signed int)__b, &__cc);
3086   return __cc == 3;
3087 }
3088 
3089 // This prototype is deprecated.
3090 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector unsigned int __b)3091 vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {
3092   int __cc;
3093   __builtin_s390_vceqfs((__vector signed int)__a,
3094                         (__vector signed int)__b, &__cc);
3095   return __cc == 3;
3096 }
3097 
3098 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector __bool int __b)3099 vec_all_ne(__vector __bool int __a, __vector __bool int __b) {
3100   int __cc;
3101   __builtin_s390_vceqfs((__vector signed int)__a,
3102                         (__vector signed int)__b, &__cc);
3103   return __cc == 3;
3104 }
3105 
3106 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a,__vector signed long long __b)3107 vec_all_ne(__vector signed long long __a, __vector signed long long __b) {
3108   int __cc;
3109   __builtin_s390_vceqgs(__a, __b, &__cc);
3110   return __cc == 3;
3111 }
3112 
3113 // This prototype is deprecated.
3114 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a,__vector __bool long long __b)3115 vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {
3116   int __cc;
3117   __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
3118   return __cc == 3;
3119 }
3120 
3121 // This prototype is deprecated.
3122 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector signed long long __b)3123 vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {
3124   int __cc;
3125   __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
3126   return __cc == 3;
3127 }
3128 
3129 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a,__vector unsigned long long __b)3130 vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
3131   int __cc;
3132   __builtin_s390_vceqgs((__vector signed long long)__a,
3133                         (__vector signed long long)__b, &__cc);
3134   return __cc == 3;
3135 }
3136 
3137 // This prototype is deprecated.
3138 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a,__vector __bool long long __b)3139 vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {
3140   int __cc;
3141   __builtin_s390_vceqgs((__vector signed long long)__a,
3142                         (__vector signed long long)__b, &__cc);
3143   return __cc == 3;
3144 }
3145 
3146 // This prototype is deprecated.
3147 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector unsigned long long __b)3148 vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {
3149   int __cc;
3150   __builtin_s390_vceqgs((__vector signed long long)__a,
3151                         (__vector signed long long)__b, &__cc);
3152   return __cc == 3;
3153 }
3154 
3155 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector __bool long long __b)3156 vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
3157   int __cc;
3158   __builtin_s390_vceqgs((__vector signed long long)__a,
3159                         (__vector signed long long)__b, &__cc);
3160   return __cc == 3;
3161 }
3162 
3163 #if __ARCH__ >= 12
3164 static inline __ATTRS_o_ai int
vec_all_ne(__vector float __a,__vector float __b)3165 vec_all_ne(__vector float __a, __vector float __b) {
3166   int __cc;
3167   __builtin_s390_vfcesbs(__a, __b, &__cc);
3168   return __cc == 3;
3169 }
3170 #endif
3171 
3172 static inline __ATTRS_o_ai int
vec_all_ne(__vector double __a,__vector double __b)3173 vec_all_ne(__vector double __a, __vector double __b) {
3174   int __cc;
3175   __builtin_s390_vfcedbs(__a, __b, &__cc);
3176   return __cc == 3;
3177 }
3178 
3179 /*-- vec_all_ge -------------------------------------------------------------*/
3180 
3181 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a,__vector signed char __b)3182 vec_all_ge(__vector signed char __a, __vector signed char __b) {
3183   int __cc;
3184   __builtin_s390_vchbs(__b, __a, &__cc);
3185   return __cc == 3;
3186 }
3187 
3188 // This prototype is deprecated.
3189 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a,__vector __bool char __b)3190 vec_all_ge(__vector signed char __a, __vector __bool char __b) {
3191   int __cc;
3192   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3193   return __cc == 3;
3194 }
3195 
3196 // This prototype is deprecated.
3197 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector signed char __b)3198 vec_all_ge(__vector __bool char __a, __vector signed char __b) {
3199   int __cc;
3200   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3201   return __cc == 3;
3202 }
3203 
3204 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a,__vector unsigned char __b)3205 vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {
3206   int __cc;
3207   __builtin_s390_vchlbs(__b, __a, &__cc);
3208   return __cc == 3;
3209 }
3210 
3211 // This prototype is deprecated.
3212 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a,__vector __bool char __b)3213 vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {
3214   int __cc;
3215   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3216   return __cc == 3;
3217 }
3218 
3219 // This prototype is deprecated.
3220 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector unsigned char __b)3221 vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {
3222   int __cc;
3223   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3224   return __cc == 3;
3225 }
3226 
3227 // This prototype is deprecated.
3228 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector __bool char __b)3229 vec_all_ge(__vector __bool char __a, __vector __bool char __b) {
3230   int __cc;
3231   __builtin_s390_vchlbs((__vector unsigned char)__b,
3232                         (__vector unsigned char)__a, &__cc);
3233   return __cc == 3;
3234 }
3235 
3236 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a,__vector signed short __b)3237 vec_all_ge(__vector signed short __a, __vector signed short __b) {
3238   int __cc;
3239   __builtin_s390_vchhs(__b, __a, &__cc);
3240   return __cc == 3;
3241 }
3242 
3243 // This prototype is deprecated.
3244 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a,__vector __bool short __b)3245 vec_all_ge(__vector signed short __a, __vector __bool short __b) {
3246   int __cc;
3247   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3248   return __cc == 3;
3249 }
3250 
3251 // This prototype is deprecated.
3252 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector signed short __b)3253 vec_all_ge(__vector __bool short __a, __vector signed short __b) {
3254   int __cc;
3255   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3256   return __cc == 3;
3257 }
3258 
3259 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a,__vector unsigned short __b)3260 vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {
3261   int __cc;
3262   __builtin_s390_vchlhs(__b, __a, &__cc);
3263   return __cc == 3;
3264 }
3265 
3266 // This prototype is deprecated.
3267 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a,__vector __bool short __b)3268 vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {
3269   int __cc;
3270   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3271   return __cc == 3;
3272 }
3273 
3274 // This prototype is deprecated.
3275 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector unsigned short __b)3276 vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {
3277   int __cc;
3278   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3279   return __cc == 3;
3280 }
3281 
3282 // This prototype is deprecated.
3283 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector __bool short __b)3284 vec_all_ge(__vector __bool short __a, __vector __bool short __b) {
3285   int __cc;
3286   __builtin_s390_vchlhs((__vector unsigned short)__b,
3287                         (__vector unsigned short)__a, &__cc);
3288   return __cc == 3;
3289 }
3290 
3291 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a,__vector signed int __b)3292 vec_all_ge(__vector signed int __a, __vector signed int __b) {
3293   int __cc;
3294   __builtin_s390_vchfs(__b, __a, &__cc);
3295   return __cc == 3;
3296 }
3297 
3298 // This prototype is deprecated.
3299 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a,__vector __bool int __b)3300 vec_all_ge(__vector signed int __a, __vector __bool int __b) {
3301   int __cc;
3302   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
3303   return __cc == 3;
3304 }
3305 
3306 // This prototype is deprecated.
3307 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector signed int __b)3308 vec_all_ge(__vector __bool int __a, __vector signed int __b) {
3309   int __cc;
3310   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
3311   return __cc == 3;
3312 }
3313 
3314 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a,__vector unsigned int __b)3315 vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {
3316   int __cc;
3317   __builtin_s390_vchlfs(__b, __a, &__cc);
3318   return __cc == 3;
3319 }
3320 
3321 // This prototype is deprecated.
3322 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a,__vector __bool int __b)3323 vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {
3324   int __cc;
3325   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
3326   return __cc == 3;
3327 }
3328 
3329 // This prototype is deprecated.
3330 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector unsigned int __b)3331 vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {
3332   int __cc;
3333   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
3334   return __cc == 3;
3335 }
3336 
3337 // This prototype is deprecated.
3338 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector __bool int __b)3339 vec_all_ge(__vector __bool int __a, __vector __bool int __b) {
3340   int __cc;
3341   __builtin_s390_vchlfs((__vector unsigned int)__b,
3342                         (__vector unsigned int)__a, &__cc);
3343   return __cc == 3;
3344 }
3345 
3346 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a,__vector signed long long __b)3347 vec_all_ge(__vector signed long long __a, __vector signed long long __b) {
3348   int __cc;
3349   __builtin_s390_vchgs(__b, __a, &__cc);
3350   return __cc == 3;
3351 }
3352 
3353 // This prototype is deprecated.
3354 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a,__vector __bool long long __b)3355 vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {
3356   int __cc;
3357   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
3358   return __cc == 3;
3359 }
3360 
3361 // This prototype is deprecated.
3362 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector signed long long __b)3363 vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {
3364   int __cc;
3365   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
3366   return __cc == 3;
3367 }
3368 
3369 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a,__vector unsigned long long __b)3370 vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
3371   int __cc;
3372   __builtin_s390_vchlgs(__b, __a, &__cc);
3373   return __cc == 3;
3374 }
3375 
3376 // This prototype is deprecated.
3377 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a,__vector __bool long long __b)3378 vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {
3379   int __cc;
3380   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
3381   return __cc == 3;
3382 }
3383 
3384 // This prototype is deprecated.
3385 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector unsigned long long __b)3386 vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {
3387   int __cc;
3388   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
3389   return __cc == 3;
3390 }
3391 
3392 // This prototype is deprecated.
3393 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector __bool long long __b)3394 vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
3395   int __cc;
3396   __builtin_s390_vchlgs((__vector unsigned long long)__b,
3397                         (__vector unsigned long long)__a, &__cc);
3398   return __cc == 3;
3399 }
3400 
3401 #if __ARCH__ >= 12
3402 static inline __ATTRS_o_ai int
vec_all_ge(__vector float __a,__vector float __b)3403 vec_all_ge(__vector float __a, __vector float __b) {
3404   int __cc;
3405   __builtin_s390_vfchesbs(__a, __b, &__cc);
3406   return __cc == 0;
3407 }
3408 #endif
3409 
3410 static inline __ATTRS_o_ai int
vec_all_ge(__vector double __a,__vector double __b)3411 vec_all_ge(__vector double __a, __vector double __b) {
3412   int __cc;
3413   __builtin_s390_vfchedbs(__a, __b, &__cc);
3414   return __cc == 0;
3415 }
3416 
3417 /*-- vec_all_gt -------------------------------------------------------------*/
3418 
3419 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a,__vector signed char __b)3420 vec_all_gt(__vector signed char __a, __vector signed char __b) {
3421   int __cc;
3422   __builtin_s390_vchbs(__a, __b, &__cc);
3423   return __cc == 0;
3424 }
3425 
3426 // This prototype is deprecated.
3427 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a,__vector __bool char __b)3428 vec_all_gt(__vector signed char __a, __vector __bool char __b) {
3429   int __cc;
3430   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3431   return __cc == 0;
3432 }
3433 
3434 // This prototype is deprecated.
3435 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector signed char __b)3436 vec_all_gt(__vector __bool char __a, __vector signed char __b) {
3437   int __cc;
3438   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3439   return __cc == 0;
3440 }
3441 
3442 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a,__vector unsigned char __b)3443 vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {
3444   int __cc;
3445   __builtin_s390_vchlbs(__a, __b, &__cc);
3446   return __cc == 0;
3447 }
3448 
3449 // This prototype is deprecated.
3450 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a,__vector __bool char __b)3451 vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {
3452   int __cc;
3453   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3454   return __cc == 0;
3455 }
3456 
3457 // This prototype is deprecated.
3458 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector unsigned char __b)3459 vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {
3460   int __cc;
3461   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3462   return __cc == 0;
3463 }
3464 
3465 // This prototype is deprecated.
3466 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector __bool char __b)3467 vec_all_gt(__vector __bool char __a, __vector __bool char __b) {
3468   int __cc;
3469   __builtin_s390_vchlbs((__vector unsigned char)__a,
3470                         (__vector unsigned char)__b, &__cc);
3471   return __cc == 0;
3472 }
3473 
3474 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a,__vector signed short __b)3475 vec_all_gt(__vector signed short __a, __vector signed short __b) {
3476   int __cc;
3477   __builtin_s390_vchhs(__a, __b, &__cc);
3478   return __cc == 0;
3479 }
3480 
3481 // This prototype is deprecated.
3482 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a,__vector __bool short __b)3483 vec_all_gt(__vector signed short __a, __vector __bool short __b) {
3484   int __cc;
3485   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3486   return __cc == 0;
3487 }
3488 
3489 // This prototype is deprecated.
3490 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector signed short __b)3491 vec_all_gt(__vector __bool short __a, __vector signed short __b) {
3492   int __cc;
3493   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3494   return __cc == 0;
3495 }
3496 
3497 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a,__vector unsigned short __b)3498 vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {
3499   int __cc;
3500   __builtin_s390_vchlhs(__a, __b, &__cc);
3501   return __cc == 0;
3502 }
3503 
3504 // This prototype is deprecated.
3505 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a,__vector __bool short __b)3506 vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {
3507   int __cc;
3508   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3509   return __cc == 0;
3510 }
3511 
3512 // This prototype is deprecated.
3513 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector unsigned short __b)3514 vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {
3515   int __cc;
3516   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3517   return __cc == 0;
3518 }
3519 
3520 // This prototype is deprecated.
3521 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector __bool short __b)3522 vec_all_gt(__vector __bool short __a, __vector __bool short __b) {
3523   int __cc;
3524   __builtin_s390_vchlhs((__vector unsigned short)__a,
3525                         (__vector unsigned short)__b, &__cc);
3526   return __cc == 0;
3527 }
3528 
3529 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a,__vector signed int __b)3530 vec_all_gt(__vector signed int __a, __vector signed int __b) {
3531   int __cc;
3532   __builtin_s390_vchfs(__a, __b, &__cc);
3533   return __cc == 0;
3534 }
3535 
3536 // This prototype is deprecated.
3537 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a,__vector __bool int __b)3538 vec_all_gt(__vector signed int __a, __vector __bool int __b) {
3539   int __cc;
3540   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3541   return __cc == 0;
3542 }
3543 
3544 // This prototype is deprecated.
3545 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector signed int __b)3546 vec_all_gt(__vector __bool int __a, __vector signed int __b) {
3547   int __cc;
3548   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3549   return __cc == 0;
3550 }
3551 
3552 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a,__vector unsigned int __b)3553 vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {
3554   int __cc;
3555   __builtin_s390_vchlfs(__a, __b, &__cc);
3556   return __cc == 0;
3557 }
3558 
3559 // This prototype is deprecated.
3560 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a,__vector __bool int __b)3561 vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {
3562   int __cc;
3563   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3564   return __cc == 0;
3565 }
3566 
3567 // This prototype is deprecated.
3568 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector unsigned int __b)3569 vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {
3570   int __cc;
3571   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3572   return __cc == 0;
3573 }
3574 
3575 // This prototype is deprecated.
3576 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector __bool int __b)3577 vec_all_gt(__vector __bool int __a, __vector __bool int __b) {
3578   int __cc;
3579   __builtin_s390_vchlfs((__vector unsigned int)__a,
3580                         (__vector unsigned int)__b, &__cc);
3581   return __cc == 0;
3582 }
3583 
3584 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a,__vector signed long long __b)3585 vec_all_gt(__vector signed long long __a, __vector signed long long __b) {
3586   int __cc;
3587   __builtin_s390_vchgs(__a, __b, &__cc);
3588   return __cc == 0;
3589 }
3590 
3591 // This prototype is deprecated.
3592 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a,__vector __bool long long __b)3593 vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {
3594   int __cc;
3595   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3596   return __cc == 0;
3597 }
3598 
3599 // This prototype is deprecated.
3600 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector signed long long __b)3601 vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {
3602   int __cc;
3603   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3604   return __cc == 0;
3605 }
3606 
3607 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a,__vector unsigned long long __b)3608 vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
3609   int __cc;
3610   __builtin_s390_vchlgs(__a, __b, &__cc);
3611   return __cc == 0;
3612 }
3613 
3614 // This prototype is deprecated.
3615 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a,__vector __bool long long __b)3616 vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {
3617   int __cc;
3618   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3619   return __cc == 0;
3620 }
3621 
3622 // This prototype is deprecated.
3623 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector unsigned long long __b)3624 vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {
3625   int __cc;
3626   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3627   return __cc == 0;
3628 }
3629 
3630 // This prototype is deprecated.
3631 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector __bool long long __b)3632 vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
3633   int __cc;
3634   __builtin_s390_vchlgs((__vector unsigned long long)__a,
3635                         (__vector unsigned long long)__b, &__cc);
3636   return __cc == 0;
3637 }
3638 
3639 #if __ARCH__ >= 12
3640 static inline __ATTRS_o_ai int
vec_all_gt(__vector float __a,__vector float __b)3641 vec_all_gt(__vector float __a, __vector float __b) {
3642   int __cc;
3643   __builtin_s390_vfchsbs(__a, __b, &__cc);
3644   return __cc == 0;
3645 }
3646 #endif
3647 
3648 static inline __ATTRS_o_ai int
vec_all_gt(__vector double __a,__vector double __b)3649 vec_all_gt(__vector double __a, __vector double __b) {
3650   int __cc;
3651   __builtin_s390_vfchdbs(__a, __b, &__cc);
3652   return __cc == 0;
3653 }
3654 
3655 /*-- vec_all_le -------------------------------------------------------------*/
3656 
3657 static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a,__vector signed char __b)3658 vec_all_le(__vector signed char __a, __vector signed char __b) {
3659   int __cc;
3660   __builtin_s390_vchbs(__a, __b, &__cc);
3661   return __cc == 3;
3662 }
3663 
3664 // This prototype is deprecated.
3665 static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a,__vector __bool char __b)3666 vec_all_le(__vector signed char __a, __vector __bool char __b) {
3667   int __cc;
3668   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3669   return __cc == 3;
3670 }
3671 
3672 // This prototype is deprecated.
3673 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector signed char __b)3674 vec_all_le(__vector __bool char __a, __vector signed char __b) {
3675   int __cc;
3676   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3677   return __cc == 3;
3678 }
3679 
3680 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a,__vector unsigned char __b)3681 vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {
3682   int __cc;
3683   __builtin_s390_vchlbs(__a, __b, &__cc);
3684   return __cc == 3;
3685 }
3686 
3687 // This prototype is deprecated.
3688 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a,__vector __bool char __b)3689 vec_all_le(__vector unsigned char __a, __vector __bool char __b) {
3690   int __cc;
3691   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3692   return __cc == 3;
3693 }
3694 
3695 // This prototype is deprecated.
3696 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector unsigned char __b)3697 vec_all_le(__vector __bool char __a, __vector unsigned char __b) {
3698   int __cc;
3699   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3700   return __cc == 3;
3701 }
3702 
3703 // This prototype is deprecated.
3704 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector __bool char __b)3705 vec_all_le(__vector __bool char __a, __vector __bool char __b) {
3706   int __cc;
3707   __builtin_s390_vchlbs((__vector unsigned char)__a,
3708                         (__vector unsigned char)__b, &__cc);
3709   return __cc == 3;
3710 }
3711 
3712 static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a,__vector signed short __b)3713 vec_all_le(__vector signed short __a, __vector signed short __b) {
3714   int __cc;
3715   __builtin_s390_vchhs(__a, __b, &__cc);
3716   return __cc == 3;
3717 }
3718 
3719 // This prototype is deprecated.
3720 static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a,__vector __bool short __b)3721 vec_all_le(__vector signed short __a, __vector __bool short __b) {
3722   int __cc;
3723   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3724   return __cc == 3;
3725 }
3726 
3727 // This prototype is deprecated.
3728 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector signed short __b)3729 vec_all_le(__vector __bool short __a, __vector signed short __b) {
3730   int __cc;
3731   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3732   return __cc == 3;
3733 }
3734 
3735 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a,__vector unsigned short __b)3736 vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {
3737   int __cc;
3738   __builtin_s390_vchlhs(__a, __b, &__cc);
3739   return __cc == 3;
3740 }
3741 
3742 // This prototype is deprecated.
3743 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a,__vector __bool short __b)3744 vec_all_le(__vector unsigned short __a, __vector __bool short __b) {
3745   int __cc;
3746   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3747   return __cc == 3;
3748 }
3749 
3750 // This prototype is deprecated.
3751 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector unsigned short __b)3752 vec_all_le(__vector __bool short __a, __vector unsigned short __b) {
3753   int __cc;
3754   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3755   return __cc == 3;
3756 }
3757 
3758 // This prototype is deprecated.
3759 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector __bool short __b)3760 vec_all_le(__vector __bool short __a, __vector __bool short __b) {
3761   int __cc;
3762   __builtin_s390_vchlhs((__vector unsigned short)__a,
3763                         (__vector unsigned short)__b, &__cc);
3764   return __cc == 3;
3765 }
3766 
3767 static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a,__vector signed int __b)3768 vec_all_le(__vector signed int __a, __vector signed int __b) {
3769   int __cc;
3770   __builtin_s390_vchfs(__a, __b, &__cc);
3771   return __cc == 3;
3772 }
3773 
3774 // This prototype is deprecated.
3775 static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a,__vector __bool int __b)3776 vec_all_le(__vector signed int __a, __vector __bool int __b) {
3777   int __cc;
3778   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3779   return __cc == 3;
3780 }
3781 
3782 // This prototype is deprecated.
3783 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector signed int __b)3784 vec_all_le(__vector __bool int __a, __vector signed int __b) {
3785   int __cc;
3786   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3787   return __cc == 3;
3788 }
3789 
3790 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a,__vector unsigned int __b)3791 vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {
3792   int __cc;
3793   __builtin_s390_vchlfs(__a, __b, &__cc);
3794   return __cc == 3;
3795 }
3796 
3797 // This prototype is deprecated.
3798 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a,__vector __bool int __b)3799 vec_all_le(__vector unsigned int __a, __vector __bool int __b) {
3800   int __cc;
3801   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3802   return __cc == 3;
3803 }
3804 
3805 // This prototype is deprecated.
3806 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector unsigned int __b)3807 vec_all_le(__vector __bool int __a, __vector unsigned int __b) {
3808   int __cc;
3809   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3810   return __cc == 3;
3811 }
3812 
3813 // This prototype is deprecated.
3814 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector __bool int __b)3815 vec_all_le(__vector __bool int __a, __vector __bool int __b) {
3816   int __cc;
3817   __builtin_s390_vchlfs((__vector unsigned int)__a,
3818                         (__vector unsigned int)__b, &__cc);
3819   return __cc == 3;
3820 }
3821 
3822 static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a,__vector signed long long __b)3823 vec_all_le(__vector signed long long __a, __vector signed long long __b) {
3824   int __cc;
3825   __builtin_s390_vchgs(__a, __b, &__cc);
3826   return __cc == 3;
3827 }
3828 
3829 // This prototype is deprecated.
3830 static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a,__vector __bool long long __b)3831 vec_all_le(__vector signed long long __a, __vector __bool long long __b) {
3832   int __cc;
3833   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3834   return __cc == 3;
3835 }
3836 
3837 // This prototype is deprecated.
3838 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector signed long long __b)3839 vec_all_le(__vector __bool long long __a, __vector signed long long __b) {
3840   int __cc;
3841   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3842   return __cc == 3;
3843 }
3844 
3845 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a,__vector unsigned long long __b)3846 vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {
3847   int __cc;
3848   __builtin_s390_vchlgs(__a, __b, &__cc);
3849   return __cc == 3;
3850 }
3851 
3852 // This prototype is deprecated.
3853 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a,__vector __bool long long __b)3854 vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {
3855   int __cc;
3856   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3857   return __cc == 3;
3858 }
3859 
3860 // This prototype is deprecated.
3861 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector unsigned long long __b)3862 vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {
3863   int __cc;
3864   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3865   return __cc == 3;
3866 }
3867 
3868 // This prototype is deprecated.
3869 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector __bool long long __b)3870 vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
3871   int __cc;
3872   __builtin_s390_vchlgs((__vector unsigned long long)__a,
3873                         (__vector unsigned long long)__b, &__cc);
3874   return __cc == 3;
3875 }
3876 
3877 #if __ARCH__ >= 12
3878 static inline __ATTRS_o_ai int
vec_all_le(__vector float __a,__vector float __b)3879 vec_all_le(__vector float __a, __vector float __b) {
3880   int __cc;
3881   __builtin_s390_vfchesbs(__b, __a, &__cc);
3882   return __cc == 0;
3883 }
3884 #endif
3885 
3886 static inline __ATTRS_o_ai int
vec_all_le(__vector double __a,__vector double __b)3887 vec_all_le(__vector double __a, __vector double __b) {
3888   int __cc;
3889   __builtin_s390_vfchedbs(__b, __a, &__cc);
3890   return __cc == 0;
3891 }
3892 
3893 /*-- vec_all_lt -------------------------------------------------------------*/
3894 
3895 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a,__vector signed char __b)3896 vec_all_lt(__vector signed char __a, __vector signed char __b) {
3897   int __cc;
3898   __builtin_s390_vchbs(__b, __a, &__cc);
3899   return __cc == 0;
3900 }
3901 
3902 // This prototype is deprecated.
3903 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a,__vector __bool char __b)3904 vec_all_lt(__vector signed char __a, __vector __bool char __b) {
3905   int __cc;
3906   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3907   return __cc == 0;
3908 }
3909 
3910 // This prototype is deprecated.
3911 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector signed char __b)3912 vec_all_lt(__vector __bool char __a, __vector signed char __b) {
3913   int __cc;
3914   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3915   return __cc == 0;
3916 }
3917 
3918 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a,__vector unsigned char __b)3919 vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {
3920   int __cc;
3921   __builtin_s390_vchlbs(__b, __a, &__cc);
3922   return __cc == 0;
3923 }
3924 
3925 // This prototype is deprecated.
3926 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a,__vector __bool char __b)3927 vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {
3928   int __cc;
3929   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3930   return __cc == 0;
3931 }
3932 
3933 // This prototype is deprecated.
3934 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector unsigned char __b)3935 vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {
3936   int __cc;
3937   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3938   return __cc == 0;
3939 }
3940 
3941 // This prototype is deprecated.
3942 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector __bool char __b)3943 vec_all_lt(__vector __bool char __a, __vector __bool char __b) {
3944   int __cc;
3945   __builtin_s390_vchlbs((__vector unsigned char)__b,
3946                         (__vector unsigned char)__a, &__cc);
3947   return __cc == 0;
3948 }
3949 
3950 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a,__vector signed short __b)3951 vec_all_lt(__vector signed short __a, __vector signed short __b) {
3952   int __cc;
3953   __builtin_s390_vchhs(__b, __a, &__cc);
3954   return __cc == 0;
3955 }
3956 
3957 // This prototype is deprecated.
3958 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a,__vector __bool short __b)3959 vec_all_lt(__vector signed short __a, __vector __bool short __b) {
3960   int __cc;
3961   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3962   return __cc == 0;
3963 }
3964 
3965 // This prototype is deprecated.
3966 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector signed short __b)3967 vec_all_lt(__vector __bool short __a, __vector signed short __b) {
3968   int __cc;
3969   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3970   return __cc == 0;
3971 }
3972 
3973 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a,__vector unsigned short __b)3974 vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {
3975   int __cc;
3976   __builtin_s390_vchlhs(__b, __a, &__cc);
3977   return __cc == 0;
3978 }
3979 
3980 // This prototype is deprecated.
3981 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a,__vector __bool short __b)3982 vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {
3983   int __cc;
3984   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3985   return __cc == 0;
3986 }
3987 
3988 // This prototype is deprecated.
3989 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector unsigned short __b)3990 vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {
3991   int __cc;
3992   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3993   return __cc == 0;
3994 }
3995 
3996 // This prototype is deprecated.
3997 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector __bool short __b)3998 vec_all_lt(__vector __bool short __a, __vector __bool short __b) {
3999   int __cc;
4000   __builtin_s390_vchlhs((__vector unsigned short)__b,
4001                         (__vector unsigned short)__a, &__cc);
4002   return __cc == 0;
4003 }
4004 
4005 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a,__vector signed int __b)4006 vec_all_lt(__vector signed int __a, __vector signed int __b) {
4007   int __cc;
4008   __builtin_s390_vchfs(__b, __a, &__cc);
4009   return __cc == 0;
4010 }
4011 
4012 // This prototype is deprecated.
4013 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a,__vector __bool int __b)4014 vec_all_lt(__vector signed int __a, __vector __bool int __b) {
4015   int __cc;
4016   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
4017   return __cc == 0;
4018 }
4019 
4020 // This prototype is deprecated.
4021 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector signed int __b)4022 vec_all_lt(__vector __bool int __a, __vector signed int __b) {
4023   int __cc;
4024   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
4025   return __cc == 0;
4026 }
4027 
4028 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a,__vector unsigned int __b)4029 vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {
4030   int __cc;
4031   __builtin_s390_vchlfs(__b, __a, &__cc);
4032   return __cc == 0;
4033 }
4034 
4035 // This prototype is deprecated.
4036 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a,__vector __bool int __b)4037 vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {
4038   int __cc;
4039   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
4040   return __cc == 0;
4041 }
4042 
4043 // This prototype is deprecated.
4044 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector unsigned int __b)4045 vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {
4046   int __cc;
4047   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
4048   return __cc == 0;
4049 }
4050 
4051 // This prototype is deprecated.
4052 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector __bool int __b)4053 vec_all_lt(__vector __bool int __a, __vector __bool int __b) {
4054   int __cc;
4055   __builtin_s390_vchlfs((__vector unsigned int)__b,
4056                         (__vector unsigned int)__a, &__cc);
4057   return __cc == 0;
4058 }
4059 
4060 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a,__vector signed long long __b)4061 vec_all_lt(__vector signed long long __a, __vector signed long long __b) {
4062   int __cc;
4063   __builtin_s390_vchgs(__b, __a, &__cc);
4064   return __cc == 0;
4065 }
4066 
4067 // This prototype is deprecated.
4068 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a,__vector __bool long long __b)4069 vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {
4070   int __cc;
4071   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
4072   return __cc == 0;
4073 }
4074 
4075 // This prototype is deprecated.
4076 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector signed long long __b)4077 vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {
4078   int __cc;
4079   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
4080   return __cc == 0;
4081 }
4082 
4083 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a,__vector unsigned long long __b)4084 vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
4085   int __cc;
4086   __builtin_s390_vchlgs(__b, __a, &__cc);
4087   return __cc == 0;
4088 }
4089 
4090 // This prototype is deprecated.
4091 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a,__vector __bool long long __b)4092 vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {
4093   int __cc;
4094   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4095   return __cc == 0;
4096 }
4097 
4098 // This prototype is deprecated.
4099 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector unsigned long long __b)4100 vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {
4101   int __cc;
4102   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4103   return __cc == 0;
4104 }
4105 
4106 // This prototype is deprecated.
4107 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector __bool long long __b)4108 vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
4109   int __cc;
4110   __builtin_s390_vchlgs((__vector unsigned long long)__b,
4111                         (__vector unsigned long long)__a, &__cc);
4112   return __cc == 0;
4113 }
4114 
4115 #if __ARCH__ >= 12
4116 static inline __ATTRS_o_ai int
vec_all_lt(__vector float __a,__vector float __b)4117 vec_all_lt(__vector float __a, __vector float __b) {
4118   int __cc;
4119   __builtin_s390_vfchsbs(__b, __a, &__cc);
4120   return __cc == 0;
4121 }
4122 #endif
4123 
4124 static inline __ATTRS_o_ai int
vec_all_lt(__vector double __a,__vector double __b)4125 vec_all_lt(__vector double __a, __vector double __b) {
4126   int __cc;
4127   __builtin_s390_vfchdbs(__b, __a, &__cc);
4128   return __cc == 0;
4129 }
4130 
4131 /*-- vec_all_nge ------------------------------------------------------------*/
4132 
4133 #if __ARCH__ >= 12
4134 static inline __ATTRS_o_ai int
vec_all_nge(__vector float __a,__vector float __b)4135 vec_all_nge(__vector float __a, __vector float __b) {
4136   int __cc;
4137   __builtin_s390_vfchesbs(__a, __b, &__cc);
4138   return __cc == 3;
4139 }
4140 #endif
4141 
4142 static inline __ATTRS_o_ai int
vec_all_nge(__vector double __a,__vector double __b)4143 vec_all_nge(__vector double __a, __vector double __b) {
4144   int __cc;
4145   __builtin_s390_vfchedbs(__a, __b, &__cc);
4146   return __cc == 3;
4147 }
4148 
4149 /*-- vec_all_ngt ------------------------------------------------------------*/
4150 
4151 #if __ARCH__ >= 12
4152 static inline __ATTRS_o_ai int
vec_all_ngt(__vector float __a,__vector float __b)4153 vec_all_ngt(__vector float __a, __vector float __b) {
4154   int __cc;
4155   __builtin_s390_vfchsbs(__a, __b, &__cc);
4156   return __cc == 3;
4157 }
4158 #endif
4159 
4160 static inline __ATTRS_o_ai int
vec_all_ngt(__vector double __a,__vector double __b)4161 vec_all_ngt(__vector double __a, __vector double __b) {
4162   int __cc;
4163   __builtin_s390_vfchdbs(__a, __b, &__cc);
4164   return __cc == 3;
4165 }
4166 
4167 /*-- vec_all_nle ------------------------------------------------------------*/
4168 
4169 #if __ARCH__ >= 12
4170 static inline __ATTRS_o_ai int
vec_all_nle(__vector float __a,__vector float __b)4171 vec_all_nle(__vector float __a, __vector float __b) {
4172   int __cc;
4173   __builtin_s390_vfchesbs(__b, __a, &__cc);
4174   return __cc == 3;
4175 }
4176 #endif
4177 
4178 static inline __ATTRS_o_ai int
vec_all_nle(__vector double __a,__vector double __b)4179 vec_all_nle(__vector double __a, __vector double __b) {
4180   int __cc;
4181   __builtin_s390_vfchedbs(__b, __a, &__cc);
4182   return __cc == 3;
4183 }
4184 
4185 /*-- vec_all_nlt ------------------------------------------------------------*/
4186 
4187 #if __ARCH__ >= 12
4188 static inline __ATTRS_o_ai int
vec_all_nlt(__vector float __a,__vector float __b)4189 vec_all_nlt(__vector float __a, __vector float __b) {
4190   int __cc;
4191   __builtin_s390_vfchsbs(__b, __a, &__cc);
4192   return __cc == 3;
4193 }
4194 #endif
4195 
4196 static inline __ATTRS_o_ai int
vec_all_nlt(__vector double __a,__vector double __b)4197 vec_all_nlt(__vector double __a, __vector double __b) {
4198   int __cc;
4199   __builtin_s390_vfchdbs(__b, __a, &__cc);
4200   return __cc == 3;
4201 }
4202 
4203 /*-- vec_all_nan ------------------------------------------------------------*/
4204 
4205 #if __ARCH__ >= 12
4206 static inline __ATTRS_o_ai int
vec_all_nan(__vector float __a)4207 vec_all_nan(__vector float __a) {
4208   int __cc;
4209   __builtin_s390_vftcisb(__a, 15, &__cc);
4210   return __cc == 0;
4211 }
4212 #endif
4213 
4214 static inline __ATTRS_o_ai int
vec_all_nan(__vector double __a)4215 vec_all_nan(__vector double __a) {
4216   int __cc;
4217   __builtin_s390_vftcidb(__a, 15, &__cc);
4218   return __cc == 0;
4219 }
4220 
4221 /*-- vec_all_numeric --------------------------------------------------------*/
4222 
4223 #if __ARCH__ >= 12
4224 static inline __ATTRS_o_ai int
vec_all_numeric(__vector float __a)4225 vec_all_numeric(__vector float __a) {
4226   int __cc;
4227   __builtin_s390_vftcisb(__a, 15, &__cc);
4228   return __cc == 3;
4229 }
4230 #endif
4231 
4232 static inline __ATTRS_o_ai int
vec_all_numeric(__vector double __a)4233 vec_all_numeric(__vector double __a) {
4234   int __cc;
4235   __builtin_s390_vftcidb(__a, 15, &__cc);
4236   return __cc == 3;
4237 }
4238 
4239 /*-- vec_any_eq -------------------------------------------------------------*/
4240 
4241 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a,__vector signed char __b)4242 vec_any_eq(__vector signed char __a, __vector signed char __b) {
4243   int __cc;
4244   __builtin_s390_vceqbs(__a, __b, &__cc);
4245   return __cc <= 1;
4246 }
4247 
4248 // This prototype is deprecated.
4249 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a,__vector __bool char __b)4250 vec_any_eq(__vector signed char __a, __vector __bool char __b) {
4251   int __cc;
4252   __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
4253   return __cc <= 1;
4254 }
4255 
4256 // This prototype is deprecated.
4257 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector signed char __b)4258 vec_any_eq(__vector __bool char __a, __vector signed char __b) {
4259   int __cc;
4260   __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
4261   return __cc <= 1;
4262 }
4263 
4264 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a,__vector unsigned char __b)4265 vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
4266   int __cc;
4267   __builtin_s390_vceqbs((__vector signed char)__a,
4268                         (__vector signed char)__b, &__cc);
4269   return __cc <= 1;
4270 }
4271 
4272 // This prototype is deprecated.
4273 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a,__vector __bool char __b)4274 vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {
4275   int __cc;
4276   __builtin_s390_vceqbs((__vector signed char)__a,
4277                         (__vector signed char)__b, &__cc);
4278   return __cc <= 1;
4279 }
4280 
4281 // This prototype is deprecated.
4282 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector unsigned char __b)4283 vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {
4284   int __cc;
4285   __builtin_s390_vceqbs((__vector signed char)__a,
4286                         (__vector signed char)__b, &__cc);
4287   return __cc <= 1;
4288 }
4289 
4290 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector __bool char __b)4291 vec_any_eq(__vector __bool char __a, __vector __bool char __b) {
4292   int __cc;
4293   __builtin_s390_vceqbs((__vector signed char)__a,
4294                         (__vector signed char)__b, &__cc);
4295   return __cc <= 1;
4296 }
4297 
4298 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a,__vector signed short __b)4299 vec_any_eq(__vector signed short __a, __vector signed short __b) {
4300   int __cc;
4301   __builtin_s390_vceqhs(__a, __b, &__cc);
4302   return __cc <= 1;
4303 }
4304 
4305 // This prototype is deprecated.
4306 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a,__vector __bool short __b)4307 vec_any_eq(__vector signed short __a, __vector __bool short __b) {
4308   int __cc;
4309   __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
4310   return __cc <= 1;
4311 }
4312 
4313 // This prototype is deprecated.
4314 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector signed short __b)4315 vec_any_eq(__vector __bool short __a, __vector signed short __b) {
4316   int __cc;
4317   __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
4318   return __cc <= 1;
4319 }
4320 
4321 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a,__vector unsigned short __b)4322 vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
4323   int __cc;
4324   __builtin_s390_vceqhs((__vector signed short)__a,
4325                         (__vector signed short)__b, &__cc);
4326   return __cc <= 1;
4327 }
4328 
4329 // This prototype is deprecated.
4330 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a,__vector __bool short __b)4331 vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {
4332   int __cc;
4333   __builtin_s390_vceqhs((__vector signed short)__a,
4334                         (__vector signed short)__b, &__cc);
4335   return __cc <= 1;
4336 }
4337 
4338 // This prototype is deprecated.
4339 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector unsigned short __b)4340 vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {
4341   int __cc;
4342   __builtin_s390_vceqhs((__vector signed short)__a,
4343                         (__vector signed short)__b, &__cc);
4344   return __cc <= 1;
4345 }
4346 
4347 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector __bool short __b)4348 vec_any_eq(__vector __bool short __a, __vector __bool short __b) {
4349   int __cc;
4350   __builtin_s390_vceqhs((__vector signed short)__a,
4351                         (__vector signed short)__b, &__cc);
4352   return __cc <= 1;
4353 }
4354 
4355 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a,__vector signed int __b)4356 vec_any_eq(__vector signed int __a, __vector signed int __b) {
4357   int __cc;
4358   __builtin_s390_vceqfs(__a, __b, &__cc);
4359   return __cc <= 1;
4360 }
4361 
4362 // This prototype is deprecated.
4363 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a,__vector __bool int __b)4364 vec_any_eq(__vector signed int __a, __vector __bool int __b) {
4365   int __cc;
4366   __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
4367   return __cc <= 1;
4368 }
4369 
4370 // This prototype is deprecated.
4371 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector signed int __b)4372 vec_any_eq(__vector __bool int __a, __vector signed int __b) {
4373   int __cc;
4374   __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
4375   return __cc <= 1;
4376 }
4377 
4378 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a,__vector unsigned int __b)4379 vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
4380   int __cc;
4381   __builtin_s390_vceqfs((__vector signed int)__a,
4382                         (__vector signed int)__b, &__cc);
4383   return __cc <= 1;
4384 }
4385 
4386 // This prototype is deprecated.
4387 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a,__vector __bool int __b)4388 vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {
4389   int __cc;
4390   __builtin_s390_vceqfs((__vector signed int)__a,
4391                         (__vector signed int)__b, &__cc);
4392   return __cc <= 1;
4393 }
4394 
4395 // This prototype is deprecated.
4396 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector unsigned int __b)4397 vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {
4398   int __cc;
4399   __builtin_s390_vceqfs((__vector signed int)__a,
4400                         (__vector signed int)__b, &__cc);
4401   return __cc <= 1;
4402 }
4403 
4404 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector __bool int __b)4405 vec_any_eq(__vector __bool int __a, __vector __bool int __b) {
4406   int __cc;
4407   __builtin_s390_vceqfs((__vector signed int)__a,
4408                         (__vector signed int)__b, &__cc);
4409   return __cc <= 1;
4410 }
4411 
4412 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a,__vector signed long long __b)4413 vec_any_eq(__vector signed long long __a, __vector signed long long __b) {
4414   int __cc;
4415   __builtin_s390_vceqgs(__a, __b, &__cc);
4416   return __cc <= 1;
4417 }
4418 
4419 // This prototype is deprecated.
4420 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a,__vector __bool long long __b)4421 vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {
4422   int __cc;
4423   __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
4424   return __cc <= 1;
4425 }
4426 
4427 // This prototype is deprecated.
4428 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector signed long long __b)4429 vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {
4430   int __cc;
4431   __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
4432   return __cc <= 1;
4433 }
4434 
4435 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a,__vector unsigned long long __b)4436 vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
4437   int __cc;
4438   __builtin_s390_vceqgs((__vector signed long long)__a,
4439                         (__vector signed long long)__b, &__cc);
4440   return __cc <= 1;
4441 }
4442 
4443 // This prototype is deprecated.
4444 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a,__vector __bool long long __b)4445 vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {
4446   int __cc;
4447   __builtin_s390_vceqgs((__vector signed long long)__a,
4448                         (__vector signed long long)__b, &__cc);
4449   return __cc <= 1;
4450 }
4451 
4452 // This prototype is deprecated.
4453 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector unsigned long long __b)4454 vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {
4455   int __cc;
4456   __builtin_s390_vceqgs((__vector signed long long)__a,
4457                         (__vector signed long long)__b, &__cc);
4458   return __cc <= 1;
4459 }
4460 
4461 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector __bool long long __b)4462 vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
4463   int __cc;
4464   __builtin_s390_vceqgs((__vector signed long long)__a,
4465                         (__vector signed long long)__b, &__cc);
4466   return __cc <= 1;
4467 }
4468 
4469 #if __ARCH__ >= 12
4470 static inline __ATTRS_o_ai int
vec_any_eq(__vector float __a,__vector float __b)4471 vec_any_eq(__vector float __a, __vector float __b) {
4472   int __cc;
4473   __builtin_s390_vfcesbs(__a, __b, &__cc);
4474   return __cc <= 1;
4475 }
4476 #endif
4477 
4478 static inline __ATTRS_o_ai int
vec_any_eq(__vector double __a,__vector double __b)4479 vec_any_eq(__vector double __a, __vector double __b) {
4480   int __cc;
4481   __builtin_s390_vfcedbs(__a, __b, &__cc);
4482   return __cc <= 1;
4483 }
4484 
4485 /*-- vec_any_ne -------------------------------------------------------------*/
4486 
4487 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a,__vector signed char __b)4488 vec_any_ne(__vector signed char __a, __vector signed char __b) {
4489   int __cc;
4490   __builtin_s390_vceqbs(__a, __b, &__cc);
4491   return __cc != 0;
4492 }
4493 
4494 // This prototype is deprecated.
4495 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a,__vector __bool char __b)4496 vec_any_ne(__vector signed char __a, __vector __bool char __b) {
4497   int __cc;
4498   __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
4499   return __cc != 0;
4500 }
4501 
4502 // This prototype is deprecated.
4503 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector signed char __b)4504 vec_any_ne(__vector __bool char __a, __vector signed char __b) {
4505   int __cc;
4506   __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
4507   return __cc != 0;
4508 }
4509 
4510 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a,__vector unsigned char __b)4511 vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
4512   int __cc;
4513   __builtin_s390_vceqbs((__vector signed char)__a,
4514                         (__vector signed char)__b, &__cc);
4515   return __cc != 0;
4516 }
4517 
4518 // This prototype is deprecated.
4519 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a,__vector __bool char __b)4520 vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {
4521   int __cc;
4522   __builtin_s390_vceqbs((__vector signed char)__a,
4523                         (__vector signed char)__b, &__cc);
4524   return __cc != 0;
4525 }
4526 
4527 // This prototype is deprecated.
4528 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector unsigned char __b)4529 vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {
4530   int __cc;
4531   __builtin_s390_vceqbs((__vector signed char)__a,
4532                         (__vector signed char)__b, &__cc);
4533   return __cc != 0;
4534 }
4535 
4536 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector __bool char __b)4537 vec_any_ne(__vector __bool char __a, __vector __bool char __b) {
4538   int __cc;
4539   __builtin_s390_vceqbs((__vector signed char)__a,
4540                         (__vector signed char)__b, &__cc);
4541   return __cc != 0;
4542 }
4543 
4544 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a,__vector signed short __b)4545 vec_any_ne(__vector signed short __a, __vector signed short __b) {
4546   int __cc;
4547   __builtin_s390_vceqhs(__a, __b, &__cc);
4548   return __cc != 0;
4549 }
4550 
4551 // This prototype is deprecated.
4552 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a,__vector __bool short __b)4553 vec_any_ne(__vector signed short __a, __vector __bool short __b) {
4554   int __cc;
4555   __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
4556   return __cc != 0;
4557 }
4558 
4559 // This prototype is deprecated.
4560 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector signed short __b)4561 vec_any_ne(__vector __bool short __a, __vector signed short __b) {
4562   int __cc;
4563   __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
4564   return __cc != 0;
4565 }
4566 
4567 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a,__vector unsigned short __b)4568 vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
4569   int __cc;
4570   __builtin_s390_vceqhs((__vector signed short)__a,
4571                         (__vector signed short)__b, &__cc);
4572   return __cc != 0;
4573 }
4574 
4575 // This prototype is deprecated.
4576 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a,__vector __bool short __b)4577 vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {
4578   int __cc;
4579   __builtin_s390_vceqhs((__vector signed short)__a,
4580                         (__vector signed short)__b, &__cc);
4581   return __cc != 0;
4582 }
4583 
4584 // This prototype is deprecated.
4585 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector unsigned short __b)4586 vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {
4587   int __cc;
4588   __builtin_s390_vceqhs((__vector signed short)__a,
4589                         (__vector signed short)__b, &__cc);
4590   return __cc != 0;
4591 }
4592 
4593 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector __bool short __b)4594 vec_any_ne(__vector __bool short __a, __vector __bool short __b) {
4595   int __cc;
4596   __builtin_s390_vceqhs((__vector signed short)__a,
4597                         (__vector signed short)__b, &__cc);
4598   return __cc != 0;
4599 }
4600 
4601 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a,__vector signed int __b)4602 vec_any_ne(__vector signed int __a, __vector signed int __b) {
4603   int __cc;
4604   __builtin_s390_vceqfs(__a, __b, &__cc);
4605   return __cc != 0;
4606 }
4607 
4608 // This prototype is deprecated.
4609 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a,__vector __bool int __b)4610 vec_any_ne(__vector signed int __a, __vector __bool int __b) {
4611   int __cc;
4612   __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
4613   return __cc != 0;
4614 }
4615 
4616 // This prototype is deprecated.
4617 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector signed int __b)4618 vec_any_ne(__vector __bool int __a, __vector signed int __b) {
4619   int __cc;
4620   __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
4621   return __cc != 0;
4622 }
4623 
4624 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a,__vector unsigned int __b)4625 vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
4626   int __cc;
4627   __builtin_s390_vceqfs((__vector signed int)__a,
4628                         (__vector signed int)__b, &__cc);
4629   return __cc != 0;
4630 }
4631 
4632 // This prototype is deprecated.
4633 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a,__vector __bool int __b)4634 vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {
4635   int __cc;
4636   __builtin_s390_vceqfs((__vector signed int)__a,
4637                         (__vector signed int)__b, &__cc);
4638   return __cc != 0;
4639 }
4640 
4641 // This prototype is deprecated.
4642 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector unsigned int __b)4643 vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {
4644   int __cc;
4645   __builtin_s390_vceqfs((__vector signed int)__a,
4646                         (__vector signed int)__b, &__cc);
4647   return __cc != 0;
4648 }
4649 
4650 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector __bool int __b)4651 vec_any_ne(__vector __bool int __a, __vector __bool int __b) {
4652   int __cc;
4653   __builtin_s390_vceqfs((__vector signed int)__a,
4654                         (__vector signed int)__b, &__cc);
4655   return __cc != 0;
4656 }
4657 
4658 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a,__vector signed long long __b)4659 vec_any_ne(__vector signed long long __a, __vector signed long long __b) {
4660   int __cc;
4661   __builtin_s390_vceqgs(__a, __b, &__cc);
4662   return __cc != 0;
4663 }
4664 
4665 // This prototype is deprecated.
4666 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a,__vector __bool long long __b)4667 vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {
4668   int __cc;
4669   __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
4670   return __cc != 0;
4671 }
4672 
4673 // This prototype is deprecated.
4674 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector signed long long __b)4675 vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {
4676   int __cc;
4677   __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
4678   return __cc != 0;
4679 }
4680 
4681 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a,__vector unsigned long long __b)4682 vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
4683   int __cc;
4684   __builtin_s390_vceqgs((__vector signed long long)__a,
4685                         (__vector signed long long)__b, &__cc);
4686   return __cc != 0;
4687 }
4688 
4689 // This prototype is deprecated.
4690 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a,__vector __bool long long __b)4691 vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {
4692   int __cc;
4693   __builtin_s390_vceqgs((__vector signed long long)__a,
4694                         (__vector signed long long)__b, &__cc);
4695   return __cc != 0;
4696 }
4697 
4698 // This prototype is deprecated.
4699 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector unsigned long long __b)4700 vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {
4701   int __cc;
4702   __builtin_s390_vceqgs((__vector signed long long)__a,
4703                         (__vector signed long long)__b, &__cc);
4704   return __cc != 0;
4705 }
4706 
4707 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector __bool long long __b)4708 vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
4709   int __cc;
4710   __builtin_s390_vceqgs((__vector signed long long)__a,
4711                         (__vector signed long long)__b, &__cc);
4712   return __cc != 0;
4713 }
4714 
4715 #if __ARCH__ >= 12
4716 static inline __ATTRS_o_ai int
vec_any_ne(__vector float __a,__vector float __b)4717 vec_any_ne(__vector float __a, __vector float __b) {
4718   int __cc;
4719   __builtin_s390_vfcesbs(__a, __b, &__cc);
4720   return __cc != 0;
4721 }
4722 #endif
4723 
4724 static inline __ATTRS_o_ai int
vec_any_ne(__vector double __a,__vector double __b)4725 vec_any_ne(__vector double __a, __vector double __b) {
4726   int __cc;
4727   __builtin_s390_vfcedbs(__a, __b, &__cc);
4728   return __cc != 0;
4729 }
4730 
4731 /*-- vec_any_ge -------------------------------------------------------------*/
4732 
4733 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a,__vector signed char __b)4734 vec_any_ge(__vector signed char __a, __vector signed char __b) {
4735   int __cc;
4736   __builtin_s390_vchbs(__b, __a, &__cc);
4737   return __cc != 0;
4738 }
4739 
4740 // This prototype is deprecated.
4741 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a,__vector __bool char __b)4742 vec_any_ge(__vector signed char __a, __vector __bool char __b) {
4743   int __cc;
4744   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
4745   return __cc != 0;
4746 }
4747 
4748 // This prototype is deprecated.
4749 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector signed char __b)4750 vec_any_ge(__vector __bool char __a, __vector signed char __b) {
4751   int __cc;
4752   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
4753   return __cc != 0;
4754 }
4755 
4756 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a,__vector unsigned char __b)4757 vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) {
4758   int __cc;
4759   __builtin_s390_vchlbs(__b, __a, &__cc);
4760   return __cc != 0;
4761 }
4762 
4763 // This prototype is deprecated.
4764 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a,__vector __bool char __b)4765 vec_any_ge(__vector unsigned char __a, __vector __bool char __b) {
4766   int __cc;
4767   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
4768   return __cc != 0;
4769 }
4770 
4771 // This prototype is deprecated.
4772 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector unsigned char __b)4773 vec_any_ge(__vector __bool char __a, __vector unsigned char __b) {
4774   int __cc;
4775   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
4776   return __cc != 0;
4777 }
4778 
4779 // This prototype is deprecated.
4780 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector __bool char __b)4781 vec_any_ge(__vector __bool char __a, __vector __bool char __b) {
4782   int __cc;
4783   __builtin_s390_vchlbs((__vector unsigned char)__b,
4784                         (__vector unsigned char)__a, &__cc);
4785   return __cc != 0;
4786 }
4787 
4788 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a,__vector signed short __b)4789 vec_any_ge(__vector signed short __a, __vector signed short __b) {
4790   int __cc;
4791   __builtin_s390_vchhs(__b, __a, &__cc);
4792   return __cc != 0;
4793 }
4794 
4795 // This prototype is deprecated.
4796 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a,__vector __bool short __b)4797 vec_any_ge(__vector signed short __a, __vector __bool short __b) {
4798   int __cc;
4799   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
4800   return __cc != 0;
4801 }
4802 
4803 // This prototype is deprecated.
4804 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector signed short __b)4805 vec_any_ge(__vector __bool short __a, __vector signed short __b) {
4806   int __cc;
4807   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
4808   return __cc != 0;
4809 }
4810 
4811 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a,__vector unsigned short __b)4812 vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) {
4813   int __cc;
4814   __builtin_s390_vchlhs(__b, __a, &__cc);
4815   return __cc != 0;
4816 }
4817 
4818 // This prototype is deprecated.
4819 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a,__vector __bool short __b)4820 vec_any_ge(__vector unsigned short __a, __vector __bool short __b) {
4821   int __cc;
4822   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
4823   return __cc != 0;
4824 }
4825 
4826 // This prototype is deprecated.
4827 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector unsigned short __b)4828 vec_any_ge(__vector __bool short __a, __vector unsigned short __b) {
4829   int __cc;
4830   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
4831   return __cc != 0;
4832 }
4833 
4834 // This prototype is deprecated.
4835 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector __bool short __b)4836 vec_any_ge(__vector __bool short __a, __vector __bool short __b) {
4837   int __cc;
4838   __builtin_s390_vchlhs((__vector unsigned short)__b,
4839                         (__vector unsigned short)__a, &__cc);
4840   return __cc != 0;
4841 }
4842 
4843 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a,__vector signed int __b)4844 vec_any_ge(__vector signed int __a, __vector signed int __b) {
4845   int __cc;
4846   __builtin_s390_vchfs(__b, __a, &__cc);
4847   return __cc != 0;
4848 }
4849 
4850 // This prototype is deprecated.
4851 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a,__vector __bool int __b)4852 vec_any_ge(__vector signed int __a, __vector __bool int __b) {
4853   int __cc;
4854   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
4855   return __cc != 0;
4856 }
4857 
4858 // This prototype is deprecated.
4859 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector signed int __b)4860 vec_any_ge(__vector __bool int __a, __vector signed int __b) {
4861   int __cc;
4862   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
4863   return __cc != 0;
4864 }
4865 
4866 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a,__vector unsigned int __b)4867 vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) {
4868   int __cc;
4869   __builtin_s390_vchlfs(__b, __a, &__cc);
4870   return __cc != 0;
4871 }
4872 
4873 // This prototype is deprecated.
4874 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a,__vector __bool int __b)4875 vec_any_ge(__vector unsigned int __a, __vector __bool int __b) {
4876   int __cc;
4877   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
4878   return __cc != 0;
4879 }
4880 
4881 // This prototype is deprecated.
4882 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector unsigned int __b)4883 vec_any_ge(__vector __bool int __a, __vector unsigned int __b) {
4884   int __cc;
4885   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
4886   return __cc != 0;
4887 }
4888 
4889 // This prototype is deprecated.
4890 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector __bool int __b)4891 vec_any_ge(__vector __bool int __a, __vector __bool int __b) {
4892   int __cc;
4893   __builtin_s390_vchlfs((__vector unsigned int)__b,
4894                         (__vector unsigned int)__a, &__cc);
4895   return __cc != 0;
4896 }
4897 
4898 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a,__vector signed long long __b)4899 vec_any_ge(__vector signed long long __a, __vector signed long long __b) {
4900   int __cc;
4901   __builtin_s390_vchgs(__b, __a, &__cc);
4902   return __cc != 0;
4903 }
4904 
4905 // This prototype is deprecated.
4906 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a,__vector __bool long long __b)4907 vec_any_ge(__vector signed long long __a, __vector __bool long long __b) {
4908   int __cc;
4909   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
4910   return __cc != 0;
4911 }
4912 
4913 // This prototype is deprecated.
4914 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector signed long long __b)4915 vec_any_ge(__vector __bool long long __a, __vector signed long long __b) {
4916   int __cc;
4917   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
4918   return __cc != 0;
4919 }
4920 
4921 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a,__vector unsigned long long __b)4922 vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
4923   int __cc;
4924   __builtin_s390_vchlgs(__b, __a, &__cc);
4925   return __cc != 0;
4926 }
4927 
4928 // This prototype is deprecated.
4929 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a,__vector __bool long long __b)4930 vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) {
4931   int __cc;
4932   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4933   return __cc != 0;
4934 }
4935 
4936 // This prototype is deprecated.
4937 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector unsigned long long __b)4938 vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) {
4939   int __cc;
4940   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4941   return __cc != 0;
4942 }
4943 
4944 // This prototype is deprecated.
4945 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector __bool long long __b)4946 vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {
4947   int __cc;
4948   __builtin_s390_vchlgs((__vector unsigned long long)__b,
4949                         (__vector unsigned long long)__a, &__cc);
4950   return __cc != 0;
4951 }
4952 
4953 #if __ARCH__ >= 12
4954 static inline __ATTRS_o_ai int
vec_any_ge(__vector float __a,__vector float __b)4955 vec_any_ge(__vector float __a, __vector float __b) {
4956   int __cc;
4957   __builtin_s390_vfchesbs(__a, __b, &__cc);
4958   return __cc <= 1;
4959 }
4960 #endif
4961 
4962 static inline __ATTRS_o_ai int
vec_any_ge(__vector double __a,__vector double __b)4963 vec_any_ge(__vector double __a, __vector double __b) {
4964   int __cc;
4965   __builtin_s390_vfchedbs(__a, __b, &__cc);
4966   return __cc <= 1;
4967 }
4968 
4969 /*-- vec_any_gt -------------------------------------------------------------*/
4970 
4971 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a,__vector signed char __b)4972 vec_any_gt(__vector signed char __a, __vector signed char __b) {
4973   int __cc;
4974   __builtin_s390_vchbs(__a, __b, &__cc);
4975   return __cc <= 1;
4976 }
4977 
4978 // This prototype is deprecated.
4979 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a,__vector __bool char __b)4980 vec_any_gt(__vector signed char __a, __vector __bool char __b) {
4981   int __cc;
4982   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
4983   return __cc <= 1;
4984 }
4985 
4986 // This prototype is deprecated.
4987 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector signed char __b)4988 vec_any_gt(__vector __bool char __a, __vector signed char __b) {
4989   int __cc;
4990   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
4991   return __cc <= 1;
4992 }
4993 
4994 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a,__vector unsigned char __b)4995 vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) {
4996   int __cc;
4997   __builtin_s390_vchlbs(__a, __b, &__cc);
4998   return __cc <= 1;
4999 }
5000 
5001 // This prototype is deprecated.
5002 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a,__vector __bool char __b)5003 vec_any_gt(__vector unsigned char __a, __vector __bool char __b) {
5004   int __cc;
5005   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5006   return __cc <= 1;
5007 }
5008 
5009 // This prototype is deprecated.
5010 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector unsigned char __b)5011 vec_any_gt(__vector __bool char __a, __vector unsigned char __b) {
5012   int __cc;
5013   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5014   return __cc <= 1;
5015 }
5016 
5017 // This prototype is deprecated.
5018 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector __bool char __b)5019 vec_any_gt(__vector __bool char __a, __vector __bool char __b) {
5020   int __cc;
5021   __builtin_s390_vchlbs((__vector unsigned char)__a,
5022                         (__vector unsigned char)__b, &__cc);
5023   return __cc <= 1;
5024 }
5025 
5026 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a,__vector signed short __b)5027 vec_any_gt(__vector signed short __a, __vector signed short __b) {
5028   int __cc;
5029   __builtin_s390_vchhs(__a, __b, &__cc);
5030   return __cc <= 1;
5031 }
5032 
5033 // This prototype is deprecated.
5034 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a,__vector __bool short __b)5035 vec_any_gt(__vector signed short __a, __vector __bool short __b) {
5036   int __cc;
5037   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5038   return __cc <= 1;
5039 }
5040 
5041 // This prototype is deprecated.
5042 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector signed short __b)5043 vec_any_gt(__vector __bool short __a, __vector signed short __b) {
5044   int __cc;
5045   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5046   return __cc <= 1;
5047 }
5048 
5049 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a,__vector unsigned short __b)5050 vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) {
5051   int __cc;
5052   __builtin_s390_vchlhs(__a, __b, &__cc);
5053   return __cc <= 1;
5054 }
5055 
5056 // This prototype is deprecated.
5057 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a,__vector __bool short __b)5058 vec_any_gt(__vector unsigned short __a, __vector __bool short __b) {
5059   int __cc;
5060   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5061   return __cc <= 1;
5062 }
5063 
5064 // This prototype is deprecated.
5065 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector unsigned short __b)5066 vec_any_gt(__vector __bool short __a, __vector unsigned short __b) {
5067   int __cc;
5068   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5069   return __cc <= 1;
5070 }
5071 
5072 // This prototype is deprecated.
5073 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector __bool short __b)5074 vec_any_gt(__vector __bool short __a, __vector __bool short __b) {
5075   int __cc;
5076   __builtin_s390_vchlhs((__vector unsigned short)__a,
5077                         (__vector unsigned short)__b, &__cc);
5078   return __cc <= 1;
5079 }
5080 
5081 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a,__vector signed int __b)5082 vec_any_gt(__vector signed int __a, __vector signed int __b) {
5083   int __cc;
5084   __builtin_s390_vchfs(__a, __b, &__cc);
5085   return __cc <= 1;
5086 }
5087 
5088 // This prototype is deprecated.
5089 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a,__vector __bool int __b)5090 vec_any_gt(__vector signed int __a, __vector __bool int __b) {
5091   int __cc;
5092   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5093   return __cc <= 1;
5094 }
5095 
5096 // This prototype is deprecated.
5097 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector signed int __b)5098 vec_any_gt(__vector __bool int __a, __vector signed int __b) {
5099   int __cc;
5100   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5101   return __cc <= 1;
5102 }
5103 
5104 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a,__vector unsigned int __b)5105 vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) {
5106   int __cc;
5107   __builtin_s390_vchlfs(__a, __b, &__cc);
5108   return __cc <= 1;
5109 }
5110 
5111 // This prototype is deprecated.
5112 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a,__vector __bool int __b)5113 vec_any_gt(__vector unsigned int __a, __vector __bool int __b) {
5114   int __cc;
5115   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5116   return __cc <= 1;
5117 }
5118 
5119 // This prototype is deprecated.
5120 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector unsigned int __b)5121 vec_any_gt(__vector __bool int __a, __vector unsigned int __b) {
5122   int __cc;
5123   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5124   return __cc <= 1;
5125 }
5126 
5127 // This prototype is deprecated.
5128 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector __bool int __b)5129 vec_any_gt(__vector __bool int __a, __vector __bool int __b) {
5130   int __cc;
5131   __builtin_s390_vchlfs((__vector unsigned int)__a,
5132                         (__vector unsigned int)__b, &__cc);
5133   return __cc <= 1;
5134 }
5135 
5136 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a,__vector signed long long __b)5137 vec_any_gt(__vector signed long long __a, __vector signed long long __b) {
5138   int __cc;
5139   __builtin_s390_vchgs(__a, __b, &__cc);
5140   return __cc <= 1;
5141 }
5142 
5143 // This prototype is deprecated.
5144 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a,__vector __bool long long __b)5145 vec_any_gt(__vector signed long long __a, __vector __bool long long __b) {
5146   int __cc;
5147   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5148   return __cc <= 1;
5149 }
5150 
5151 // This prototype is deprecated.
5152 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector signed long long __b)5153 vec_any_gt(__vector __bool long long __a, __vector signed long long __b) {
5154   int __cc;
5155   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5156   return __cc <= 1;
5157 }
5158 
5159 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a,__vector unsigned long long __b)5160 vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
5161   int __cc;
5162   __builtin_s390_vchlgs(__a, __b, &__cc);
5163   return __cc <= 1;
5164 }
5165 
5166 // This prototype is deprecated.
5167 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a,__vector __bool long long __b)5168 vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) {
5169   int __cc;
5170   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5171   return __cc <= 1;
5172 }
5173 
5174 // This prototype is deprecated.
5175 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector unsigned long long __b)5176 vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) {
5177   int __cc;
5178   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5179   return __cc <= 1;
5180 }
5181 
5182 // This prototype is deprecated.
5183 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector __bool long long __b)5184 vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {
5185   int __cc;
5186   __builtin_s390_vchlgs((__vector unsigned long long)__a,
5187                         (__vector unsigned long long)__b, &__cc);
5188   return __cc <= 1;
5189 }
5190 
5191 #if __ARCH__ >= 12
5192 static inline __ATTRS_o_ai int
vec_any_gt(__vector float __a,__vector float __b)5193 vec_any_gt(__vector float __a, __vector float __b) {
5194   int __cc;
5195   __builtin_s390_vfchsbs(__a, __b, &__cc);
5196   return __cc <= 1;
5197 }
5198 #endif
5199 
5200 static inline __ATTRS_o_ai int
vec_any_gt(__vector double __a,__vector double __b)5201 vec_any_gt(__vector double __a, __vector double __b) {
5202   int __cc;
5203   __builtin_s390_vfchdbs(__a, __b, &__cc);
5204   return __cc <= 1;
5205 }
5206 
5207 /*-- vec_any_le -------------------------------------------------------------*/
5208 
5209 static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a,__vector signed char __b)5210 vec_any_le(__vector signed char __a, __vector signed char __b) {
5211   int __cc;
5212   __builtin_s390_vchbs(__a, __b, &__cc);
5213   return __cc != 0;
5214 }
5215 
5216 // This prototype is deprecated.
5217 static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a,__vector __bool char __b)5218 vec_any_le(__vector signed char __a, __vector __bool char __b) {
5219   int __cc;
5220   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5221   return __cc != 0;
5222 }
5223 
5224 // This prototype is deprecated.
5225 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector signed char __b)5226 vec_any_le(__vector __bool char __a, __vector signed char __b) {
5227   int __cc;
5228   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5229   return __cc != 0;
5230 }
5231 
5232 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a,__vector unsigned char __b)5233 vec_any_le(__vector unsigned char __a, __vector unsigned char __b) {
5234   int __cc;
5235   __builtin_s390_vchlbs(__a, __b, &__cc);
5236   return __cc != 0;
5237 }
5238 
5239 // This prototype is deprecated.
5240 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a,__vector __bool char __b)5241 vec_any_le(__vector unsigned char __a, __vector __bool char __b) {
5242   int __cc;
5243   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5244   return __cc != 0;
5245 }
5246 
5247 // This prototype is deprecated.
5248 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector unsigned char __b)5249 vec_any_le(__vector __bool char __a, __vector unsigned char __b) {
5250   int __cc;
5251   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5252   return __cc != 0;
5253 }
5254 
5255 // This prototype is deprecated.
5256 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector __bool char __b)5257 vec_any_le(__vector __bool char __a, __vector __bool char __b) {
5258   int __cc;
5259   __builtin_s390_vchlbs((__vector unsigned char)__a,
5260                         (__vector unsigned char)__b, &__cc);
5261   return __cc != 0;
5262 }
5263 
5264 static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a,__vector signed short __b)5265 vec_any_le(__vector signed short __a, __vector signed short __b) {
5266   int __cc;
5267   __builtin_s390_vchhs(__a, __b, &__cc);
5268   return __cc != 0;
5269 }
5270 
5271 // This prototype is deprecated.
5272 static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a,__vector __bool short __b)5273 vec_any_le(__vector signed short __a, __vector __bool short __b) {
5274   int __cc;
5275   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5276   return __cc != 0;
5277 }
5278 
5279 // This prototype is deprecated.
5280 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector signed short __b)5281 vec_any_le(__vector __bool short __a, __vector signed short __b) {
5282   int __cc;
5283   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5284   return __cc != 0;
5285 }
5286 
5287 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a,__vector unsigned short __b)5288 vec_any_le(__vector unsigned short __a, __vector unsigned short __b) {
5289   int __cc;
5290   __builtin_s390_vchlhs(__a, __b, &__cc);
5291   return __cc != 0;
5292 }
5293 
5294 // This prototype is deprecated.
5295 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a,__vector __bool short __b)5296 vec_any_le(__vector unsigned short __a, __vector __bool short __b) {
5297   int __cc;
5298   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5299   return __cc != 0;
5300 }
5301 
5302 // This prototype is deprecated.
5303 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector unsigned short __b)5304 vec_any_le(__vector __bool short __a, __vector unsigned short __b) {
5305   int __cc;
5306   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5307   return __cc != 0;
5308 }
5309 
5310 // This prototype is deprecated.
5311 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector __bool short __b)5312 vec_any_le(__vector __bool short __a, __vector __bool short __b) {
5313   int __cc;
5314   __builtin_s390_vchlhs((__vector unsigned short)__a,
5315                         (__vector unsigned short)__b, &__cc);
5316   return __cc != 0;
5317 }
5318 
5319 static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a,__vector signed int __b)5320 vec_any_le(__vector signed int __a, __vector signed int __b) {
5321   int __cc;
5322   __builtin_s390_vchfs(__a, __b, &__cc);
5323   return __cc != 0;
5324 }
5325 
5326 // This prototype is deprecated.
5327 static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a,__vector __bool int __b)5328 vec_any_le(__vector signed int __a, __vector __bool int __b) {
5329   int __cc;
5330   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5331   return __cc != 0;
5332 }
5333 
5334 // This prototype is deprecated.
5335 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector signed int __b)5336 vec_any_le(__vector __bool int __a, __vector signed int __b) {
5337   int __cc;
5338   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5339   return __cc != 0;
5340 }
5341 
5342 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a,__vector unsigned int __b)5343 vec_any_le(__vector unsigned int __a, __vector unsigned int __b) {
5344   int __cc;
5345   __builtin_s390_vchlfs(__a, __b, &__cc);
5346   return __cc != 0;
5347 }
5348 
5349 // This prototype is deprecated.
5350 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a,__vector __bool int __b)5351 vec_any_le(__vector unsigned int __a, __vector __bool int __b) {
5352   int __cc;
5353   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5354   return __cc != 0;
5355 }
5356 
5357 // This prototype is deprecated.
5358 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector unsigned int __b)5359 vec_any_le(__vector __bool int __a, __vector unsigned int __b) {
5360   int __cc;
5361   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5362   return __cc != 0;
5363 }
5364 
5365 // This prototype is deprecated.
5366 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector __bool int __b)5367 vec_any_le(__vector __bool int __a, __vector __bool int __b) {
5368   int __cc;
5369   __builtin_s390_vchlfs((__vector unsigned int)__a,
5370                         (__vector unsigned int)__b, &__cc);
5371   return __cc != 0;
5372 }
5373 
5374 static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a,__vector signed long long __b)5375 vec_any_le(__vector signed long long __a, __vector signed long long __b) {
5376   int __cc;
5377   __builtin_s390_vchgs(__a, __b, &__cc);
5378   return __cc != 0;
5379 }
5380 
5381 // This prototype is deprecated.
5382 static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a,__vector __bool long long __b)5383 vec_any_le(__vector signed long long __a, __vector __bool long long __b) {
5384   int __cc;
5385   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5386   return __cc != 0;
5387 }
5388 
5389 // This prototype is deprecated.
5390 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector signed long long __b)5391 vec_any_le(__vector __bool long long __a, __vector signed long long __b) {
5392   int __cc;
5393   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5394   return __cc != 0;
5395 }
5396 
5397 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a,__vector unsigned long long __b)5398 vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) {
5399   int __cc;
5400   __builtin_s390_vchlgs(__a, __b, &__cc);
5401   return __cc != 0;
5402 }
5403 
5404 // This prototype is deprecated.
5405 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a,__vector __bool long long __b)5406 vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) {
5407   int __cc;
5408   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5409   return __cc != 0;
5410 }
5411 
5412 // This prototype is deprecated.
5413 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector unsigned long long __b)5414 vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) {
5415   int __cc;
5416   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5417   return __cc != 0;
5418 }
5419 
5420 // This prototype is deprecated.
5421 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector __bool long long __b)5422 vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {
5423   int __cc;
5424   __builtin_s390_vchlgs((__vector unsigned long long)__a,
5425                         (__vector unsigned long long)__b, &__cc);
5426   return __cc != 0;
5427 }
5428 
5429 #if __ARCH__ >= 12
5430 static inline __ATTRS_o_ai int
vec_any_le(__vector float __a,__vector float __b)5431 vec_any_le(__vector float __a, __vector float __b) {
5432   int __cc;
5433   __builtin_s390_vfchesbs(__b, __a, &__cc);
5434   return __cc <= 1;
5435 }
5436 #endif
5437 
5438 static inline __ATTRS_o_ai int
vec_any_le(__vector double __a,__vector double __b)5439 vec_any_le(__vector double __a, __vector double __b) {
5440   int __cc;
5441   __builtin_s390_vfchedbs(__b, __a, &__cc);
5442   return __cc <= 1;
5443 }
5444 
5445 /*-- vec_any_lt -------------------------------------------------------------*/
5446 
5447 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a,__vector signed char __b)5448 vec_any_lt(__vector signed char __a, __vector signed char __b) {
5449   int __cc;
5450   __builtin_s390_vchbs(__b, __a, &__cc);
5451   return __cc <= 1;
5452 }
5453 
5454 // This prototype is deprecated.
5455 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a,__vector __bool char __b)5456 vec_any_lt(__vector signed char __a, __vector __bool char __b) {
5457   int __cc;
5458   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5459   return __cc <= 1;
5460 }
5461 
5462 // This prototype is deprecated.
5463 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector signed char __b)5464 vec_any_lt(__vector __bool char __a, __vector signed char __b) {
5465   int __cc;
5466   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5467   return __cc <= 1;
5468 }
5469 
5470 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a,__vector unsigned char __b)5471 vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) {
5472   int __cc;
5473   __builtin_s390_vchlbs(__b, __a, &__cc);
5474   return __cc <= 1;
5475 }
5476 
5477 // This prototype is deprecated.
5478 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a,__vector __bool char __b)5479 vec_any_lt(__vector unsigned char __a, __vector __bool char __b) {
5480   int __cc;
5481   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5482   return __cc <= 1;
5483 }
5484 
5485 // This prototype is deprecated.
5486 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector unsigned char __b)5487 vec_any_lt(__vector __bool char __a, __vector unsigned char __b) {
5488   int __cc;
5489   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5490   return __cc <= 1;
5491 }
5492 
5493 // This prototype is deprecated.
5494 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector __bool char __b)5495 vec_any_lt(__vector __bool char __a, __vector __bool char __b) {
5496   int __cc;
5497   __builtin_s390_vchlbs((__vector unsigned char)__b,
5498                         (__vector unsigned char)__a, &__cc);
5499   return __cc <= 1;
5500 }
5501 
5502 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a,__vector signed short __b)5503 vec_any_lt(__vector signed short __a, __vector signed short __b) {
5504   int __cc;
5505   __builtin_s390_vchhs(__b, __a, &__cc);
5506   return __cc <= 1;
5507 }
5508 
5509 // This prototype is deprecated.
5510 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a,__vector __bool short __b)5511 vec_any_lt(__vector signed short __a, __vector __bool short __b) {
5512   int __cc;
5513   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
5514   return __cc <= 1;
5515 }
5516 
5517 // This prototype is deprecated.
5518 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector signed short __b)5519 vec_any_lt(__vector __bool short __a, __vector signed short __b) {
5520   int __cc;
5521   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
5522   return __cc <= 1;
5523 }
5524 
5525 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a,__vector unsigned short __b)5526 vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) {
5527   int __cc;
5528   __builtin_s390_vchlhs(__b, __a, &__cc);
5529   return __cc <= 1;
5530 }
5531 
5532 // This prototype is deprecated.
5533 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a,__vector __bool short __b)5534 vec_any_lt(__vector unsigned short __a, __vector __bool short __b) {
5535   int __cc;
5536   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
5537   return __cc <= 1;
5538 }
5539 
5540 // This prototype is deprecated.
5541 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector unsigned short __b)5542 vec_any_lt(__vector __bool short __a, __vector unsigned short __b) {
5543   int __cc;
5544   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
5545   return __cc <= 1;
5546 }
5547 
5548 // This prototype is deprecated.
5549 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector __bool short __b)5550 vec_any_lt(__vector __bool short __a, __vector __bool short __b) {
5551   int __cc;
5552   __builtin_s390_vchlhs((__vector unsigned short)__b,
5553                         (__vector unsigned short)__a, &__cc);
5554   return __cc <= 1;
5555 }
5556 
5557 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a,__vector signed int __b)5558 vec_any_lt(__vector signed int __a, __vector signed int __b) {
5559   int __cc;
5560   __builtin_s390_vchfs(__b, __a, &__cc);
5561   return __cc <= 1;
5562 }
5563 
5564 // This prototype is deprecated.
5565 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a,__vector __bool int __b)5566 vec_any_lt(__vector signed int __a, __vector __bool int __b) {
5567   int __cc;
5568   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
5569   return __cc <= 1;
5570 }
5571 
5572 // This prototype is deprecated.
5573 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector signed int __b)5574 vec_any_lt(__vector __bool int __a, __vector signed int __b) {
5575   int __cc;
5576   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
5577   return __cc <= 1;
5578 }
5579 
5580 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a,__vector unsigned int __b)5581 vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) {
5582   int __cc;
5583   __builtin_s390_vchlfs(__b, __a, &__cc);
5584   return __cc <= 1;
5585 }
5586 
5587 // This prototype is deprecated.
5588 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a,__vector __bool int __b)5589 vec_any_lt(__vector unsigned int __a, __vector __bool int __b) {
5590   int __cc;
5591   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
5592   return __cc <= 1;
5593 }
5594 
5595 // This prototype is deprecated.
5596 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector unsigned int __b)5597 vec_any_lt(__vector __bool int __a, __vector unsigned int __b) {
5598   int __cc;
5599   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
5600   return __cc <= 1;
5601 }
5602 
5603 // This prototype is deprecated.
5604 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector __bool int __b)5605 vec_any_lt(__vector __bool int __a, __vector __bool int __b) {
5606   int __cc;
5607   __builtin_s390_vchlfs((__vector unsigned int)__b,
5608                         (__vector unsigned int)__a, &__cc);
5609   return __cc <= 1;
5610 }
5611 
5612 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a,__vector signed long long __b)5613 vec_any_lt(__vector signed long long __a, __vector signed long long __b) {
5614   int __cc;
5615   __builtin_s390_vchgs(__b, __a, &__cc);
5616   return __cc <= 1;
5617 }
5618 
5619 // This prototype is deprecated.
5620 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a,__vector __bool long long __b)5621 vec_any_lt(__vector signed long long __a, __vector __bool long long __b) {
5622   int __cc;
5623   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
5624   return __cc <= 1;
5625 }
5626 
5627 // This prototype is deprecated.
5628 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector signed long long __b)5629 vec_any_lt(__vector __bool long long __a, __vector signed long long __b) {
5630   int __cc;
5631   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
5632   return __cc <= 1;
5633 }
5634 
5635 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a,__vector unsigned long long __b)5636 vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
5637   int __cc;
5638   __builtin_s390_vchlgs(__b, __a, &__cc);
5639   return __cc <= 1;
5640 }
5641 
5642 // This prototype is deprecated.
5643 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a,__vector __bool long long __b)5644 vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) {
5645   int __cc;
5646   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
5647   return __cc <= 1;
5648 }
5649 
5650 // This prototype is deprecated.
5651 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector unsigned long long __b)5652 vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) {
5653   int __cc;
5654   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
5655   return __cc <= 1;
5656 }
5657 
5658 // This prototype is deprecated.
5659 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector __bool long long __b)5660 vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {
5661   int __cc;
5662   __builtin_s390_vchlgs((__vector unsigned long long)__b,
5663                         (__vector unsigned long long)__a, &__cc);
5664   return __cc <= 1;
5665 }
5666 
5667 #if __ARCH__ >= 12
5668 static inline __ATTRS_o_ai int
vec_any_lt(__vector float __a,__vector float __b)5669 vec_any_lt(__vector float __a, __vector float __b) {
5670   int __cc;
5671   __builtin_s390_vfchsbs(__b, __a, &__cc);
5672   return __cc <= 1;
5673 }
5674 #endif
5675 
5676 static inline __ATTRS_o_ai int
vec_any_lt(__vector double __a,__vector double __b)5677 vec_any_lt(__vector double __a, __vector double __b) {
5678   int __cc;
5679   __builtin_s390_vfchdbs(__b, __a, &__cc);
5680   return __cc <= 1;
5681 }
5682 
5683 /*-- vec_any_nge ------------------------------------------------------------*/
5684 
5685 #if __ARCH__ >= 12
5686 static inline __ATTRS_o_ai int
vec_any_nge(__vector float __a,__vector float __b)5687 vec_any_nge(__vector float __a, __vector float __b) {
5688   int __cc;
5689   __builtin_s390_vfchesbs(__a, __b, &__cc);
5690   return __cc != 0;
5691 }
5692 #endif
5693 
5694 static inline __ATTRS_o_ai int
vec_any_nge(__vector double __a,__vector double __b)5695 vec_any_nge(__vector double __a, __vector double __b) {
5696   int __cc;
5697   __builtin_s390_vfchedbs(__a, __b, &__cc);
5698   return __cc != 0;
5699 }
5700 
5701 /*-- vec_any_ngt ------------------------------------------------------------*/
5702 
5703 #if __ARCH__ >= 12
5704 static inline __ATTRS_o_ai int
vec_any_ngt(__vector float __a,__vector float __b)5705 vec_any_ngt(__vector float __a, __vector float __b) {
5706   int __cc;
5707   __builtin_s390_vfchsbs(__a, __b, &__cc);
5708   return __cc != 0;
5709 }
5710 #endif
5711 
5712 static inline __ATTRS_o_ai int
vec_any_ngt(__vector double __a,__vector double __b)5713 vec_any_ngt(__vector double __a, __vector double __b) {
5714   int __cc;
5715   __builtin_s390_vfchdbs(__a, __b, &__cc);
5716   return __cc != 0;
5717 }
5718 
5719 /*-- vec_any_nle ------------------------------------------------------------*/
5720 
5721 #if __ARCH__ >= 12
5722 static inline __ATTRS_o_ai int
vec_any_nle(__vector float __a,__vector float __b)5723 vec_any_nle(__vector float __a, __vector float __b) {
5724   int __cc;
5725   __builtin_s390_vfchesbs(__b, __a, &__cc);
5726   return __cc != 0;
5727 }
5728 #endif
5729 
5730 static inline __ATTRS_o_ai int
vec_any_nle(__vector double __a,__vector double __b)5731 vec_any_nle(__vector double __a, __vector double __b) {
5732   int __cc;
5733   __builtin_s390_vfchedbs(__b, __a, &__cc);
5734   return __cc != 0;
5735 }
5736 
5737 /*-- vec_any_nlt ------------------------------------------------------------*/
5738 
5739 #if __ARCH__ >= 12
5740 static inline __ATTRS_o_ai int
vec_any_nlt(__vector float __a,__vector float __b)5741 vec_any_nlt(__vector float __a, __vector float __b) {
5742   int __cc;
5743   __builtin_s390_vfchsbs(__b, __a, &__cc);
5744   return __cc != 0;
5745 }
5746 #endif
5747 
5748 static inline __ATTRS_o_ai int
vec_any_nlt(__vector double __a,__vector double __b)5749 vec_any_nlt(__vector double __a, __vector double __b) {
5750   int __cc;
5751   __builtin_s390_vfchdbs(__b, __a, &__cc);
5752   return __cc != 0;
5753 }
5754 
5755 /*-- vec_any_nan ------------------------------------------------------------*/
5756 
5757 #if __ARCH__ >= 12
5758 static inline __ATTRS_o_ai int
vec_any_nan(__vector float __a)5759 vec_any_nan(__vector float __a) {
5760   int __cc;
5761   __builtin_s390_vftcisb(__a, 15, &__cc);
5762   return __cc != 3;
5763 }
5764 #endif
5765 
5766 static inline __ATTRS_o_ai int
vec_any_nan(__vector double __a)5767 vec_any_nan(__vector double __a) {
5768   int __cc;
5769   __builtin_s390_vftcidb(__a, 15, &__cc);
5770   return __cc != 3;
5771 }
5772 
5773 /*-- vec_any_numeric --------------------------------------------------------*/
5774 
5775 #if __ARCH__ >= 12
5776 static inline __ATTRS_o_ai int
vec_any_numeric(__vector float __a)5777 vec_any_numeric(__vector float __a) {
5778   int __cc;
5779   __builtin_s390_vftcisb(__a, 15, &__cc);
5780   return __cc != 0;
5781 }
5782 #endif
5783 
5784 static inline __ATTRS_o_ai int
vec_any_numeric(__vector double __a)5785 vec_any_numeric(__vector double __a) {
5786   int __cc;
5787   __builtin_s390_vftcidb(__a, 15, &__cc);
5788   return __cc != 0;
5789 }
5790 
5791 /*-- vec_andc ---------------------------------------------------------------*/
5792 
5793 static inline __ATTRS_o_ai __vector __bool char
vec_andc(__vector __bool char __a,__vector __bool char __b)5794 vec_andc(__vector __bool char __a, __vector __bool char __b) {
5795   return __a & ~__b;
5796 }
5797 
5798 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a,__vector signed char __b)5799 vec_andc(__vector signed char __a, __vector signed char __b) {
5800   return __a & ~__b;
5801 }
5802 
5803 // This prototype is deprecated.
5804 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector __bool char __a,__vector signed char __b)5805 vec_andc(__vector __bool char __a, __vector signed char __b) {
5806   return __a & ~__b;
5807 }
5808 
5809 // This prototype is deprecated.
5810 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a,__vector __bool char __b)5811 vec_andc(__vector signed char __a, __vector __bool char __b) {
5812   return __a & ~__b;
5813 }
5814 
5815 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a,__vector unsigned char __b)5816 vec_andc(__vector unsigned char __a, __vector unsigned char __b) {
5817   return __a & ~__b;
5818 }
5819 
5820 // This prototype is deprecated.
5821 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector __bool char __a,__vector unsigned char __b)5822 vec_andc(__vector __bool char __a, __vector unsigned char __b) {
5823   return __a & ~__b;
5824 }
5825 
5826 // This prototype is deprecated.
5827 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a,__vector __bool char __b)5828 vec_andc(__vector unsigned char __a, __vector __bool char __b) {
5829   return __a & ~__b;
5830 }
5831 
5832 static inline __ATTRS_o_ai __vector __bool short
vec_andc(__vector __bool short __a,__vector __bool short __b)5833 vec_andc(__vector __bool short __a, __vector __bool short __b) {
5834   return __a & ~__b;
5835 }
5836 
5837 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a,__vector signed short __b)5838 vec_andc(__vector signed short __a, __vector signed short __b) {
5839   return __a & ~__b;
5840 }
5841 
5842 // This prototype is deprecated.
5843 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector __bool short __a,__vector signed short __b)5844 vec_andc(__vector __bool short __a, __vector signed short __b) {
5845   return __a & ~__b;
5846 }
5847 
5848 // This prototype is deprecated.
5849 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a,__vector __bool short __b)5850 vec_andc(__vector signed short __a, __vector __bool short __b) {
5851   return __a & ~__b;
5852 }
5853 
5854 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a,__vector unsigned short __b)5855 vec_andc(__vector unsigned short __a, __vector unsigned short __b) {
5856   return __a & ~__b;
5857 }
5858 
5859 // This prototype is deprecated.
5860 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector __bool short __a,__vector unsigned short __b)5861 vec_andc(__vector __bool short __a, __vector unsigned short __b) {
5862   return __a & ~__b;
5863 }
5864 
5865 // This prototype is deprecated.
5866 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a,__vector __bool short __b)5867 vec_andc(__vector unsigned short __a, __vector __bool short __b) {
5868   return __a & ~__b;
5869 }
5870 
5871 static inline __ATTRS_o_ai __vector __bool int
vec_andc(__vector __bool int __a,__vector __bool int __b)5872 vec_andc(__vector __bool int __a, __vector __bool int __b) {
5873   return __a & ~__b;
5874 }
5875 
5876 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a,__vector signed int __b)5877 vec_andc(__vector signed int __a, __vector signed int __b) {
5878   return __a & ~__b;
5879 }
5880 
5881 // This prototype is deprecated.
5882 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector __bool int __a,__vector signed int __b)5883 vec_andc(__vector __bool int __a, __vector signed int __b) {
5884   return __a & ~__b;
5885 }
5886 
5887 // This prototype is deprecated.
5888 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a,__vector __bool int __b)5889 vec_andc(__vector signed int __a, __vector __bool int __b) {
5890   return __a & ~__b;
5891 }
5892 
5893 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a,__vector unsigned int __b)5894 vec_andc(__vector unsigned int __a, __vector unsigned int __b) {
5895   return __a & ~__b;
5896 }
5897 
5898 // This prototype is deprecated.
5899 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector __bool int __a,__vector unsigned int __b)5900 vec_andc(__vector __bool int __a, __vector unsigned int __b) {
5901   return __a & ~__b;
5902 }
5903 
5904 // This prototype is deprecated.
5905 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a,__vector __bool int __b)5906 vec_andc(__vector unsigned int __a, __vector __bool int __b) {
5907   return __a & ~__b;
5908 }
5909 
5910 static inline __ATTRS_o_ai __vector __bool long long
vec_andc(__vector __bool long long __a,__vector __bool long long __b)5911 vec_andc(__vector __bool long long __a, __vector __bool long long __b) {
5912   return __a & ~__b;
5913 }
5914 
5915 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a,__vector signed long long __b)5916 vec_andc(__vector signed long long __a, __vector signed long long __b) {
5917   return __a & ~__b;
5918 }
5919 
5920 // This prototype is deprecated.
5921 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector __bool long long __a,__vector signed long long __b)5922 vec_andc(__vector __bool long long __a, __vector signed long long __b) {
5923   return __a & ~__b;
5924 }
5925 
5926 // This prototype is deprecated.
5927 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a,__vector __bool long long __b)5928 vec_andc(__vector signed long long __a, __vector __bool long long __b) {
5929   return __a & ~__b;
5930 }
5931 
5932 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a,__vector unsigned long long __b)5933 vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) {
5934   return __a & ~__b;
5935 }
5936 
5937 // This prototype is deprecated.
5938 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector __bool long long __a,__vector unsigned long long __b)5939 vec_andc(__vector __bool long long __a, __vector unsigned long long __b) {
5940   return __a & ~__b;
5941 }
5942 
5943 // This prototype is deprecated.
5944 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a,__vector __bool long long __b)5945 vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {
5946   return __a & ~__b;
5947 }
5948 
5949 #if __ARCH__ >= 12
5950 static inline __ATTRS_o_ai __vector float
vec_andc(__vector float __a,__vector float __b)5951 vec_andc(__vector float __a, __vector float __b) {
5952   return (__vector float)((__vector unsigned int)__a &
5953                          ~(__vector unsigned int)__b);
5954 }
5955 #endif
5956 
5957 static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a,__vector double __b)5958 vec_andc(__vector double __a, __vector double __b) {
5959   return (__vector double)((__vector unsigned long long)__a &
5960                          ~(__vector unsigned long long)__b);
5961 }
5962 
5963 // This prototype is deprecated.
5964 static inline __ATTRS_o_ai __vector double
vec_andc(__vector __bool long long __a,__vector double __b)5965 vec_andc(__vector __bool long long __a, __vector double __b) {
5966   return (__vector double)((__vector unsigned long long)__a &
5967                          ~(__vector unsigned long long)__b);
5968 }
5969 
5970 // This prototype is deprecated.
5971 static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a,__vector __bool long long __b)5972 vec_andc(__vector double __a, __vector __bool long long __b) {
5973   return (__vector double)((__vector unsigned long long)__a &
5974                          ~(__vector unsigned long long)__b);
5975 }
5976 
5977 /*-- vec_nor ----------------------------------------------------------------*/
5978 
5979 static inline __ATTRS_o_ai __vector __bool char
vec_nor(__vector __bool char __a,__vector __bool char __b)5980 vec_nor(__vector __bool char __a, __vector __bool char __b) {
5981   return ~(__a | __b);
5982 }
5983 
5984 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a,__vector signed char __b)5985 vec_nor(__vector signed char __a, __vector signed char __b) {
5986   return ~(__a | __b);
5987 }
5988 
5989 // This prototype is deprecated.
5990 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector __bool char __a,__vector signed char __b)5991 vec_nor(__vector __bool char __a, __vector signed char __b) {
5992   return ~(__a | __b);
5993 }
5994 
5995 // This prototype is deprecated.
5996 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a,__vector __bool char __b)5997 vec_nor(__vector signed char __a, __vector __bool char __b) {
5998   return ~(__a | __b);
5999 }
6000 
6001 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a,__vector unsigned char __b)6002 vec_nor(__vector unsigned char __a, __vector unsigned char __b) {
6003   return ~(__a | __b);
6004 }
6005 
6006 // This prototype is deprecated.
6007 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector __bool char __a,__vector unsigned char __b)6008 vec_nor(__vector __bool char __a, __vector unsigned char __b) {
6009   return ~(__a | __b);
6010 }
6011 
6012 // This prototype is deprecated.
6013 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a,__vector __bool char __b)6014 vec_nor(__vector unsigned char __a, __vector __bool char __b) {
6015   return ~(__a | __b);
6016 }
6017 
6018 static inline __ATTRS_o_ai __vector __bool short
vec_nor(__vector __bool short __a,__vector __bool short __b)6019 vec_nor(__vector __bool short __a, __vector __bool short __b) {
6020   return ~(__a | __b);
6021 }
6022 
6023 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a,__vector signed short __b)6024 vec_nor(__vector signed short __a, __vector signed short __b) {
6025   return ~(__a | __b);
6026 }
6027 
6028 // This prototype is deprecated.
6029 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector __bool short __a,__vector signed short __b)6030 vec_nor(__vector __bool short __a, __vector signed short __b) {
6031   return ~(__a | __b);
6032 }
6033 
6034 // This prototype is deprecated.
6035 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a,__vector __bool short __b)6036 vec_nor(__vector signed short __a, __vector __bool short __b) {
6037   return ~(__a | __b);
6038 }
6039 
6040 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a,__vector unsigned short __b)6041 vec_nor(__vector unsigned short __a, __vector unsigned short __b) {
6042   return ~(__a | __b);
6043 }
6044 
6045 // This prototype is deprecated.
6046 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector __bool short __a,__vector unsigned short __b)6047 vec_nor(__vector __bool short __a, __vector unsigned short __b) {
6048   return ~(__a | __b);
6049 }
6050 
6051 // This prototype is deprecated.
6052 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a,__vector __bool short __b)6053 vec_nor(__vector unsigned short __a, __vector __bool short __b) {
6054   return ~(__a | __b);
6055 }
6056 
6057 static inline __ATTRS_o_ai __vector __bool int
vec_nor(__vector __bool int __a,__vector __bool int __b)6058 vec_nor(__vector __bool int __a, __vector __bool int __b) {
6059   return ~(__a | __b);
6060 }
6061 
6062 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a,__vector signed int __b)6063 vec_nor(__vector signed int __a, __vector signed int __b) {
6064   return ~(__a | __b);
6065 }
6066 
6067 // This prototype is deprecated.
6068 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector __bool int __a,__vector signed int __b)6069 vec_nor(__vector __bool int __a, __vector signed int __b) {
6070   return ~(__a | __b);
6071 }
6072 
6073 // This prototype is deprecated.
6074 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a,__vector __bool int __b)6075 vec_nor(__vector signed int __a, __vector __bool int __b) {
6076   return ~(__a | __b);
6077 }
6078 
6079 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a,__vector unsigned int __b)6080 vec_nor(__vector unsigned int __a, __vector unsigned int __b) {
6081   return ~(__a | __b);
6082 }
6083 
6084 // This prototype is deprecated.
6085 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector __bool int __a,__vector unsigned int __b)6086 vec_nor(__vector __bool int __a, __vector unsigned int __b) {
6087   return ~(__a | __b);
6088 }
6089 
6090 // This prototype is deprecated.
6091 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a,__vector __bool int __b)6092 vec_nor(__vector unsigned int __a, __vector __bool int __b) {
6093   return ~(__a | __b);
6094 }
6095 
6096 static inline __ATTRS_o_ai __vector __bool long long
vec_nor(__vector __bool long long __a,__vector __bool long long __b)6097 vec_nor(__vector __bool long long __a, __vector __bool long long __b) {
6098   return ~(__a | __b);
6099 }
6100 
6101 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a,__vector signed long long __b)6102 vec_nor(__vector signed long long __a, __vector signed long long __b) {
6103   return ~(__a | __b);
6104 }
6105 
6106 // This prototype is deprecated.
6107 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector __bool long long __a,__vector signed long long __b)6108 vec_nor(__vector __bool long long __a, __vector signed long long __b) {
6109   return ~(__a | __b);
6110 }
6111 
6112 // This prototype is deprecated.
6113 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a,__vector __bool long long __b)6114 vec_nor(__vector signed long long __a, __vector __bool long long __b) {
6115   return ~(__a | __b);
6116 }
6117 
6118 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a,__vector unsigned long long __b)6119 vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) {
6120   return ~(__a | __b);
6121 }
6122 
6123 // This prototype is deprecated.
6124 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector __bool long long __a,__vector unsigned long long __b)6125 vec_nor(__vector __bool long long __a, __vector unsigned long long __b) {
6126   return ~(__a | __b);
6127 }
6128 
6129 // This prototype is deprecated.
6130 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a,__vector __bool long long __b)6131 vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {
6132   return ~(__a | __b);
6133 }
6134 
6135 #if __ARCH__ >= 12
6136 static inline __ATTRS_o_ai __vector float
vec_nor(__vector float __a,__vector float __b)6137 vec_nor(__vector float __a, __vector float __b) {
6138   return (__vector float)~((__vector unsigned int)__a |
6139                          (__vector unsigned int)__b);
6140 }
6141 #endif
6142 
6143 static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a,__vector double __b)6144 vec_nor(__vector double __a, __vector double __b) {
6145   return (__vector double)~((__vector unsigned long long)__a |
6146                           (__vector unsigned long long)__b);
6147 }
6148 
6149 // This prototype is deprecated.
6150 static inline __ATTRS_o_ai __vector double
vec_nor(__vector __bool long long __a,__vector double __b)6151 vec_nor(__vector __bool long long __a, __vector double __b) {
6152   return (__vector double)~((__vector unsigned long long)__a |
6153                           (__vector unsigned long long)__b);
6154 }
6155 
6156 // This prototype is deprecated.
6157 static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a,__vector __bool long long __b)6158 vec_nor(__vector double __a, __vector __bool long long __b) {
6159   return (__vector double)~((__vector unsigned long long)__a |
6160                           (__vector unsigned long long)__b);
6161 }
6162 
6163 /*-- vec_orc ----------------------------------------------------------------*/
6164 
6165 #if __ARCH__ >= 12
6166 static inline __ATTRS_o_ai __vector __bool char
vec_orc(__vector __bool char __a,__vector __bool char __b)6167 vec_orc(__vector __bool char __a, __vector __bool char __b) {
6168   return __a | ~__b;
6169 }
6170 
6171 static inline __ATTRS_o_ai __vector signed char
vec_orc(__vector signed char __a,__vector signed char __b)6172 vec_orc(__vector signed char __a, __vector signed char __b) {
6173   return __a | ~__b;
6174 }
6175 
6176 static inline __ATTRS_o_ai __vector unsigned char
vec_orc(__vector unsigned char __a,__vector unsigned char __b)6177 vec_orc(__vector unsigned char __a, __vector unsigned char __b) {
6178   return __a | ~__b;
6179 }
6180 
6181 static inline __ATTRS_o_ai __vector __bool short
vec_orc(__vector __bool short __a,__vector __bool short __b)6182 vec_orc(__vector __bool short __a, __vector __bool short __b) {
6183   return __a | ~__b;
6184 }
6185 
6186 static inline __ATTRS_o_ai __vector signed short
vec_orc(__vector signed short __a,__vector signed short __b)6187 vec_orc(__vector signed short __a, __vector signed short __b) {
6188   return __a | ~__b;
6189 }
6190 
6191 static inline __ATTRS_o_ai __vector unsigned short
vec_orc(__vector unsigned short __a,__vector unsigned short __b)6192 vec_orc(__vector unsigned short __a, __vector unsigned short __b) {
6193   return __a | ~__b;
6194 }
6195 
6196 static inline __ATTRS_o_ai __vector __bool int
vec_orc(__vector __bool int __a,__vector __bool int __b)6197 vec_orc(__vector __bool int __a, __vector __bool int __b) {
6198   return __a | ~__b;
6199 }
6200 
6201 static inline __ATTRS_o_ai __vector signed int
vec_orc(__vector signed int __a,__vector signed int __b)6202 vec_orc(__vector signed int __a, __vector signed int __b) {
6203   return __a | ~__b;
6204 }
6205 
6206 static inline __ATTRS_o_ai __vector unsigned int
vec_orc(__vector unsigned int __a,__vector unsigned int __b)6207 vec_orc(__vector unsigned int __a, __vector unsigned int __b) {
6208   return __a | ~__b;
6209 }
6210 
6211 static inline __ATTRS_o_ai __vector __bool long long
vec_orc(__vector __bool long long __a,__vector __bool long long __b)6212 vec_orc(__vector __bool long long __a, __vector __bool long long __b) {
6213   return __a | ~__b;
6214 }
6215 
6216 static inline __ATTRS_o_ai __vector signed long long
vec_orc(__vector signed long long __a,__vector signed long long __b)6217 vec_orc(__vector signed long long __a, __vector signed long long __b) {
6218   return __a | ~__b;
6219 }
6220 
6221 static inline __ATTRS_o_ai __vector unsigned long long
vec_orc(__vector unsigned long long __a,__vector unsigned long long __b)6222 vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {
6223   return __a | ~__b;
6224 }
6225 
6226 static inline __ATTRS_o_ai __vector float
vec_orc(__vector float __a,__vector float __b)6227 vec_orc(__vector float __a, __vector float __b) {
6228   return (__vector float)((__vector unsigned int)__a |
6229                         ~(__vector unsigned int)__b);
6230 }
6231 
6232 static inline __ATTRS_o_ai __vector double
vec_orc(__vector double __a,__vector double __b)6233 vec_orc(__vector double __a, __vector double __b) {
6234   return (__vector double)((__vector unsigned long long)__a |
6235                          ~(__vector unsigned long long)__b);
6236 }
6237 #endif
6238 
6239 /*-- vec_nand ---------------------------------------------------------------*/
6240 
6241 #if __ARCH__ >= 12
6242 static inline __ATTRS_o_ai __vector __bool char
vec_nand(__vector __bool char __a,__vector __bool char __b)6243 vec_nand(__vector __bool char __a, __vector __bool char __b) {
6244   return ~(__a & __b);
6245 }
6246 
6247 static inline __ATTRS_o_ai __vector signed char
vec_nand(__vector signed char __a,__vector signed char __b)6248 vec_nand(__vector signed char __a, __vector signed char __b) {
6249   return ~(__a & __b);
6250 }
6251 
6252 static inline __ATTRS_o_ai __vector unsigned char
vec_nand(__vector unsigned char __a,__vector unsigned char __b)6253 vec_nand(__vector unsigned char __a, __vector unsigned char __b) {
6254   return ~(__a & __b);
6255 }
6256 
6257 static inline __ATTRS_o_ai __vector __bool short
vec_nand(__vector __bool short __a,__vector __bool short __b)6258 vec_nand(__vector __bool short __a, __vector __bool short __b) {
6259   return ~(__a & __b);
6260 }
6261 
6262 static inline __ATTRS_o_ai __vector signed short
vec_nand(__vector signed short __a,__vector signed short __b)6263 vec_nand(__vector signed short __a, __vector signed short __b) {
6264   return ~(__a & __b);
6265 }
6266 
6267 static inline __ATTRS_o_ai __vector unsigned short
vec_nand(__vector unsigned short __a,__vector unsigned short __b)6268 vec_nand(__vector unsigned short __a, __vector unsigned short __b) {
6269   return ~(__a & __b);
6270 }
6271 
6272 static inline __ATTRS_o_ai __vector __bool int
vec_nand(__vector __bool int __a,__vector __bool int __b)6273 vec_nand(__vector __bool int __a, __vector __bool int __b) {
6274   return ~(__a & __b);
6275 }
6276 
6277 static inline __ATTRS_o_ai __vector signed int
vec_nand(__vector signed int __a,__vector signed int __b)6278 vec_nand(__vector signed int __a, __vector signed int __b) {
6279   return ~(__a & __b);
6280 }
6281 
6282 static inline __ATTRS_o_ai __vector unsigned int
vec_nand(__vector unsigned int __a,__vector unsigned int __b)6283 vec_nand(__vector unsigned int __a, __vector unsigned int __b) {
6284   return ~(__a & __b);
6285 }
6286 
6287 static inline __ATTRS_o_ai __vector __bool long long
vec_nand(__vector __bool long long __a,__vector __bool long long __b)6288 vec_nand(__vector __bool long long __a, __vector __bool long long __b) {
6289   return ~(__a & __b);
6290 }
6291 
6292 static inline __ATTRS_o_ai __vector signed long long
vec_nand(__vector signed long long __a,__vector signed long long __b)6293 vec_nand(__vector signed long long __a, __vector signed long long __b) {
6294   return ~(__a & __b);
6295 }
6296 
6297 static inline __ATTRS_o_ai __vector unsigned long long
vec_nand(__vector unsigned long long __a,__vector unsigned long long __b)6298 vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {
6299   return ~(__a & __b);
6300 }
6301 
6302 static inline __ATTRS_o_ai __vector float
vec_nand(__vector float __a,__vector float __b)6303 vec_nand(__vector float __a, __vector float __b) {
6304   return (__vector float)~((__vector unsigned int)__a &
6305                          (__vector unsigned int)__b);
6306 }
6307 
6308 static inline __ATTRS_o_ai __vector double
vec_nand(__vector double __a,__vector double __b)6309 vec_nand(__vector double __a, __vector double __b) {
6310   return (__vector double)~((__vector unsigned long long)__a &
6311                           (__vector unsigned long long)__b);
6312 }
6313 #endif
6314 
6315 /*-- vec_eqv ----------------------------------------------------------------*/
6316 
6317 #if __ARCH__ >= 12
6318 static inline __ATTRS_o_ai __vector __bool char
vec_eqv(__vector __bool char __a,__vector __bool char __b)6319 vec_eqv(__vector __bool char __a, __vector __bool char __b) {
6320   return ~(__a ^ __b);
6321 }
6322 
6323 static inline __ATTRS_o_ai __vector signed char
vec_eqv(__vector signed char __a,__vector signed char __b)6324 vec_eqv(__vector signed char __a, __vector signed char __b) {
6325   return ~(__a ^ __b);
6326 }
6327 
6328 static inline __ATTRS_o_ai __vector unsigned char
vec_eqv(__vector unsigned char __a,__vector unsigned char __b)6329 vec_eqv(__vector unsigned char __a, __vector unsigned char __b) {
6330   return ~(__a ^ __b);
6331 }
6332 
6333 static inline __ATTRS_o_ai __vector __bool short
vec_eqv(__vector __bool short __a,__vector __bool short __b)6334 vec_eqv(__vector __bool short __a, __vector __bool short __b) {
6335   return ~(__a ^ __b);
6336 }
6337 
6338 static inline __ATTRS_o_ai __vector signed short
vec_eqv(__vector signed short __a,__vector signed short __b)6339 vec_eqv(__vector signed short __a, __vector signed short __b) {
6340   return ~(__a ^ __b);
6341 }
6342 
6343 static inline __ATTRS_o_ai __vector unsigned short
vec_eqv(__vector unsigned short __a,__vector unsigned short __b)6344 vec_eqv(__vector unsigned short __a, __vector unsigned short __b) {
6345   return ~(__a ^ __b);
6346 }
6347 
6348 static inline __ATTRS_o_ai __vector __bool int
vec_eqv(__vector __bool int __a,__vector __bool int __b)6349 vec_eqv(__vector __bool int __a, __vector __bool int __b) {
6350   return ~(__a ^ __b);
6351 }
6352 
6353 static inline __ATTRS_o_ai __vector signed int
vec_eqv(__vector signed int __a,__vector signed int __b)6354 vec_eqv(__vector signed int __a, __vector signed int __b) {
6355   return ~(__a ^ __b);
6356 }
6357 
6358 static inline __ATTRS_o_ai __vector unsigned int
vec_eqv(__vector unsigned int __a,__vector unsigned int __b)6359 vec_eqv(__vector unsigned int __a, __vector unsigned int __b) {
6360   return ~(__a ^ __b);
6361 }
6362 
6363 static inline __ATTRS_o_ai __vector __bool long long
vec_eqv(__vector __bool long long __a,__vector __bool long long __b)6364 vec_eqv(__vector __bool long long __a, __vector __bool long long __b) {
6365   return ~(__a ^ __b);
6366 }
6367 
6368 static inline __ATTRS_o_ai __vector signed long long
vec_eqv(__vector signed long long __a,__vector signed long long __b)6369 vec_eqv(__vector signed long long __a, __vector signed long long __b) {
6370   return ~(__a ^ __b);
6371 }
6372 
6373 static inline __ATTRS_o_ai __vector unsigned long long
vec_eqv(__vector unsigned long long __a,__vector unsigned long long __b)6374 vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {
6375   return ~(__a ^ __b);
6376 }
6377 
6378 static inline __ATTRS_o_ai __vector float
vec_eqv(__vector float __a,__vector float __b)6379 vec_eqv(__vector float __a, __vector float __b) {
6380   return (__vector float)~((__vector unsigned int)__a ^
6381                          (__vector unsigned int)__b);
6382 }
6383 
6384 static inline __ATTRS_o_ai __vector double
vec_eqv(__vector double __a,__vector double __b)6385 vec_eqv(__vector double __a, __vector double __b) {
6386   return (__vector double)~((__vector unsigned long long)__a ^
6387                           (__vector unsigned long long)__b);
6388 }
6389 #endif
6390 
6391 /*-- vec_cntlz --------------------------------------------------------------*/
6392 
6393 static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector signed char __a)6394 vec_cntlz(__vector signed char __a) {
6395   return __builtin_s390_vclzb((__vector unsigned char)__a);
6396 }
6397 
6398 static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector unsigned char __a)6399 vec_cntlz(__vector unsigned char __a) {
6400   return __builtin_s390_vclzb(__a);
6401 }
6402 
6403 static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector signed short __a)6404 vec_cntlz(__vector signed short __a) {
6405   return __builtin_s390_vclzh((__vector unsigned short)__a);
6406 }
6407 
6408 static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector unsigned short __a)6409 vec_cntlz(__vector unsigned short __a) {
6410   return __builtin_s390_vclzh(__a);
6411 }
6412 
6413 static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector signed int __a)6414 vec_cntlz(__vector signed int __a) {
6415   return __builtin_s390_vclzf((__vector unsigned int)__a);
6416 }
6417 
6418 static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector unsigned int __a)6419 vec_cntlz(__vector unsigned int __a) {
6420   return __builtin_s390_vclzf(__a);
6421 }
6422 
6423 static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector signed long long __a)6424 vec_cntlz(__vector signed long long __a) {
6425   return __builtin_s390_vclzg((__vector unsigned long long)__a);
6426 }
6427 
6428 static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector unsigned long long __a)6429 vec_cntlz(__vector unsigned long long __a) {
6430   return __builtin_s390_vclzg(__a);
6431 }
6432 
6433 /*-- vec_cnttz --------------------------------------------------------------*/
6434 
6435 static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector signed char __a)6436 vec_cnttz(__vector signed char __a) {
6437   return __builtin_s390_vctzb((__vector unsigned char)__a);
6438 }
6439 
6440 static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector unsigned char __a)6441 vec_cnttz(__vector unsigned char __a) {
6442   return __builtin_s390_vctzb(__a);
6443 }
6444 
6445 static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector signed short __a)6446 vec_cnttz(__vector signed short __a) {
6447   return __builtin_s390_vctzh((__vector unsigned short)__a);
6448 }
6449 
6450 static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector unsigned short __a)6451 vec_cnttz(__vector unsigned short __a) {
6452   return __builtin_s390_vctzh(__a);
6453 }
6454 
6455 static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector signed int __a)6456 vec_cnttz(__vector signed int __a) {
6457   return __builtin_s390_vctzf((__vector unsigned int)__a);
6458 }
6459 
6460 static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector unsigned int __a)6461 vec_cnttz(__vector unsigned int __a) {
6462   return __builtin_s390_vctzf(__a);
6463 }
6464 
6465 static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector signed long long __a)6466 vec_cnttz(__vector signed long long __a) {
6467   return __builtin_s390_vctzg((__vector unsigned long long)__a);
6468 }
6469 
6470 static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector unsigned long long __a)6471 vec_cnttz(__vector unsigned long long __a) {
6472   return __builtin_s390_vctzg(__a);
6473 }
6474 
6475 /*-- vec_popcnt -------------------------------------------------------------*/
6476 
6477 static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector signed char __a)6478 vec_popcnt(__vector signed char __a) {
6479   return __builtin_s390_vpopctb((__vector unsigned char)__a);
6480 }
6481 
6482 static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector unsigned char __a)6483 vec_popcnt(__vector unsigned char __a) {
6484   return __builtin_s390_vpopctb(__a);
6485 }
6486 
6487 static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector signed short __a)6488 vec_popcnt(__vector signed short __a) {
6489   return __builtin_s390_vpopcth((__vector unsigned short)__a);
6490 }
6491 
6492 static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector unsigned short __a)6493 vec_popcnt(__vector unsigned short __a) {
6494   return __builtin_s390_vpopcth(__a);
6495 }
6496 
6497 static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector signed int __a)6498 vec_popcnt(__vector signed int __a) {
6499   return __builtin_s390_vpopctf((__vector unsigned int)__a);
6500 }
6501 
6502 static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector unsigned int __a)6503 vec_popcnt(__vector unsigned int __a) {
6504   return __builtin_s390_vpopctf(__a);
6505 }
6506 
6507 static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector signed long long __a)6508 vec_popcnt(__vector signed long long __a) {
6509   return __builtin_s390_vpopctg((__vector unsigned long long)__a);
6510 }
6511 
6512 static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector unsigned long long __a)6513 vec_popcnt(__vector unsigned long long __a) {
6514   return __builtin_s390_vpopctg(__a);
6515 }
6516 
6517 /*-- vec_rl -----------------------------------------------------------------*/
6518 
6519 static inline __ATTRS_o_ai __vector signed char
vec_rl(__vector signed char __a,__vector unsigned char __b)6520 vec_rl(__vector signed char __a, __vector unsigned char __b) {
6521   return (__vector signed char)__builtin_s390_verllvb(
6522     (__vector unsigned char)__a, __b);
6523 }
6524 
6525 static inline __ATTRS_o_ai __vector unsigned char
vec_rl(__vector unsigned char __a,__vector unsigned char __b)6526 vec_rl(__vector unsigned char __a, __vector unsigned char __b) {
6527   return __builtin_s390_verllvb(__a, __b);
6528 }
6529 
6530 static inline __ATTRS_o_ai __vector signed short
vec_rl(__vector signed short __a,__vector unsigned short __b)6531 vec_rl(__vector signed short __a, __vector unsigned short __b) {
6532   return (__vector signed short)__builtin_s390_verllvh(
6533     (__vector unsigned short)__a, __b);
6534 }
6535 
6536 static inline __ATTRS_o_ai __vector unsigned short
vec_rl(__vector unsigned short __a,__vector unsigned short __b)6537 vec_rl(__vector unsigned short __a, __vector unsigned short __b) {
6538   return __builtin_s390_verllvh(__a, __b);
6539 }
6540 
6541 static inline __ATTRS_o_ai __vector signed int
vec_rl(__vector signed int __a,__vector unsigned int __b)6542 vec_rl(__vector signed int __a, __vector unsigned int __b) {
6543   return (__vector signed int)__builtin_s390_verllvf(
6544     (__vector unsigned int)__a, __b);
6545 }
6546 
6547 static inline __ATTRS_o_ai __vector unsigned int
vec_rl(__vector unsigned int __a,__vector unsigned int __b)6548 vec_rl(__vector unsigned int __a, __vector unsigned int __b) {
6549   return __builtin_s390_verllvf(__a, __b);
6550 }
6551 
6552 static inline __ATTRS_o_ai __vector signed long long
vec_rl(__vector signed long long __a,__vector unsigned long long __b)6553 vec_rl(__vector signed long long __a, __vector unsigned long long __b) {
6554   return (__vector signed long long)__builtin_s390_verllvg(
6555     (__vector unsigned long long)__a, __b);
6556 }
6557 
6558 static inline __ATTRS_o_ai __vector unsigned long long
vec_rl(__vector unsigned long long __a,__vector unsigned long long __b)6559 vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) {
6560   return __builtin_s390_verllvg(__a, __b);
6561 }
6562 
6563 /*-- vec_rli ----------------------------------------------------------------*/
6564 
6565 static inline __ATTRS_o_ai __vector signed char
vec_rli(__vector signed char __a,unsigned long __b)6566 vec_rli(__vector signed char __a, unsigned long __b) {
6567   return (__vector signed char)__builtin_s390_verllb(
6568     (__vector unsigned char)__a, (int)__b);
6569 }
6570 
6571 static inline __ATTRS_o_ai __vector unsigned char
vec_rli(__vector unsigned char __a,unsigned long __b)6572 vec_rli(__vector unsigned char __a, unsigned long __b) {
6573   return __builtin_s390_verllb(__a, (int)__b);
6574 }
6575 
6576 static inline __ATTRS_o_ai __vector signed short
vec_rli(__vector signed short __a,unsigned long __b)6577 vec_rli(__vector signed short __a, unsigned long __b) {
6578   return (__vector signed short)__builtin_s390_verllh(
6579     (__vector unsigned short)__a, (int)__b);
6580 }
6581 
6582 static inline __ATTRS_o_ai __vector unsigned short
vec_rli(__vector unsigned short __a,unsigned long __b)6583 vec_rli(__vector unsigned short __a, unsigned long __b) {
6584   return __builtin_s390_verllh(__a, (int)__b);
6585 }
6586 
6587 static inline __ATTRS_o_ai __vector signed int
vec_rli(__vector signed int __a,unsigned long __b)6588 vec_rli(__vector signed int __a, unsigned long __b) {
6589   return (__vector signed int)__builtin_s390_verllf(
6590     (__vector unsigned int)__a, (int)__b);
6591 }
6592 
6593 static inline __ATTRS_o_ai __vector unsigned int
vec_rli(__vector unsigned int __a,unsigned long __b)6594 vec_rli(__vector unsigned int __a, unsigned long __b) {
6595   return __builtin_s390_verllf(__a, (int)__b);
6596 }
6597 
6598 static inline __ATTRS_o_ai __vector signed long long
vec_rli(__vector signed long long __a,unsigned long __b)6599 vec_rli(__vector signed long long __a, unsigned long __b) {
6600   return (__vector signed long long)__builtin_s390_verllg(
6601     (__vector unsigned long long)__a, (int)__b);
6602 }
6603 
6604 static inline __ATTRS_o_ai __vector unsigned long long
vec_rli(__vector unsigned long long __a,unsigned long __b)6605 vec_rli(__vector unsigned long long __a, unsigned long __b) {
6606   return __builtin_s390_verllg(__a, (int)__b);
6607 }
6608 
6609 /*-- vec_rl_mask ------------------------------------------------------------*/
6610 
6611 extern __ATTRS_o __vector signed char
6612 vec_rl_mask(__vector signed char __a, __vector unsigned char __b,
6613             unsigned char __c) __constant(__c);
6614 
6615 extern __ATTRS_o __vector unsigned char
6616 vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b,
6617             unsigned char __c) __constant(__c);
6618 
6619 extern __ATTRS_o __vector signed short
6620 vec_rl_mask(__vector signed short __a, __vector unsigned short __b,
6621             unsigned char __c) __constant(__c);
6622 
6623 extern __ATTRS_o __vector unsigned short
6624 vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b,
6625             unsigned char __c) __constant(__c);
6626 
6627 extern __ATTRS_o __vector signed int
6628 vec_rl_mask(__vector signed int __a, __vector unsigned int __b,
6629             unsigned char __c) __constant(__c);
6630 
6631 extern __ATTRS_o __vector unsigned int
6632 vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b,
6633             unsigned char __c) __constant(__c);
6634 
6635 extern __ATTRS_o __vector signed long long
6636 vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b,
6637             unsigned char __c) __constant(__c);
6638 
6639 extern __ATTRS_o __vector unsigned long long
6640 vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b,
6641             unsigned char __c) __constant(__c);
6642 
6643 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
6644   __extension__ ({ \
6645     __vector unsigned char __res; \
6646     __vector unsigned char __x = (__vector unsigned char)(X); \
6647     __vector unsigned char __y = (__vector unsigned char)(Y); \
6648     switch (sizeof ((X)[0])) { \
6649     case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \
6650              (__vector unsigned char)__x, (__vector unsigned char)__x, \
6651              (__vector unsigned char)__y, (Z)); break; \
6652     case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \
6653              (__vector unsigned short)__x, (__vector unsigned short)__x, \
6654              (__vector unsigned short)__y, (Z)); break; \
6655     case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \
6656              (__vector unsigned int)__x, (__vector unsigned int)__x, \
6657              (__vector unsigned int)__y, (Z)); break; \
6658     default: __res = (__vector unsigned char) __builtin_s390_verimg( \
6659              (__vector unsigned long long)__x, (__vector unsigned long long)__x, \
6660              (__vector unsigned long long)__y, (Z)); break; \
6661     } __res; }))
6662 
6663 /*-- vec_sll ----------------------------------------------------------------*/
6664 
6665 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned char __b)6666 vec_sll(__vector signed char __a, __vector unsigned char __b) {
6667   return (__vector signed char)__builtin_s390_vsl(
6668     (__vector unsigned char)__a, __b);
6669 }
6670 
6671 // This prototype is deprecated.
6672 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned short __b)6673 vec_sll(__vector signed char __a, __vector unsigned short __b) {
6674   return (__vector signed char)__builtin_s390_vsl(
6675     (__vector unsigned char)__a, (__vector unsigned char)__b);
6676 }
6677 
6678 // This prototype is deprecated.
6679 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned int __b)6680 vec_sll(__vector signed char __a, __vector unsigned int __b) {
6681   return (__vector signed char)__builtin_s390_vsl(
6682     (__vector unsigned char)__a, (__vector unsigned char)__b);
6683 }
6684 
6685 // This prototype is deprecated.
6686 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned char __b)6687 vec_sll(__vector __bool char __a, __vector unsigned char __b) {
6688   return (__vector __bool char)__builtin_s390_vsl(
6689     (__vector unsigned char)__a, __b);
6690 }
6691 
6692 // This prototype is deprecated.
6693 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned short __b)6694 vec_sll(__vector __bool char __a, __vector unsigned short __b) {
6695   return (__vector __bool char)__builtin_s390_vsl(
6696     (__vector unsigned char)__a, (__vector unsigned char)__b);
6697 }
6698 
6699 // This prototype is deprecated.
6700 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned int __b)6701 vec_sll(__vector __bool char __a, __vector unsigned int __b) {
6702   return (__vector __bool char)__builtin_s390_vsl(
6703     (__vector unsigned char)__a, (__vector unsigned char)__b);
6704 }
6705 
6706 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned char __b)6707 vec_sll(__vector unsigned char __a, __vector unsigned char __b) {
6708   return __builtin_s390_vsl(__a, __b);
6709 }
6710 
6711 // This prototype is deprecated.
6712 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned short __b)6713 vec_sll(__vector unsigned char __a, __vector unsigned short __b) {
6714   return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
6715 }
6716 
6717 // This prototype is deprecated.
6718 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned int __b)6719 vec_sll(__vector unsigned char __a, __vector unsigned int __b) {
6720   return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
6721 }
6722 
6723 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned char __b)6724 vec_sll(__vector signed short __a, __vector unsigned char __b) {
6725   return (__vector signed short)__builtin_s390_vsl(
6726     (__vector unsigned char)__a, __b);
6727 }
6728 
6729 // This prototype is deprecated.
6730 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned short __b)6731 vec_sll(__vector signed short __a, __vector unsigned short __b) {
6732   return (__vector signed short)__builtin_s390_vsl(
6733     (__vector unsigned char)__a, (__vector unsigned char)__b);
6734 }
6735 
6736 // This prototype is deprecated.
6737 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned int __b)6738 vec_sll(__vector signed short __a, __vector unsigned int __b) {
6739   return (__vector signed short)__builtin_s390_vsl(
6740     (__vector unsigned char)__a, (__vector unsigned char)__b);
6741 }
6742 
6743 // This prototype is deprecated.
6744 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned char __b)6745 vec_sll(__vector __bool short __a, __vector unsigned char __b) {
6746   return (__vector __bool short)__builtin_s390_vsl(
6747     (__vector unsigned char)__a, __b);
6748 }
6749 
6750 // This prototype is deprecated.
6751 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned short __b)6752 vec_sll(__vector __bool short __a, __vector unsigned short __b) {
6753   return (__vector __bool short)__builtin_s390_vsl(
6754     (__vector unsigned char)__a, (__vector unsigned char)__b);
6755 }
6756 
6757 // This prototype is deprecated.
6758 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned int __b)6759 vec_sll(__vector __bool short __a, __vector unsigned int __b) {
6760   return (__vector __bool short)__builtin_s390_vsl(
6761     (__vector unsigned char)__a, (__vector unsigned char)__b);
6762 }
6763 
6764 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned char __b)6765 vec_sll(__vector unsigned short __a, __vector unsigned char __b) {
6766   return (__vector unsigned short)__builtin_s390_vsl(
6767     (__vector unsigned char)__a, __b);
6768 }
6769 
6770 // This prototype is deprecated.
6771 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned short __b)6772 vec_sll(__vector unsigned short __a, __vector unsigned short __b) {
6773   return (__vector unsigned short)__builtin_s390_vsl(
6774     (__vector unsigned char)__a, (__vector unsigned char)__b);
6775 }
6776 
6777 // This prototype is deprecated.
6778 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned int __b)6779 vec_sll(__vector unsigned short __a, __vector unsigned int __b) {
6780   return (__vector unsigned short)__builtin_s390_vsl(
6781     (__vector unsigned char)__a, (__vector unsigned char)__b);
6782 }
6783 
6784 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned char __b)6785 vec_sll(__vector signed int __a, __vector unsigned char __b) {
6786   return (__vector signed int)__builtin_s390_vsl(
6787     (__vector unsigned char)__a, __b);
6788 }
6789 
6790 // This prototype is deprecated.
6791 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned short __b)6792 vec_sll(__vector signed int __a, __vector unsigned short __b) {
6793   return (__vector signed int)__builtin_s390_vsl(
6794     (__vector unsigned char)__a, (__vector unsigned char)__b);
6795 }
6796 
6797 // This prototype is deprecated.
6798 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned int __b)6799 vec_sll(__vector signed int __a, __vector unsigned int __b) {
6800   return (__vector signed int)__builtin_s390_vsl(
6801     (__vector unsigned char)__a, (__vector unsigned char)__b);
6802 }
6803 
6804 // This prototype is deprecated.
6805 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned char __b)6806 vec_sll(__vector __bool int __a, __vector unsigned char __b) {
6807   return (__vector __bool int)__builtin_s390_vsl(
6808     (__vector unsigned char)__a, __b);
6809 }
6810 
6811 // This prototype is deprecated.
6812 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned short __b)6813 vec_sll(__vector __bool int __a, __vector unsigned short __b) {
6814   return (__vector __bool int)__builtin_s390_vsl(
6815     (__vector unsigned char)__a, (__vector unsigned char)__b);
6816 }
6817 
6818 // This prototype is deprecated.
6819 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned int __b)6820 vec_sll(__vector __bool int __a, __vector unsigned int __b) {
6821   return (__vector __bool int)__builtin_s390_vsl(
6822     (__vector unsigned char)__a, (__vector unsigned char)__b);
6823 }
6824 
6825 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned char __b)6826 vec_sll(__vector unsigned int __a, __vector unsigned char __b) {
6827   return (__vector unsigned int)__builtin_s390_vsl(
6828     (__vector unsigned char)__a, __b);
6829 }
6830 
6831 // This prototype is deprecated.
6832 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned short __b)6833 vec_sll(__vector unsigned int __a, __vector unsigned short __b) {
6834   return (__vector unsigned int)__builtin_s390_vsl(
6835     (__vector unsigned char)__a, (__vector unsigned char)__b);
6836 }
6837 
6838 // This prototype is deprecated.
6839 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned int __b)6840 vec_sll(__vector unsigned int __a, __vector unsigned int __b) {
6841   return (__vector unsigned int)__builtin_s390_vsl(
6842     (__vector unsigned char)__a, (__vector unsigned char)__b);
6843 }
6844 
6845 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned char __b)6846 vec_sll(__vector signed long long __a, __vector unsigned char __b) {
6847   return (__vector signed long long)__builtin_s390_vsl(
6848     (__vector unsigned char)__a, __b);
6849 }
6850 
6851 // This prototype is deprecated.
6852 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned short __b)6853 vec_sll(__vector signed long long __a, __vector unsigned short __b) {
6854   return (__vector signed long long)__builtin_s390_vsl(
6855     (__vector unsigned char)__a, (__vector unsigned char)__b);
6856 }
6857 
6858 // This prototype is deprecated.
6859 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned int __b)6860 vec_sll(__vector signed long long __a, __vector unsigned int __b) {
6861   return (__vector signed long long)__builtin_s390_vsl(
6862     (__vector unsigned char)__a, (__vector unsigned char)__b);
6863 }
6864 
6865 // This prototype is deprecated.
6866 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned char __b)6867 vec_sll(__vector __bool long long __a, __vector unsigned char __b) {
6868   return (__vector __bool long long)__builtin_s390_vsl(
6869     (__vector unsigned char)__a, __b);
6870 }
6871 
6872 // This prototype is deprecated.
6873 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned short __b)6874 vec_sll(__vector __bool long long __a, __vector unsigned short __b) {
6875   return (__vector __bool long long)__builtin_s390_vsl(
6876     (__vector unsigned char)__a, (__vector unsigned char)__b);
6877 }
6878 
6879 // This prototype is deprecated.
6880 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned int __b)6881 vec_sll(__vector __bool long long __a, __vector unsigned int __b) {
6882   return (__vector __bool long long)__builtin_s390_vsl(
6883     (__vector unsigned char)__a, (__vector unsigned char)__b);
6884 }
6885 
6886 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned char __b)6887 vec_sll(__vector unsigned long long __a, __vector unsigned char __b) {
6888   return (__vector unsigned long long)__builtin_s390_vsl(
6889     (__vector unsigned char)__a, __b);
6890 }
6891 
6892 // This prototype is deprecated.
6893 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned short __b)6894 vec_sll(__vector unsigned long long __a, __vector unsigned short __b) {
6895   return (__vector unsigned long long)__builtin_s390_vsl(
6896     (__vector unsigned char)__a, (__vector unsigned char)__b);
6897 }
6898 
6899 // This prototype is deprecated.
6900 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned int __b)6901 vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {
6902   return (__vector unsigned long long)__builtin_s390_vsl(
6903     (__vector unsigned char)__a, (__vector unsigned char)__b);
6904 }
6905 
6906 /*-- vec_slb ----------------------------------------------------------------*/
6907 
6908 static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a,__vector signed char __b)6909 vec_slb(__vector signed char __a, __vector signed char __b) {
6910   return (__vector signed char)__builtin_s390_vslb(
6911     (__vector unsigned char)__a, (__vector unsigned char)__b);
6912 }
6913 
6914 static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a,__vector unsigned char __b)6915 vec_slb(__vector signed char __a, __vector unsigned char __b) {
6916   return (__vector signed char)__builtin_s390_vslb(
6917     (__vector unsigned char)__a, __b);
6918 }
6919 
6920 static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a,__vector signed char __b)6921 vec_slb(__vector unsigned char __a, __vector signed char __b) {
6922   return __builtin_s390_vslb(__a, (__vector unsigned char)__b);
6923 }
6924 
6925 static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a,__vector unsigned char __b)6926 vec_slb(__vector unsigned char __a, __vector unsigned char __b) {
6927   return __builtin_s390_vslb(__a, __b);
6928 }
6929 
6930 static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector signed short __b)6931 vec_slb(__vector signed short __a, __vector signed short __b) {
6932   return (__vector signed short)__builtin_s390_vslb(
6933     (__vector unsigned char)__a, (__vector unsigned char)__b);
6934 }
6935 
6936 static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector unsigned short __b)6937 vec_slb(__vector signed short __a, __vector unsigned short __b) {
6938   return (__vector signed short)__builtin_s390_vslb(
6939     (__vector unsigned char)__a, (__vector unsigned char)__b);
6940 }
6941 
6942 static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector signed short __b)6943 vec_slb(__vector unsigned short __a, __vector signed short __b) {
6944   return (__vector unsigned short)__builtin_s390_vslb(
6945     (__vector unsigned char)__a, (__vector unsigned char)__b);
6946 }
6947 
6948 static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector unsigned short __b)6949 vec_slb(__vector unsigned short __a, __vector unsigned short __b) {
6950   return (__vector unsigned short)__builtin_s390_vslb(
6951     (__vector unsigned char)__a, (__vector unsigned char)__b);
6952 }
6953 
6954 static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector signed int __b)6955 vec_slb(__vector signed int __a, __vector signed int __b) {
6956   return (__vector signed int)__builtin_s390_vslb(
6957     (__vector unsigned char)__a, (__vector unsigned char)__b);
6958 }
6959 
6960 static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector unsigned int __b)6961 vec_slb(__vector signed int __a, __vector unsigned int __b) {
6962   return (__vector signed int)__builtin_s390_vslb(
6963     (__vector unsigned char)__a, (__vector unsigned char)__b);
6964 }
6965 
6966 static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector signed int __b)6967 vec_slb(__vector unsigned int __a, __vector signed int __b) {
6968   return (__vector unsigned int)__builtin_s390_vslb(
6969     (__vector unsigned char)__a, (__vector unsigned char)__b);
6970 }
6971 
6972 static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector unsigned int __b)6973 vec_slb(__vector unsigned int __a, __vector unsigned int __b) {
6974   return (__vector unsigned int)__builtin_s390_vslb(
6975     (__vector unsigned char)__a, (__vector unsigned char)__b);
6976 }
6977 
6978 static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector signed long long __b)6979 vec_slb(__vector signed long long __a, __vector signed long long __b) {
6980   return (__vector signed long long)__builtin_s390_vslb(
6981     (__vector unsigned char)__a, (__vector unsigned char)__b);
6982 }
6983 
6984 static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector unsigned long long __b)6985 vec_slb(__vector signed long long __a, __vector unsigned long long __b) {
6986   return (__vector signed long long)__builtin_s390_vslb(
6987     (__vector unsigned char)__a, (__vector unsigned char)__b);
6988 }
6989 
6990 static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector signed long long __b)6991 vec_slb(__vector unsigned long long __a, __vector signed long long __b) {
6992   return (__vector unsigned long long)__builtin_s390_vslb(
6993     (__vector unsigned char)__a, (__vector unsigned char)__b);
6994 }
6995 
6996 static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector unsigned long long __b)6997 vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {
6998   return (__vector unsigned long long)__builtin_s390_vslb(
6999     (__vector unsigned char)__a, (__vector unsigned char)__b);
7000 }
7001 
7002 #if __ARCH__ >= 12
7003 static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector signed int __b)7004 vec_slb(__vector float __a, __vector signed int __b) {
7005   return (__vector float)__builtin_s390_vslb(
7006     (__vector unsigned char)__a, (__vector unsigned char)__b);
7007 }
7008 
7009 static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector unsigned int __b)7010 vec_slb(__vector float __a, __vector unsigned int __b) {
7011   return (__vector float)__builtin_s390_vslb(
7012     (__vector unsigned char)__a, (__vector unsigned char)__b);
7013 }
7014 #endif
7015 
7016 static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector signed long long __b)7017 vec_slb(__vector double __a, __vector signed long long __b) {
7018   return (__vector double)__builtin_s390_vslb(
7019     (__vector unsigned char)__a, (__vector unsigned char)__b);
7020 }
7021 
7022 static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector unsigned long long __b)7023 vec_slb(__vector double __a, __vector unsigned long long __b) {
7024   return (__vector double)__builtin_s390_vslb(
7025     (__vector unsigned char)__a, (__vector unsigned char)__b);
7026 }
7027 
7028 /*-- vec_sld ----------------------------------------------------------------*/
7029 
7030 extern __ATTRS_o __vector signed char
7031 vec_sld(__vector signed char __a, __vector signed char __b, int __c)
7032   __constant_range(__c, 0, 15);
7033 
7034 extern __ATTRS_o __vector __bool char
7035 vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)
7036   __constant_range(__c, 0, 15);
7037 
7038 extern __ATTRS_o __vector unsigned char
7039 vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c)
7040   __constant_range(__c, 0, 15);
7041 
7042 extern __ATTRS_o __vector signed short
7043 vec_sld(__vector signed short __a, __vector signed short __b, int __c)
7044   __constant_range(__c, 0, 15);
7045 
7046 extern __ATTRS_o __vector __bool short
7047 vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)
7048   __constant_range(__c, 0, 15);
7049 
7050 extern __ATTRS_o __vector unsigned short
7051 vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c)
7052   __constant_range(__c, 0, 15);
7053 
7054 extern __ATTRS_o __vector signed int
7055 vec_sld(__vector signed int __a, __vector signed int __b, int __c)
7056   __constant_range(__c, 0, 15);
7057 
7058 extern __ATTRS_o __vector __bool int
7059 vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)
7060   __constant_range(__c, 0, 15);
7061 
7062 extern __ATTRS_o __vector unsigned int
7063 vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c)
7064   __constant_range(__c, 0, 15);
7065 
7066 extern __ATTRS_o __vector signed long long
7067 vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)
7068   __constant_range(__c, 0, 15);
7069 
7070 extern __ATTRS_o __vector __bool long long
7071 vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)
7072   __constant_range(__c, 0, 15);
7073 
7074 extern __ATTRS_o __vector unsigned long long
7075 vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,
7076         int __c)
7077   __constant_range(__c, 0, 15);
7078 
7079 #if __ARCH__ >= 12
7080 extern __ATTRS_o __vector float
7081 vec_sld(__vector float __a, __vector float __b, int __c)
7082   __constant_range(__c, 0, 15);
7083 #endif
7084 
7085 extern __ATTRS_o __vector double
7086 vec_sld(__vector double __a, __vector double __b, int __c)
7087   __constant_range(__c, 0, 15);
7088 
7089 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
7090   __builtin_s390_vsldb((__vector unsigned char)(X), \
7091                        (__vector unsigned char)(Y), (Z)))
7092 
7093 /*-- vec_sldw ---------------------------------------------------------------*/
7094 
7095 extern __ATTRS_o __vector signed char
7096 vec_sldw(__vector signed char __a, __vector signed char __b, int __c)
7097   __constant_range(__c, 0, 3);
7098 
7099 extern __ATTRS_o __vector unsigned char
7100 vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c)
7101   __constant_range(__c, 0, 3);
7102 
7103 extern __ATTRS_o __vector signed short
7104 vec_sldw(__vector signed short __a, __vector signed short __b, int __c)
7105   __constant_range(__c, 0, 3);
7106 
7107 extern __ATTRS_o __vector unsigned short
7108 vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c)
7109   __constant_range(__c, 0, 3);
7110 
7111 extern __ATTRS_o __vector signed int
7112 vec_sldw(__vector signed int __a, __vector signed int __b, int __c)
7113   __constant_range(__c, 0, 3);
7114 
7115 extern __ATTRS_o __vector unsigned int
7116 vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c)
7117   __constant_range(__c, 0, 3);
7118 
7119 extern __ATTRS_o __vector signed long long
7120 vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c)
7121   __constant_range(__c, 0, 3);
7122 
7123 extern __ATTRS_o __vector unsigned long long
7124 vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,
7125          int __c)
7126   __constant_range(__c, 0, 3);
7127 
7128 // This prototype is deprecated.
7129 extern __ATTRS_o __vector double
7130 vec_sldw(__vector double __a, __vector double __b, int __c)
7131   __constant_range(__c, 0, 3);
7132 
7133 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
7134   __builtin_s390_vsldb((__vector unsigned char)(X), \
7135                        (__vector unsigned char)(Y), (Z) * 4))
7136 
7137 /*-- vec_sldb ---------------------------------------------------------------*/
7138 
7139 #if __ARCH__ >= 13
7140 
7141 extern __ATTRS_o __vector signed char
7142 vec_sldb(__vector signed char __a, __vector signed char __b, int __c)
7143   __constant_range(__c, 0, 7);
7144 
7145 extern __ATTRS_o __vector unsigned char
7146 vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c)
7147   __constant_range(__c, 0, 7);
7148 
7149 extern __ATTRS_o __vector signed short
7150 vec_sldb(__vector signed short __a, __vector signed short __b, int __c)
7151   __constant_range(__c, 0, 7);
7152 
7153 extern __ATTRS_o __vector unsigned short
7154 vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c)
7155   __constant_range(__c, 0, 7);
7156 
7157 extern __ATTRS_o __vector signed int
7158 vec_sldb(__vector signed int __a, __vector signed int __b, int __c)
7159   __constant_range(__c, 0, 7);
7160 
7161 extern __ATTRS_o __vector unsigned int
7162 vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c)
7163   __constant_range(__c, 0, 7);
7164 
7165 extern __ATTRS_o __vector signed long long
7166 vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c)
7167   __constant_range(__c, 0, 7);
7168 
7169 extern __ATTRS_o __vector unsigned long long
7170 vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,
7171          int __c)
7172   __constant_range(__c, 0, 7);
7173 
7174 extern __ATTRS_o __vector float
7175 vec_sldb(__vector float __a, __vector float __b, int __c)
7176   __constant_range(__c, 0, 7);
7177 
7178 extern __ATTRS_o __vector double
7179 vec_sldb(__vector double __a, __vector double __b, int __c)
7180   __constant_range(__c, 0, 7);
7181 
7182 #define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
7183   __builtin_s390_vsld((__vector unsigned char)(X), \
7184                       (__vector unsigned char)(Y), (Z)))
7185 
7186 #endif
7187 
7188 /*-- vec_sral ---------------------------------------------------------------*/
7189 
7190 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned char __b)7191 vec_sral(__vector signed char __a, __vector unsigned char __b) {
7192   return (__vector signed char)__builtin_s390_vsra(
7193     (__vector unsigned char)__a, __b);
7194 }
7195 
7196 // This prototype is deprecated.
7197 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned short __b)7198 vec_sral(__vector signed char __a, __vector unsigned short __b) {
7199   return (__vector signed char)__builtin_s390_vsra(
7200     (__vector unsigned char)__a, (__vector unsigned char)__b);
7201 }
7202 
7203 // This prototype is deprecated.
7204 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned int __b)7205 vec_sral(__vector signed char __a, __vector unsigned int __b) {
7206   return (__vector signed char)__builtin_s390_vsra(
7207     (__vector unsigned char)__a, (__vector unsigned char)__b);
7208 }
7209 
7210 // This prototype is deprecated.
7211 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned char __b)7212 vec_sral(__vector __bool char __a, __vector unsigned char __b) {
7213   return (__vector __bool char)__builtin_s390_vsra(
7214     (__vector unsigned char)__a, __b);
7215 }
7216 
7217 // This prototype is deprecated.
7218 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned short __b)7219 vec_sral(__vector __bool char __a, __vector unsigned short __b) {
7220   return (__vector __bool char)__builtin_s390_vsra(
7221     (__vector unsigned char)__a, (__vector unsigned char)__b);
7222 }
7223 
7224 // This prototype is deprecated.
7225 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned int __b)7226 vec_sral(__vector __bool char __a, __vector unsigned int __b) {
7227   return (__vector __bool char)__builtin_s390_vsra(
7228     (__vector unsigned char)__a, (__vector unsigned char)__b);
7229 }
7230 
7231 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned char __b)7232 vec_sral(__vector unsigned char __a, __vector unsigned char __b) {
7233   return __builtin_s390_vsra(__a, __b);
7234 }
7235 
7236 // This prototype is deprecated.
7237 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned short __b)7238 vec_sral(__vector unsigned char __a, __vector unsigned short __b) {
7239   return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
7240 }
7241 
7242 // This prototype is deprecated.
7243 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned int __b)7244 vec_sral(__vector unsigned char __a, __vector unsigned int __b) {
7245   return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
7246 }
7247 
7248 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned char __b)7249 vec_sral(__vector signed short __a, __vector unsigned char __b) {
7250   return (__vector signed short)__builtin_s390_vsra(
7251     (__vector unsigned char)__a, __b);
7252 }
7253 
7254 // This prototype is deprecated.
7255 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned short __b)7256 vec_sral(__vector signed short __a, __vector unsigned short __b) {
7257   return (__vector signed short)__builtin_s390_vsra(
7258     (__vector unsigned char)__a, (__vector unsigned char)__b);
7259 }
7260 
7261 // This prototype is deprecated.
7262 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned int __b)7263 vec_sral(__vector signed short __a, __vector unsigned int __b) {
7264   return (__vector signed short)__builtin_s390_vsra(
7265     (__vector unsigned char)__a, (__vector unsigned char)__b);
7266 }
7267 
7268 // This prototype is deprecated.
7269 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned char __b)7270 vec_sral(__vector __bool short __a, __vector unsigned char __b) {
7271   return (__vector __bool short)__builtin_s390_vsra(
7272     (__vector unsigned char)__a, __b);
7273 }
7274 
7275 // This prototype is deprecated.
7276 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned short __b)7277 vec_sral(__vector __bool short __a, __vector unsigned short __b) {
7278   return (__vector __bool short)__builtin_s390_vsra(
7279     (__vector unsigned char)__a, (__vector unsigned char)__b);
7280 }
7281 
7282 // This prototype is deprecated.
7283 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned int __b)7284 vec_sral(__vector __bool short __a, __vector unsigned int __b) {
7285   return (__vector __bool short)__builtin_s390_vsra(
7286     (__vector unsigned char)__a, (__vector unsigned char)__b);
7287 }
7288 
7289 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned char __b)7290 vec_sral(__vector unsigned short __a, __vector unsigned char __b) {
7291   return (__vector unsigned short)__builtin_s390_vsra(
7292     (__vector unsigned char)__a, __b);
7293 }
7294 
7295 // This prototype is deprecated.
7296 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned short __b)7297 vec_sral(__vector unsigned short __a, __vector unsigned short __b) {
7298   return (__vector unsigned short)__builtin_s390_vsra(
7299     (__vector unsigned char)__a, (__vector unsigned char)__b);
7300 }
7301 
7302 // This prototype is deprecated.
7303 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned int __b)7304 vec_sral(__vector unsigned short __a, __vector unsigned int __b) {
7305   return (__vector unsigned short)__builtin_s390_vsra(
7306     (__vector unsigned char)__a, (__vector unsigned char)__b);
7307 }
7308 
7309 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned char __b)7310 vec_sral(__vector signed int __a, __vector unsigned char __b) {
7311   return (__vector signed int)__builtin_s390_vsra(
7312     (__vector unsigned char)__a, __b);
7313 }
7314 
7315 // This prototype is deprecated.
7316 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned short __b)7317 vec_sral(__vector signed int __a, __vector unsigned short __b) {
7318   return (__vector signed int)__builtin_s390_vsra(
7319     (__vector unsigned char)__a, (__vector unsigned char)__b);
7320 }
7321 
7322 // This prototype is deprecated.
7323 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned int __b)7324 vec_sral(__vector signed int __a, __vector unsigned int __b) {
7325   return (__vector signed int)__builtin_s390_vsra(
7326     (__vector unsigned char)__a, (__vector unsigned char)__b);
7327 }
7328 
7329 // This prototype is deprecated.
7330 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned char __b)7331 vec_sral(__vector __bool int __a, __vector unsigned char __b) {
7332   return (__vector __bool int)__builtin_s390_vsra(
7333     (__vector unsigned char)__a, __b);
7334 }
7335 
7336 // This prototype is deprecated.
7337 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned short __b)7338 vec_sral(__vector __bool int __a, __vector unsigned short __b) {
7339   return (__vector __bool int)__builtin_s390_vsra(
7340     (__vector unsigned char)__a, (__vector unsigned char)__b);
7341 }
7342 
7343 // This prototype is deprecated.
7344 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned int __b)7345 vec_sral(__vector __bool int __a, __vector unsigned int __b) {
7346   return (__vector __bool int)__builtin_s390_vsra(
7347     (__vector unsigned char)__a, (__vector unsigned char)__b);
7348 }
7349 
7350 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned char __b)7351 vec_sral(__vector unsigned int __a, __vector unsigned char __b) {
7352   return (__vector unsigned int)__builtin_s390_vsra(
7353     (__vector unsigned char)__a, __b);
7354 }
7355 
7356 // This prototype is deprecated.
7357 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned short __b)7358 vec_sral(__vector unsigned int __a, __vector unsigned short __b) {
7359   return (__vector unsigned int)__builtin_s390_vsra(
7360     (__vector unsigned char)__a, (__vector unsigned char)__b);
7361 }
7362 
7363 // This prototype is deprecated.
7364 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned int __b)7365 vec_sral(__vector unsigned int __a, __vector unsigned int __b) {
7366   return (__vector unsigned int)__builtin_s390_vsra(
7367     (__vector unsigned char)__a, (__vector unsigned char)__b);
7368 }
7369 
7370 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned char __b)7371 vec_sral(__vector signed long long __a, __vector unsigned char __b) {
7372   return (__vector signed long long)__builtin_s390_vsra(
7373     (__vector unsigned char)__a, __b);
7374 }
7375 
7376 // This prototype is deprecated.
7377 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned short __b)7378 vec_sral(__vector signed long long __a, __vector unsigned short __b) {
7379   return (__vector signed long long)__builtin_s390_vsra(
7380     (__vector unsigned char)__a, (__vector unsigned char)__b);
7381 }
7382 
7383 // This prototype is deprecated.
7384 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned int __b)7385 vec_sral(__vector signed long long __a, __vector unsigned int __b) {
7386   return (__vector signed long long)__builtin_s390_vsra(
7387     (__vector unsigned char)__a, (__vector unsigned char)__b);
7388 }
7389 
7390 // This prototype is deprecated.
7391 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned char __b)7392 vec_sral(__vector __bool long long __a, __vector unsigned char __b) {
7393   return (__vector __bool long long)__builtin_s390_vsra(
7394     (__vector unsigned char)__a, __b);
7395 }
7396 
7397 // This prototype is deprecated.
7398 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned short __b)7399 vec_sral(__vector __bool long long __a, __vector unsigned short __b) {
7400   return (__vector __bool long long)__builtin_s390_vsra(
7401     (__vector unsigned char)__a, (__vector unsigned char)__b);
7402 }
7403 
7404 // This prototype is deprecated.
7405 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned int __b)7406 vec_sral(__vector __bool long long __a, __vector unsigned int __b) {
7407   return (__vector __bool long long)__builtin_s390_vsra(
7408     (__vector unsigned char)__a, (__vector unsigned char)__b);
7409 }
7410 
7411 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned char __b)7412 vec_sral(__vector unsigned long long __a, __vector unsigned char __b) {
7413   return (__vector unsigned long long)__builtin_s390_vsra(
7414     (__vector unsigned char)__a, __b);
7415 }
7416 
7417 // This prototype is deprecated.
7418 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned short __b)7419 vec_sral(__vector unsigned long long __a, __vector unsigned short __b) {
7420   return (__vector unsigned long long)__builtin_s390_vsra(
7421     (__vector unsigned char)__a, (__vector unsigned char)__b);
7422 }
7423 
7424 // This prototype is deprecated.
7425 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned int __b)7426 vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {
7427   return (__vector unsigned long long)__builtin_s390_vsra(
7428     (__vector unsigned char)__a, (__vector unsigned char)__b);
7429 }
7430 
7431 /*-- vec_srab ---------------------------------------------------------------*/
7432 
7433 static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a,__vector signed char __b)7434 vec_srab(__vector signed char __a, __vector signed char __b) {
7435   return (__vector signed char)__builtin_s390_vsrab(
7436     (__vector unsigned char)__a, (__vector unsigned char)__b);
7437 }
7438 
7439 static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a,__vector unsigned char __b)7440 vec_srab(__vector signed char __a, __vector unsigned char __b) {
7441   return (__vector signed char)__builtin_s390_vsrab(
7442     (__vector unsigned char)__a, __b);
7443 }
7444 
7445 static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a,__vector signed char __b)7446 vec_srab(__vector unsigned char __a, __vector signed char __b) {
7447   return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);
7448 }
7449 
7450 static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a,__vector unsigned char __b)7451 vec_srab(__vector unsigned char __a, __vector unsigned char __b) {
7452   return __builtin_s390_vsrab(__a, __b);
7453 }
7454 
7455 static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector signed short __b)7456 vec_srab(__vector signed short __a, __vector signed short __b) {
7457   return (__vector signed short)__builtin_s390_vsrab(
7458     (__vector unsigned char)__a, (__vector unsigned char)__b);
7459 }
7460 
7461 static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector unsigned short __b)7462 vec_srab(__vector signed short __a, __vector unsigned short __b) {
7463   return (__vector signed short)__builtin_s390_vsrab(
7464     (__vector unsigned char)__a, (__vector unsigned char)__b);
7465 }
7466 
7467 static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector signed short __b)7468 vec_srab(__vector unsigned short __a, __vector signed short __b) {
7469   return (__vector unsigned short)__builtin_s390_vsrab(
7470     (__vector unsigned char)__a, (__vector unsigned char)__b);
7471 }
7472 
7473 static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector unsigned short __b)7474 vec_srab(__vector unsigned short __a, __vector unsigned short __b) {
7475   return (__vector unsigned short)__builtin_s390_vsrab(
7476     (__vector unsigned char)__a, (__vector unsigned char)__b);
7477 }
7478 
7479 static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector signed int __b)7480 vec_srab(__vector signed int __a, __vector signed int __b) {
7481   return (__vector signed int)__builtin_s390_vsrab(
7482     (__vector unsigned char)__a, (__vector unsigned char)__b);
7483 }
7484 
7485 static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector unsigned int __b)7486 vec_srab(__vector signed int __a, __vector unsigned int __b) {
7487   return (__vector signed int)__builtin_s390_vsrab(
7488     (__vector unsigned char)__a, (__vector unsigned char)__b);
7489 }
7490 
7491 static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector signed int __b)7492 vec_srab(__vector unsigned int __a, __vector signed int __b) {
7493   return (__vector unsigned int)__builtin_s390_vsrab(
7494     (__vector unsigned char)__a, (__vector unsigned char)__b);
7495 }
7496 
7497 static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector unsigned int __b)7498 vec_srab(__vector unsigned int __a, __vector unsigned int __b) {
7499   return (__vector unsigned int)__builtin_s390_vsrab(
7500     (__vector unsigned char)__a, (__vector unsigned char)__b);
7501 }
7502 
7503 static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector signed long long __b)7504 vec_srab(__vector signed long long __a, __vector signed long long __b) {
7505   return (__vector signed long long)__builtin_s390_vsrab(
7506     (__vector unsigned char)__a, (__vector unsigned char)__b);
7507 }
7508 
7509 static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector unsigned long long __b)7510 vec_srab(__vector signed long long __a, __vector unsigned long long __b) {
7511   return (__vector signed long long)__builtin_s390_vsrab(
7512     (__vector unsigned char)__a, (__vector unsigned char)__b);
7513 }
7514 
7515 static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector signed long long __b)7516 vec_srab(__vector unsigned long long __a, __vector signed long long __b) {
7517   return (__vector unsigned long long)__builtin_s390_vsrab(
7518     (__vector unsigned char)__a, (__vector unsigned char)__b);
7519 }
7520 
7521 static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector unsigned long long __b)7522 vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {
7523   return (__vector unsigned long long)__builtin_s390_vsrab(
7524     (__vector unsigned char)__a, (__vector unsigned char)__b);
7525 }
7526 
7527 #if __ARCH__ >= 12
7528 static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector signed int __b)7529 vec_srab(__vector float __a, __vector signed int __b) {
7530   return (__vector float)__builtin_s390_vsrab(
7531     (__vector unsigned char)__a, (__vector unsigned char)__b);
7532 }
7533 
7534 static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector unsigned int __b)7535 vec_srab(__vector float __a, __vector unsigned int __b) {
7536   return (__vector float)__builtin_s390_vsrab(
7537     (__vector unsigned char)__a, (__vector unsigned char)__b);
7538 }
7539 #endif
7540 
7541 static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector signed long long __b)7542 vec_srab(__vector double __a, __vector signed long long __b) {
7543   return (__vector double)__builtin_s390_vsrab(
7544     (__vector unsigned char)__a, (__vector unsigned char)__b);
7545 }
7546 
7547 static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector unsigned long long __b)7548 vec_srab(__vector double __a, __vector unsigned long long __b) {
7549   return (__vector double)__builtin_s390_vsrab(
7550     (__vector unsigned char)__a, (__vector unsigned char)__b);
7551 }
7552 
7553 /*-- vec_srl ----------------------------------------------------------------*/
7554 
7555 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned char __b)7556 vec_srl(__vector signed char __a, __vector unsigned char __b) {
7557   return (__vector signed char)__builtin_s390_vsrl(
7558     (__vector unsigned char)__a, __b);
7559 }
7560 
7561 // This prototype is deprecated.
7562 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned short __b)7563 vec_srl(__vector signed char __a, __vector unsigned short __b) {
7564   return (__vector signed char)__builtin_s390_vsrl(
7565     (__vector unsigned char)__a, (__vector unsigned char)__b);
7566 }
7567 
7568 // This prototype is deprecated.
7569 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned int __b)7570 vec_srl(__vector signed char __a, __vector unsigned int __b) {
7571   return (__vector signed char)__builtin_s390_vsrl(
7572     (__vector unsigned char)__a, (__vector unsigned char)__b);
7573 }
7574 
7575 // This prototype is deprecated.
7576 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned char __b)7577 vec_srl(__vector __bool char __a, __vector unsigned char __b) {
7578   return (__vector __bool char)__builtin_s390_vsrl(
7579     (__vector unsigned char)__a, __b);
7580 }
7581 
7582 // This prototype is deprecated.
7583 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned short __b)7584 vec_srl(__vector __bool char __a, __vector unsigned short __b) {
7585   return (__vector __bool char)__builtin_s390_vsrl(
7586     (__vector unsigned char)__a, (__vector unsigned char)__b);
7587 }
7588 
7589 // This prototype is deprecated.
7590 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned int __b)7591 vec_srl(__vector __bool char __a, __vector unsigned int __b) {
7592   return (__vector __bool char)__builtin_s390_vsrl(
7593     (__vector unsigned char)__a, (__vector unsigned char)__b);
7594 }
7595 
7596 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned char __b)7597 vec_srl(__vector unsigned char __a, __vector unsigned char __b) {
7598   return __builtin_s390_vsrl(__a, __b);
7599 }
7600 
7601 // This prototype is deprecated.
7602 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned short __b)7603 vec_srl(__vector unsigned char __a, __vector unsigned short __b) {
7604   return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
7605 }
7606 
7607 // This prototype is deprecated.
7608 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned int __b)7609 vec_srl(__vector unsigned char __a, __vector unsigned int __b) {
7610   return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
7611 }
7612 
7613 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned char __b)7614 vec_srl(__vector signed short __a, __vector unsigned char __b) {
7615   return (__vector signed short)__builtin_s390_vsrl(
7616     (__vector unsigned char)__a, __b);
7617 }
7618 
7619 // This prototype is deprecated.
7620 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned short __b)7621 vec_srl(__vector signed short __a, __vector unsigned short __b) {
7622   return (__vector signed short)__builtin_s390_vsrl(
7623     (__vector unsigned char)__a, (__vector unsigned char)__b);
7624 }
7625 
7626 // This prototype is deprecated.
7627 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned int __b)7628 vec_srl(__vector signed short __a, __vector unsigned int __b) {
7629   return (__vector signed short)__builtin_s390_vsrl(
7630     (__vector unsigned char)__a, (__vector unsigned char)__b);
7631 }
7632 
7633 // This prototype is deprecated.
7634 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned char __b)7635 vec_srl(__vector __bool short __a, __vector unsigned char __b) {
7636   return (__vector __bool short)__builtin_s390_vsrl(
7637     (__vector unsigned char)__a, __b);
7638 }
7639 
7640 // This prototype is deprecated.
7641 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned short __b)7642 vec_srl(__vector __bool short __a, __vector unsigned short __b) {
7643   return (__vector __bool short)__builtin_s390_vsrl(
7644     (__vector unsigned char)__a, (__vector unsigned char)__b);
7645 }
7646 
7647 // This prototype is deprecated.
7648 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned int __b)7649 vec_srl(__vector __bool short __a, __vector unsigned int __b) {
7650   return (__vector __bool short)__builtin_s390_vsrl(
7651     (__vector unsigned char)__a, (__vector unsigned char)__b);
7652 }
7653 
7654 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned char __b)7655 vec_srl(__vector unsigned short __a, __vector unsigned char __b) {
7656   return (__vector unsigned short)__builtin_s390_vsrl(
7657     (__vector unsigned char)__a, __b);
7658 }
7659 
7660 // This prototype is deprecated.
7661 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned short __b)7662 vec_srl(__vector unsigned short __a, __vector unsigned short __b) {
7663   return (__vector unsigned short)__builtin_s390_vsrl(
7664     (__vector unsigned char)__a, (__vector unsigned char)__b);
7665 }
7666 
7667 // This prototype is deprecated.
7668 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned int __b)7669 vec_srl(__vector unsigned short __a, __vector unsigned int __b) {
7670   return (__vector unsigned short)__builtin_s390_vsrl(
7671     (__vector unsigned char)__a, (__vector unsigned char)__b);
7672 }
7673 
7674 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned char __b)7675 vec_srl(__vector signed int __a, __vector unsigned char __b) {
7676   return (__vector signed int)__builtin_s390_vsrl(
7677     (__vector unsigned char)__a, __b);
7678 }
7679 
7680 // This prototype is deprecated.
7681 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned short __b)7682 vec_srl(__vector signed int __a, __vector unsigned short __b) {
7683   return (__vector signed int)__builtin_s390_vsrl(
7684     (__vector unsigned char)__a, (__vector unsigned char)__b);
7685 }
7686 
7687 // This prototype is deprecated.
7688 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned int __b)7689 vec_srl(__vector signed int __a, __vector unsigned int __b) {
7690   return (__vector signed int)__builtin_s390_vsrl(
7691     (__vector unsigned char)__a, (__vector unsigned char)__b);
7692 }
7693 
7694 // This prototype is deprecated.
7695 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned char __b)7696 vec_srl(__vector __bool int __a, __vector unsigned char __b) {
7697   return (__vector __bool int)__builtin_s390_vsrl(
7698     (__vector unsigned char)__a, __b);
7699 }
7700 
7701 // This prototype is deprecated.
7702 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned short __b)7703 vec_srl(__vector __bool int __a, __vector unsigned short __b) {
7704   return (__vector __bool int)__builtin_s390_vsrl(
7705     (__vector unsigned char)__a, (__vector unsigned char)__b);
7706 }
7707 
7708 // This prototype is deprecated.
7709 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned int __b)7710 vec_srl(__vector __bool int __a, __vector unsigned int __b) {
7711   return (__vector __bool int)__builtin_s390_vsrl(
7712     (__vector unsigned char)__a, (__vector unsigned char)__b);
7713 }
7714 
7715 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned char __b)7716 vec_srl(__vector unsigned int __a, __vector unsigned char __b) {
7717   return (__vector unsigned int)__builtin_s390_vsrl(
7718     (__vector unsigned char)__a, __b);
7719 }
7720 
7721 // This prototype is deprecated.
7722 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned short __b)7723 vec_srl(__vector unsigned int __a, __vector unsigned short __b) {
7724   return (__vector unsigned int)__builtin_s390_vsrl(
7725     (__vector unsigned char)__a, (__vector unsigned char)__b);
7726 }
7727 
7728 // This prototype is deprecated.
7729 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned int __b)7730 vec_srl(__vector unsigned int __a, __vector unsigned int __b) {
7731   return (__vector unsigned int)__builtin_s390_vsrl(
7732     (__vector unsigned char)__a, (__vector unsigned char)__b);
7733 }
7734 
7735 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned char __b)7736 vec_srl(__vector signed long long __a, __vector unsigned char __b) {
7737   return (__vector signed long long)__builtin_s390_vsrl(
7738     (__vector unsigned char)__a, __b);
7739 }
7740 
7741 // This prototype is deprecated.
7742 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned short __b)7743 vec_srl(__vector signed long long __a, __vector unsigned short __b) {
7744   return (__vector signed long long)__builtin_s390_vsrl(
7745     (__vector unsigned char)__a, (__vector unsigned char)__b);
7746 }
7747 
7748 // This prototype is deprecated.
7749 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned int __b)7750 vec_srl(__vector signed long long __a, __vector unsigned int __b) {
7751   return (__vector signed long long)__builtin_s390_vsrl(
7752     (__vector unsigned char)__a, (__vector unsigned char)__b);
7753 }
7754 
7755 // This prototype is deprecated.
7756 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned char __b)7757 vec_srl(__vector __bool long long __a, __vector unsigned char __b) {
7758   return (__vector __bool long long)__builtin_s390_vsrl(
7759     (__vector unsigned char)__a, __b);
7760 }
7761 
7762 // This prototype is deprecated.
7763 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned short __b)7764 vec_srl(__vector __bool long long __a, __vector unsigned short __b) {
7765   return (__vector __bool long long)__builtin_s390_vsrl(
7766     (__vector unsigned char)__a, (__vector unsigned char)__b);
7767 }
7768 
7769 // This prototype is deprecated.
7770 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned int __b)7771 vec_srl(__vector __bool long long __a, __vector unsigned int __b) {
7772   return (__vector __bool long long)__builtin_s390_vsrl(
7773     (__vector unsigned char)__a, (__vector unsigned char)__b);
7774 }
7775 
7776 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned char __b)7777 vec_srl(__vector unsigned long long __a, __vector unsigned char __b) {
7778   return (__vector unsigned long long)__builtin_s390_vsrl(
7779     (__vector unsigned char)__a, __b);
7780 }
7781 
7782 // This prototype is deprecated.
7783 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned short __b)7784 vec_srl(__vector unsigned long long __a, __vector unsigned short __b) {
7785   return (__vector unsigned long long)__builtin_s390_vsrl(
7786     (__vector unsigned char)__a, (__vector unsigned char)__b);
7787 }
7788 
7789 // This prototype is deprecated.
7790 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned int __b)7791 vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {
7792   return (__vector unsigned long long)__builtin_s390_vsrl(
7793     (__vector unsigned char)__a, (__vector unsigned char)__b);
7794 }
7795 
7796 /*-- vec_srb ----------------------------------------------------------------*/
7797 
7798 static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a,__vector signed char __b)7799 vec_srb(__vector signed char __a, __vector signed char __b) {
7800   return (__vector signed char)__builtin_s390_vsrlb(
7801     (__vector unsigned char)__a, (__vector unsigned char)__b);
7802 }
7803 
7804 static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a,__vector unsigned char __b)7805 vec_srb(__vector signed char __a, __vector unsigned char __b) {
7806   return (__vector signed char)__builtin_s390_vsrlb(
7807     (__vector unsigned char)__a, __b);
7808 }
7809 
7810 static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a,__vector signed char __b)7811 vec_srb(__vector unsigned char __a, __vector signed char __b) {
7812   return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);
7813 }
7814 
7815 static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a,__vector unsigned char __b)7816 vec_srb(__vector unsigned char __a, __vector unsigned char __b) {
7817   return __builtin_s390_vsrlb(__a, __b);
7818 }
7819 
7820 static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector signed short __b)7821 vec_srb(__vector signed short __a, __vector signed short __b) {
7822   return (__vector signed short)__builtin_s390_vsrlb(
7823     (__vector unsigned char)__a, (__vector unsigned char)__b);
7824 }
7825 
7826 static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector unsigned short __b)7827 vec_srb(__vector signed short __a, __vector unsigned short __b) {
7828   return (__vector signed short)__builtin_s390_vsrlb(
7829     (__vector unsigned char)__a, (__vector unsigned char)__b);
7830 }
7831 
7832 static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector signed short __b)7833 vec_srb(__vector unsigned short __a, __vector signed short __b) {
7834   return (__vector unsigned short)__builtin_s390_vsrlb(
7835     (__vector unsigned char)__a, (__vector unsigned char)__b);
7836 }
7837 
7838 static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector unsigned short __b)7839 vec_srb(__vector unsigned short __a, __vector unsigned short __b) {
7840   return (__vector unsigned short)__builtin_s390_vsrlb(
7841     (__vector unsigned char)__a, (__vector unsigned char)__b);
7842 }
7843 
7844 static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector signed int __b)7845 vec_srb(__vector signed int __a, __vector signed int __b) {
7846   return (__vector signed int)__builtin_s390_vsrlb(
7847     (__vector unsigned char)__a, (__vector unsigned char)__b);
7848 }
7849 
7850 static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector unsigned int __b)7851 vec_srb(__vector signed int __a, __vector unsigned int __b) {
7852   return (__vector signed int)__builtin_s390_vsrlb(
7853     (__vector unsigned char)__a, (__vector unsigned char)__b);
7854 }
7855 
7856 static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector signed int __b)7857 vec_srb(__vector unsigned int __a, __vector signed int __b) {
7858   return (__vector unsigned int)__builtin_s390_vsrlb(
7859     (__vector unsigned char)__a, (__vector unsigned char)__b);
7860 }
7861 
7862 static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector unsigned int __b)7863 vec_srb(__vector unsigned int __a, __vector unsigned int __b) {
7864   return (__vector unsigned int)__builtin_s390_vsrlb(
7865     (__vector unsigned char)__a, (__vector unsigned char)__b);
7866 }
7867 
7868 static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector signed long long __b)7869 vec_srb(__vector signed long long __a, __vector signed long long __b) {
7870   return (__vector signed long long)__builtin_s390_vsrlb(
7871     (__vector unsigned char)__a, (__vector unsigned char)__b);
7872 }
7873 
7874 static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector unsigned long long __b)7875 vec_srb(__vector signed long long __a, __vector unsigned long long __b) {
7876   return (__vector signed long long)__builtin_s390_vsrlb(
7877     (__vector unsigned char)__a, (__vector unsigned char)__b);
7878 }
7879 
7880 static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector signed long long __b)7881 vec_srb(__vector unsigned long long __a, __vector signed long long __b) {
7882   return (__vector unsigned long long)__builtin_s390_vsrlb(
7883     (__vector unsigned char)__a, (__vector unsigned char)__b);
7884 }
7885 
7886 static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector unsigned long long __b)7887 vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {
7888   return (__vector unsigned long long)__builtin_s390_vsrlb(
7889     (__vector unsigned char)__a, (__vector unsigned char)__b);
7890 }
7891 
7892 #if __ARCH__ >= 12
7893 static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector signed int __b)7894 vec_srb(__vector float __a, __vector signed int __b) {
7895   return (__vector float)__builtin_s390_vsrlb(
7896     (__vector unsigned char)__a, (__vector unsigned char)__b);
7897 }
7898 
7899 static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector unsigned int __b)7900 vec_srb(__vector float __a, __vector unsigned int __b) {
7901   return (__vector float)__builtin_s390_vsrlb(
7902     (__vector unsigned char)__a, (__vector unsigned char)__b);
7903 }
7904 #endif
7905 
7906 static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector signed long long __b)7907 vec_srb(__vector double __a, __vector signed long long __b) {
7908   return (__vector double)__builtin_s390_vsrlb(
7909     (__vector unsigned char)__a, (__vector unsigned char)__b);
7910 }
7911 
7912 static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector unsigned long long __b)7913 vec_srb(__vector double __a, __vector unsigned long long __b) {
7914   return (__vector double)__builtin_s390_vsrlb(
7915     (__vector unsigned char)__a, (__vector unsigned char)__b);
7916 }
7917 
7918 /*-- vec_srdb ---------------------------------------------------------------*/
7919 
7920 #if __ARCH__ >= 13
7921 
7922 extern __ATTRS_o __vector signed char
7923 vec_srdb(__vector signed char __a, __vector signed char __b, int __c)
7924   __constant_range(__c, 0, 7);
7925 
7926 extern __ATTRS_o __vector unsigned char
7927 vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c)
7928   __constant_range(__c, 0, 7);
7929 
7930 extern __ATTRS_o __vector signed short
7931 vec_srdb(__vector signed short __a, __vector signed short __b, int __c)
7932   __constant_range(__c, 0, 7);
7933 
7934 extern __ATTRS_o __vector unsigned short
7935 vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c)
7936   __constant_range(__c, 0, 7);
7937 
7938 extern __ATTRS_o __vector signed int
7939 vec_srdb(__vector signed int __a, __vector signed int __b, int __c)
7940   __constant_range(__c, 0, 7);
7941 
7942 extern __ATTRS_o __vector unsigned int
7943 vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c)
7944   __constant_range(__c, 0, 7);
7945 
7946 extern __ATTRS_o __vector signed long long
7947 vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c)
7948   __constant_range(__c, 0, 7);
7949 
7950 extern __ATTRS_o __vector unsigned long long
7951 vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,
7952          int __c)
7953   __constant_range(__c, 0, 7);
7954 
7955 extern __ATTRS_o __vector float
7956 vec_srdb(__vector float __a, __vector float __b, int __c)
7957   __constant_range(__c, 0, 7);
7958 
7959 extern __ATTRS_o __vector double
7960 vec_srdb(__vector double __a, __vector double __b, int __c)
7961   __constant_range(__c, 0, 7);
7962 
7963 #define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
7964   __builtin_s390_vsrd((__vector unsigned char)(X), \
7965                       (__vector unsigned char)(Y), (Z)))
7966 
7967 #endif
7968 
7969 /*-- vec_abs ----------------------------------------------------------------*/
7970 
7971 static inline __ATTRS_o_ai __vector signed char
vec_abs(__vector signed char __a)7972 vec_abs(__vector signed char __a) {
7973   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0));
7974 }
7975 
7976 static inline __ATTRS_o_ai __vector signed short
vec_abs(__vector signed short __a)7977 vec_abs(__vector signed short __a) {
7978   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0));
7979 }
7980 
7981 static inline __ATTRS_o_ai __vector signed int
vec_abs(__vector signed int __a)7982 vec_abs(__vector signed int __a) {
7983   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0));
7984 }
7985 
7986 static inline __ATTRS_o_ai __vector signed long long
vec_abs(__vector signed long long __a)7987 vec_abs(__vector signed long long __a) {
7988   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));
7989 }
7990 
7991 #if __ARCH__ >= 12
7992 static inline __ATTRS_o_ai __vector float
vec_abs(__vector float __a)7993 vec_abs(__vector float __a) {
7994   return __builtin_s390_vflpsb(__a);
7995 }
7996 #endif
7997 
7998 static inline __ATTRS_o_ai __vector double
vec_abs(__vector double __a)7999 vec_abs(__vector double __a) {
8000   return __builtin_s390_vflpdb(__a);
8001 }
8002 
8003 /*-- vec_nabs ---------------------------------------------------------------*/
8004 
8005 #if __ARCH__ >= 12
8006 static inline __ATTRS_o_ai __vector float
vec_nabs(__vector float __a)8007 vec_nabs(__vector float __a) {
8008   return __builtin_s390_vflnsb(__a);
8009 }
8010 #endif
8011 
8012 static inline __ATTRS_o_ai __vector double
vec_nabs(__vector double __a)8013 vec_nabs(__vector double __a) {
8014   return __builtin_s390_vflndb(__a);
8015 }
8016 
8017 /*-- vec_max ----------------------------------------------------------------*/
8018 
8019 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a,__vector signed char __b)8020 vec_max(__vector signed char __a, __vector signed char __b) {
8021   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8022 }
8023 
8024 // This prototype is deprecated.
8025 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a,__vector __bool char __b)8026 vec_max(__vector signed char __a, __vector __bool char __b) {
8027   __vector signed char __bc = (__vector signed char)__b;
8028   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8029 }
8030 
8031 // This prototype is deprecated.
8032 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector __bool char __a,__vector signed char __b)8033 vec_max(__vector __bool char __a, __vector signed char __b) {
8034   __vector signed char __ac = (__vector signed char)__a;
8035   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8036 }
8037 
8038 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a,__vector unsigned char __b)8039 vec_max(__vector unsigned char __a, __vector unsigned char __b) {
8040   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8041 }
8042 
8043 // This prototype is deprecated.
8044 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a,__vector __bool char __b)8045 vec_max(__vector unsigned char __a, __vector __bool char __b) {
8046   __vector unsigned char __bc = (__vector unsigned char)__b;
8047   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8048 }
8049 
8050 // This prototype is deprecated.
8051 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector __bool char __a,__vector unsigned char __b)8052 vec_max(__vector __bool char __a, __vector unsigned char __b) {
8053   __vector unsigned char __ac = (__vector unsigned char)__a;
8054   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8055 }
8056 
8057 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a,__vector signed short __b)8058 vec_max(__vector signed short __a, __vector signed short __b) {
8059   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8060 }
8061 
8062 // This prototype is deprecated.
8063 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a,__vector __bool short __b)8064 vec_max(__vector signed short __a, __vector __bool short __b) {
8065   __vector signed short __bc = (__vector signed short)__b;
8066   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8067 }
8068 
8069 // This prototype is deprecated.
8070 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector __bool short __a,__vector signed short __b)8071 vec_max(__vector __bool short __a, __vector signed short __b) {
8072   __vector signed short __ac = (__vector signed short)__a;
8073   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8074 }
8075 
8076 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a,__vector unsigned short __b)8077 vec_max(__vector unsigned short __a, __vector unsigned short __b) {
8078   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8079 }
8080 
8081 // This prototype is deprecated.
8082 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a,__vector __bool short __b)8083 vec_max(__vector unsigned short __a, __vector __bool short __b) {
8084   __vector unsigned short __bc = (__vector unsigned short)__b;
8085   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8086 }
8087 
8088 // This prototype is deprecated.
8089 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector __bool short __a,__vector unsigned short __b)8090 vec_max(__vector __bool short __a, __vector unsigned short __b) {
8091   __vector unsigned short __ac = (__vector unsigned short)__a;
8092   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8093 }
8094 
8095 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a,__vector signed int __b)8096 vec_max(__vector signed int __a, __vector signed int __b) {
8097   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8098 }
8099 
8100 // This prototype is deprecated.
8101 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a,__vector __bool int __b)8102 vec_max(__vector signed int __a, __vector __bool int __b) {
8103   __vector signed int __bc = (__vector signed int)__b;
8104   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8105 }
8106 
8107 // This prototype is deprecated.
8108 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector __bool int __a,__vector signed int __b)8109 vec_max(__vector __bool int __a, __vector signed int __b) {
8110   __vector signed int __ac = (__vector signed int)__a;
8111   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8112 }
8113 
8114 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a,__vector unsigned int __b)8115 vec_max(__vector unsigned int __a, __vector unsigned int __b) {
8116   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8117 }
8118 
8119 // This prototype is deprecated.
8120 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a,__vector __bool int __b)8121 vec_max(__vector unsigned int __a, __vector __bool int __b) {
8122   __vector unsigned int __bc = (__vector unsigned int)__b;
8123   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8124 }
8125 
8126 // This prototype is deprecated.
8127 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector __bool int __a,__vector unsigned int __b)8128 vec_max(__vector __bool int __a, __vector unsigned int __b) {
8129   __vector unsigned int __ac = (__vector unsigned int)__a;
8130   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8131 }
8132 
8133 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a,__vector signed long long __b)8134 vec_max(__vector signed long long __a, __vector signed long long __b) {
8135   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8136 }
8137 
8138 // This prototype is deprecated.
8139 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a,__vector __bool long long __b)8140 vec_max(__vector signed long long __a, __vector __bool long long __b) {
8141   __vector signed long long __bc = (__vector signed long long)__b;
8142   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8143 }
8144 
8145 // This prototype is deprecated.
8146 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector __bool long long __a,__vector signed long long __b)8147 vec_max(__vector __bool long long __a, __vector signed long long __b) {
8148   __vector signed long long __ac = (__vector signed long long)__a;
8149   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8150 }
8151 
8152 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a,__vector unsigned long long __b)8153 vec_max(__vector unsigned long long __a, __vector unsigned long long __b) {
8154   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8155 }
8156 
8157 // This prototype is deprecated.
8158 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a,__vector __bool long long __b)8159 vec_max(__vector unsigned long long __a, __vector __bool long long __b) {
8160   __vector unsigned long long __bc = (__vector unsigned long long)__b;
8161   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8162 }
8163 
8164 // This prototype is deprecated.
8165 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector __bool long long __a,__vector unsigned long long __b)8166 vec_max(__vector __bool long long __a, __vector unsigned long long __b) {
8167   __vector unsigned long long __ac = (__vector unsigned long long)__a;
8168   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8169 }
8170 
8171 #if __ARCH__ >= 12
8172 static inline __ATTRS_o_ai __vector float
vec_max(__vector float __a,__vector float __b)8173 vec_max(__vector float __a, __vector float __b) {
8174   return __builtin_s390_vfmaxsb(__a, __b, 0);
8175 }
8176 #endif
8177 
8178 static inline __ATTRS_o_ai __vector double
vec_max(__vector double __a,__vector double __b)8179 vec_max(__vector double __a, __vector double __b) {
8180 #if __ARCH__ >= 12
8181   return __builtin_s390_vfmaxdb(__a, __b, 0);
8182 #else
8183   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8184 #endif
8185 }
8186 
8187 /*-- vec_min ----------------------------------------------------------------*/
8188 
8189 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a,__vector signed char __b)8190 vec_min(__vector signed char __a, __vector signed char __b) {
8191   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8192 }
8193 
8194 // This prototype is deprecated.
8195 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a,__vector __bool char __b)8196 vec_min(__vector signed char __a, __vector __bool char __b) {
8197   __vector signed char __bc = (__vector signed char)__b;
8198   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8199 }
8200 
8201 // This prototype is deprecated.
8202 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector __bool char __a,__vector signed char __b)8203 vec_min(__vector __bool char __a, __vector signed char __b) {
8204   __vector signed char __ac = (__vector signed char)__a;
8205   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8206 }
8207 
8208 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a,__vector unsigned char __b)8209 vec_min(__vector unsigned char __a, __vector unsigned char __b) {
8210   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8211 }
8212 
8213 // This prototype is deprecated.
8214 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a,__vector __bool char __b)8215 vec_min(__vector unsigned char __a, __vector __bool char __b) {
8216   __vector unsigned char __bc = (__vector unsigned char)__b;
8217   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8218 }
8219 
8220 // This prototype is deprecated.
8221 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector __bool char __a,__vector unsigned char __b)8222 vec_min(__vector __bool char __a, __vector unsigned char __b) {
8223   __vector unsigned char __ac = (__vector unsigned char)__a;
8224   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8225 }
8226 
8227 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a,__vector signed short __b)8228 vec_min(__vector signed short __a, __vector signed short __b) {
8229   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8230 }
8231 
8232 // This prototype is deprecated.
8233 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a,__vector __bool short __b)8234 vec_min(__vector signed short __a, __vector __bool short __b) {
8235   __vector signed short __bc = (__vector signed short)__b;
8236   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8237 }
8238 
8239 // This prototype is deprecated.
8240 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector __bool short __a,__vector signed short __b)8241 vec_min(__vector __bool short __a, __vector signed short __b) {
8242   __vector signed short __ac = (__vector signed short)__a;
8243   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8244 }
8245 
8246 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a,__vector unsigned short __b)8247 vec_min(__vector unsigned short __a, __vector unsigned short __b) {
8248   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8249 }
8250 
8251 // This prototype is deprecated.
8252 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a,__vector __bool short __b)8253 vec_min(__vector unsigned short __a, __vector __bool short __b) {
8254   __vector unsigned short __bc = (__vector unsigned short)__b;
8255   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8256 }
8257 
8258 // This prototype is deprecated.
8259 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector __bool short __a,__vector unsigned short __b)8260 vec_min(__vector __bool short __a, __vector unsigned short __b) {
8261   __vector unsigned short __ac = (__vector unsigned short)__a;
8262   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8263 }
8264 
8265 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a,__vector signed int __b)8266 vec_min(__vector signed int __a, __vector signed int __b) {
8267   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8268 }
8269 
8270 // This prototype is deprecated.
8271 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a,__vector __bool int __b)8272 vec_min(__vector signed int __a, __vector __bool int __b) {
8273   __vector signed int __bc = (__vector signed int)__b;
8274   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8275 }
8276 
8277 // This prototype is deprecated.
8278 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector __bool int __a,__vector signed int __b)8279 vec_min(__vector __bool int __a, __vector signed int __b) {
8280   __vector signed int __ac = (__vector signed int)__a;
8281   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8282 }
8283 
8284 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a,__vector unsigned int __b)8285 vec_min(__vector unsigned int __a, __vector unsigned int __b) {
8286   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8287 }
8288 
8289 // This prototype is deprecated.
8290 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a,__vector __bool int __b)8291 vec_min(__vector unsigned int __a, __vector __bool int __b) {
8292   __vector unsigned int __bc = (__vector unsigned int)__b;
8293   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8294 }
8295 
8296 // This prototype is deprecated.
8297 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector __bool int __a,__vector unsigned int __b)8298 vec_min(__vector __bool int __a, __vector unsigned int __b) {
8299   __vector unsigned int __ac = (__vector unsigned int)__a;
8300   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8301 }
8302 
8303 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a,__vector signed long long __b)8304 vec_min(__vector signed long long __a, __vector signed long long __b) {
8305   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8306 }
8307 
8308 // This prototype is deprecated.
8309 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a,__vector __bool long long __b)8310 vec_min(__vector signed long long __a, __vector __bool long long __b) {
8311   __vector signed long long __bc = (__vector signed long long)__b;
8312   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8313 }
8314 
8315 // This prototype is deprecated.
8316 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector __bool long long __a,__vector signed long long __b)8317 vec_min(__vector __bool long long __a, __vector signed long long __b) {
8318   __vector signed long long __ac = (__vector signed long long)__a;
8319   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8320 }
8321 
8322 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a,__vector unsigned long long __b)8323 vec_min(__vector unsigned long long __a, __vector unsigned long long __b) {
8324   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8325 }
8326 
8327 // This prototype is deprecated.
8328 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a,__vector __bool long long __b)8329 vec_min(__vector unsigned long long __a, __vector __bool long long __b) {
8330   __vector unsigned long long __bc = (__vector unsigned long long)__b;
8331   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8332 }
8333 
8334 // This prototype is deprecated.
8335 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector __bool long long __a,__vector unsigned long long __b)8336 vec_min(__vector __bool long long __a, __vector unsigned long long __b) {
8337   __vector unsigned long long __ac = (__vector unsigned long long)__a;
8338   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8339 }
8340 
8341 #if __ARCH__ >= 12
8342 static inline __ATTRS_o_ai __vector float
vec_min(__vector float __a,__vector float __b)8343 vec_min(__vector float __a, __vector float __b) {
8344   return __builtin_s390_vfminsb(__a, __b, 0);
8345 }
8346 #endif
8347 
8348 static inline __ATTRS_o_ai __vector double
vec_min(__vector double __a,__vector double __b)8349 vec_min(__vector double __a, __vector double __b) {
8350 #if __ARCH__ >= 12
8351   return __builtin_s390_vfmindb(__a, __b, 0);
8352 #else
8353   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8354 #endif
8355 }
8356 
8357 /*-- vec_add_u128 -----------------------------------------------------------*/
8358 
8359 static inline __ATTRS_ai __vector unsigned char
vec_add_u128(__vector unsigned char __a,__vector unsigned char __b)8360 vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {
8361   return __builtin_s390_vaq(__a, __b);
8362 }
8363 
8364 /*-- vec_addc ---------------------------------------------------------------*/
8365 
8366 static inline __ATTRS_o_ai __vector unsigned char
vec_addc(__vector unsigned char __a,__vector unsigned char __b)8367 vec_addc(__vector unsigned char __a, __vector unsigned char __b) {
8368   return __builtin_s390_vaccb(__a, __b);
8369 }
8370 
8371 static inline __ATTRS_o_ai __vector unsigned short
vec_addc(__vector unsigned short __a,__vector unsigned short __b)8372 vec_addc(__vector unsigned short __a, __vector unsigned short __b) {
8373   return __builtin_s390_vacch(__a, __b);
8374 }
8375 
8376 static inline __ATTRS_o_ai __vector unsigned int
vec_addc(__vector unsigned int __a,__vector unsigned int __b)8377 vec_addc(__vector unsigned int __a, __vector unsigned int __b) {
8378   return __builtin_s390_vaccf(__a, __b);
8379 }
8380 
8381 static inline __ATTRS_o_ai __vector unsigned long long
vec_addc(__vector unsigned long long __a,__vector unsigned long long __b)8382 vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {
8383   return __builtin_s390_vaccg(__a, __b);
8384 }
8385 
8386 /*-- vec_addc_u128 ----------------------------------------------------------*/
8387 
8388 static inline __ATTRS_ai __vector unsigned char
vec_addc_u128(__vector unsigned char __a,__vector unsigned char __b)8389 vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {
8390   return __builtin_s390_vaccq(__a, __b);
8391 }
8392 
8393 /*-- vec_adde_u128 ----------------------------------------------------------*/
8394 
8395 static inline __ATTRS_ai __vector unsigned char
vec_adde_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8396 vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,
8397               __vector unsigned char __c) {
8398   return __builtin_s390_vacq(__a, __b, __c);
8399 }
8400 
8401 /*-- vec_addec_u128 ---------------------------------------------------------*/
8402 
8403 static inline __ATTRS_ai __vector unsigned char
vec_addec_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8404 vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,
8405                __vector unsigned char __c) {
8406   return __builtin_s390_vacccq(__a, __b, __c);
8407 }
8408 
8409 /*-- vec_avg ----------------------------------------------------------------*/
8410 
8411 static inline __ATTRS_o_ai __vector signed char
vec_avg(__vector signed char __a,__vector signed char __b)8412 vec_avg(__vector signed char __a, __vector signed char __b) {
8413   return __builtin_s390_vavgb(__a, __b);
8414 }
8415 
8416 static inline __ATTRS_o_ai __vector signed short
vec_avg(__vector signed short __a,__vector signed short __b)8417 vec_avg(__vector signed short __a, __vector signed short __b) {
8418   return __builtin_s390_vavgh(__a, __b);
8419 }
8420 
8421 static inline __ATTRS_o_ai __vector signed int
vec_avg(__vector signed int __a,__vector signed int __b)8422 vec_avg(__vector signed int __a, __vector signed int __b) {
8423   return __builtin_s390_vavgf(__a, __b);
8424 }
8425 
8426 static inline __ATTRS_o_ai __vector signed long long
vec_avg(__vector signed long long __a,__vector signed long long __b)8427 vec_avg(__vector signed long long __a, __vector signed long long __b) {
8428   return __builtin_s390_vavgg(__a, __b);
8429 }
8430 
8431 static inline __ATTRS_o_ai __vector unsigned char
vec_avg(__vector unsigned char __a,__vector unsigned char __b)8432 vec_avg(__vector unsigned char __a, __vector unsigned char __b) {
8433   return __builtin_s390_vavglb(__a, __b);
8434 }
8435 
8436 static inline __ATTRS_o_ai __vector unsigned short
vec_avg(__vector unsigned short __a,__vector unsigned short __b)8437 vec_avg(__vector unsigned short __a, __vector unsigned short __b) {
8438   return __builtin_s390_vavglh(__a, __b);
8439 }
8440 
8441 static inline __ATTRS_o_ai __vector unsigned int
vec_avg(__vector unsigned int __a,__vector unsigned int __b)8442 vec_avg(__vector unsigned int __a, __vector unsigned int __b) {
8443   return __builtin_s390_vavglf(__a, __b);
8444 }
8445 
8446 static inline __ATTRS_o_ai __vector unsigned long long
vec_avg(__vector unsigned long long __a,__vector unsigned long long __b)8447 vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {
8448   return __builtin_s390_vavglg(__a, __b);
8449 }
8450 
8451 /*-- vec_checksum -----------------------------------------------------------*/
8452 
8453 static inline __ATTRS_ai __vector unsigned int
vec_checksum(__vector unsigned int __a,__vector unsigned int __b)8454 vec_checksum(__vector unsigned int __a, __vector unsigned int __b) {
8455   return __builtin_s390_vcksm(__a, __b);
8456 }
8457 
8458 /*-- vec_gfmsum -------------------------------------------------------------*/
8459 
8460 static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum(__vector unsigned char __a,__vector unsigned char __b)8461 vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) {
8462   return __builtin_s390_vgfmb(__a, __b);
8463 }
8464 
8465 static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum(__vector unsigned short __a,__vector unsigned short __b)8466 vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) {
8467   return __builtin_s390_vgfmh(__a, __b);
8468 }
8469 
8470 static inline __ATTRS_o_ai __vector unsigned long long
vec_gfmsum(__vector unsigned int __a,__vector unsigned int __b)8471 vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {
8472   return __builtin_s390_vgfmf(__a, __b);
8473 }
8474 
8475 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
8476 
8477 static inline __ATTRS_o_ai __vector unsigned char
vec_gfmsum_128(__vector unsigned long long __a,__vector unsigned long long __b)8478 vec_gfmsum_128(__vector unsigned long long __a,
8479                __vector unsigned long long __b) {
8480   return __builtin_s390_vgfmg(__a, __b);
8481 }
8482 
8483 /*-- vec_gfmsum_accum -------------------------------------------------------*/
8484 
8485 static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum_accum(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)8486 vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b,
8487                  __vector unsigned short __c) {
8488   return __builtin_s390_vgfmab(__a, __b, __c);
8489 }
8490 
8491 static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum_accum(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)8492 vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b,
8493                  __vector unsigned int __c) {
8494   return __builtin_s390_vgfmah(__a, __b, __c);
8495 }
8496 
8497 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)8498 vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,
8499                  __vector unsigned long long __c) {
8500   return __builtin_s390_vgfmaf(__a, __b, __c);
8501 }
8502 
8503 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
8504 
8505 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)8506 vec_gfmsum_accum_128(__vector unsigned long long __a,
8507                      __vector unsigned long long __b,
8508                      __vector unsigned char __c) {
8509   return __builtin_s390_vgfmag(__a, __b, __c);
8510 }
8511 
8512 /*-- vec_mladd --------------------------------------------------------------*/
8513 
8514 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector signed char __a,__vector signed char __b,__vector signed char __c)8515 vec_mladd(__vector signed char __a, __vector signed char __b,
8516           __vector signed char __c) {
8517   return __a * __b + __c;
8518 }
8519 
8520 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector unsigned char __a,__vector signed char __b,__vector signed char __c)8521 vec_mladd(__vector unsigned char __a, __vector signed char __b,
8522           __vector signed char __c) {
8523   return (__vector signed char)__a * __b + __c;
8524 }
8525 
8526 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector signed char __a,__vector unsigned char __b,__vector unsigned char __c)8527 vec_mladd(__vector signed char __a, __vector unsigned char __b,
8528           __vector unsigned char __c) {
8529   return __a * (__vector signed char)__b + (__vector signed char)__c;
8530 }
8531 
8532 static inline __ATTRS_o_ai __vector unsigned char
vec_mladd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8533 vec_mladd(__vector unsigned char __a, __vector unsigned char __b,
8534           __vector unsigned char __c) {
8535   return __a * __b + __c;
8536 }
8537 
8538 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector signed short __a,__vector signed short __b,__vector signed short __c)8539 vec_mladd(__vector signed short __a, __vector signed short __b,
8540           __vector signed short __c) {
8541   return __a * __b + __c;
8542 }
8543 
8544 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector unsigned short __a,__vector signed short __b,__vector signed short __c)8545 vec_mladd(__vector unsigned short __a, __vector signed short __b,
8546           __vector signed short __c) {
8547   return (__vector signed short)__a * __b + __c;
8548 }
8549 
8550 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector signed short __a,__vector unsigned short __b,__vector unsigned short __c)8551 vec_mladd(__vector signed short __a, __vector unsigned short __b,
8552           __vector unsigned short __c) {
8553   return __a * (__vector signed short)__b + (__vector signed short)__c;
8554 }
8555 
8556 static inline __ATTRS_o_ai __vector unsigned short
vec_mladd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)8557 vec_mladd(__vector unsigned short __a, __vector unsigned short __b,
8558           __vector unsigned short __c) {
8559   return __a * __b + __c;
8560 }
8561 
8562 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector signed int __a,__vector signed int __b,__vector signed int __c)8563 vec_mladd(__vector signed int __a, __vector signed int __b,
8564           __vector signed int __c) {
8565   return __a * __b + __c;
8566 }
8567 
8568 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector unsigned int __a,__vector signed int __b,__vector signed int __c)8569 vec_mladd(__vector unsigned int __a, __vector signed int __b,
8570           __vector signed int __c) {
8571   return (__vector signed int)__a * __b + __c;
8572 }
8573 
8574 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector signed int __a,__vector unsigned int __b,__vector unsigned int __c)8575 vec_mladd(__vector signed int __a, __vector unsigned int __b,
8576           __vector unsigned int __c) {
8577   return __a * (__vector signed int)__b + (__vector signed int)__c;
8578 }
8579 
8580 static inline __ATTRS_o_ai __vector unsigned int
vec_mladd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)8581 vec_mladd(__vector unsigned int __a, __vector unsigned int __b,
8582           __vector unsigned int __c) {
8583   return __a * __b + __c;
8584 }
8585 
8586 /*-- vec_mhadd --------------------------------------------------------------*/
8587 
8588 static inline __ATTRS_o_ai __vector signed char
vec_mhadd(__vector signed char __a,__vector signed char __b,__vector signed char __c)8589 vec_mhadd(__vector signed char __a, __vector signed char __b,
8590           __vector signed char __c) {
8591   return __builtin_s390_vmahb(__a, __b, __c);
8592 }
8593 
8594 static inline __ATTRS_o_ai __vector unsigned char
vec_mhadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8595 vec_mhadd(__vector unsigned char __a, __vector unsigned char __b,
8596           __vector unsigned char __c) {
8597   return __builtin_s390_vmalhb(__a, __b, __c);
8598 }
8599 
8600 static inline __ATTRS_o_ai __vector signed short
vec_mhadd(__vector signed short __a,__vector signed short __b,__vector signed short __c)8601 vec_mhadd(__vector signed short __a, __vector signed short __b,
8602           __vector signed short __c) {
8603   return __builtin_s390_vmahh(__a, __b, __c);
8604 }
8605 
8606 static inline __ATTRS_o_ai __vector unsigned short
vec_mhadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)8607 vec_mhadd(__vector unsigned short __a, __vector unsigned short __b,
8608           __vector unsigned short __c) {
8609   return __builtin_s390_vmalhh(__a, __b, __c);
8610 }
8611 
8612 static inline __ATTRS_o_ai __vector signed int
vec_mhadd(__vector signed int __a,__vector signed int __b,__vector signed int __c)8613 vec_mhadd(__vector signed int __a, __vector signed int __b,
8614           __vector signed int __c) {
8615   return __builtin_s390_vmahf(__a, __b, __c);
8616 }
8617 
8618 static inline __ATTRS_o_ai __vector unsigned int
vec_mhadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)8619 vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,
8620           __vector unsigned int __c) {
8621   return __builtin_s390_vmalhf(__a, __b, __c);
8622 }
8623 
8624 /*-- vec_meadd --------------------------------------------------------------*/
8625 
8626 static inline __ATTRS_o_ai __vector signed short
vec_meadd(__vector signed char __a,__vector signed char __b,__vector signed short __c)8627 vec_meadd(__vector signed char __a, __vector signed char __b,
8628           __vector signed short __c) {
8629   return __builtin_s390_vmaeb(__a, __b, __c);
8630 }
8631 
8632 static inline __ATTRS_o_ai __vector unsigned short
vec_meadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)8633 vec_meadd(__vector unsigned char __a, __vector unsigned char __b,
8634           __vector unsigned short __c) {
8635   return __builtin_s390_vmaleb(__a, __b, __c);
8636 }
8637 
8638 static inline __ATTRS_o_ai __vector signed int
vec_meadd(__vector signed short __a,__vector signed short __b,__vector signed int __c)8639 vec_meadd(__vector signed short __a, __vector signed short __b,
8640           __vector signed int __c) {
8641   return __builtin_s390_vmaeh(__a, __b, __c);
8642 }
8643 
8644 static inline __ATTRS_o_ai __vector unsigned int
vec_meadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)8645 vec_meadd(__vector unsigned short __a, __vector unsigned short __b,
8646           __vector unsigned int __c) {
8647   return __builtin_s390_vmaleh(__a, __b, __c);
8648 }
8649 
8650 static inline __ATTRS_o_ai __vector signed long long
vec_meadd(__vector signed int __a,__vector signed int __b,__vector signed long long __c)8651 vec_meadd(__vector signed int __a, __vector signed int __b,
8652           __vector signed long long __c) {
8653   return __builtin_s390_vmaef(__a, __b, __c);
8654 }
8655 
8656 static inline __ATTRS_o_ai __vector unsigned long long
vec_meadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned long long __c)8657 vec_meadd(__vector unsigned int __a, __vector unsigned int __b,
8658           __vector unsigned long long __c) {
8659   return __builtin_s390_vmalef(__a, __b, __c);
8660 }
8661 
8662 /*-- vec_moadd --------------------------------------------------------------*/
8663 
8664 static inline __ATTRS_o_ai __vector signed short
vec_moadd(__vector signed char __a,__vector signed char __b,__vector signed short __c)8665 vec_moadd(__vector signed char __a, __vector signed char __b,
8666           __vector signed short __c) {
8667   return __builtin_s390_vmaob(__a, __b, __c);
8668 }
8669 
8670 static inline __ATTRS_o_ai __vector unsigned short
vec_moadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)8671 vec_moadd(__vector unsigned char __a, __vector unsigned char __b,
8672           __vector unsigned short __c) {
8673   return __builtin_s390_vmalob(__a, __b, __c);
8674 }
8675 
8676 static inline __ATTRS_o_ai __vector signed int
vec_moadd(__vector signed short __a,__vector signed short __b,__vector signed int __c)8677 vec_moadd(__vector signed short __a, __vector signed short __b,
8678           __vector signed int __c) {
8679   return __builtin_s390_vmaoh(__a, __b, __c);
8680 }
8681 
8682 static inline __ATTRS_o_ai __vector unsigned int
vec_moadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)8683 vec_moadd(__vector unsigned short __a, __vector unsigned short __b,
8684           __vector unsigned int __c) {
8685   return __builtin_s390_vmaloh(__a, __b, __c);
8686 }
8687 
8688 static inline __ATTRS_o_ai __vector signed long long
vec_moadd(__vector signed int __a,__vector signed int __b,__vector signed long long __c)8689 vec_moadd(__vector signed int __a, __vector signed int __b,
8690           __vector signed long long __c) {
8691   return __builtin_s390_vmaof(__a, __b, __c);
8692 }
8693 
8694 static inline __ATTRS_o_ai __vector unsigned long long
vec_moadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned long long __c)8695 vec_moadd(__vector unsigned int __a, __vector unsigned int __b,
8696           __vector unsigned long long __c) {
8697   return __builtin_s390_vmalof(__a, __b, __c);
8698 }
8699 
8700 /*-- vec_mulh ---------------------------------------------------------------*/
8701 
8702 static inline __ATTRS_o_ai __vector signed char
vec_mulh(__vector signed char __a,__vector signed char __b)8703 vec_mulh(__vector signed char __a, __vector signed char __b) {
8704   return __builtin_s390_vmhb(__a, __b);
8705 }
8706 
8707 static inline __ATTRS_o_ai __vector unsigned char
vec_mulh(__vector unsigned char __a,__vector unsigned char __b)8708 vec_mulh(__vector unsigned char __a, __vector unsigned char __b) {
8709   return __builtin_s390_vmlhb(__a, __b);
8710 }
8711 
8712 static inline __ATTRS_o_ai __vector signed short
vec_mulh(__vector signed short __a,__vector signed short __b)8713 vec_mulh(__vector signed short __a, __vector signed short __b) {
8714   return __builtin_s390_vmhh(__a, __b);
8715 }
8716 
8717 static inline __ATTRS_o_ai __vector unsigned short
vec_mulh(__vector unsigned short __a,__vector unsigned short __b)8718 vec_mulh(__vector unsigned short __a, __vector unsigned short __b) {
8719   return __builtin_s390_vmlhh(__a, __b);
8720 }
8721 
8722 static inline __ATTRS_o_ai __vector signed int
vec_mulh(__vector signed int __a,__vector signed int __b)8723 vec_mulh(__vector signed int __a, __vector signed int __b) {
8724   return __builtin_s390_vmhf(__a, __b);
8725 }
8726 
8727 static inline __ATTRS_o_ai __vector unsigned int
vec_mulh(__vector unsigned int __a,__vector unsigned int __b)8728 vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {
8729   return __builtin_s390_vmlhf(__a, __b);
8730 }
8731 
8732 /*-- vec_mule ---------------------------------------------------------------*/
8733 
8734 static inline __ATTRS_o_ai __vector signed short
vec_mule(__vector signed char __a,__vector signed char __b)8735 vec_mule(__vector signed char __a, __vector signed char __b) {
8736   return __builtin_s390_vmeb(__a, __b);
8737 }
8738 
8739 static inline __ATTRS_o_ai __vector unsigned short
vec_mule(__vector unsigned char __a,__vector unsigned char __b)8740 vec_mule(__vector unsigned char __a, __vector unsigned char __b) {
8741   return __builtin_s390_vmleb(__a, __b);
8742 }
8743 
8744 static inline __ATTRS_o_ai __vector signed int
vec_mule(__vector signed short __a,__vector signed short __b)8745 vec_mule(__vector signed short __a, __vector signed short __b) {
8746   return __builtin_s390_vmeh(__a, __b);
8747 }
8748 
8749 static inline __ATTRS_o_ai __vector unsigned int
vec_mule(__vector unsigned short __a,__vector unsigned short __b)8750 vec_mule(__vector unsigned short __a, __vector unsigned short __b) {
8751   return __builtin_s390_vmleh(__a, __b);
8752 }
8753 
8754 static inline __ATTRS_o_ai __vector signed long long
vec_mule(__vector signed int __a,__vector signed int __b)8755 vec_mule(__vector signed int __a, __vector signed int __b) {
8756   return __builtin_s390_vmef(__a, __b);
8757 }
8758 
8759 static inline __ATTRS_o_ai __vector unsigned long long
vec_mule(__vector unsigned int __a,__vector unsigned int __b)8760 vec_mule(__vector unsigned int __a, __vector unsigned int __b) {
8761   return __builtin_s390_vmlef(__a, __b);
8762 }
8763 
8764 /*-- vec_mulo ---------------------------------------------------------------*/
8765 
8766 static inline __ATTRS_o_ai __vector signed short
vec_mulo(__vector signed char __a,__vector signed char __b)8767 vec_mulo(__vector signed char __a, __vector signed char __b) {
8768   return __builtin_s390_vmob(__a, __b);
8769 }
8770 
8771 static inline __ATTRS_o_ai __vector unsigned short
vec_mulo(__vector unsigned char __a,__vector unsigned char __b)8772 vec_mulo(__vector unsigned char __a, __vector unsigned char __b) {
8773   return __builtin_s390_vmlob(__a, __b);
8774 }
8775 
8776 static inline __ATTRS_o_ai __vector signed int
vec_mulo(__vector signed short __a,__vector signed short __b)8777 vec_mulo(__vector signed short __a, __vector signed short __b) {
8778   return __builtin_s390_vmoh(__a, __b);
8779 }
8780 
8781 static inline __ATTRS_o_ai __vector unsigned int
vec_mulo(__vector unsigned short __a,__vector unsigned short __b)8782 vec_mulo(__vector unsigned short __a, __vector unsigned short __b) {
8783   return __builtin_s390_vmloh(__a, __b);
8784 }
8785 
8786 static inline __ATTRS_o_ai __vector signed long long
vec_mulo(__vector signed int __a,__vector signed int __b)8787 vec_mulo(__vector signed int __a, __vector signed int __b) {
8788   return __builtin_s390_vmof(__a, __b);
8789 }
8790 
8791 static inline __ATTRS_o_ai __vector unsigned long long
vec_mulo(__vector unsigned int __a,__vector unsigned int __b)8792 vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {
8793   return __builtin_s390_vmlof(__a, __b);
8794 }
8795 
8796 /*-- vec_msum_u128 ----------------------------------------------------------*/
8797 
8798 #if __ARCH__ >= 12
8799 #define vec_msum_u128(X, Y, Z, W) \
8800   ((__vector unsigned char)__builtin_s390_vmslg((X), (Y), (Z), (W)));
8801 #endif
8802 
8803 /*-- vec_sub_u128 -----------------------------------------------------------*/
8804 
8805 static inline __ATTRS_ai __vector unsigned char
vec_sub_u128(__vector unsigned char __a,__vector unsigned char __b)8806 vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {
8807   return __builtin_s390_vsq(__a, __b);
8808 }
8809 
8810 /*-- vec_subc ---------------------------------------------------------------*/
8811 
8812 static inline __ATTRS_o_ai __vector unsigned char
vec_subc(__vector unsigned char __a,__vector unsigned char __b)8813 vec_subc(__vector unsigned char __a, __vector unsigned char __b) {
8814   return __builtin_s390_vscbib(__a, __b);
8815 }
8816 
8817 static inline __ATTRS_o_ai __vector unsigned short
vec_subc(__vector unsigned short __a,__vector unsigned short __b)8818 vec_subc(__vector unsigned short __a, __vector unsigned short __b) {
8819   return __builtin_s390_vscbih(__a, __b);
8820 }
8821 
8822 static inline __ATTRS_o_ai __vector unsigned int
vec_subc(__vector unsigned int __a,__vector unsigned int __b)8823 vec_subc(__vector unsigned int __a, __vector unsigned int __b) {
8824   return __builtin_s390_vscbif(__a, __b);
8825 }
8826 
8827 static inline __ATTRS_o_ai __vector unsigned long long
vec_subc(__vector unsigned long long __a,__vector unsigned long long __b)8828 vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {
8829   return __builtin_s390_vscbig(__a, __b);
8830 }
8831 
8832 /*-- vec_subc_u128 ----------------------------------------------------------*/
8833 
8834 static inline __ATTRS_ai __vector unsigned char
vec_subc_u128(__vector unsigned char __a,__vector unsigned char __b)8835 vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {
8836   return __builtin_s390_vscbiq(__a, __b);
8837 }
8838 
8839 /*-- vec_sube_u128 ----------------------------------------------------------*/
8840 
8841 static inline __ATTRS_ai __vector unsigned char
vec_sube_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8842 vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,
8843               __vector unsigned char __c) {
8844   return __builtin_s390_vsbiq(__a, __b, __c);
8845 }
8846 
8847 /*-- vec_subec_u128 ---------------------------------------------------------*/
8848 
8849 static inline __ATTRS_ai __vector unsigned char
vec_subec_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8850 vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,
8851                __vector unsigned char __c) {
8852   return __builtin_s390_vsbcbiq(__a, __b, __c);
8853 }
8854 
8855 /*-- vec_sum2 ---------------------------------------------------------------*/
8856 
8857 static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned short __a,__vector unsigned short __b)8858 vec_sum2(__vector unsigned short __a, __vector unsigned short __b) {
8859   return __builtin_s390_vsumgh(__a, __b);
8860 }
8861 
8862 static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned int __a,__vector unsigned int __b)8863 vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {
8864   return __builtin_s390_vsumgf(__a, __b);
8865 }
8866 
8867 /*-- vec_sum_u128 -----------------------------------------------------------*/
8868 
8869 static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned int __a,__vector unsigned int __b)8870 vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {
8871   return __builtin_s390_vsumqf(__a, __b);
8872 }
8873 
8874 static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned long long __a,__vector unsigned long long __b)8875 vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {
8876   return __builtin_s390_vsumqg(__a, __b);
8877 }
8878 
8879 /*-- vec_sum4 ---------------------------------------------------------------*/
8880 
8881 static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned char __a,__vector unsigned char __b)8882 vec_sum4(__vector unsigned char __a, __vector unsigned char __b) {
8883   return __builtin_s390_vsumb(__a, __b);
8884 }
8885 
8886 static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned short __a,__vector unsigned short __b)8887 vec_sum4(__vector unsigned short __a, __vector unsigned short __b) {
8888   return __builtin_s390_vsumh(__a, __b);
8889 }
8890 
8891 /*-- vec_test_mask ----------------------------------------------------------*/
8892 
8893 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed char __a,__vector unsigned char __b)8894 vec_test_mask(__vector signed char __a, __vector unsigned char __b) {
8895   return __builtin_s390_vtm((__vector unsigned char)__a,
8896                             (__vector unsigned char)__b);
8897 }
8898 
8899 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned char __a,__vector unsigned char __b)8900 vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) {
8901   return __builtin_s390_vtm(__a, __b);
8902 }
8903 
8904 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed short __a,__vector unsigned short __b)8905 vec_test_mask(__vector signed short __a, __vector unsigned short __b) {
8906   return __builtin_s390_vtm((__vector unsigned char)__a,
8907                             (__vector unsigned char)__b);
8908 }
8909 
8910 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned short __a,__vector unsigned short __b)8911 vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) {
8912   return __builtin_s390_vtm((__vector unsigned char)__a,
8913                             (__vector unsigned char)__b);
8914 }
8915 
8916 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed int __a,__vector unsigned int __b)8917 vec_test_mask(__vector signed int __a, __vector unsigned int __b) {
8918   return __builtin_s390_vtm((__vector unsigned char)__a,
8919                             (__vector unsigned char)__b);
8920 }
8921 
8922 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned int __a,__vector unsigned int __b)8923 vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) {
8924   return __builtin_s390_vtm((__vector unsigned char)__a,
8925                             (__vector unsigned char)__b);
8926 }
8927 
8928 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed long long __a,__vector unsigned long long __b)8929 vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) {
8930   return __builtin_s390_vtm((__vector unsigned char)__a,
8931                             (__vector unsigned char)__b);
8932 }
8933 
8934 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned long long __a,__vector unsigned long long __b)8935 vec_test_mask(__vector unsigned long long __a,
8936               __vector unsigned long long __b) {
8937   return __builtin_s390_vtm((__vector unsigned char)__a,
8938                             (__vector unsigned char)__b);
8939 }
8940 
8941 #if __ARCH__ >= 12
8942 static inline __ATTRS_o_ai int
vec_test_mask(__vector float __a,__vector unsigned int __b)8943 vec_test_mask(__vector float __a, __vector unsigned int __b) {
8944   return __builtin_s390_vtm((__vector unsigned char)__a,
8945                             (__vector unsigned char)__b);
8946 }
8947 #endif
8948 
8949 static inline __ATTRS_o_ai int
vec_test_mask(__vector double __a,__vector unsigned long long __b)8950 vec_test_mask(__vector double __a, __vector unsigned long long __b) {
8951   return __builtin_s390_vtm((__vector unsigned char)__a,
8952                             (__vector unsigned char)__b);
8953 }
8954 
8955 /*-- vec_madd ---------------------------------------------------------------*/
8956 
8957 #if __ARCH__ >= 12
8958 static inline __ATTRS_o_ai __vector float
vec_madd(__vector float __a,__vector float __b,__vector float __c)8959 vec_madd(__vector float __a, __vector float __b, __vector float __c) {
8960   return __builtin_s390_vfmasb(__a, __b, __c);
8961 }
8962 #endif
8963 
8964 static inline __ATTRS_o_ai __vector double
vec_madd(__vector double __a,__vector double __b,__vector double __c)8965 vec_madd(__vector double __a, __vector double __b, __vector double __c) {
8966   return __builtin_s390_vfmadb(__a, __b, __c);
8967 }
8968 
8969 /*-- vec_msub ---------------------------------------------------------------*/
8970 
8971 #if __ARCH__ >= 12
8972 static inline __ATTRS_o_ai __vector float
vec_msub(__vector float __a,__vector float __b,__vector float __c)8973 vec_msub(__vector float __a, __vector float __b, __vector float __c) {
8974   return __builtin_s390_vfmssb(__a, __b, __c);
8975 }
8976 #endif
8977 
8978 static inline __ATTRS_o_ai __vector double
vec_msub(__vector double __a,__vector double __b,__vector double __c)8979 vec_msub(__vector double __a, __vector double __b, __vector double __c) {
8980   return __builtin_s390_vfmsdb(__a, __b, __c);
8981 }
8982 
8983 /*-- vec_nmadd ---------------------------------------------------------------*/
8984 
8985 #if __ARCH__ >= 12
8986 static inline __ATTRS_o_ai __vector float
vec_nmadd(__vector float __a,__vector float __b,__vector float __c)8987 vec_nmadd(__vector float __a, __vector float __b, __vector float __c) {
8988   return __builtin_s390_vfnmasb(__a, __b, __c);
8989 }
8990 
8991 static inline __ATTRS_o_ai __vector double
vec_nmadd(__vector double __a,__vector double __b,__vector double __c)8992 vec_nmadd(__vector double __a, __vector double __b, __vector double __c) {
8993   return __builtin_s390_vfnmadb(__a, __b, __c);
8994 }
8995 #endif
8996 
8997 /*-- vec_nmsub ---------------------------------------------------------------*/
8998 
8999 #if __ARCH__ >= 12
9000 static inline __ATTRS_o_ai __vector float
vec_nmsub(__vector float __a,__vector float __b,__vector float __c)9001 vec_nmsub(__vector float __a, __vector float __b, __vector float __c) {
9002   return __builtin_s390_vfnmssb(__a, __b, __c);
9003 }
9004 
9005 static inline __ATTRS_o_ai __vector double
vec_nmsub(__vector double __a,__vector double __b,__vector double __c)9006 vec_nmsub(__vector double __a, __vector double __b, __vector double __c) {
9007   return __builtin_s390_vfnmsdb(__a, __b, __c);
9008 }
9009 #endif
9010 
9011 /*-- vec_sqrt ---------------------------------------------------------------*/
9012 
9013 #if __ARCH__ >= 12
9014 static inline __ATTRS_o_ai __vector float
vec_sqrt(__vector float __a)9015 vec_sqrt(__vector float __a) {
9016   return __builtin_s390_vfsqsb(__a);
9017 }
9018 #endif
9019 
9020 static inline __ATTRS_o_ai __vector double
vec_sqrt(__vector double __a)9021 vec_sqrt(__vector double __a) {
9022   return __builtin_s390_vfsqdb(__a);
9023 }
9024 
9025 /*-- vec_ld2f ---------------------------------------------------------------*/
9026 
9027 // This prototype is deprecated.
9028 static inline __ATTRS_ai __vector double
vec_ld2f(const float * __ptr)9029 vec_ld2f(const float *__ptr) {
9030   typedef float __v2f32 __attribute__((__vector_size__(8)));
9031   return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double);
9032 }
9033 
9034 /*-- vec_st2f ---------------------------------------------------------------*/
9035 
9036 // This prototype is deprecated.
9037 static inline __ATTRS_ai void
vec_st2f(__vector double __a,float * __ptr)9038 vec_st2f(__vector double __a, float *__ptr) {
9039   typedef float __v2f32 __attribute__((__vector_size__(8)));
9040   *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
9041 }
9042 
9043 /*-- vec_ctd ----------------------------------------------------------------*/
9044 
9045 // This prototype is deprecated.
9046 static inline __ATTRS_o_ai __vector double
vec_ctd(__vector signed long long __a,int __b)9047 vec_ctd(__vector signed long long __a, int __b)
9048   __constant_range(__b, 0, 31) {
9049   __vector double __conv = __builtin_convertvector(__a, __vector double);
9050   __conv *= ((__vector double)(__vector unsigned long long)
9051              ((0x3ffULL - __b) << 52));
9052   return __conv;
9053 }
9054 
9055 // This prototype is deprecated.
9056 static inline __ATTRS_o_ai __vector double
vec_ctd(__vector unsigned long long __a,int __b)9057 vec_ctd(__vector unsigned long long __a, int __b)
9058   __constant_range(__b, 0, 31) {
9059   __vector double __conv = __builtin_convertvector(__a, __vector double);
9060   __conv *= ((__vector double)(__vector unsigned long long)
9061              ((0x3ffULL - __b) << 52));
9062   return __conv;
9063 }
9064 
9065 /*-- vec_ctsl ---------------------------------------------------------------*/
9066 
9067 // This prototype is deprecated.
9068 static inline __ATTRS_o_ai __vector signed long long
vec_ctsl(__vector double __a,int __b)9069 vec_ctsl(__vector double __a, int __b)
9070   __constant_range(__b, 0, 31) {
9071   __a *= ((__vector double)(__vector unsigned long long)
9072           ((0x3ffULL + __b) << 52));
9073   return __builtin_convertvector(__a, __vector signed long long);
9074 }
9075 
9076 /*-- vec_ctul ---------------------------------------------------------------*/
9077 
9078 // This prototype is deprecated.
9079 static inline __ATTRS_o_ai __vector unsigned long long
vec_ctul(__vector double __a,int __b)9080 vec_ctul(__vector double __a, int __b)
9081   __constant_range(__b, 0, 31) {
9082   __a *= ((__vector double)(__vector unsigned long long)
9083           ((0x3ffULL + __b) << 52));
9084   return __builtin_convertvector(__a, __vector unsigned long long);
9085 }
9086 
9087 /*-- vec_doublee ------------------------------------------------------------*/
9088 
9089 #if __ARCH__ >= 12
9090 static inline __ATTRS_ai __vector double
vec_doublee(__vector float __a)9091 vec_doublee(__vector float __a) {
9092   typedef float __v2f32 __attribute__((__vector_size__(8)));
9093   __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
9094   return __builtin_convertvector(__pack, __vector double);
9095 }
9096 #endif
9097 
9098 /*-- vec_floate -------------------------------------------------------------*/
9099 
9100 #if __ARCH__ >= 12
9101 static inline __ATTRS_ai __vector float
vec_floate(__vector double __a)9102 vec_floate(__vector double __a) {
9103   typedef float __v2f32 __attribute__((__vector_size__(8)));
9104   __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
9105   return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
9106 }
9107 #endif
9108 
9109 /*-- vec_double -------------------------------------------------------------*/
9110 
9111 static inline __ATTRS_o_ai __vector double
vec_double(__vector signed long long __a)9112 vec_double(__vector signed long long __a) {
9113   return __builtin_convertvector(__a, __vector double);
9114 }
9115 
9116 static inline __ATTRS_o_ai __vector double
vec_double(__vector unsigned long long __a)9117 vec_double(__vector unsigned long long __a) {
9118   return __builtin_convertvector(__a, __vector double);
9119 }
9120 
9121 /*-- vec_float --------------------------------------------------------------*/
9122 
9123 #if __ARCH__ >= 13
9124 
9125 static inline __ATTRS_o_ai __vector float
vec_float(__vector signed int __a)9126 vec_float(__vector signed int __a) {
9127   return __builtin_convertvector(__a, __vector float);
9128 }
9129 
9130 static inline __ATTRS_o_ai __vector float
vec_float(__vector unsigned int __a)9131 vec_float(__vector unsigned int __a) {
9132   return __builtin_convertvector(__a, __vector float);
9133 }
9134 
9135 #endif
9136 
9137 /*-- vec_signed -------------------------------------------------------------*/
9138 
9139 static inline __ATTRS_o_ai __vector signed long long
vec_signed(__vector double __a)9140 vec_signed(__vector double __a) {
9141   return __builtin_convertvector(__a, __vector signed long long);
9142 }
9143 
9144 #if __ARCH__ >= 13
9145 static inline __ATTRS_o_ai __vector signed int
vec_signed(__vector float __a)9146 vec_signed(__vector float __a) {
9147   return __builtin_convertvector(__a, __vector signed int);
9148 }
9149 #endif
9150 
9151 /*-- vec_unsigned -----------------------------------------------------------*/
9152 
9153 static inline __ATTRS_o_ai __vector unsigned long long
vec_unsigned(__vector double __a)9154 vec_unsigned(__vector double __a) {
9155   return __builtin_convertvector(__a, __vector unsigned long long);
9156 }
9157 
9158 #if __ARCH__ >= 13
9159 static inline __ATTRS_o_ai __vector unsigned int
vec_unsigned(__vector float __a)9160 vec_unsigned(__vector float __a) {
9161   return __builtin_convertvector(__a, __vector unsigned int);
9162 }
9163 #endif
9164 
9165 /*-- vec_roundp -------------------------------------------------------------*/
9166 
9167 #if __ARCH__ >= 12
9168 static inline __ATTRS_o_ai __vector float
vec_roundp(__vector float __a)9169 vec_roundp(__vector float __a) {
9170   return __builtin_s390_vfisb(__a, 4, 6);
9171 }
9172 #endif
9173 
9174 static inline __ATTRS_o_ai __vector double
vec_roundp(__vector double __a)9175 vec_roundp(__vector double __a) {
9176   return __builtin_s390_vfidb(__a, 4, 6);
9177 }
9178 
9179 /*-- vec_ceil ---------------------------------------------------------------*/
9180 
9181 #if __ARCH__ >= 12
9182 static inline __ATTRS_o_ai __vector float
vec_ceil(__vector float __a)9183 vec_ceil(__vector float __a) {
9184   // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9185   return __builtin_s390_vfisb(__a, 4, 6);
9186 }
9187 #endif
9188 
9189 static inline __ATTRS_o_ai __vector double
vec_ceil(__vector double __a)9190 vec_ceil(__vector double __a) {
9191   // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9192   return __builtin_s390_vfidb(__a, 4, 6);
9193 }
9194 
9195 /*-- vec_roundm -------------------------------------------------------------*/
9196 
9197 #if __ARCH__ >= 12
9198 static inline __ATTRS_o_ai __vector float
vec_roundm(__vector float __a)9199 vec_roundm(__vector float __a) {
9200   return __builtin_s390_vfisb(__a, 4, 7);
9201 }
9202 #endif
9203 
9204 static inline __ATTRS_o_ai __vector double
vec_roundm(__vector double __a)9205 vec_roundm(__vector double __a) {
9206   return __builtin_s390_vfidb(__a, 4, 7);
9207 }
9208 
9209 /*-- vec_floor --------------------------------------------------------------*/
9210 
9211 #if __ARCH__ >= 12
9212 static inline __ATTRS_o_ai __vector float
vec_floor(__vector float __a)9213 vec_floor(__vector float __a) {
9214   // On this platform, vec_floor never triggers the IEEE-inexact exception.
9215   return __builtin_s390_vfisb(__a, 4, 7);
9216 }
9217 #endif
9218 
9219 static inline __ATTRS_o_ai __vector double
vec_floor(__vector double __a)9220 vec_floor(__vector double __a) {
9221   // On this platform, vec_floor never triggers the IEEE-inexact exception.
9222   return __builtin_s390_vfidb(__a, 4, 7);
9223 }
9224 
9225 /*-- vec_roundz -------------------------------------------------------------*/
9226 
9227 #if __ARCH__ >= 12
9228 static inline __ATTRS_o_ai __vector float
vec_roundz(__vector float __a)9229 vec_roundz(__vector float __a) {
9230   return __builtin_s390_vfisb(__a, 4, 5);
9231 }
9232 #endif
9233 
9234 static inline __ATTRS_o_ai __vector double
vec_roundz(__vector double __a)9235 vec_roundz(__vector double __a) {
9236   return __builtin_s390_vfidb(__a, 4, 5);
9237 }
9238 
9239 /*-- vec_trunc --------------------------------------------------------------*/
9240 
9241 #if __ARCH__ >= 12
9242 static inline __ATTRS_o_ai __vector float
vec_trunc(__vector float __a)9243 vec_trunc(__vector float __a) {
9244   // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9245   return __builtin_s390_vfisb(__a, 4, 5);
9246 }
9247 #endif
9248 
9249 static inline __ATTRS_o_ai __vector double
vec_trunc(__vector double __a)9250 vec_trunc(__vector double __a) {
9251   // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9252   return __builtin_s390_vfidb(__a, 4, 5);
9253 }
9254 
9255 /*-- vec_roundc -------------------------------------------------------------*/
9256 
9257 #if __ARCH__ >= 12
9258 static inline __ATTRS_o_ai __vector float
vec_roundc(__vector float __a)9259 vec_roundc(__vector float __a) {
9260   return __builtin_s390_vfisb(__a, 4, 0);
9261 }
9262 #endif
9263 
9264 static inline __ATTRS_o_ai __vector double
vec_roundc(__vector double __a)9265 vec_roundc(__vector double __a) {
9266   return __builtin_s390_vfidb(__a, 4, 0);
9267 }
9268 
9269 /*-- vec_rint ---------------------------------------------------------------*/
9270 
9271 #if __ARCH__ >= 12
9272 static inline __ATTRS_o_ai __vector float
vec_rint(__vector float __a)9273 vec_rint(__vector float __a) {
9274   // vec_rint may trigger the IEEE-inexact exception.
9275   return __builtin_s390_vfisb(__a, 0, 0);
9276 }
9277 #endif
9278 
9279 static inline __ATTRS_o_ai __vector double
vec_rint(__vector double __a)9280 vec_rint(__vector double __a) {
9281   // vec_rint may trigger the IEEE-inexact exception.
9282   return __builtin_s390_vfidb(__a, 0, 0);
9283 }
9284 
9285 /*-- vec_round --------------------------------------------------------------*/
9286 
9287 #if __ARCH__ >= 12
9288 static inline __ATTRS_o_ai __vector float
vec_round(__vector float __a)9289 vec_round(__vector float __a) {
9290   return __builtin_s390_vfisb(__a, 4, 4);
9291 }
9292 #endif
9293 
9294 static inline __ATTRS_o_ai __vector double
vec_round(__vector double __a)9295 vec_round(__vector double __a) {
9296   return __builtin_s390_vfidb(__a, 4, 4);
9297 }
9298 
9299 /*-- vec_fp_test_data_class -------------------------------------------------*/
9300 
9301 #if __ARCH__ >= 12
9302 extern __ATTRS_o __vector __bool int
9303 vec_fp_test_data_class(__vector float __a, int __b, int *__c)
9304   __constant_range(__b, 0, 4095);
9305 
9306 extern __ATTRS_o __vector __bool long long
9307 vec_fp_test_data_class(__vector double __a, int __b, int *__c)
9308   __constant_range(__b, 0, 4095);
9309 
9310 #define vec_fp_test_data_class(X, Y, Z) \
9311   ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
9312    __extension__ ({ \
9313      __vector unsigned char __res; \
9314      __vector unsigned char __x = (__vector unsigned char)(X); \
9315      int *__z = (Z); \
9316      switch (sizeof ((X)[0])) { \
9317      case 4:  __res = (__vector unsigned char) \
9318                       __builtin_s390_vftcisb((__vector float)__x, (Y), __z); \
9319               break; \
9320      default: __res = (__vector unsigned char) \
9321                       __builtin_s390_vftcidb((__vector double)__x, (Y), __z); \
9322               break; \
9323      } __res; }))
9324 #else
9325 #define vec_fp_test_data_class(X, Y, Z) \
9326   ((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
9327 #endif
9328 
9329 #define __VEC_CLASS_FP_ZERO_P (1 << 11)
9330 #define __VEC_CLASS_FP_ZERO_N (1 << 10)
9331 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
9332 #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
9333 #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
9334 #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
9335                                __VEC_CLASS_FP_NORMAL_N)
9336 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
9337 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
9338 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
9339                                   __VEC_CLASS_FP_SUBNORMAL_N)
9340 #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
9341 #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
9342 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
9343                                  __VEC_CLASS_FP_INFINITY_N)
9344 #define __VEC_CLASS_FP_QNAN_P (1 << 3)
9345 #define __VEC_CLASS_FP_QNAN_N (1 << 2)
9346 #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
9347 #define __VEC_CLASS_FP_SNAN_P (1 << 1)
9348 #define __VEC_CLASS_FP_SNAN_N (1 << 0)
9349 #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
9350 #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
9351 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
9352                                    __VEC_CLASS_FP_SUBNORMAL | \
9353                                    __VEC_CLASS_FP_ZERO | \
9354                                    __VEC_CLASS_FP_INFINITY)
9355 
9356 /*-- vec_extend_to_fp32_hi --------------------------------------------------*/
9357 
9358 #if __ARCH__ >= 14
9359 #define vec_extend_to_fp32_hi(X, W) \
9360   ((__vector float)__builtin_s390_vclfnhs((X), (W)));
9361 #endif
9362 
9363 /*-- vec_extend_to_fp32_hi --------------------------------------------------*/
9364 
9365 #if __ARCH__ >= 14
9366 #define vec_extend_to_fp32_lo(X, W) \
9367   ((__vector float)__builtin_s390_vclfnls((X), (W)));
9368 #endif
9369 
9370 /*-- vec_round_from_fp32 ----------------------------------------------------*/
9371 
9372 #if __ARCH__ >= 14
9373 #define vec_round_from_fp32(X, Y, W) \
9374   ((__vector unsigned short)__builtin_s390_vcrnfs((X), (Y), (W)));
9375 #endif
9376 
9377 /*-- vec_convert_to_fp16 ----------------------------------------------------*/
9378 
9379 #if __ARCH__ >= 14
9380 #define vec_convert_to_fp16(X, W) \
9381   ((__vector unsigned short)__builtin_s390_vcfn((X), (W)));
9382 #endif
9383 
9384 /*-- vec_convert_from_fp16 --------------------------------------------------*/
9385 
9386 #if __ARCH__ >= 14
9387 #define vec_convert_from_fp16(X, W) \
9388   ((__vector unsigned short)__builtin_s390_vcnf((X), (W)));
9389 #endif
9390 
9391 /*-- vec_cp_until_zero ------------------------------------------------------*/
9392 
9393 static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero(__vector signed char __a)9394 vec_cp_until_zero(__vector signed char __a) {
9395   return ((__vector signed char)
9396           __builtin_s390_vistrb((__vector unsigned char)__a));
9397 }
9398 
9399 static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero(__vector __bool char __a)9400 vec_cp_until_zero(__vector __bool char __a) {
9401   return ((__vector __bool char)
9402           __builtin_s390_vistrb((__vector unsigned char)__a));
9403 }
9404 
9405 static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero(__vector unsigned char __a)9406 vec_cp_until_zero(__vector unsigned char __a) {
9407   return __builtin_s390_vistrb(__a);
9408 }
9409 
9410 static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero(__vector signed short __a)9411 vec_cp_until_zero(__vector signed short __a) {
9412   return ((__vector signed short)
9413           __builtin_s390_vistrh((__vector unsigned short)__a));
9414 }
9415 
9416 static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero(__vector __bool short __a)9417 vec_cp_until_zero(__vector __bool short __a) {
9418   return ((__vector __bool short)
9419           __builtin_s390_vistrh((__vector unsigned short)__a));
9420 }
9421 
9422 static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero(__vector unsigned short __a)9423 vec_cp_until_zero(__vector unsigned short __a) {
9424   return __builtin_s390_vistrh(__a);
9425 }
9426 
9427 static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero(__vector signed int __a)9428 vec_cp_until_zero(__vector signed int __a) {
9429   return ((__vector signed int)
9430           __builtin_s390_vistrf((__vector unsigned int)__a));
9431 }
9432 
9433 static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero(__vector __bool int __a)9434 vec_cp_until_zero(__vector __bool int __a) {
9435   return ((__vector __bool int)
9436           __builtin_s390_vistrf((__vector unsigned int)__a));
9437 }
9438 
9439 static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero(__vector unsigned int __a)9440 vec_cp_until_zero(__vector unsigned int __a) {
9441   return __builtin_s390_vistrf(__a);
9442 }
9443 
9444 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
9445 
9446 static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero_cc(__vector signed char __a,int * __cc)9447 vec_cp_until_zero_cc(__vector signed char __a, int *__cc) {
9448   return (__vector signed char)
9449     __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
9450 }
9451 
9452 static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero_cc(__vector __bool char __a,int * __cc)9453 vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) {
9454   return (__vector __bool char)
9455     __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
9456 }
9457 
9458 static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero_cc(__vector unsigned char __a,int * __cc)9459 vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) {
9460   return __builtin_s390_vistrbs(__a, __cc);
9461 }
9462 
9463 static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero_cc(__vector signed short __a,int * __cc)9464 vec_cp_until_zero_cc(__vector signed short __a, int *__cc) {
9465   return (__vector signed short)
9466     __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
9467 }
9468 
9469 static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero_cc(__vector __bool short __a,int * __cc)9470 vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) {
9471   return (__vector __bool short)
9472     __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
9473 }
9474 
9475 static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero_cc(__vector unsigned short __a,int * __cc)9476 vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) {
9477   return __builtin_s390_vistrhs(__a, __cc);
9478 }
9479 
9480 static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero_cc(__vector signed int __a,int * __cc)9481 vec_cp_until_zero_cc(__vector signed int __a, int *__cc) {
9482   return (__vector signed int)
9483     __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
9484 }
9485 
9486 static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero_cc(__vector __bool int __a,int * __cc)9487 vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) {
9488   return (__vector __bool int)
9489     __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
9490 }
9491 
9492 static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero_cc(__vector unsigned int __a,int * __cc)9493 vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) {
9494   return __builtin_s390_vistrfs(__a, __cc);
9495 }
9496 
9497 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
9498 
9499 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx(__vector signed char __a,__vector signed char __b)9500 vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) {
9501   return (__vector signed char)
9502     __builtin_s390_vfeeb((__vector unsigned char)__a,
9503                          (__vector unsigned char)__b);
9504 }
9505 
9506 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector __bool char __a,__vector __bool char __b)9507 vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) {
9508   return __builtin_s390_vfeeb((__vector unsigned char)__a,
9509                               (__vector unsigned char)__b);
9510 }
9511 
9512 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector unsigned char __a,__vector unsigned char __b)9513 vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) {
9514   return __builtin_s390_vfeeb(__a, __b);
9515 }
9516 
9517 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx(__vector signed short __a,__vector signed short __b)9518 vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) {
9519   return (__vector signed short)
9520     __builtin_s390_vfeeh((__vector unsigned short)__a,
9521                          (__vector unsigned short)__b);
9522 }
9523 
9524 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector __bool short __a,__vector __bool short __b)9525 vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) {
9526   return __builtin_s390_vfeeh((__vector unsigned short)__a,
9527                               (__vector unsigned short)__b);
9528 }
9529 
9530 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector unsigned short __a,__vector unsigned short __b)9531 vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) {
9532   return __builtin_s390_vfeeh(__a, __b);
9533 }
9534 
9535 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx(__vector signed int __a,__vector signed int __b)9536 vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) {
9537   return (__vector signed int)
9538     __builtin_s390_vfeef((__vector unsigned int)__a,
9539                          (__vector unsigned int)__b);
9540 }
9541 
9542 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector __bool int __a,__vector __bool int __b)9543 vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) {
9544   return __builtin_s390_vfeef((__vector unsigned int)__a,
9545                               (__vector unsigned int)__b);
9546 }
9547 
9548 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector unsigned int __a,__vector unsigned int __b)9549 vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) {
9550   return __builtin_s390_vfeef(__a, __b);
9551 }
9552 
9553 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
9554 
9555 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)9556 vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
9557   return (__vector signed char)
9558     __builtin_s390_vfeebs((__vector unsigned char)__a,
9559                           (__vector unsigned char)__b, __cc);
9560 }
9561 
9562 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)9563 vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
9564   return __builtin_s390_vfeebs((__vector unsigned char)__a,
9565                                (__vector unsigned char)__b, __cc);
9566 }
9567 
9568 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)9569 vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9570                  int *__cc) {
9571   return __builtin_s390_vfeebs(__a, __b, __cc);
9572 }
9573 
9574 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)9575 vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b,
9576                  int *__cc) {
9577   return (__vector signed short)
9578     __builtin_s390_vfeehs((__vector unsigned short)__a,
9579                           (__vector unsigned short)__b, __cc);
9580 }
9581 
9582 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)9583 vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) {
9584   return __builtin_s390_vfeehs((__vector unsigned short)__a,
9585                                (__vector unsigned short)__b, __cc);
9586 }
9587 
9588 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)9589 vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9590                  int *__cc) {
9591   return __builtin_s390_vfeehs(__a, __b, __cc);
9592 }
9593 
9594 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)9595 vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
9596   return (__vector signed int)
9597     __builtin_s390_vfeefs((__vector unsigned int)__a,
9598                           (__vector unsigned int)__b, __cc);
9599 }
9600 
9601 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)9602 vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
9603   return __builtin_s390_vfeefs((__vector unsigned int)__a,
9604                                (__vector unsigned int)__b, __cc);
9605 }
9606 
9607 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)9608 vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9609                  int *__cc) {
9610   return __builtin_s390_vfeefs(__a, __b, __cc);
9611 }
9612 
9613 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
9614 
9615 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx(__vector signed char __a,__vector signed char __b)9616 vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) {
9617   return (__vector signed char)
9618     __builtin_s390_vfeezb((__vector unsigned char)__a,
9619                           (__vector unsigned char)__b);
9620 }
9621 
9622 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector __bool char __a,__vector __bool char __b)9623 vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
9624   return __builtin_s390_vfeezb((__vector unsigned char)__a,
9625                                (__vector unsigned char)__b);
9626 }
9627 
9628 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)9629 vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
9630   return __builtin_s390_vfeezb(__a, __b);
9631 }
9632 
9633 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx(__vector signed short __a,__vector signed short __b)9634 vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) {
9635   return (__vector signed short)
9636     __builtin_s390_vfeezh((__vector unsigned short)__a,
9637                           (__vector unsigned short)__b);
9638 }
9639 
9640 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector __bool short __a,__vector __bool short __b)9641 vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
9642   return __builtin_s390_vfeezh((__vector unsigned short)__a,
9643                                (__vector unsigned short)__b);
9644 }
9645 
9646 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)9647 vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
9648   return __builtin_s390_vfeezh(__a, __b);
9649 }
9650 
9651 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx(__vector signed int __a,__vector signed int __b)9652 vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) {
9653   return (__vector signed int)
9654     __builtin_s390_vfeezf((__vector unsigned int)__a,
9655                           (__vector unsigned int)__b);
9656 }
9657 
9658 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector __bool int __a,__vector __bool int __b)9659 vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
9660   return __builtin_s390_vfeezf((__vector unsigned int)__a,
9661                                (__vector unsigned int)__b);
9662 }
9663 
9664 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)9665 vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
9666   return __builtin_s390_vfeezf(__a, __b);
9667 }
9668 
9669 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
9670 
9671 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)9672 vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
9673                       int *__cc) {
9674   return (__vector signed char)
9675     __builtin_s390_vfeezbs((__vector unsigned char)__a,
9676                            (__vector unsigned char)__b, __cc);
9677 }
9678 
9679 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)9680 vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
9681                       int *__cc) {
9682   return __builtin_s390_vfeezbs((__vector unsigned char)__a,
9683                                 (__vector unsigned char)__b, __cc);
9684 }
9685 
9686 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)9687 vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9688                       int *__cc) {
9689   return __builtin_s390_vfeezbs(__a, __b, __cc);
9690 }
9691 
9692 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)9693 vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
9694                       int *__cc) {
9695   return (__vector signed short)
9696     __builtin_s390_vfeezhs((__vector unsigned short)__a,
9697                            (__vector unsigned short)__b, __cc);
9698 }
9699 
9700 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)9701 vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
9702                       int *__cc) {
9703   return __builtin_s390_vfeezhs((__vector unsigned short)__a,
9704                                 (__vector unsigned short)__b, __cc);
9705 }
9706 
9707 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)9708 vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9709                       int *__cc) {
9710   return __builtin_s390_vfeezhs(__a, __b, __cc);
9711 }
9712 
9713 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)9714 vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
9715                       int *__cc) {
9716   return (__vector signed int)
9717     __builtin_s390_vfeezfs((__vector unsigned int)__a,
9718                            (__vector unsigned int)__b, __cc);
9719 }
9720 
9721 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)9722 vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
9723                       int *__cc) {
9724   return __builtin_s390_vfeezfs((__vector unsigned int)__a,
9725                                 (__vector unsigned int)__b, __cc);
9726 }
9727 
9728 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)9729 vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9730                       int *__cc) {
9731   return __builtin_s390_vfeezfs(__a, __b, __cc);
9732 }
9733 
9734 /*-- vec_cmpne_idx ----------------------------------------------------------*/
9735 
9736 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx(__vector signed char __a,__vector signed char __b)9737 vec_cmpne_idx(__vector signed char __a, __vector signed char __b) {
9738   return (__vector signed char)
9739     __builtin_s390_vfeneb((__vector unsigned char)__a,
9740                           (__vector unsigned char)__b);
9741 }
9742 
9743 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector __bool char __a,__vector __bool char __b)9744 vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) {
9745   return __builtin_s390_vfeneb((__vector unsigned char)__a,
9746                                (__vector unsigned char)__b);
9747 }
9748 
9749 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector unsigned char __a,__vector unsigned char __b)9750 vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) {
9751   return __builtin_s390_vfeneb(__a, __b);
9752 }
9753 
9754 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx(__vector signed short __a,__vector signed short __b)9755 vec_cmpne_idx(__vector signed short __a, __vector signed short __b) {
9756   return (__vector signed short)
9757     __builtin_s390_vfeneh((__vector unsigned short)__a,
9758                           (__vector unsigned short)__b);
9759 }
9760 
9761 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector __bool short __a,__vector __bool short __b)9762 vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) {
9763   return __builtin_s390_vfeneh((__vector unsigned short)__a,
9764                                (__vector unsigned short)__b);
9765 }
9766 
9767 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector unsigned short __a,__vector unsigned short __b)9768 vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) {
9769   return __builtin_s390_vfeneh(__a, __b);
9770 }
9771 
9772 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx(__vector signed int __a,__vector signed int __b)9773 vec_cmpne_idx(__vector signed int __a, __vector signed int __b) {
9774   return (__vector signed int)
9775     __builtin_s390_vfenef((__vector unsigned int)__a,
9776                           (__vector unsigned int)__b);
9777 }
9778 
9779 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector __bool int __a,__vector __bool int __b)9780 vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) {
9781   return __builtin_s390_vfenef((__vector unsigned int)__a,
9782                                (__vector unsigned int)__b);
9783 }
9784 
9785 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector unsigned int __a,__vector unsigned int __b)9786 vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) {
9787   return __builtin_s390_vfenef(__a, __b);
9788 }
9789 
9790 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
9791 
9792 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)9793 vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
9794   return (__vector signed char)
9795     __builtin_s390_vfenebs((__vector unsigned char)__a,
9796                            (__vector unsigned char)__b, __cc);
9797 }
9798 
9799 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)9800 vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
9801   return __builtin_s390_vfenebs((__vector unsigned char)__a,
9802                                 (__vector unsigned char)__b, __cc);
9803 }
9804 
9805 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)9806 vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9807                  int *__cc) {
9808   return __builtin_s390_vfenebs(__a, __b, __cc);
9809 }
9810 
9811 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)9812 vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b,
9813                  int *__cc) {
9814   return (__vector signed short)
9815     __builtin_s390_vfenehs((__vector unsigned short)__a,
9816                            (__vector unsigned short)__b, __cc);
9817 }
9818 
9819 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)9820 vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b,
9821                  int *__cc) {
9822   return __builtin_s390_vfenehs((__vector unsigned short)__a,
9823                                 (__vector unsigned short)__b, __cc);
9824 }
9825 
9826 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)9827 vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9828                  int *__cc) {
9829   return __builtin_s390_vfenehs(__a, __b, __cc);
9830 }
9831 
9832 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)9833 vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
9834   return (__vector signed int)
9835     __builtin_s390_vfenefs((__vector unsigned int)__a,
9836                            (__vector unsigned int)__b, __cc);
9837 }
9838 
9839 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)9840 vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
9841   return __builtin_s390_vfenefs((__vector unsigned int)__a,
9842                                 (__vector unsigned int)__b, __cc);
9843 }
9844 
9845 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)9846 vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9847                  int *__cc) {
9848   return __builtin_s390_vfenefs(__a, __b, __cc);
9849 }
9850 
9851 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
9852 
9853 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx(__vector signed char __a,__vector signed char __b)9854 vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) {
9855   return (__vector signed char)
9856     __builtin_s390_vfenezb((__vector unsigned char)__a,
9857                            (__vector unsigned char)__b);
9858 }
9859 
9860 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector __bool char __a,__vector __bool char __b)9861 vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
9862   return __builtin_s390_vfenezb((__vector unsigned char)__a,
9863                                 (__vector unsigned char)__b);
9864 }
9865 
9866 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)9867 vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
9868   return __builtin_s390_vfenezb(__a, __b);
9869 }
9870 
9871 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx(__vector signed short __a,__vector signed short __b)9872 vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) {
9873   return (__vector signed short)
9874     __builtin_s390_vfenezh((__vector unsigned short)__a,
9875                            (__vector unsigned short)__b);
9876 }
9877 
9878 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector __bool short __a,__vector __bool short __b)9879 vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
9880   return __builtin_s390_vfenezh((__vector unsigned short)__a,
9881                                 (__vector unsigned short)__b);
9882 }
9883 
9884 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)9885 vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
9886   return __builtin_s390_vfenezh(__a, __b);
9887 }
9888 
9889 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx(__vector signed int __a,__vector signed int __b)9890 vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) {
9891   return (__vector signed int)
9892     __builtin_s390_vfenezf((__vector unsigned int)__a,
9893                            (__vector unsigned int)__b);
9894 }
9895 
9896 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector __bool int __a,__vector __bool int __b)9897 vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
9898   return __builtin_s390_vfenezf((__vector unsigned int)__a,
9899                                 (__vector unsigned int)__b);
9900 }
9901 
9902 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)9903 vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
9904   return __builtin_s390_vfenezf(__a, __b);
9905 }
9906 
9907 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
9908 
9909 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)9910 vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
9911                       int *__cc) {
9912   return (__vector signed char)
9913     __builtin_s390_vfenezbs((__vector unsigned char)__a,
9914                             (__vector unsigned char)__b, __cc);
9915 }
9916 
9917 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)9918 vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
9919                       int *__cc) {
9920   return __builtin_s390_vfenezbs((__vector unsigned char)__a,
9921                                  (__vector unsigned char)__b, __cc);
9922 }
9923 
9924 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)9925 vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9926                       int *__cc) {
9927   return __builtin_s390_vfenezbs(__a, __b, __cc);
9928 }
9929 
9930 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)9931 vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
9932                       int *__cc) {
9933   return (__vector signed short)
9934     __builtin_s390_vfenezhs((__vector unsigned short)__a,
9935                             (__vector unsigned short)__b, __cc);
9936 }
9937 
9938 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)9939 vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
9940                       int *__cc) {
9941   return __builtin_s390_vfenezhs((__vector unsigned short)__a,
9942                                  (__vector unsigned short)__b, __cc);
9943 }
9944 
9945 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)9946 vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9947                       int *__cc) {
9948   return __builtin_s390_vfenezhs(__a, __b, __cc);
9949 }
9950 
9951 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)9952 vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
9953                       int *__cc) {
9954   return (__vector signed int)
9955     __builtin_s390_vfenezfs((__vector unsigned int)__a,
9956                             (__vector unsigned int)__b, __cc);
9957 }
9958 
9959 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)9960 vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
9961                       int *__cc) {
9962   return __builtin_s390_vfenezfs((__vector unsigned int)__a,
9963                                  (__vector unsigned int)__b, __cc);
9964 }
9965 
9966 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)9967 vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9968                       int *__cc) {
9969   return __builtin_s390_vfenezfs(__a, __b, __cc);
9970 }
9971 
9972 /*-- vec_cmprg --------------------------------------------------------------*/
9973 
9974 static inline __ATTRS_o_ai __vector __bool char
vec_cmprg(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)9975 vec_cmprg(__vector unsigned char __a, __vector unsigned char __b,
9976           __vector unsigned char __c) {
9977   return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
9978 }
9979 
9980 static inline __ATTRS_o_ai __vector __bool short
vec_cmprg(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)9981 vec_cmprg(__vector unsigned short __a, __vector unsigned short __b,
9982           __vector unsigned short __c) {
9983   return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
9984 }
9985 
9986 static inline __ATTRS_o_ai __vector __bool int
vec_cmprg(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)9987 vec_cmprg(__vector unsigned int __a, __vector unsigned int __b,
9988           __vector unsigned int __c) {
9989   return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
9990 }
9991 
9992 /*-- vec_cmprg_cc -----------------------------------------------------------*/
9993 
9994 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)9995 vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b,
9996              __vector unsigned char __c, int *__cc) {
9997   return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
9998 }
9999 
10000 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)10001 vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b,
10002              __vector unsigned short __c, int *__cc) {
10003   return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
10004 }
10005 
10006 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)10007 vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b,
10008              __vector unsigned int __c, int *__cc) {
10009   return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
10010 }
10011 
10012 /*-- vec_cmprg_idx ----------------------------------------------------------*/
10013 
10014 static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10015 vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b,
10016               __vector unsigned char __c) {
10017   return __builtin_s390_vstrcb(__a, __b, __c, 0);
10018 }
10019 
10020 static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)10021 vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b,
10022               __vector unsigned short __c) {
10023   return __builtin_s390_vstrch(__a, __b, __c, 0);
10024 }
10025 
10026 static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)10027 vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b,
10028               __vector unsigned int __c) {
10029   return __builtin_s390_vstrcf(__a, __b, __c, 0);
10030 }
10031 
10032 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
10033 
10034 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)10035 vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
10036                  __vector unsigned char __c, int *__cc) {
10037   return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
10038 }
10039 
10040 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)10041 vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
10042                  __vector unsigned short __c, int *__cc) {
10043   return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
10044 }
10045 
10046 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)10047 vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
10048                  __vector unsigned int __c, int *__cc) {
10049   return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
10050 }
10051 
10052 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
10053 
10054 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)10055 vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
10056                    __vector unsigned char __c) {
10057   return __builtin_s390_vstrczb(__a, __b, __c, 0);
10058 }
10059 
10060 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)10061 vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
10062                    __vector unsigned short __c) {
10063   return __builtin_s390_vstrczh(__a, __b, __c, 0);
10064 }
10065 
10066 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)10067 vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
10068                    __vector unsigned int __c) {
10069   return __builtin_s390_vstrczf(__a, __b, __c, 0);
10070 }
10071 
10072 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
10073 
10074 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)10075 vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
10076                       __vector unsigned char __c, int *__cc) {
10077   return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
10078 }
10079 
10080 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)10081 vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
10082                       __vector unsigned short __c, int *__cc) {
10083   return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
10084 }
10085 
10086 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)10087 vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
10088                       __vector unsigned int __c, int *__cc) {
10089   return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
10090 }
10091 
10092 /*-- vec_cmpnrg -------------------------------------------------------------*/
10093 
10094 static inline __ATTRS_o_ai __vector __bool char
vec_cmpnrg(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10095 vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b,
10096            __vector unsigned char __c) {
10097   return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
10098 }
10099 
10100 static inline __ATTRS_o_ai __vector __bool short
vec_cmpnrg(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)10101 vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b,
10102            __vector unsigned short __c) {
10103   return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
10104 }
10105 
10106 static inline __ATTRS_o_ai __vector __bool int
vec_cmpnrg(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)10107 vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b,
10108            __vector unsigned int __c) {
10109   return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
10110 }
10111 
10112 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
10113 
10114 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)10115 vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b,
10116               __vector unsigned char __c, int *__cc) {
10117   return (__vector __bool char)
10118     __builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
10119 }
10120 
10121 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)10122 vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b,
10123               __vector unsigned short __c, int *__cc) {
10124   return (__vector __bool short)
10125     __builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
10126 }
10127 
10128 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)10129 vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b,
10130               __vector unsigned int __c, int *__cc) {
10131   return (__vector __bool int)
10132     __builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
10133 }
10134 
10135 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
10136 
10137 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10138 vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b,
10139                __vector unsigned char __c) {
10140   return __builtin_s390_vstrcb(__a, __b, __c, 8);
10141 }
10142 
10143 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)10144 vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b,
10145                __vector unsigned short __c) {
10146   return __builtin_s390_vstrch(__a, __b, __c, 8);
10147 }
10148 
10149 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)10150 vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b,
10151                __vector unsigned int __c) {
10152   return __builtin_s390_vstrcf(__a, __b, __c, 8);
10153 }
10154 
10155 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
10156 
10157 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)10158 vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
10159                   __vector unsigned char __c, int *__cc) {
10160   return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
10161 }
10162 
10163 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)10164 vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
10165                   __vector unsigned short __c, int *__cc) {
10166   return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
10167 }
10168 
10169 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)10170 vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
10171                   __vector unsigned int __c, int *__cc) {
10172   return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
10173 }
10174 
10175 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
10176 
10177 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)10178 vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
10179                     __vector unsigned char __c) {
10180   return __builtin_s390_vstrczb(__a, __b, __c, 8);
10181 }
10182 
10183 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)10184 vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
10185                     __vector unsigned short __c) {
10186   return __builtin_s390_vstrczh(__a, __b, __c, 8);
10187 }
10188 
10189 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)10190 vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
10191                     __vector unsigned int __c) {
10192   return __builtin_s390_vstrczf(__a, __b, __c, 8);
10193 }
10194 
10195 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
10196 
10197 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)10198 vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,
10199                        __vector unsigned char __b,
10200                        __vector unsigned char __c, int *__cc) {
10201   return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
10202 }
10203 
10204 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)10205 vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,
10206                        __vector unsigned short __b,
10207                        __vector unsigned short __c, int *__cc) {
10208   return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
10209 }
10210 
10211 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)10212 vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,
10213                        __vector unsigned int __b,
10214                        __vector unsigned int __c, int *__cc) {
10215   return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
10216 }
10217 
10218 /*-- vec_find_any_eq --------------------------------------------------------*/
10219 
10220 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector signed char __a,__vector signed char __b)10221 vec_find_any_eq(__vector signed char __a, __vector signed char __b) {
10222   return (__vector __bool char)
10223     __builtin_s390_vfaeb((__vector unsigned char)__a,
10224                          (__vector unsigned char)__b, 4);
10225 }
10226 
10227 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector __bool char __a,__vector __bool char __b)10228 vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) {
10229   return (__vector __bool char)
10230     __builtin_s390_vfaeb((__vector unsigned char)__a,
10231                          (__vector unsigned char)__b, 4);
10232 }
10233 
10234 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector unsigned char __a,__vector unsigned char __b)10235 vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
10236   return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4);
10237 }
10238 
10239 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector signed short __a,__vector signed short __b)10240 vec_find_any_eq(__vector signed short __a, __vector signed short __b) {
10241   return (__vector __bool short)
10242     __builtin_s390_vfaeh((__vector unsigned short)__a,
10243                          (__vector unsigned short)__b, 4);
10244 }
10245 
10246 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector __bool short __a,__vector __bool short __b)10247 vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) {
10248   return (__vector __bool short)
10249     __builtin_s390_vfaeh((__vector unsigned short)__a,
10250                          (__vector unsigned short)__b, 4);
10251 }
10252 
10253 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector unsigned short __a,__vector unsigned short __b)10254 vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
10255   return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4);
10256 }
10257 
10258 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector signed int __a,__vector signed int __b)10259 vec_find_any_eq(__vector signed int __a, __vector signed int __b) {
10260   return (__vector __bool int)
10261     __builtin_s390_vfaef((__vector unsigned int)__a,
10262                          (__vector unsigned int)__b, 4);
10263 }
10264 
10265 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector __bool int __a,__vector __bool int __b)10266 vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) {
10267   return (__vector __bool int)
10268     __builtin_s390_vfaef((__vector unsigned int)__a,
10269                          (__vector unsigned int)__b, 4);
10270 }
10271 
10272 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector unsigned int __a,__vector unsigned int __b)10273 vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
10274   return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4);
10275 }
10276 
10277 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
10278 
10279 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector signed char __a,__vector signed char __b,int * __cc)10280 vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b,
10281                    int *__cc) {
10282   return (__vector __bool char)
10283     __builtin_s390_vfaebs((__vector unsigned char)__a,
10284                           (__vector unsigned char)__b, 4, __cc);
10285 }
10286 
10287 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10288 vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b,
10289                    int *__cc) {
10290   return (__vector __bool char)
10291     __builtin_s390_vfaebs((__vector unsigned char)__a,
10292                           (__vector unsigned char)__b, 4, __cc);
10293 }
10294 
10295 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10296 vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b,
10297                    int *__cc) {
10298   return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
10299 }
10300 
10301 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector signed short __a,__vector signed short __b,int * __cc)10302 vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b,
10303                    int *__cc) {
10304   return (__vector __bool short)
10305     __builtin_s390_vfaehs((__vector unsigned short)__a,
10306                           (__vector unsigned short)__b, 4, __cc);
10307 }
10308 
10309 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10310 vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b,
10311                    int *__cc) {
10312   return (__vector __bool short)
10313     __builtin_s390_vfaehs((__vector unsigned short)__a,
10314                           (__vector unsigned short)__b, 4, __cc);
10315 }
10316 
10317 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10318 vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b,
10319                    int *__cc) {
10320   return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
10321 }
10322 
10323 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector signed int __a,__vector signed int __b,int * __cc)10324 vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b,
10325                    int *__cc) {
10326   return (__vector __bool int)
10327     __builtin_s390_vfaefs((__vector unsigned int)__a,
10328                           (__vector unsigned int)__b, 4, __cc);
10329 }
10330 
10331 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10332 vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b,
10333                    int *__cc) {
10334   return (__vector __bool int)
10335     __builtin_s390_vfaefs((__vector unsigned int)__a,
10336                           (__vector unsigned int)__b, 4, __cc);
10337 }
10338 
10339 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10340 vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b,
10341                    int *__cc) {
10342   return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
10343 }
10344 
10345 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
10346 
10347 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx(__vector signed char __a,__vector signed char __b)10348 vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) {
10349   return (__vector signed char)
10350     __builtin_s390_vfaeb((__vector unsigned char)__a,
10351                          (__vector unsigned char)__b, 0);
10352 }
10353 
10354 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector __bool char __a,__vector __bool char __b)10355 vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) {
10356   return __builtin_s390_vfaeb((__vector unsigned char)__a,
10357                               (__vector unsigned char)__b, 0);
10358 }
10359 
10360 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector unsigned char __a,__vector unsigned char __b)10361 vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) {
10362   return __builtin_s390_vfaeb(__a, __b, 0);
10363 }
10364 
10365 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx(__vector signed short __a,__vector signed short __b)10366 vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) {
10367   return (__vector signed short)
10368     __builtin_s390_vfaeh((__vector unsigned short)__a,
10369                          (__vector unsigned short)__b, 0);
10370 }
10371 
10372 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector __bool short __a,__vector __bool short __b)10373 vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) {
10374   return __builtin_s390_vfaeh((__vector unsigned short)__a,
10375                               (__vector unsigned short)__b, 0);
10376 }
10377 
10378 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector unsigned short __a,__vector unsigned short __b)10379 vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) {
10380   return __builtin_s390_vfaeh(__a, __b, 0);
10381 }
10382 
10383 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx(__vector signed int __a,__vector signed int __b)10384 vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) {
10385   return (__vector signed int)
10386     __builtin_s390_vfaef((__vector unsigned int)__a,
10387                          (__vector unsigned int)__b, 0);
10388 }
10389 
10390 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector __bool int __a,__vector __bool int __b)10391 vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) {
10392   return __builtin_s390_vfaef((__vector unsigned int)__a,
10393                               (__vector unsigned int)__b, 0);
10394 }
10395 
10396 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector unsigned int __a,__vector unsigned int __b)10397 vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) {
10398   return __builtin_s390_vfaef(__a, __b, 0);
10399 }
10400 
10401 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
10402 
10403 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)10404 vec_find_any_eq_idx_cc(__vector signed char __a,
10405                        __vector signed char __b, int *__cc) {
10406   return (__vector signed char)
10407     __builtin_s390_vfaebs((__vector unsigned char)__a,
10408                           (__vector unsigned char)__b, 0, __cc);
10409 }
10410 
10411 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10412 vec_find_any_eq_idx_cc(__vector __bool char __a,
10413                        __vector __bool char __b, int *__cc) {
10414   return __builtin_s390_vfaebs((__vector unsigned char)__a,
10415                                (__vector unsigned char)__b, 0, __cc);
10416 }
10417 
10418 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10419 vec_find_any_eq_idx_cc(__vector unsigned char __a,
10420                        __vector unsigned char __b, int *__cc) {
10421   return __builtin_s390_vfaebs(__a, __b, 0, __cc);
10422 }
10423 
10424 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)10425 vec_find_any_eq_idx_cc(__vector signed short __a,
10426                        __vector signed short __b, int *__cc) {
10427   return (__vector signed short)
10428     __builtin_s390_vfaehs((__vector unsigned short)__a,
10429                           (__vector unsigned short)__b, 0, __cc);
10430 }
10431 
10432 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10433 vec_find_any_eq_idx_cc(__vector __bool short __a,
10434                        __vector __bool short __b, int *__cc) {
10435   return __builtin_s390_vfaehs((__vector unsigned short)__a,
10436                                (__vector unsigned short)__b, 0, __cc);
10437 }
10438 
10439 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10440 vec_find_any_eq_idx_cc(__vector unsigned short __a,
10441                        __vector unsigned short __b, int *__cc) {
10442   return __builtin_s390_vfaehs(__a, __b, 0, __cc);
10443 }
10444 
10445 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)10446 vec_find_any_eq_idx_cc(__vector signed int __a,
10447                        __vector signed int __b, int *__cc) {
10448   return (__vector signed int)
10449     __builtin_s390_vfaefs((__vector unsigned int)__a,
10450                           (__vector unsigned int)__b, 0, __cc);
10451 }
10452 
10453 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10454 vec_find_any_eq_idx_cc(__vector __bool int __a,
10455                        __vector __bool int __b, int *__cc) {
10456   return __builtin_s390_vfaefs((__vector unsigned int)__a,
10457                                (__vector unsigned int)__b, 0, __cc);
10458 }
10459 
10460 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10461 vec_find_any_eq_idx_cc(__vector unsigned int __a,
10462                        __vector unsigned int __b, int *__cc) {
10463   return __builtin_s390_vfaefs(__a, __b, 0, __cc);
10464 }
10465 
10466 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
10467 
10468 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_or_0_idx(__vector signed char __a,__vector signed char __b)10469 vec_find_any_eq_or_0_idx(__vector signed char __a,
10470                          __vector signed char __b) {
10471   return (__vector signed char)
10472     __builtin_s390_vfaezb((__vector unsigned char)__a,
10473                           (__vector unsigned char)__b, 0);
10474 }
10475 
10476 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx(__vector __bool char __a,__vector __bool char __b)10477 vec_find_any_eq_or_0_idx(__vector __bool char __a,
10478                          __vector __bool char __b) {
10479   return __builtin_s390_vfaezb((__vector unsigned char)__a,
10480                                (__vector unsigned char)__b, 0);
10481 }
10482 
10483 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)10484 vec_find_any_eq_or_0_idx(__vector unsigned char __a,
10485                          __vector unsigned char __b) {
10486   return __builtin_s390_vfaezb(__a, __b, 0);
10487 }
10488 
10489 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_or_0_idx(__vector signed short __a,__vector signed short __b)10490 vec_find_any_eq_or_0_idx(__vector signed short __a,
10491                          __vector signed short __b) {
10492   return (__vector signed short)
10493     __builtin_s390_vfaezh((__vector unsigned short)__a,
10494                           (__vector unsigned short)__b, 0);
10495 }
10496 
10497 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx(__vector __bool short __a,__vector __bool short __b)10498 vec_find_any_eq_or_0_idx(__vector __bool short __a,
10499                          __vector __bool short __b) {
10500   return __builtin_s390_vfaezh((__vector unsigned short)__a,
10501                                (__vector unsigned short)__b, 0);
10502 }
10503 
10504 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)10505 vec_find_any_eq_or_0_idx(__vector unsigned short __a,
10506                          __vector unsigned short __b) {
10507   return __builtin_s390_vfaezh(__a, __b, 0);
10508 }
10509 
10510 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_or_0_idx(__vector signed int __a,__vector signed int __b)10511 vec_find_any_eq_or_0_idx(__vector signed int __a,
10512                          __vector signed int __b) {
10513   return (__vector signed int)
10514     __builtin_s390_vfaezf((__vector unsigned int)__a,
10515                           (__vector unsigned int)__b, 0);
10516 }
10517 
10518 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx(__vector __bool int __a,__vector __bool int __b)10519 vec_find_any_eq_or_0_idx(__vector __bool int __a,
10520                          __vector __bool int __b) {
10521   return __builtin_s390_vfaezf((__vector unsigned int)__a,
10522                                (__vector unsigned int)__b, 0);
10523 }
10524 
10525 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)10526 vec_find_any_eq_or_0_idx(__vector unsigned int __a,
10527                          __vector unsigned int __b) {
10528   return __builtin_s390_vfaezf(__a, __b, 0);
10529 }
10530 
10531 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
10532 
10533 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)10534 vec_find_any_eq_or_0_idx_cc(__vector signed char __a,
10535                             __vector signed char __b, int *__cc) {
10536   return (__vector signed char)
10537     __builtin_s390_vfaezbs((__vector unsigned char)__a,
10538                            (__vector unsigned char)__b, 0, __cc);
10539 }
10540 
10541 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)10542 vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,
10543                             __vector __bool char __b, int *__cc) {
10544   return __builtin_s390_vfaezbs((__vector unsigned char)__a,
10545                                 (__vector unsigned char)__b, 0, __cc);
10546 }
10547 
10548 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)10549 vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,
10550                             __vector unsigned char __b, int *__cc) {
10551   return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
10552 }
10553 
10554 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)10555 vec_find_any_eq_or_0_idx_cc(__vector signed short __a,
10556                             __vector signed short __b, int *__cc) {
10557   return (__vector signed short)
10558     __builtin_s390_vfaezhs((__vector unsigned short)__a,
10559                            (__vector unsigned short)__b, 0, __cc);
10560 }
10561 
10562 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)10563 vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,
10564                             __vector __bool short __b, int *__cc) {
10565   return __builtin_s390_vfaezhs((__vector unsigned short)__a,
10566                                 (__vector unsigned short)__b, 0, __cc);
10567 }
10568 
10569 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)10570 vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,
10571                             __vector unsigned short __b, int *__cc) {
10572   return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
10573 }
10574 
10575 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)10576 vec_find_any_eq_or_0_idx_cc(__vector signed int __a,
10577                             __vector signed int __b, int *__cc) {
10578   return (__vector signed int)
10579     __builtin_s390_vfaezfs((__vector unsigned int)__a,
10580                            (__vector unsigned int)__b, 0, __cc);
10581 }
10582 
10583 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)10584 vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,
10585                             __vector __bool int __b, int *__cc) {
10586   return __builtin_s390_vfaezfs((__vector unsigned int)__a,
10587                                 (__vector unsigned int)__b, 0, __cc);
10588 }
10589 
10590 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)10591 vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,
10592                             __vector unsigned int __b, int *__cc) {
10593   return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
10594 }
10595 
10596 /*-- vec_find_any_ne --------------------------------------------------------*/
10597 
10598 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector signed char __a,__vector signed char __b)10599 vec_find_any_ne(__vector signed char __a, __vector signed char __b) {
10600   return (__vector __bool char)
10601     __builtin_s390_vfaeb((__vector unsigned char)__a,
10602                          (__vector unsigned char)__b, 12);
10603 }
10604 
10605 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector __bool char __a,__vector __bool char __b)10606 vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) {
10607   return (__vector __bool char)
10608     __builtin_s390_vfaeb((__vector unsigned char)__a,
10609                          (__vector unsigned char)__b, 12);
10610 }
10611 
10612 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector unsigned char __a,__vector unsigned char __b)10613 vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
10614   return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12);
10615 }
10616 
10617 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector signed short __a,__vector signed short __b)10618 vec_find_any_ne(__vector signed short __a, __vector signed short __b) {
10619   return (__vector __bool short)
10620     __builtin_s390_vfaeh((__vector unsigned short)__a,
10621                          (__vector unsigned short)__b, 12);
10622 }
10623 
10624 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector __bool short __a,__vector __bool short __b)10625 vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) {
10626   return (__vector __bool short)
10627     __builtin_s390_vfaeh((__vector unsigned short)__a,
10628                          (__vector unsigned short)__b, 12);
10629 }
10630 
10631 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector unsigned short __a,__vector unsigned short __b)10632 vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
10633   return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12);
10634 }
10635 
10636 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector signed int __a,__vector signed int __b)10637 vec_find_any_ne(__vector signed int __a, __vector signed int __b) {
10638   return (__vector __bool int)
10639     __builtin_s390_vfaef((__vector unsigned int)__a,
10640                          (__vector unsigned int)__b, 12);
10641 }
10642 
10643 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector __bool int __a,__vector __bool int __b)10644 vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) {
10645   return (__vector __bool int)
10646     __builtin_s390_vfaef((__vector unsigned int)__a,
10647                          (__vector unsigned int)__b, 12);
10648 }
10649 
10650 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector unsigned int __a,__vector unsigned int __b)10651 vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
10652   return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12);
10653 }
10654 
10655 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
10656 
10657 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector signed char __a,__vector signed char __b,int * __cc)10658 vec_find_any_ne_cc(__vector signed char __a,
10659                    __vector signed char __b, int *__cc) {
10660   return (__vector __bool char)
10661     __builtin_s390_vfaebs((__vector unsigned char)__a,
10662                           (__vector unsigned char)__b, 12, __cc);
10663 }
10664 
10665 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10666 vec_find_any_ne_cc(__vector __bool char __a,
10667                    __vector __bool char __b, int *__cc) {
10668   return (__vector __bool char)
10669     __builtin_s390_vfaebs((__vector unsigned char)__a,
10670                           (__vector unsigned char)__b, 12, __cc);
10671 }
10672 
10673 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10674 vec_find_any_ne_cc(__vector unsigned char __a,
10675                    __vector unsigned char __b, int *__cc) {
10676   return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
10677 }
10678 
10679 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector signed short __a,__vector signed short __b,int * __cc)10680 vec_find_any_ne_cc(__vector signed short __a,
10681                    __vector signed short __b, int *__cc) {
10682   return (__vector __bool short)
10683     __builtin_s390_vfaehs((__vector unsigned short)__a,
10684                           (__vector unsigned short)__b, 12, __cc);
10685 }
10686 
10687 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10688 vec_find_any_ne_cc(__vector __bool short __a,
10689                    __vector __bool short __b, int *__cc) {
10690   return (__vector __bool short)
10691     __builtin_s390_vfaehs((__vector unsigned short)__a,
10692                           (__vector unsigned short)__b, 12, __cc);
10693 }
10694 
10695 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10696 vec_find_any_ne_cc(__vector unsigned short __a,
10697                    __vector unsigned short __b, int *__cc) {
10698   return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
10699 }
10700 
10701 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector signed int __a,__vector signed int __b,int * __cc)10702 vec_find_any_ne_cc(__vector signed int __a,
10703                    __vector signed int __b, int *__cc) {
10704   return (__vector __bool int)
10705     __builtin_s390_vfaefs((__vector unsigned int)__a,
10706                           (__vector unsigned int)__b, 12, __cc);
10707 }
10708 
10709 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10710 vec_find_any_ne_cc(__vector __bool int __a,
10711                    __vector __bool int __b, int *__cc) {
10712   return (__vector __bool int)
10713     __builtin_s390_vfaefs((__vector unsigned int)__a,
10714                           (__vector unsigned int)__b, 12, __cc);
10715 }
10716 
10717 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10718 vec_find_any_ne_cc(__vector unsigned int __a,
10719                    __vector unsigned int __b, int *__cc) {
10720   return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
10721 }
10722 
10723 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
10724 
10725 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx(__vector signed char __a,__vector signed char __b)10726 vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) {
10727   return (__vector signed char)
10728     __builtin_s390_vfaeb((__vector unsigned char)__a,
10729                          (__vector unsigned char)__b, 8);
10730 }
10731 
10732 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector __bool char __a,__vector __bool char __b)10733 vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) {
10734   return __builtin_s390_vfaeb((__vector unsigned char)__a,
10735                               (__vector unsigned char)__b, 8);
10736 }
10737 
10738 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector unsigned char __a,__vector unsigned char __b)10739 vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) {
10740   return __builtin_s390_vfaeb(__a, __b, 8);
10741 }
10742 
10743 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx(__vector signed short __a,__vector signed short __b)10744 vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) {
10745   return (__vector signed short)
10746     __builtin_s390_vfaeh((__vector unsigned short)__a,
10747                          (__vector unsigned short)__b, 8);
10748 }
10749 
10750 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector __bool short __a,__vector __bool short __b)10751 vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) {
10752   return __builtin_s390_vfaeh((__vector unsigned short)__a,
10753                               (__vector unsigned short)__b, 8);
10754 }
10755 
10756 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector unsigned short __a,__vector unsigned short __b)10757 vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) {
10758   return __builtin_s390_vfaeh(__a, __b, 8);
10759 }
10760 
10761 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx(__vector signed int __a,__vector signed int __b)10762 vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) {
10763   return (__vector signed int)
10764     __builtin_s390_vfaef((__vector unsigned int)__a,
10765                          (__vector unsigned int)__b, 8);
10766 }
10767 
10768 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector __bool int __a,__vector __bool int __b)10769 vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) {
10770   return __builtin_s390_vfaef((__vector unsigned int)__a,
10771                               (__vector unsigned int)__b, 8);
10772 }
10773 
10774 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector unsigned int __a,__vector unsigned int __b)10775 vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) {
10776   return __builtin_s390_vfaef(__a, __b, 8);
10777 }
10778 
10779 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
10780 
10781 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)10782 vec_find_any_ne_idx_cc(__vector signed char __a,
10783                        __vector signed char __b, int *__cc) {
10784   return (__vector signed char)
10785     __builtin_s390_vfaebs((__vector unsigned char)__a,
10786                           (__vector unsigned char)__b, 8, __cc);
10787 }
10788 
10789 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10790 vec_find_any_ne_idx_cc(__vector __bool char __a,
10791                        __vector __bool char __b, int *__cc) {
10792   return __builtin_s390_vfaebs((__vector unsigned char)__a,
10793                                (__vector unsigned char)__b, 8, __cc);
10794 }
10795 
10796 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10797 vec_find_any_ne_idx_cc(__vector unsigned char __a,
10798                        __vector unsigned char __b,
10799                        int *__cc) {
10800   return __builtin_s390_vfaebs(__a, __b, 8, __cc);
10801 }
10802 
10803 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)10804 vec_find_any_ne_idx_cc(__vector signed short __a,
10805                        __vector signed short __b, int *__cc) {
10806   return (__vector signed short)
10807     __builtin_s390_vfaehs((__vector unsigned short)__a,
10808                           (__vector unsigned short)__b, 8, __cc);
10809 }
10810 
10811 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10812 vec_find_any_ne_idx_cc(__vector __bool short __a,
10813                        __vector __bool short __b, int *__cc) {
10814   return __builtin_s390_vfaehs((__vector unsigned short)__a,
10815                                (__vector unsigned short)__b, 8, __cc);
10816 }
10817 
10818 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10819 vec_find_any_ne_idx_cc(__vector unsigned short __a,
10820                        __vector unsigned short __b, int *__cc) {
10821   return __builtin_s390_vfaehs(__a, __b, 8, __cc);
10822 }
10823 
10824 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)10825 vec_find_any_ne_idx_cc(__vector signed int __a,
10826                        __vector signed int __b, int *__cc) {
10827   return (__vector signed int)
10828     __builtin_s390_vfaefs((__vector unsigned int)__a,
10829                           (__vector unsigned int)__b, 8, __cc);
10830 }
10831 
10832 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10833 vec_find_any_ne_idx_cc(__vector __bool int __a,
10834                        __vector __bool int __b, int *__cc) {
10835   return __builtin_s390_vfaefs((__vector unsigned int)__a,
10836                                (__vector unsigned int)__b, 8, __cc);
10837 }
10838 
10839 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10840 vec_find_any_ne_idx_cc(__vector unsigned int __a,
10841                        __vector unsigned int __b, int *__cc) {
10842   return __builtin_s390_vfaefs(__a, __b, 8, __cc);
10843 }
10844 
10845 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
10846 
10847 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_or_0_idx(__vector signed char __a,__vector signed char __b)10848 vec_find_any_ne_or_0_idx(__vector signed char __a,
10849                          __vector signed char __b) {
10850   return (__vector signed char)
10851     __builtin_s390_vfaezb((__vector unsigned char)__a,
10852                           (__vector unsigned char)__b, 8);
10853 }
10854 
10855 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx(__vector __bool char __a,__vector __bool char __b)10856 vec_find_any_ne_or_0_idx(__vector __bool char __a,
10857                          __vector __bool char __b) {
10858   return __builtin_s390_vfaezb((__vector unsigned char)__a,
10859                                (__vector unsigned char)__b, 8);
10860 }
10861 
10862 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)10863 vec_find_any_ne_or_0_idx(__vector unsigned char __a,
10864                          __vector unsigned char __b) {
10865   return __builtin_s390_vfaezb(__a, __b, 8);
10866 }
10867 
10868 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_or_0_idx(__vector signed short __a,__vector signed short __b)10869 vec_find_any_ne_or_0_idx(__vector signed short __a,
10870                          __vector signed short __b) {
10871   return (__vector signed short)
10872     __builtin_s390_vfaezh((__vector unsigned short)__a,
10873                           (__vector unsigned short)__b, 8);
10874 }
10875 
10876 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx(__vector __bool short __a,__vector __bool short __b)10877 vec_find_any_ne_or_0_idx(__vector __bool short __a,
10878                          __vector __bool short __b) {
10879   return __builtin_s390_vfaezh((__vector unsigned short)__a,
10880                                (__vector unsigned short)__b, 8);
10881 }
10882 
10883 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)10884 vec_find_any_ne_or_0_idx(__vector unsigned short __a,
10885                          __vector unsigned short __b) {
10886   return __builtin_s390_vfaezh(__a, __b, 8);
10887 }
10888 
10889 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_or_0_idx(__vector signed int __a,__vector signed int __b)10890 vec_find_any_ne_or_0_idx(__vector signed int __a,
10891                          __vector signed int __b) {
10892   return (__vector signed int)
10893     __builtin_s390_vfaezf((__vector unsigned int)__a,
10894                           (__vector unsigned int)__b, 8);
10895 }
10896 
10897 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx(__vector __bool int __a,__vector __bool int __b)10898 vec_find_any_ne_or_0_idx(__vector __bool int __a,
10899                          __vector __bool int __b) {
10900   return __builtin_s390_vfaezf((__vector unsigned int)__a,
10901                                (__vector unsigned int)__b, 8);
10902 }
10903 
10904 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)10905 vec_find_any_ne_or_0_idx(__vector unsigned int __a,
10906                          __vector unsigned int __b) {
10907   return __builtin_s390_vfaezf(__a, __b, 8);
10908 }
10909 
10910 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
10911 
10912 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)10913 vec_find_any_ne_or_0_idx_cc(__vector signed char __a,
10914                             __vector signed char __b, int *__cc) {
10915   return (__vector signed char)
10916     __builtin_s390_vfaezbs((__vector unsigned char)__a,
10917                            (__vector unsigned char)__b, 8, __cc);
10918 }
10919 
10920 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)10921 vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,
10922                             __vector __bool char __b, int *__cc) {
10923   return __builtin_s390_vfaezbs((__vector unsigned char)__a,
10924                                 (__vector unsigned char)__b, 8, __cc);
10925 }
10926 
10927 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)10928 vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,
10929                             __vector unsigned char __b, int *__cc) {
10930   return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
10931 }
10932 
10933 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)10934 vec_find_any_ne_or_0_idx_cc(__vector signed short __a,
10935                             __vector signed short __b, int *__cc) {
10936   return (__vector signed short)
10937     __builtin_s390_vfaezhs((__vector unsigned short)__a,
10938                            (__vector unsigned short)__b, 8, __cc);
10939 }
10940 
10941 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)10942 vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,
10943                             __vector __bool short __b, int *__cc) {
10944   return __builtin_s390_vfaezhs((__vector unsigned short)__a,
10945                                 (__vector unsigned short)__b, 8, __cc);
10946 }
10947 
10948 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)10949 vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,
10950                             __vector unsigned short __b, int *__cc) {
10951   return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
10952 }
10953 
10954 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)10955 vec_find_any_ne_or_0_idx_cc(__vector signed int __a,
10956                             __vector signed int __b, int *__cc) {
10957   return (__vector signed int)
10958     __builtin_s390_vfaezfs((__vector unsigned int)__a,
10959                            (__vector unsigned int)__b, 8, __cc);
10960 }
10961 
10962 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)10963 vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,
10964                             __vector __bool int __b, int *__cc) {
10965   return __builtin_s390_vfaezfs((__vector unsigned int)__a,
10966                                 (__vector unsigned int)__b, 8, __cc);
10967 }
10968 
10969 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)10970 vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,
10971                             __vector unsigned int __b, int *__cc) {
10972   return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
10973 }
10974 
10975 /*-- vec_search_string_cc ---------------------------------------------------*/
10976 
10977 #if __ARCH__ >= 13
10978 
10979 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)10980 vec_search_string_cc(__vector signed char __a, __vector signed char __b,
10981                      __vector unsigned char __c, int *__cc) {
10982   return __builtin_s390_vstrsb((__vector unsigned char)__a,
10983                                (__vector unsigned char)__b, __c, __cc);
10984 }
10985 
10986 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)10987 vec_search_string_cc(__vector __bool char __a, __vector __bool char __b,
10988                      __vector unsigned char __c, int *__cc) {
10989   return __builtin_s390_vstrsb((__vector unsigned char)__a,
10990                                (__vector unsigned char)__b, __c, __cc);
10991 }
10992 
10993 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)10994 vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b,
10995                      __vector unsigned char __c, int *__cc) {
10996   return __builtin_s390_vstrsb(__a, __b, __c, __cc);
10997 }
10998 
10999 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)11000 vec_search_string_cc(__vector signed short __a, __vector signed short __b,
11001                      __vector unsigned char __c, int *__cc) {
11002   return __builtin_s390_vstrsh((__vector unsigned short)__a,
11003                                (__vector unsigned short)__b, __c, __cc);
11004 }
11005 
11006 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)11007 vec_search_string_cc(__vector __bool short __a, __vector __bool short __b,
11008                      __vector unsigned char __c, int *__cc) {
11009   return __builtin_s390_vstrsh((__vector unsigned short)__a,
11010                                (__vector unsigned short)__b, __c, __cc);
11011 }
11012 
11013 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)11014 vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b,
11015                      __vector unsigned char __c, int *__cc) {
11016   return __builtin_s390_vstrsh(__a, __b, __c, __cc);
11017 }
11018 
11019 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)11020 vec_search_string_cc(__vector signed int __a, __vector signed int __b,
11021                      __vector unsigned char __c, int *__cc) {
11022   return __builtin_s390_vstrsf((__vector unsigned int)__a,
11023                                (__vector unsigned int)__b, __c, __cc);
11024 }
11025 
11026 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)11027 vec_search_string_cc(__vector __bool int __a, __vector __bool int __b,
11028                      __vector unsigned char __c, int *__cc) {
11029   return __builtin_s390_vstrsf((__vector unsigned int)__a,
11030                                (__vector unsigned int)__b, __c, __cc);
11031 }
11032 
11033 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)11034 vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b,
11035                      __vector unsigned char __c, int *__cc) {
11036   return __builtin_s390_vstrsf(__a, __b, __c, __cc);
11037 }
11038 
11039 #endif
11040 
11041 /*-- vec_search_string_until_zero_cc ----------------------------------------*/
11042 
11043 #if __ARCH__ >= 13
11044 
11045 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)11046 vec_search_string_until_zero_cc(__vector signed char __a,
11047                                 __vector signed char __b,
11048                                 __vector unsigned char __c, int *__cc) {
11049   return __builtin_s390_vstrszb((__vector unsigned char)__a,
11050                                 (__vector unsigned char)__b, __c, __cc);
11051 }
11052 
11053 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)11054 vec_search_string_until_zero_cc(__vector __bool char __a,
11055                                 __vector __bool char __b,
11056                                 __vector unsigned char __c, int *__cc) {
11057   return __builtin_s390_vstrszb((__vector unsigned char)__a,
11058                                 (__vector unsigned char)__b, __c, __cc);
11059 }
11060 
11061 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)11062 vec_search_string_until_zero_cc(__vector unsigned char __a,
11063                                 __vector unsigned char __b,
11064                                 __vector unsigned char __c, int *__cc) {
11065   return __builtin_s390_vstrszb(__a, __b, __c, __cc);
11066 }
11067 
11068 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)11069 vec_search_string_until_zero_cc(__vector signed short __a,
11070                                 __vector signed short __b,
11071                                 __vector unsigned char __c, int *__cc) {
11072   return __builtin_s390_vstrszh((__vector unsigned short)__a,
11073                                 (__vector unsigned short)__b, __c, __cc);
11074 }
11075 
11076 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)11077 vec_search_string_until_zero_cc(__vector __bool short __a,
11078                                 __vector __bool short __b,
11079                                 __vector unsigned char __c, int *__cc) {
11080   return __builtin_s390_vstrszh((__vector unsigned short)__a,
11081                                 (__vector unsigned short)__b, __c, __cc);
11082 }
11083 
11084 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)11085 vec_search_string_until_zero_cc(__vector unsigned short __a,
11086                                 __vector unsigned short __b,
11087                                 __vector unsigned char __c, int *__cc) {
11088   return __builtin_s390_vstrszh(__a, __b, __c, __cc);
11089 }
11090 
11091 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)11092 vec_search_string_until_zero_cc(__vector signed int __a,
11093                                 __vector signed int __b,
11094                                 __vector unsigned char __c, int *__cc) {
11095   return __builtin_s390_vstrszf((__vector unsigned int)__a,
11096                                 (__vector unsigned int)__b, __c, __cc);
11097 }
11098 
11099 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)11100 vec_search_string_until_zero_cc(__vector __bool int __a,
11101                                 __vector __bool int __b,
11102                                 __vector unsigned char __c, int *__cc) {
11103   return __builtin_s390_vstrszf((__vector unsigned int)__a,
11104                                 (__vector unsigned int)__b, __c, __cc);
11105 }
11106 
11107 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)11108 vec_search_string_until_zero_cc(__vector unsigned int __a,
11109                                 __vector unsigned int __b,
11110                                 __vector unsigned char __c, int *__cc) {
11111   return __builtin_s390_vstrszf(__a, __b, __c, __cc);
11112 }
11113 
11114 #endif
11115 
11116 #undef __constant_pow2_range
11117 #undef __constant_range
11118 #undef __constant
11119 #undef __ATTRS_o
11120 #undef __ATTRS_o_ai
11121 #undef __ATTRS_ai
11122 
11123 #else
11124 
11125 #error "Use -fzvector to enable vector extensions"
11126 
11127 #endif
11128