xref: /llvm-project/clang/lib/Headers/vecintrin.h (revision 8424bf207efd89eacf2fe893b67be98d535e1db6)
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
46 vec_extract(__vector signed char __vec, int __index) {
47   return __vec[__index & 15];
48 }
49 
50 static inline __ATTRS_o_ai unsigned char
51 vec_extract(__vector __bool char __vec, int __index) {
52   return __vec[__index & 15];
53 }
54 
55 static inline __ATTRS_o_ai unsigned char
56 vec_extract(__vector unsigned char __vec, int __index) {
57   return __vec[__index & 15];
58 }
59 
60 static inline __ATTRS_o_ai signed short
61 vec_extract(__vector signed short __vec, int __index) {
62   return __vec[__index & 7];
63 }
64 
65 static inline __ATTRS_o_ai unsigned short
66 vec_extract(__vector __bool short __vec, int __index) {
67   return __vec[__index & 7];
68 }
69 
70 static inline __ATTRS_o_ai unsigned short
71 vec_extract(__vector unsigned short __vec, int __index) {
72   return __vec[__index & 7];
73 }
74 
75 static inline __ATTRS_o_ai signed int
76 vec_extract(__vector signed int __vec, int __index) {
77   return __vec[__index & 3];
78 }
79 
80 static inline __ATTRS_o_ai unsigned int
81 vec_extract(__vector __bool int __vec, int __index) {
82   return __vec[__index & 3];
83 }
84 
85 static inline __ATTRS_o_ai unsigned int
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
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
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
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
107 vec_extract(__vector float __vec, int __index) {
108   return __vec[__index & 3];
109 }
110 #endif
111 
112 static inline __ATTRS_o_ai double
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 static inline __ATTRS_o_ai __vector signed __int128
472 vec_perm(__vector signed __int128 __a, __vector signed __int128 __b,
473          __vector unsigned char __c) {
474   return (__vector signed __int128)__builtin_s390_vperm(
475            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
476 }
477 
478 static inline __ATTRS_o_ai __vector unsigned __int128
479 vec_perm(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
480          __vector unsigned char __c) {
481   return (__vector unsigned __int128)__builtin_s390_vperm(
482            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
483 }
484 
485 static inline __ATTRS_o_ai __vector __bool __int128
486 vec_perm(__vector __bool __int128 __a, __vector __bool __int128 __b,
487          __vector unsigned char __c) {
488   return (__vector __bool __int128)__builtin_s390_vperm(
489            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
490 }
491 
492 #if __ARCH__ >= 12
493 static inline __ATTRS_o_ai __vector float
494 vec_perm(__vector float __a, __vector float __b,
495          __vector unsigned char __c) {
496   return (__vector float)__builtin_s390_vperm(
497            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
498 }
499 #endif
500 
501 static inline __ATTRS_o_ai __vector double
502 vec_perm(__vector double __a, __vector double __b,
503          __vector unsigned char __c) {
504   return (__vector double)__builtin_s390_vperm(
505            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
506 }
507 
508 /*-- vec_permi --------------------------------------------------------------*/
509 
510 // This prototype is deprecated.
511 extern __ATTRS_o __vector signed long long
512 vec_permi(__vector signed long long __a, __vector signed long long __b,
513           int __c)
514   __constant_range(__c, 0, 3);
515 
516 // This prototype is deprecated.
517 extern __ATTRS_o __vector unsigned long long
518 vec_permi(__vector unsigned long long __a, __vector unsigned long long __b,
519           int __c)
520   __constant_range(__c, 0, 3);
521 
522 // This prototype is deprecated.
523 extern __ATTRS_o __vector __bool long long
524 vec_permi(__vector __bool long long __a, __vector __bool long long __b,
525           int __c)
526   __constant_range(__c, 0, 3);
527 
528 // This prototype is deprecated.
529 extern __ATTRS_o __vector double
530 vec_permi(__vector double __a, __vector double __b, int __c)
531   __constant_range(__c, 0, 3);
532 
533 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
534   __builtin_s390_vpdi((__vector unsigned long long)(X), \
535                       (__vector unsigned long long)(Y), \
536                       (((Z) & 2) << 1) | ((Z) & 1)))
537 
538 /*-- vec_bperm --------------------------------------------------------------*/
539 
540 #if __ARCH__ >= 12
541 static inline __ATTRS_ai __vector unsigned long long
542 vec_bperm(__vector unsigned __int128 __a, __vector unsigned char __b) {
543   return __builtin_s390_vbperm((__vector unsigned char)__a, __b);
544 }
545 #endif
546 
547 /*-- vec_bperm_u128 ---------------------------------------------------------*/
548 
549 #if __ARCH__ >= 12
550 // This prototype is deprecated.
551 static inline __ATTRS_ai __vector unsigned long long
552 vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {
553   return __builtin_s390_vbperm(__a, __b);
554 }
555 #endif
556 
557 /*-- vec_revb ---------------------------------------------------------------*/
558 
559 static inline __ATTRS_o_ai __vector signed short
560 vec_revb(__vector signed short __vec) {
561   return (__vector signed short)
562          __builtin_s390_vlbrh((__vector unsigned short)__vec);
563 }
564 
565 static inline __ATTRS_o_ai __vector unsigned short
566 vec_revb(__vector unsigned short __vec) {
567   return __builtin_s390_vlbrh(__vec);
568 }
569 
570 static inline __ATTRS_o_ai __vector signed int
571 vec_revb(__vector signed int __vec) {
572   return (__vector signed int)
573          __builtin_s390_vlbrf((__vector unsigned int)__vec);
574 }
575 
576 static inline __ATTRS_o_ai __vector unsigned int
577 vec_revb(__vector unsigned int __vec) {
578   return __builtin_s390_vlbrf(__vec);
579 }
580 
581 static inline __ATTRS_o_ai __vector signed long long
582 vec_revb(__vector signed long long __vec) {
583   return (__vector signed long long)
584          __builtin_s390_vlbrg((__vector unsigned long long)__vec);
585 }
586 
587 static inline __ATTRS_o_ai __vector unsigned long long
588 vec_revb(__vector unsigned long long __vec) {
589   return __builtin_s390_vlbrg(__vec);
590 }
591 
592 static inline __ATTRS_o_ai __vector signed __int128
593 vec_revb(__vector signed __int128 __vec) {
594   return (__vector signed __int128)
595          __builtin_s390_vlbrq((unsigned __int128)__vec);
596 }
597 
598 static inline __ATTRS_o_ai __vector unsigned __int128
599 vec_revb(__vector unsigned __int128 __vec) {
600   return (__vector unsigned __int128)
601          __builtin_s390_vlbrq((unsigned __int128)__vec);
602 }
603 
604 #if __ARCH__ >= 12
605 static inline __ATTRS_o_ai __vector float
606 vec_revb(__vector float __vec) {
607   return (__vector float)
608          __builtin_s390_vlbrf((__vector unsigned int)__vec);
609 }
610 #endif
611 
612 static inline __ATTRS_o_ai __vector double
613 vec_revb(__vector double __vec) {
614   return (__vector double)
615          __builtin_s390_vlbrg((__vector unsigned long long)__vec);
616 }
617 
618 /*-- vec_reve ---------------------------------------------------------------*/
619 
620 static inline __ATTRS_o_ai __vector signed char
621 vec_reve(__vector signed char __vec) {
622   return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
623                                   __vec[11], __vec[10], __vec[9], __vec[8],
624                                   __vec[7], __vec[6], __vec[5], __vec[4],
625                                   __vec[3], __vec[2], __vec[1], __vec[0] };
626 }
627 
628 static inline __ATTRS_o_ai __vector unsigned char
629 vec_reve(__vector unsigned char __vec) {
630   return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
631                                     __vec[11], __vec[10], __vec[9], __vec[8],
632                                     __vec[7], __vec[6], __vec[5], __vec[4],
633                                     __vec[3], __vec[2], __vec[1], __vec[0] };
634 }
635 
636 static inline __ATTRS_o_ai __vector __bool char
637 vec_reve(__vector __bool char __vec) {
638   return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
639                                   __vec[11], __vec[10], __vec[9], __vec[8],
640                                   __vec[7], __vec[6], __vec[5], __vec[4],
641                                   __vec[3], __vec[2], __vec[1], __vec[0] };
642 }
643 
644 static inline __ATTRS_o_ai __vector signed short
645 vec_reve(__vector signed short __vec) {
646   return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
647                                    __vec[3], __vec[2], __vec[1], __vec[0] };
648 }
649 
650 static inline __ATTRS_o_ai __vector unsigned short
651 vec_reve(__vector unsigned short __vec) {
652   return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
653                                      __vec[3], __vec[2], __vec[1], __vec[0] };
654 }
655 
656 static inline __ATTRS_o_ai __vector __bool short
657 vec_reve(__vector __bool short __vec) {
658   return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
659                                    __vec[3], __vec[2], __vec[1], __vec[0] };
660 }
661 
662 static inline __ATTRS_o_ai __vector signed int
663 vec_reve(__vector signed int __vec) {
664   return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
665 }
666 
667 static inline __ATTRS_o_ai __vector unsigned int
668 vec_reve(__vector unsigned int __vec) {
669   return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
670 }
671 
672 static inline __ATTRS_o_ai __vector __bool int
673 vec_reve(__vector __bool int __vec) {
674   return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
675 }
676 
677 static inline __ATTRS_o_ai __vector signed long long
678 vec_reve(__vector signed long long __vec) {
679   return (__vector signed long long) { __vec[1], __vec[0] };
680 }
681 
682 static inline __ATTRS_o_ai __vector unsigned long long
683 vec_reve(__vector unsigned long long __vec) {
684   return (__vector unsigned long long) { __vec[1], __vec[0] };
685 }
686 
687 static inline __ATTRS_o_ai __vector __bool long long
688 vec_reve(__vector __bool long long __vec) {
689   return (__vector __bool long long) { __vec[1], __vec[0] };
690 }
691 
692 #if __ARCH__ >= 12
693 static inline __ATTRS_o_ai __vector float
694 vec_reve(__vector float __vec) {
695   return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
696 }
697 #endif
698 
699 static inline __ATTRS_o_ai __vector double
700 vec_reve(__vector double __vec) {
701   return (__vector double) { __vec[1], __vec[0] };
702 }
703 
704 /*-- vec_sel ----------------------------------------------------------------*/
705 
706 static inline __ATTRS_o_ai __vector signed char
707 vec_sel(__vector signed char __a, __vector signed char __b,
708         __vector unsigned char __c) {
709   return (((__vector signed char)__c & __b) |
710           (~(__vector signed char)__c & __a));
711 }
712 
713 static inline __ATTRS_o_ai __vector signed char
714 vec_sel(__vector signed char __a, __vector signed char __b,
715         __vector __bool char __c) {
716   return (((__vector signed char)__c & __b) |
717           (~(__vector signed char)__c & __a));
718 }
719 
720 static inline __ATTRS_o_ai __vector __bool char
721 vec_sel(__vector __bool char __a, __vector __bool char __b,
722         __vector unsigned char __c) {
723   return (((__vector __bool char)__c & __b) |
724           (~(__vector __bool char)__c & __a));
725 }
726 
727 static inline __ATTRS_o_ai __vector __bool char
728 vec_sel(__vector __bool char __a, __vector __bool char __b,
729         __vector __bool char __c) {
730   return (__c & __b) | (~__c & __a);
731 }
732 
733 static inline __ATTRS_o_ai __vector unsigned char
734 vec_sel(__vector unsigned char __a, __vector unsigned char __b,
735         __vector unsigned char __c) {
736   return (__c & __b) | (~__c & __a);
737 }
738 
739 static inline __ATTRS_o_ai __vector unsigned char
740 vec_sel(__vector unsigned char __a, __vector unsigned char __b,
741         __vector __bool char __c) {
742   return (((__vector unsigned char)__c & __b) |
743           (~(__vector unsigned char)__c & __a));
744 }
745 
746 static inline __ATTRS_o_ai __vector signed short
747 vec_sel(__vector signed short __a, __vector signed short __b,
748         __vector unsigned short __c) {
749   return (((__vector signed short)__c & __b) |
750           (~(__vector signed short)__c & __a));
751 }
752 
753 static inline __ATTRS_o_ai __vector signed short
754 vec_sel(__vector signed short __a, __vector signed short __b,
755         __vector __bool short __c) {
756   return (((__vector signed short)__c & __b) |
757           (~(__vector signed short)__c & __a));
758 }
759 
760 static inline __ATTRS_o_ai __vector __bool short
761 vec_sel(__vector __bool short __a, __vector __bool short __b,
762         __vector unsigned short __c) {
763   return (((__vector __bool short)__c & __b) |
764           (~(__vector __bool short)__c & __a));
765 }
766 
767 static inline __ATTRS_o_ai __vector __bool short
768 vec_sel(__vector __bool short __a, __vector __bool short __b,
769         __vector __bool short __c) {
770   return (__c & __b) | (~__c & __a);
771 }
772 
773 static inline __ATTRS_o_ai __vector unsigned short
774 vec_sel(__vector unsigned short __a, __vector unsigned short __b,
775         __vector unsigned short __c) {
776   return (__c & __b) | (~__c & __a);
777 }
778 
779 static inline __ATTRS_o_ai __vector unsigned short
780 vec_sel(__vector unsigned short __a, __vector unsigned short __b,
781         __vector __bool short __c) {
782   return (((__vector unsigned short)__c & __b) |
783           (~(__vector unsigned short)__c & __a));
784 }
785 
786 static inline __ATTRS_o_ai __vector signed int
787 vec_sel(__vector signed int __a, __vector signed int __b,
788         __vector unsigned int __c) {
789   return (((__vector signed int)__c & __b) |
790           (~(__vector signed int)__c & __a));
791 }
792 
793 static inline __ATTRS_o_ai __vector signed int
794 vec_sel(__vector signed int __a, __vector signed int __b,
795         __vector __bool int __c) {
796   return (((__vector signed int)__c & __b) |
797           (~(__vector signed int)__c & __a));
798 }
799 
800 static inline __ATTRS_o_ai __vector __bool int
801 vec_sel(__vector __bool int __a, __vector __bool int __b,
802         __vector unsigned int __c) {
803   return (((__vector __bool int)__c & __b) |
804           (~(__vector __bool int)__c & __a));
805 }
806 
807 static inline __ATTRS_o_ai __vector __bool int
808 vec_sel(__vector __bool int __a, __vector __bool int __b,
809         __vector __bool int __c) {
810   return (__c & __b) | (~__c & __a);
811 }
812 
813 static inline __ATTRS_o_ai __vector unsigned int
814 vec_sel(__vector unsigned int __a, __vector unsigned int __b,
815         __vector unsigned int __c) {
816   return (__c & __b) | (~__c & __a);
817 }
818 
819 static inline __ATTRS_o_ai __vector unsigned int
820 vec_sel(__vector unsigned int __a, __vector unsigned int __b,
821         __vector __bool int __c) {
822   return (((__vector unsigned int)__c & __b) |
823           (~(__vector unsigned int)__c & __a));
824 }
825 
826 static inline __ATTRS_o_ai __vector signed long long
827 vec_sel(__vector signed long long __a, __vector signed long long __b,
828         __vector unsigned long long __c) {
829   return (((__vector signed long long)__c & __b) |
830           (~(__vector signed long long)__c & __a));
831 }
832 
833 static inline __ATTRS_o_ai __vector signed long long
834 vec_sel(__vector signed long long __a, __vector signed long long __b,
835         __vector __bool long long __c) {
836   return (((__vector signed long long)__c & __b) |
837           (~(__vector signed long long)__c & __a));
838 }
839 
840 static inline __ATTRS_o_ai __vector __bool long long
841 vec_sel(__vector __bool long long __a, __vector __bool long long __b,
842         __vector unsigned long long __c) {
843   return (((__vector __bool long long)__c & __b) |
844           (~(__vector __bool long long)__c & __a));
845 }
846 
847 static inline __ATTRS_o_ai __vector __bool long long
848 vec_sel(__vector __bool long long __a, __vector __bool long long __b,
849         __vector __bool long long __c) {
850   return (__c & __b) | (~__c & __a);
851 }
852 
853 static inline __ATTRS_o_ai __vector unsigned long long
854 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
855         __vector unsigned long long __c) {
856   return (__c & __b) | (~__c & __a);
857 }
858 
859 static inline __ATTRS_o_ai __vector unsigned long long
860 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
861         __vector __bool long long __c) {
862   return (((__vector unsigned long long)__c & __b) |
863           (~(__vector unsigned long long)__c & __a));
864 }
865 
866 static inline __ATTRS_o_ai __vector signed __int128
867 vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
868         __vector unsigned __int128 __c) {
869   return (((__vector signed __int128)__c & __b) |
870           (~(__vector signed __int128)__c & __a));
871 }
872 
873 static inline __ATTRS_o_ai __vector signed __int128
874 vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
875         __vector __bool __int128 __c) {
876   return (((__vector signed __int128)__c & __b) |
877           (~(__vector signed __int128)__c & __a));
878 }
879 
880 static inline __ATTRS_o_ai __vector __bool __int128
881 vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
882         __vector unsigned __int128 __c) {
883   return (((__vector __bool __int128)__c & __b) |
884           (~(__vector __bool __int128)__c & __a));
885 }
886 
887 static inline __ATTRS_o_ai __vector __bool __int128
888 vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
889         __vector __bool __int128 __c) {
890   return (__c & __b) | (~__c & __a);
891 }
892 
893 static inline __ATTRS_o_ai __vector unsigned __int128
894 vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
895         __vector unsigned __int128 __c) {
896   return (__c & __b) | (~__c & __a);
897 }
898 
899 static inline __ATTRS_o_ai __vector unsigned __int128
900 vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
901         __vector __bool __int128 __c) {
902   return (((__vector unsigned __int128)__c & __b) |
903           (~(__vector unsigned __int128)__c & __a));
904 }
905 
906 #if __ARCH__ >= 12
907 static inline __ATTRS_o_ai __vector float
908 vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {
909   return (__vector float)((__c & (__vector unsigned int)__b) |
910                           (~__c & (__vector unsigned int)__a));
911 }
912 
913 static inline __ATTRS_o_ai __vector float
914 vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) {
915   __vector unsigned int __ac = (__vector unsigned int)__a;
916   __vector unsigned int __bc = (__vector unsigned int)__b;
917   __vector unsigned int __cc = (__vector unsigned int)__c;
918   return (__vector float)((__cc & __bc) | (~__cc & __ac));
919 }
920 #endif
921 
922 static inline __ATTRS_o_ai __vector double
923 vec_sel(__vector double __a, __vector double __b,
924         __vector unsigned long long __c) {
925   return (__vector double)((__c & (__vector unsigned long long)__b) |
926                          (~__c & (__vector unsigned long long)__a));
927 }
928 
929 static inline __ATTRS_o_ai __vector double
930 vec_sel(__vector double __a, __vector double __b,
931         __vector __bool long long __c) {
932   __vector unsigned long long __ac = (__vector unsigned long long)__a;
933   __vector unsigned long long __bc = (__vector unsigned long long)__b;
934   __vector unsigned long long __cc = (__vector unsigned long long)__c;
935   return (__vector double)((__cc & __bc) | (~__cc & __ac));
936 }
937 
938 /*-- vec_gather_element -----------------------------------------------------*/
939 
940 static inline __ATTRS_o_ai __vector signed int
941 vec_gather_element(__vector signed int __vec,
942                    __vector unsigned int __offset,
943                    const signed int *__ptr, int __index)
944   __constant_range(__index, 0, 3) {
945   __vec[__index] = *(const signed int *)(
946     (const char *)__ptr + __offset[__index]);
947   return __vec;
948 }
949 
950 static inline __ATTRS_o_ai __vector __bool int
951 vec_gather_element(__vector __bool int __vec,
952                    __vector unsigned int __offset,
953                    const unsigned int *__ptr, int __index)
954   __constant_range(__index, 0, 3) {
955   __vec[__index] = *(const unsigned int *)(
956     (const char *)__ptr + __offset[__index]);
957   return __vec;
958 }
959 
960 static inline __ATTRS_o_ai __vector unsigned int
961 vec_gather_element(__vector unsigned int __vec,
962                    __vector unsigned int __offset,
963                    const unsigned int *__ptr, int __index)
964   __constant_range(__index, 0, 3) {
965   __vec[__index] = *(const unsigned int *)(
966     (const char *)__ptr + __offset[__index]);
967   return __vec;
968 }
969 
970 static inline __ATTRS_o_ai __vector signed long long
971 vec_gather_element(__vector signed long long __vec,
972                    __vector unsigned long long __offset,
973                    const signed long long *__ptr, int __index)
974   __constant_range(__index, 0, 1) {
975   __vec[__index] = *(const signed long long *)(
976     (const char *)__ptr + __offset[__index]);
977   return __vec;
978 }
979 
980 static inline __ATTRS_o_ai __vector __bool long long
981 vec_gather_element(__vector __bool long long __vec,
982                    __vector unsigned long long __offset,
983                    const unsigned long long *__ptr, int __index)
984   __constant_range(__index, 0, 1) {
985   __vec[__index] = *(const unsigned long long *)(
986     (const char *)__ptr + __offset[__index]);
987   return __vec;
988 }
989 
990 static inline __ATTRS_o_ai __vector unsigned long long
991 vec_gather_element(__vector unsigned long long __vec,
992                    __vector unsigned long long __offset,
993                    const unsigned long long *__ptr, int __index)
994   __constant_range(__index, 0, 1) {
995   __vec[__index] = *(const unsigned long long *)(
996     (const char *)__ptr + __offset[__index]);
997   return __vec;
998 }
999 
1000 #if __ARCH__ >= 12
1001 static inline __ATTRS_o_ai __vector float
1002 vec_gather_element(__vector float __vec,
1003                    __vector unsigned int __offset,
1004                    const float *__ptr, int __index)
1005   __constant_range(__index, 0, 3) {
1006   __vec[__index] = *(const float *)(
1007     (const char *)__ptr + __offset[__index]);
1008   return __vec;
1009 }
1010 #endif
1011 
1012 static inline __ATTRS_o_ai __vector double
1013 vec_gather_element(__vector double __vec,
1014                    __vector unsigned long long __offset,
1015                    const double *__ptr, int __index)
1016   __constant_range(__index, 0, 1) {
1017   __vec[__index] = *(const double *)(
1018     (const char *)__ptr + __offset[__index]);
1019   return __vec;
1020 }
1021 
1022 /*-- vec_scatter_element ----------------------------------------------------*/
1023 
1024 static inline __ATTRS_o_ai void
1025 vec_scatter_element(__vector signed int __vec,
1026                     __vector unsigned int __offset,
1027                     signed int *__ptr, int __index)
1028   __constant_range(__index, 0, 3) {
1029   *(signed int *)((char *)__ptr + __offset[__index]) =
1030     __vec[__index];
1031 }
1032 
1033 static inline __ATTRS_o_ai void
1034 vec_scatter_element(__vector __bool int __vec,
1035                     __vector unsigned int __offset,
1036                     unsigned int *__ptr, int __index)
1037   __constant_range(__index, 0, 3) {
1038   *(unsigned int *)((char *)__ptr + __offset[__index]) =
1039     __vec[__index];
1040 }
1041 
1042 static inline __ATTRS_o_ai void
1043 vec_scatter_element(__vector unsigned int __vec,
1044                     __vector unsigned int __offset,
1045                     unsigned int *__ptr, int __index)
1046   __constant_range(__index, 0, 3) {
1047   *(unsigned int *)((char *)__ptr + __offset[__index]) =
1048     __vec[__index];
1049 }
1050 
1051 static inline __ATTRS_o_ai void
1052 vec_scatter_element(__vector signed long long __vec,
1053                     __vector unsigned long long __offset,
1054                     signed long long *__ptr, int __index)
1055   __constant_range(__index, 0, 1) {
1056   *(signed long long *)((char *)__ptr + __offset[__index]) =
1057     __vec[__index];
1058 }
1059 
1060 static inline __ATTRS_o_ai void
1061 vec_scatter_element(__vector __bool long long __vec,
1062                     __vector unsigned long long __offset,
1063                     unsigned long long *__ptr, int __index)
1064   __constant_range(__index, 0, 1) {
1065   *(unsigned long long *)((char *)__ptr + __offset[__index]) =
1066     __vec[__index];
1067 }
1068 
1069 static inline __ATTRS_o_ai void
1070 vec_scatter_element(__vector unsigned long long __vec,
1071                     __vector unsigned long long __offset,
1072                     unsigned long long *__ptr, int __index)
1073   __constant_range(__index, 0, 1) {
1074   *(unsigned long long *)((char *)__ptr + __offset[__index]) =
1075     __vec[__index];
1076 }
1077 
1078 #if __ARCH__ >= 12
1079 static inline __ATTRS_o_ai void
1080 vec_scatter_element(__vector float __vec,
1081                     __vector unsigned int __offset,
1082                     float *__ptr, int __index)
1083   __constant_range(__index, 0, 3) {
1084   *(float *)((char *)__ptr + __offset[__index]) =
1085     __vec[__index];
1086 }
1087 #endif
1088 
1089 static inline __ATTRS_o_ai void
1090 vec_scatter_element(__vector double __vec,
1091                     __vector unsigned long long __offset,
1092                     double *__ptr, int __index)
1093   __constant_range(__index, 0, 1) {
1094   *(double *)((char *)__ptr + __offset[__index]) =
1095     __vec[__index];
1096 }
1097 
1098 /*-- vec_xl -----------------------------------------------------------------*/
1099 
1100 static inline __ATTRS_o_ai __vector signed char
1101 vec_xl(long __offset, const signed char *__ptr) {
1102   __vector signed char V;
1103   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1104                    sizeof(__vector signed char));
1105   return V;
1106 }
1107 
1108 static inline __ATTRS_o_ai __vector unsigned char
1109 vec_xl(long __offset, const unsigned char *__ptr) {
1110   __vector unsigned char V;
1111   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1112                    sizeof(__vector unsigned char));
1113   return V;
1114 }
1115 
1116 static inline __ATTRS_o_ai __vector signed short
1117 vec_xl(long __offset, const signed short *__ptr) {
1118   __vector signed short V;
1119   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1120                    sizeof(__vector signed short));
1121   return V;
1122 }
1123 
1124 static inline __ATTRS_o_ai __vector unsigned short
1125 vec_xl(long __offset, const unsigned short *__ptr) {
1126   __vector unsigned short V;
1127   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1128                    sizeof(__vector unsigned short));
1129   return V;
1130 }
1131 
1132 static inline __ATTRS_o_ai __vector signed int
1133 vec_xl(long __offset, const signed int *__ptr) {
1134   __vector signed int V;
1135   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1136                    sizeof(__vector signed int));
1137   return V;
1138 }
1139 
1140 static inline __ATTRS_o_ai __vector unsigned int
1141 vec_xl(long __offset, const unsigned int *__ptr) {
1142   __vector unsigned int V;
1143   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1144                    sizeof(__vector unsigned int));
1145   return V;
1146 }
1147 
1148 static inline __ATTRS_o_ai __vector signed long long
1149 vec_xl(long __offset, const signed long long *__ptr) {
1150   __vector signed long long V;
1151   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1152                    sizeof(__vector signed long long));
1153   return V;
1154 }
1155 
1156 static inline __ATTRS_o_ai __vector unsigned long long
1157 vec_xl(long __offset, const unsigned long long *__ptr) {
1158   __vector unsigned long long V;
1159   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1160                    sizeof(__vector unsigned long long));
1161   return V;
1162 }
1163 
1164 static inline __ATTRS_o_ai __vector signed __int128
1165 vec_xl(long __offset, const signed __int128 *__ptr) {
1166   __vector signed __int128 V;
1167   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1168                    sizeof(__vector signed __int128));
1169   return V;
1170 }
1171 
1172 static inline __ATTRS_o_ai __vector unsigned __int128
1173 vec_xl(long __offset, const unsigned __int128 *__ptr) {
1174   __vector unsigned __int128 V;
1175   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1176                    sizeof(__vector unsigned __int128));
1177   return V;
1178 }
1179 
1180 #if __ARCH__ >= 12
1181 static inline __ATTRS_o_ai __vector float
1182 vec_xl(long __offset, const float *__ptr) {
1183   __vector float V;
1184   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1185                    sizeof(__vector float));
1186   return V;
1187 }
1188 #endif
1189 
1190 static inline __ATTRS_o_ai __vector double
1191 vec_xl(long __offset, const double *__ptr) {
1192   __vector double V;
1193   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1194                    sizeof(__vector double));
1195   return V;
1196 }
1197 
1198 /*-- vec_xld2 ---------------------------------------------------------------*/
1199 
1200 // This prototype is deprecated.
1201 static inline __ATTRS_o_ai __vector signed char
1202 vec_xld2(long __offset, const signed char *__ptr) {
1203   __vector signed char V;
1204   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1205                    sizeof(__vector signed char));
1206   return V;
1207 }
1208 
1209 // This prototype is deprecated.
1210 static inline __ATTRS_o_ai __vector unsigned char
1211 vec_xld2(long __offset, const unsigned char *__ptr) {
1212   __vector unsigned char V;
1213   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1214                    sizeof(__vector unsigned char));
1215   return V;
1216 }
1217 
1218 // This prototype is deprecated.
1219 static inline __ATTRS_o_ai __vector signed short
1220 vec_xld2(long __offset, const signed short *__ptr) {
1221   __vector signed short V;
1222   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1223                    sizeof(__vector signed short));
1224   return V;
1225 }
1226 
1227 // This prototype is deprecated.
1228 static inline __ATTRS_o_ai __vector unsigned short
1229 vec_xld2(long __offset, const unsigned short *__ptr) {
1230   __vector unsigned short V;
1231   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1232                    sizeof(__vector unsigned short));
1233   return V;
1234 }
1235 
1236 // This prototype is deprecated.
1237 static inline __ATTRS_o_ai __vector signed int
1238 vec_xld2(long __offset, const signed int *__ptr) {
1239   __vector signed int V;
1240   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1241                    sizeof(__vector signed int));
1242   return V;
1243 }
1244 
1245 // This prototype is deprecated.
1246 static inline __ATTRS_o_ai __vector unsigned int
1247 vec_xld2(long __offset, const unsigned int *__ptr) {
1248   __vector unsigned int V;
1249   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1250                    sizeof(__vector unsigned int));
1251   return V;
1252 }
1253 
1254 // This prototype is deprecated.
1255 static inline __ATTRS_o_ai __vector signed long long
1256 vec_xld2(long __offset, const signed long long *__ptr) {
1257   __vector signed long long V;
1258   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1259                    sizeof(__vector signed long long));
1260   return V;
1261 }
1262 
1263 // This prototype is deprecated.
1264 static inline __ATTRS_o_ai __vector unsigned long long
1265 vec_xld2(long __offset, const unsigned long long *__ptr) {
1266   __vector unsigned long long V;
1267   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1268                    sizeof(__vector unsigned long long));
1269   return V;
1270 }
1271 
1272 // This prototype is deprecated.
1273 static inline __ATTRS_o_ai __vector double
1274 vec_xld2(long __offset, const double *__ptr) {
1275   __vector double V;
1276   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1277                    sizeof(__vector double));
1278   return V;
1279 }
1280 
1281 /*-- vec_xlw4 ---------------------------------------------------------------*/
1282 
1283 // This prototype is deprecated.
1284 static inline __ATTRS_o_ai __vector signed char
1285 vec_xlw4(long __offset, const signed char *__ptr) {
1286   __vector signed char V;
1287   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1288                    sizeof(__vector signed char));
1289   return V;
1290 }
1291 
1292 // This prototype is deprecated.
1293 static inline __ATTRS_o_ai __vector unsigned char
1294 vec_xlw4(long __offset, const unsigned char *__ptr) {
1295   __vector unsigned char V;
1296   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1297                    sizeof(__vector unsigned char));
1298   return V;
1299 }
1300 
1301 // This prototype is deprecated.
1302 static inline __ATTRS_o_ai __vector signed short
1303 vec_xlw4(long __offset, const signed short *__ptr) {
1304   __vector signed short V;
1305   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1306                    sizeof(__vector signed short));
1307   return V;
1308 }
1309 
1310 // This prototype is deprecated.
1311 static inline __ATTRS_o_ai __vector unsigned short
1312 vec_xlw4(long __offset, const unsigned short *__ptr) {
1313   __vector unsigned short V;
1314   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1315                    sizeof(__vector unsigned short));
1316   return V;
1317 }
1318 
1319 // This prototype is deprecated.
1320 static inline __ATTRS_o_ai __vector signed int
1321 vec_xlw4(long __offset, const signed int *__ptr) {
1322   __vector signed int V;
1323   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1324                    sizeof(__vector signed int));
1325   return V;
1326 }
1327 
1328 // This prototype is deprecated.
1329 static inline __ATTRS_o_ai __vector unsigned int
1330 vec_xlw4(long __offset, const unsigned int *__ptr) {
1331   __vector unsigned int V;
1332   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1333                    sizeof(__vector unsigned int));
1334   return V;
1335 }
1336 
1337 /*-- vec_xst ----------------------------------------------------------------*/
1338 
1339 static inline __ATTRS_o_ai void
1340 vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {
1341   __vector signed char V = __vec;
1342   __builtin_memcpy(((char *)__ptr + __offset), &V,
1343                    sizeof(__vector signed char));
1344 }
1345 
1346 static inline __ATTRS_o_ai void
1347 vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1348   __vector unsigned char V = __vec;
1349   __builtin_memcpy(((char *)__ptr + __offset), &V,
1350                    sizeof(__vector unsigned char));
1351 }
1352 
1353 static inline __ATTRS_o_ai void
1354 vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {
1355   __vector signed short V = __vec;
1356   __builtin_memcpy(((char *)__ptr + __offset), &V,
1357                    sizeof(__vector signed short));
1358 }
1359 
1360 static inline __ATTRS_o_ai void
1361 vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1362   __vector unsigned short V = __vec;
1363   __builtin_memcpy(((char *)__ptr + __offset), &V,
1364                    sizeof(__vector unsigned short));
1365 }
1366 
1367 static inline __ATTRS_o_ai void
1368 vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {
1369   __vector signed int V = __vec;
1370   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1371 }
1372 
1373 static inline __ATTRS_o_ai void
1374 vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1375   __vector unsigned int V = __vec;
1376   __builtin_memcpy(((char *)__ptr + __offset), &V,
1377                    sizeof(__vector unsigned int));
1378 }
1379 
1380 static inline __ATTRS_o_ai void
1381 vec_xst(__vector signed long long __vec, long __offset,
1382         signed long long *__ptr) {
1383   __vector signed long long V = __vec;
1384   __builtin_memcpy(((char *)__ptr + __offset), &V,
1385                    sizeof(__vector signed long long));
1386 }
1387 
1388 static inline __ATTRS_o_ai void
1389 vec_xst(__vector unsigned long long __vec, long __offset,
1390         unsigned long long *__ptr) {
1391   __vector unsigned long long V = __vec;
1392   __builtin_memcpy(((char *)__ptr + __offset), &V,
1393                    sizeof(__vector unsigned long long));
1394 }
1395 
1396 static inline __ATTRS_o_ai void
1397 vec_xst(__vector signed __int128 __vec, long __offset,
1398         signed __int128 *__ptr) {
1399   __vector signed __int128 V = __vec;
1400   __builtin_memcpy(((char *)__ptr + __offset), &V,
1401                    sizeof(__vector signed __int128));
1402 }
1403 
1404 static inline __ATTRS_o_ai void
1405 vec_xst(__vector unsigned __int128 __vec, long __offset,
1406         unsigned __int128 *__ptr) {
1407   __vector unsigned __int128 V = __vec;
1408   __builtin_memcpy(((char *)__ptr + __offset), &V,
1409                    sizeof(__vector unsigned __int128));
1410 }
1411 
1412 #if __ARCH__ >= 12
1413 static inline __ATTRS_o_ai void
1414 vec_xst(__vector float __vec, long __offset, float *__ptr) {
1415   __vector float V = __vec;
1416   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector float));
1417 }
1418 #endif
1419 
1420 static inline __ATTRS_o_ai void
1421 vec_xst(__vector double __vec, long __offset, double *__ptr) {
1422   __vector double V = __vec;
1423   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1424 }
1425 
1426 /*-- vec_xstd2 --------------------------------------------------------------*/
1427 
1428 // This prototype is deprecated.
1429 static inline __ATTRS_o_ai void
1430 vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {
1431   __vector signed char V = __vec;
1432   __builtin_memcpy(((char *)__ptr + __offset), &V,
1433                    sizeof(__vector signed char));
1434 }
1435 
1436 // This prototype is deprecated.
1437 static inline __ATTRS_o_ai void
1438 vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1439   __vector unsigned char V = __vec;
1440   __builtin_memcpy(((char *)__ptr + __offset), &V,
1441                    sizeof(__vector unsigned char));
1442 }
1443 
1444 // This prototype is deprecated.
1445 static inline __ATTRS_o_ai void
1446 vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {
1447   __vector signed short V = __vec;
1448   __builtin_memcpy(((char *)__ptr + __offset), &V,
1449                    sizeof(__vector signed short));
1450 }
1451 
1452 // This prototype is deprecated.
1453 static inline __ATTRS_o_ai void
1454 vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1455   __vector unsigned short V = __vec;
1456   __builtin_memcpy(((char *)__ptr + __offset), &V,
1457                    sizeof(__vector unsigned short));
1458 }
1459 
1460 // This prototype is deprecated.
1461 static inline __ATTRS_o_ai void
1462 vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {
1463   __vector signed int V = __vec;
1464   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1465 }
1466 
1467 // This prototype is deprecated.
1468 static inline __ATTRS_o_ai void
1469 vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1470   __vector unsigned int V = __vec;
1471   __builtin_memcpy(((char *)__ptr + __offset), &V,
1472                    sizeof(__vector unsigned int));
1473 }
1474 
1475 // This prototype is deprecated.
1476 static inline __ATTRS_o_ai void
1477 vec_xstd2(__vector signed long long __vec, long __offset,
1478           signed long long *__ptr) {
1479   __vector signed long long V = __vec;
1480   __builtin_memcpy(((char *)__ptr + __offset), &V,
1481                    sizeof(__vector signed long long));
1482 }
1483 
1484 // This prototype is deprecated.
1485 static inline __ATTRS_o_ai void
1486 vec_xstd2(__vector unsigned long long __vec, long __offset,
1487           unsigned long long *__ptr) {
1488   __vector unsigned long long V = __vec;
1489   __builtin_memcpy(((char *)__ptr + __offset), &V,
1490                    sizeof(__vector unsigned long long));
1491 }
1492 
1493 // This prototype is deprecated.
1494 static inline __ATTRS_o_ai void
1495 vec_xstd2(__vector double __vec, long __offset, double *__ptr) {
1496   __vector double V = __vec;
1497   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1498 }
1499 
1500 /*-- vec_xstw4 --------------------------------------------------------------*/
1501 
1502 // This prototype is deprecated.
1503 static inline __ATTRS_o_ai void
1504 vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {
1505   __vector signed char V = __vec;
1506   __builtin_memcpy(((char *)__ptr + __offset), &V,
1507                    sizeof(__vector signed char));
1508 }
1509 
1510 // This prototype is deprecated.
1511 static inline __ATTRS_o_ai void
1512 vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1513   __vector unsigned char V = __vec;
1514   __builtin_memcpy(((char *)__ptr + __offset), &V,
1515                    sizeof(__vector unsigned char));
1516 }
1517 
1518 // This prototype is deprecated.
1519 static inline __ATTRS_o_ai void
1520 vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {
1521   __vector signed short V = __vec;
1522   __builtin_memcpy(((char *)__ptr + __offset), &V,
1523                    sizeof(__vector signed short));
1524 }
1525 
1526 // This prototype is deprecated.
1527 static inline __ATTRS_o_ai void
1528 vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1529   __vector unsigned short V = __vec;
1530   __builtin_memcpy(((char *)__ptr + __offset), &V,
1531                    sizeof(__vector unsigned short));
1532 }
1533 
1534 // This prototype is deprecated.
1535 static inline __ATTRS_o_ai void
1536 vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {
1537   __vector signed int V = __vec;
1538   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1539 }
1540 
1541 // This prototype is deprecated.
1542 static inline __ATTRS_o_ai void
1543 vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1544   __vector unsigned int V = __vec;
1545   __builtin_memcpy(((char *)__ptr + __offset), &V,
1546                    sizeof(__vector unsigned int));
1547 }
1548 
1549 /*-- vec_load_bndry ---------------------------------------------------------*/
1550 
1551 extern __ATTRS_o __vector signed char
1552 vec_load_bndry(const signed char *__ptr, unsigned short __len)
1553   __constant_pow2_range(__len, 64, 4096);
1554 
1555 extern __ATTRS_o __vector unsigned char
1556 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1557   __constant_pow2_range(__len, 64, 4096);
1558 
1559 extern __ATTRS_o __vector signed short
1560 vec_load_bndry(const signed short *__ptr, unsigned short __len)
1561   __constant_pow2_range(__len, 64, 4096);
1562 
1563 extern __ATTRS_o __vector unsigned short
1564 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1565   __constant_pow2_range(__len, 64, 4096);
1566 
1567 extern __ATTRS_o __vector signed int
1568 vec_load_bndry(const signed int *__ptr, unsigned short __len)
1569   __constant_pow2_range(__len, 64, 4096);
1570 
1571 extern __ATTRS_o __vector unsigned int
1572 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1573   __constant_pow2_range(__len, 64, 4096);
1574 
1575 extern __ATTRS_o __vector signed long long
1576 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1577   __constant_pow2_range(__len, 64, 4096);
1578 
1579 extern __ATTRS_o __vector unsigned long long
1580 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1581   __constant_pow2_range(__len, 64, 4096);
1582 
1583 extern __ATTRS_o __vector signed __int128
1584 vec_load_bndry(const signed __int128 *__ptr, unsigned short __len)
1585   __constant_pow2_range(__len, 64, 4096);
1586 
1587 extern __ATTRS_o __vector unsigned __int128
1588 vec_load_bndry(const unsigned __int128 *__ptr, unsigned short __len)
1589   __constant_pow2_range(__len, 64, 4096);
1590 
1591 #if __ARCH__ >= 12
1592 extern __ATTRS_o __vector float
1593 vec_load_bndry(const float *__ptr, unsigned short __len)
1594   __constant_pow2_range(__len, 64, 4096);
1595 #endif
1596 
1597 extern __ATTRS_o __vector double
1598 vec_load_bndry(const double *__ptr, unsigned short __len)
1599   __constant_pow2_range(__len, 64, 4096);
1600 
1601 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1602   __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1603                             (Y) == 128 ? 1 : \
1604                             (Y) == 256 ? 2 : \
1605                             (Y) == 512 ? 3 : \
1606                             (Y) == 1024 ? 4 : \
1607                             (Y) == 2048 ? 5 : \
1608                             (Y) == 4096 ? 6 : -1)))
1609 
1610 /*-- vec_load_len -----------------------------------------------------------*/
1611 
1612 static inline __ATTRS_o_ai __vector signed char
1613 vec_load_len(const signed char *__ptr, unsigned int __len) {
1614   return (__vector signed char)__builtin_s390_vll(__len, __ptr);
1615 }
1616 
1617 static inline __ATTRS_o_ai __vector unsigned char
1618 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1619   return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
1620 }
1621 
1622 // This prototype is deprecated.
1623 static inline __ATTRS_o_ai __vector signed short
1624 vec_load_len(const signed short *__ptr, unsigned int __len) {
1625   return (__vector signed short)__builtin_s390_vll(__len, __ptr);
1626 }
1627 
1628 // This prototype is deprecated.
1629 static inline __ATTRS_o_ai __vector unsigned short
1630 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1631   return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
1632 }
1633 
1634 // This prototype is deprecated.
1635 static inline __ATTRS_o_ai __vector signed int
1636 vec_load_len(const signed int *__ptr, unsigned int __len) {
1637   return (__vector signed int)__builtin_s390_vll(__len, __ptr);
1638 }
1639 
1640 // This prototype is deprecated.
1641 static inline __ATTRS_o_ai __vector unsigned int
1642 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1643   return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
1644 }
1645 
1646 // This prototype is deprecated.
1647 static inline __ATTRS_o_ai __vector signed long long
1648 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1649   return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
1650 }
1651 
1652 // This prototype is deprecated.
1653 static inline __ATTRS_o_ai __vector unsigned long long
1654 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1655   return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1656 }
1657 
1658 #if __ARCH__ >= 12
1659 // This prototype is deprecated.
1660 static inline __ATTRS_o_ai __vector float
1661 vec_load_len(const float *__ptr, unsigned int __len) {
1662   return (__vector float)__builtin_s390_vll(__len, __ptr);
1663 }
1664 #endif
1665 
1666 // This prototype is deprecated.
1667 static inline __ATTRS_o_ai __vector double
1668 vec_load_len(const double *__ptr, unsigned int __len) {
1669   return (__vector double)__builtin_s390_vll(__len, __ptr);
1670 }
1671 
1672 /*-- vec_load_len_r ---------------------------------------------------------*/
1673 
1674 #if __ARCH__ >= 12
1675 static inline __ATTRS_o_ai __vector signed char
1676 vec_load_len_r(const signed char *__ptr, unsigned int __len) {
1677   return (__vector signed char)__builtin_s390_vlrlr(__len, __ptr);
1678 }
1679 
1680 static inline __ATTRS_o_ai __vector unsigned char
1681 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1682   return (__vector unsigned char)__builtin_s390_vlrlr(__len, __ptr);
1683 }
1684 #endif
1685 
1686 /*-- vec_store_len ----------------------------------------------------------*/
1687 
1688 static inline __ATTRS_o_ai void
1689 vec_store_len(__vector signed char __vec, signed char *__ptr,
1690               unsigned int __len) {
1691   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1692 }
1693 
1694 static inline __ATTRS_o_ai void
1695 vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
1696               unsigned int __len) {
1697   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1698 }
1699 
1700 // This prototype is deprecated.
1701 static inline __ATTRS_o_ai void
1702 vec_store_len(__vector signed short __vec, signed short *__ptr,
1703               unsigned int __len) {
1704   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1705 }
1706 
1707 // This prototype is deprecated.
1708 static inline __ATTRS_o_ai void
1709 vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
1710               unsigned int __len) {
1711   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1712 }
1713 
1714 // This prototype is deprecated.
1715 static inline __ATTRS_o_ai void
1716 vec_store_len(__vector signed int __vec, signed int *__ptr,
1717               unsigned int __len) {
1718   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1719 }
1720 
1721 // This prototype is deprecated.
1722 static inline __ATTRS_o_ai void
1723 vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
1724               unsigned int __len) {
1725   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1726 }
1727 
1728 // This prototype is deprecated.
1729 static inline __ATTRS_o_ai void
1730 vec_store_len(__vector signed long long __vec, signed long long *__ptr,
1731               unsigned int __len) {
1732   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1733 }
1734 
1735 // This prototype is deprecated.
1736 static inline __ATTRS_o_ai void
1737 vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
1738               unsigned int __len) {
1739   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1740 }
1741 
1742 #if __ARCH__ >= 12
1743 // This prototype is deprecated.
1744 static inline __ATTRS_o_ai void
1745 vec_store_len(__vector float __vec, float *__ptr,
1746               unsigned int __len) {
1747   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1748 }
1749 #endif
1750 
1751 // This prototype is deprecated.
1752 static inline __ATTRS_o_ai void
1753 vec_store_len(__vector double __vec, double *__ptr,
1754               unsigned int __len) {
1755   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1756 }
1757 
1758 /*-- vec_store_len_r --------------------------------------------------------*/
1759 
1760 #if __ARCH__ >= 12
1761 static inline __ATTRS_o_ai void
1762 vec_store_len_r(__vector signed char __vec, signed char *__ptr,
1763                 unsigned int __len) {
1764   __builtin_s390_vstrlr(__vec, __len, __ptr);
1765 }
1766 
1767 static inline __ATTRS_o_ai void
1768 vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
1769                 unsigned int __len) {
1770   __builtin_s390_vstrlr((__vector signed char)__vec, __len, __ptr);
1771 }
1772 #endif
1773 
1774 /*-- vec_load_pair ----------------------------------------------------------*/
1775 
1776 static inline __ATTRS_o_ai __vector signed long long
1777 vec_load_pair(signed long long __a, signed long long __b) {
1778   return (__vector signed long long)(__a, __b);
1779 }
1780 
1781 static inline __ATTRS_o_ai __vector unsigned long long
1782 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1783   return (__vector unsigned long long)(__a, __b);
1784 }
1785 
1786 /*-- vec_genmask ------------------------------------------------------------*/
1787 
1788 static inline __ATTRS_o_ai __vector unsigned char
1789 vec_genmask(unsigned short __mask)
1790   __constant(__mask) {
1791   return (__vector unsigned char)(
1792     __mask & 0x8000 ? 0xff : 0,
1793     __mask & 0x4000 ? 0xff : 0,
1794     __mask & 0x2000 ? 0xff : 0,
1795     __mask & 0x1000 ? 0xff : 0,
1796     __mask & 0x0800 ? 0xff : 0,
1797     __mask & 0x0400 ? 0xff : 0,
1798     __mask & 0x0200 ? 0xff : 0,
1799     __mask & 0x0100 ? 0xff : 0,
1800     __mask & 0x0080 ? 0xff : 0,
1801     __mask & 0x0040 ? 0xff : 0,
1802     __mask & 0x0020 ? 0xff : 0,
1803     __mask & 0x0010 ? 0xff : 0,
1804     __mask & 0x0008 ? 0xff : 0,
1805     __mask & 0x0004 ? 0xff : 0,
1806     __mask & 0x0002 ? 0xff : 0,
1807     __mask & 0x0001 ? 0xff : 0);
1808 }
1809 
1810 /*-- vec_genmasks_* ---------------------------------------------------------*/
1811 
1812 static inline __ATTRS_o_ai __vector unsigned char
1813 vec_genmasks_8(unsigned char __first, unsigned char __last)
1814   __constant(__first) __constant(__last) {
1815   unsigned char __bit1 = __first & 7;
1816   unsigned char __bit2 = __last & 7;
1817   unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1818   unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1819   unsigned char __value = (__bit1 <= __bit2 ?
1820                            __mask1 & ~__mask2 :
1821                            __mask1 | ~__mask2);
1822   return (__vector unsigned char)__value;
1823 }
1824 
1825 static inline __ATTRS_o_ai __vector unsigned short
1826 vec_genmasks_16(unsigned char __first, unsigned char __last)
1827   __constant(__first) __constant(__last) {
1828   unsigned char __bit1 = __first & 15;
1829   unsigned char __bit2 = __last & 15;
1830   unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1831   unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1832   unsigned short __value = (__bit1 <= __bit2 ?
1833                             __mask1 & ~__mask2 :
1834                             __mask1 | ~__mask2);
1835   return (__vector unsigned short)__value;
1836 }
1837 
1838 static inline __ATTRS_o_ai __vector unsigned int
1839 vec_genmasks_32(unsigned char __first, unsigned char __last)
1840   __constant(__first) __constant(__last) {
1841   unsigned char __bit1 = __first & 31;
1842   unsigned char __bit2 = __last & 31;
1843   unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1844   unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1845   unsigned int __value = (__bit1 <= __bit2 ?
1846                           __mask1 & ~__mask2 :
1847                           __mask1 | ~__mask2);
1848   return (__vector unsigned int)__value;
1849 }
1850 
1851 static inline __ATTRS_o_ai __vector unsigned long long
1852 vec_genmasks_64(unsigned char __first, unsigned char __last)
1853   __constant(__first) __constant(__last) {
1854   unsigned char __bit1 = __first & 63;
1855   unsigned char __bit2 = __last & 63;
1856   unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1857   unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1858   unsigned long long __value = (__bit1 <= __bit2 ?
1859                                 __mask1 & ~__mask2 :
1860                                 __mask1 | ~__mask2);
1861   return (__vector unsigned long long)__value;
1862 }
1863 
1864 /*-- vec_gen_element_masks_* ------------------------------------------------*/
1865 
1866 #if __ARCH__ >= 15
1867 static inline __ATTRS_ai __vector unsigned char
1868 vec_gen_element_masks_8(__vector unsigned short __mask) {
1869   return __builtin_s390_vgemb(__mask);
1870 }
1871 
1872 static inline __ATTRS_ai __vector unsigned short
1873 vec_gen_element_masks_16(__vector unsigned char __mask) {
1874   return __builtin_s390_vgemh(__mask);
1875 }
1876 
1877 static inline __ATTRS_ai __vector unsigned int
1878 vec_gen_element_masks_32(__vector unsigned char __mask) {
1879   return __builtin_s390_vgemf(__mask);
1880 }
1881 
1882 static inline __ATTRS_ai __vector unsigned long long
1883 vec_gen_element_masks_64(__vector unsigned char __mask) {
1884   return __builtin_s390_vgemg(__mask);
1885 }
1886 
1887 static inline __ATTRS_ai __vector unsigned __int128
1888 vec_gen_element_masks_128(__vector unsigned char __mask) {
1889   return (__vector unsigned __int128)__builtin_s390_vgemq(__mask);
1890 }
1891 #endif
1892 
1893 /*-- vec_splat --------------------------------------------------------------*/
1894 
1895 static inline __ATTRS_o_ai __vector signed char
1896 vec_splat(__vector signed char __vec, int __index)
1897   __constant_range(__index, 0, 15) {
1898   return (__vector signed char)__vec[__index];
1899 }
1900 
1901 static inline __ATTRS_o_ai __vector __bool char
1902 vec_splat(__vector __bool char __vec, int __index)
1903   __constant_range(__index, 0, 15) {
1904   return (__vector __bool char)(__vector unsigned char)__vec[__index];
1905 }
1906 
1907 static inline __ATTRS_o_ai __vector unsigned char
1908 vec_splat(__vector unsigned char __vec, int __index)
1909   __constant_range(__index, 0, 15) {
1910   return (__vector unsigned char)__vec[__index];
1911 }
1912 
1913 static inline __ATTRS_o_ai __vector signed short
1914 vec_splat(__vector signed short __vec, int __index)
1915   __constant_range(__index, 0, 7) {
1916   return (__vector signed short)__vec[__index];
1917 }
1918 
1919 static inline __ATTRS_o_ai __vector __bool short
1920 vec_splat(__vector __bool short __vec, int __index)
1921   __constant_range(__index, 0, 7) {
1922   return (__vector __bool short)(__vector unsigned short)__vec[__index];
1923 }
1924 
1925 static inline __ATTRS_o_ai __vector unsigned short
1926 vec_splat(__vector unsigned short __vec, int __index)
1927   __constant_range(__index, 0, 7) {
1928   return (__vector unsigned short)__vec[__index];
1929 }
1930 
1931 static inline __ATTRS_o_ai __vector signed int
1932 vec_splat(__vector signed int __vec, int __index)
1933   __constant_range(__index, 0, 3) {
1934   return (__vector signed int)__vec[__index];
1935 }
1936 
1937 static inline __ATTRS_o_ai __vector __bool int
1938 vec_splat(__vector __bool int __vec, int __index)
1939   __constant_range(__index, 0, 3) {
1940   return (__vector __bool int)(__vector unsigned int)__vec[__index];
1941 }
1942 
1943 static inline __ATTRS_o_ai __vector unsigned int
1944 vec_splat(__vector unsigned int __vec, int __index)
1945   __constant_range(__index, 0, 3) {
1946   return (__vector unsigned int)__vec[__index];
1947 }
1948 
1949 static inline __ATTRS_o_ai __vector signed long long
1950 vec_splat(__vector signed long long __vec, int __index)
1951   __constant_range(__index, 0, 1) {
1952   return (__vector signed long long)__vec[__index];
1953 }
1954 
1955 static inline __ATTRS_o_ai __vector __bool long long
1956 vec_splat(__vector __bool long long __vec, int __index)
1957   __constant_range(__index, 0, 1) {
1958   return ((__vector __bool long long)
1959           (__vector unsigned long long)__vec[__index]);
1960 }
1961 
1962 static inline __ATTRS_o_ai __vector unsigned long long
1963 vec_splat(__vector unsigned long long __vec, int __index)
1964   __constant_range(__index, 0, 1) {
1965   return (__vector unsigned long long)__vec[__index];
1966 }
1967 
1968 #if __ARCH__ >= 12
1969 static inline __ATTRS_o_ai __vector float
1970 vec_splat(__vector float __vec, int __index)
1971   __constant_range(__index, 0, 3) {
1972   return (__vector float)__vec[__index];
1973 }
1974 #endif
1975 
1976 static inline __ATTRS_o_ai __vector double
1977 vec_splat(__vector double __vec, int __index)
1978   __constant_range(__index, 0, 1) {
1979   return (__vector double)__vec[__index];
1980 }
1981 
1982 /*-- vec_splat_s* -----------------------------------------------------------*/
1983 
1984 static inline __ATTRS_ai __vector signed char
1985 vec_splat_s8(signed char __scalar)
1986   __constant(__scalar) {
1987   return (__vector signed char)__scalar;
1988 }
1989 
1990 static inline __ATTRS_ai __vector signed short
1991 vec_splat_s16(signed short __scalar)
1992   __constant(__scalar) {
1993   return (__vector signed short)__scalar;
1994 }
1995 
1996 static inline __ATTRS_ai __vector signed int
1997 vec_splat_s32(signed short __scalar)
1998   __constant(__scalar) {
1999   return (__vector signed int)(signed int)__scalar;
2000 }
2001 
2002 static inline __ATTRS_ai __vector signed long long
2003 vec_splat_s64(signed short __scalar)
2004   __constant(__scalar) {
2005   return (__vector signed long long)(signed long)__scalar;
2006 }
2007 
2008 /*-- vec_splat_u* -----------------------------------------------------------*/
2009 
2010 static inline __ATTRS_ai __vector unsigned char
2011 vec_splat_u8(unsigned char __scalar)
2012   __constant(__scalar) {
2013   return (__vector unsigned char)__scalar;
2014 }
2015 
2016 static inline __ATTRS_ai __vector unsigned short
2017 vec_splat_u16(unsigned short __scalar)
2018   __constant(__scalar) {
2019   return (__vector unsigned short)__scalar;
2020 }
2021 
2022 static inline __ATTRS_ai __vector unsigned int
2023 vec_splat_u32(signed short __scalar)
2024   __constant(__scalar) {
2025   return (__vector unsigned int)(signed int)__scalar;
2026 }
2027 
2028 static inline __ATTRS_ai __vector unsigned long long
2029 vec_splat_u64(signed short __scalar)
2030   __constant(__scalar) {
2031   return (__vector unsigned long long)(signed long long)__scalar;
2032 }
2033 
2034 /*-- vec_splats -------------------------------------------------------------*/
2035 
2036 static inline __ATTRS_o_ai __vector signed char
2037 vec_splats(signed char __scalar) {
2038   return (__vector signed char)__scalar;
2039 }
2040 
2041 static inline __ATTRS_o_ai __vector unsigned char
2042 vec_splats(unsigned char __scalar) {
2043   return (__vector unsigned char)__scalar;
2044 }
2045 
2046 static inline __ATTRS_o_ai __vector signed short
2047 vec_splats(signed short __scalar) {
2048   return (__vector signed short)__scalar;
2049 }
2050 
2051 static inline __ATTRS_o_ai __vector unsigned short
2052 vec_splats(unsigned short __scalar) {
2053   return (__vector unsigned short)__scalar;
2054 }
2055 
2056 static inline __ATTRS_o_ai __vector signed int
2057 vec_splats(signed int __scalar) {
2058   return (__vector signed int)__scalar;
2059 }
2060 
2061 static inline __ATTRS_o_ai __vector unsigned int
2062 vec_splats(unsigned int __scalar) {
2063   return (__vector unsigned int)__scalar;
2064 }
2065 
2066 static inline __ATTRS_o_ai __vector signed long long
2067 vec_splats(signed long long __scalar) {
2068   return (__vector signed long long)__scalar;
2069 }
2070 
2071 static inline __ATTRS_o_ai __vector unsigned long long
2072 vec_splats(unsigned long long __scalar) {
2073   return (__vector unsigned long long)__scalar;
2074 }
2075 
2076 static inline __ATTRS_o_ai __vector signed __int128
2077 vec_splats(signed __int128 __scalar) {
2078   return (__vector signed __int128)__scalar;
2079 }
2080 
2081 static inline __ATTRS_o_ai __vector unsigned __int128
2082 vec_splats(unsigned __int128 __scalar) {
2083   return (__vector unsigned __int128)__scalar;
2084 }
2085 
2086 #if __ARCH__ >= 12
2087 static inline __ATTRS_o_ai __vector float
2088 vec_splats(float __scalar) {
2089   return (__vector float)__scalar;
2090 }
2091 #endif
2092 
2093 static inline __ATTRS_o_ai __vector double
2094 vec_splats(double __scalar) {
2095   return (__vector double)__scalar;
2096 }
2097 
2098 /*-- vec_extend_s64 ---------------------------------------------------------*/
2099 
2100 static inline __ATTRS_o_ai __vector signed long long
2101 vec_extend_s64(__vector signed char __a) {
2102   return (__vector signed long long)(__a[7], __a[15]);
2103 }
2104 
2105 static inline __ATTRS_o_ai __vector signed long long
2106 vec_extend_s64(__vector signed short __a) {
2107   return (__vector signed long long)(__a[3], __a[7]);
2108 }
2109 
2110 static inline __ATTRS_o_ai __vector signed long long
2111 vec_extend_s64(__vector signed int __a) {
2112   return (__vector signed long long)(__a[1], __a[3]);
2113 }
2114 
2115 /*-- vec_mergeh -------------------------------------------------------------*/
2116 
2117 static inline __ATTRS_o_ai __vector signed char
2118 vec_mergeh(__vector signed char __a, __vector signed char __b) {
2119   return (__vector signed char)(
2120     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2121     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2122 }
2123 
2124 static inline __ATTRS_o_ai __vector __bool char
2125 vec_mergeh(__vector __bool char __a, __vector __bool char __b) {
2126   return (__vector __bool char)(
2127     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2128     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2129 }
2130 
2131 static inline __ATTRS_o_ai __vector unsigned char
2132 vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {
2133   return (__vector unsigned char)(
2134     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2135     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2136 }
2137 
2138 static inline __ATTRS_o_ai __vector signed short
2139 vec_mergeh(__vector signed short __a, __vector signed short __b) {
2140   return (__vector signed short)(
2141     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2142 }
2143 
2144 static inline __ATTRS_o_ai __vector __bool short
2145 vec_mergeh(__vector __bool short __a, __vector __bool short __b) {
2146   return (__vector __bool short)(
2147     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2148 }
2149 
2150 static inline __ATTRS_o_ai __vector unsigned short
2151 vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {
2152   return (__vector unsigned short)(
2153     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2154 }
2155 
2156 static inline __ATTRS_o_ai __vector signed int
2157 vec_mergeh(__vector signed int __a, __vector signed int __b) {
2158   return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);
2159 }
2160 
2161 static inline __ATTRS_o_ai __vector __bool int
2162 vec_mergeh(__vector __bool int __a, __vector __bool int __b) {
2163   return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);
2164 }
2165 
2166 static inline __ATTRS_o_ai __vector unsigned int
2167 vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {
2168   return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
2169 }
2170 
2171 static inline __ATTRS_o_ai __vector signed long long
2172 vec_mergeh(__vector signed long long __a, __vector signed long long __b) {
2173   return (__vector signed long long)(__a[0], __b[0]);
2174 }
2175 
2176 static inline __ATTRS_o_ai __vector __bool long long
2177 vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {
2178   return (__vector __bool long long)(__a[0], __b[0]);
2179 }
2180 
2181 static inline __ATTRS_o_ai __vector unsigned long long
2182 vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {
2183   return (__vector unsigned long long)(__a[0], __b[0]);
2184 }
2185 
2186 #if __ARCH__ >= 12
2187 static inline __ATTRS_o_ai __vector float
2188 vec_mergeh(__vector float __a, __vector float __b) {
2189   return (__vector float)(__a[0], __b[0], __a[1], __b[1]);
2190 }
2191 #endif
2192 
2193 static inline __ATTRS_o_ai __vector double
2194 vec_mergeh(__vector double __a, __vector double __b) {
2195   return (__vector double)(__a[0], __b[0]);
2196 }
2197 
2198 /*-- vec_mergel -------------------------------------------------------------*/
2199 
2200 static inline __ATTRS_o_ai __vector signed char
2201 vec_mergel(__vector signed char __a, __vector signed char __b) {
2202   return (__vector signed char)(
2203     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2204     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2205 }
2206 
2207 static inline __ATTRS_o_ai __vector __bool char
2208 vec_mergel(__vector __bool char __a, __vector __bool char __b) {
2209   return (__vector __bool char)(
2210     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2211     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2212 }
2213 
2214 static inline __ATTRS_o_ai __vector unsigned char
2215 vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {
2216   return (__vector unsigned char)(
2217     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2218     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2219 }
2220 
2221 static inline __ATTRS_o_ai __vector signed short
2222 vec_mergel(__vector signed short __a, __vector signed short __b) {
2223   return (__vector signed short)(
2224     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2225 }
2226 
2227 static inline __ATTRS_o_ai __vector __bool short
2228 vec_mergel(__vector __bool short __a, __vector __bool short __b) {
2229   return (__vector __bool short)(
2230     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2231 }
2232 
2233 static inline __ATTRS_o_ai __vector unsigned short
2234 vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {
2235   return (__vector unsigned short)(
2236     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2237 }
2238 
2239 static inline __ATTRS_o_ai __vector signed int
2240 vec_mergel(__vector signed int __a, __vector signed int __b) {
2241   return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);
2242 }
2243 
2244 static inline __ATTRS_o_ai __vector __bool int
2245 vec_mergel(__vector __bool int __a, __vector __bool int __b) {
2246   return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);
2247 }
2248 
2249 static inline __ATTRS_o_ai __vector unsigned int
2250 vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {
2251   return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
2252 }
2253 
2254 static inline __ATTRS_o_ai __vector signed long long
2255 vec_mergel(__vector signed long long __a, __vector signed long long __b) {
2256   return (__vector signed long long)(__a[1], __b[1]);
2257 }
2258 
2259 static inline __ATTRS_o_ai __vector __bool long long
2260 vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {
2261   return (__vector __bool long long)(__a[1], __b[1]);
2262 }
2263 
2264 static inline __ATTRS_o_ai __vector unsigned long long
2265 vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {
2266   return (__vector unsigned long long)(__a[1], __b[1]);
2267 }
2268 
2269 #if __ARCH__ >= 12
2270 static inline __ATTRS_o_ai __vector float
2271 vec_mergel(__vector float __a, __vector float __b) {
2272   return (__vector float)(__a[2], __b[2], __a[3], __b[3]);
2273 }
2274 #endif
2275 
2276 static inline __ATTRS_o_ai __vector double
2277 vec_mergel(__vector double __a, __vector double __b) {
2278   return (__vector double)(__a[1], __b[1]);
2279 }
2280 
2281 /*-- vec_pack ---------------------------------------------------------------*/
2282 
2283 static inline __ATTRS_o_ai __vector signed char
2284 vec_pack(__vector signed short __a, __vector signed short __b) {
2285   __vector signed char __ac = (__vector signed char)__a;
2286   __vector signed char __bc = (__vector signed char)__b;
2287   return (__vector signed char)(
2288     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2289     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2290 }
2291 
2292 static inline __ATTRS_o_ai __vector __bool char
2293 vec_pack(__vector __bool short __a, __vector __bool short __b) {
2294   __vector __bool char __ac = (__vector __bool char)__a;
2295   __vector __bool char __bc = (__vector __bool char)__b;
2296   return (__vector __bool char)(
2297     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2298     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2299 }
2300 
2301 static inline __ATTRS_o_ai __vector unsigned char
2302 vec_pack(__vector unsigned short __a, __vector unsigned short __b) {
2303   __vector unsigned char __ac = (__vector unsigned char)__a;
2304   __vector unsigned char __bc = (__vector unsigned char)__b;
2305   return (__vector unsigned char)(
2306     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2307     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2308 }
2309 
2310 static inline __ATTRS_o_ai __vector signed short
2311 vec_pack(__vector signed int __a, __vector signed int __b) {
2312   __vector signed short __ac = (__vector signed short)__a;
2313   __vector signed short __bc = (__vector signed short)__b;
2314   return (__vector signed short)(
2315     __ac[1], __ac[3], __ac[5], __ac[7],
2316     __bc[1], __bc[3], __bc[5], __bc[7]);
2317 }
2318 
2319 static inline __ATTRS_o_ai __vector __bool short
2320 vec_pack(__vector __bool int __a, __vector __bool int __b) {
2321   __vector __bool short __ac = (__vector __bool short)__a;
2322   __vector __bool short __bc = (__vector __bool short)__b;
2323   return (__vector __bool short)(
2324     __ac[1], __ac[3], __ac[5], __ac[7],
2325     __bc[1], __bc[3], __bc[5], __bc[7]);
2326 }
2327 
2328 static inline __ATTRS_o_ai __vector unsigned short
2329 vec_pack(__vector unsigned int __a, __vector unsigned int __b) {
2330   __vector unsigned short __ac = (__vector unsigned short)__a;
2331   __vector unsigned short __bc = (__vector unsigned short)__b;
2332   return (__vector unsigned short)(
2333     __ac[1], __ac[3], __ac[5], __ac[7],
2334     __bc[1], __bc[3], __bc[5], __bc[7]);
2335 }
2336 
2337 static inline __ATTRS_o_ai __vector signed int
2338 vec_pack(__vector signed long long __a, __vector signed long long __b) {
2339   __vector signed int __ac = (__vector signed int)__a;
2340   __vector signed int __bc = (__vector signed int)__b;
2341   return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2342 }
2343 
2344 static inline __ATTRS_o_ai __vector __bool int
2345 vec_pack(__vector __bool long long __a, __vector __bool long long __b) {
2346   __vector __bool int __ac = (__vector __bool int)__a;
2347   __vector __bool int __bc = (__vector __bool int)__b;
2348   return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2349 }
2350 
2351 static inline __ATTRS_o_ai __vector unsigned int
2352 vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
2353   __vector unsigned int __ac = (__vector unsigned int)__a;
2354   __vector unsigned int __bc = (__vector unsigned int)__b;
2355   return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2356 }
2357 
2358 static inline __ATTRS_o_ai __vector signed long long
2359 vec_pack(__vector signed __int128 __a, __vector signed __int128 __b) {
2360   __vector signed long long __ac = (__vector signed long long)__a;
2361   __vector signed long long __bc = (__vector signed long long)__b;
2362   return (__vector signed long long)(__ac[1], __bc[1]);
2363 }
2364 
2365 static inline __ATTRS_o_ai __vector __bool long long
2366 vec_pack(__vector __bool __int128 __a, __vector __bool __int128 __b) {
2367   __vector __bool long long __ac = (__vector __bool long long)__a;
2368   __vector __bool long long __bc = (__vector __bool long long)__b;
2369   return (__vector __bool long long)(__ac[1], __bc[1]);
2370 }
2371 
2372 static inline __ATTRS_o_ai __vector unsigned long long
2373 vec_pack(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2374   __vector unsigned long long __ac = (__vector unsigned long long)__a;
2375   __vector unsigned long long __bc = (__vector unsigned long long)__b;
2376   return (__vector unsigned long long)(__ac[1], __bc[1]);
2377 }
2378 
2379 /*-- vec_packs --------------------------------------------------------------*/
2380 
2381 static inline __ATTRS_o_ai __vector signed char
2382 vec_packs(__vector signed short __a, __vector signed short __b) {
2383   return __builtin_s390_vpksh(__a, __b);
2384 }
2385 
2386 static inline __ATTRS_o_ai __vector unsigned char
2387 vec_packs(__vector unsigned short __a, __vector unsigned short __b) {
2388   return __builtin_s390_vpklsh(__a, __b);
2389 }
2390 
2391 static inline __ATTRS_o_ai __vector signed short
2392 vec_packs(__vector signed int __a, __vector signed int __b) {
2393   return __builtin_s390_vpksf(__a, __b);
2394 }
2395 
2396 static inline __ATTRS_o_ai __vector unsigned short
2397 vec_packs(__vector unsigned int __a, __vector unsigned int __b) {
2398   return __builtin_s390_vpklsf(__a, __b);
2399 }
2400 
2401 static inline __ATTRS_o_ai __vector signed int
2402 vec_packs(__vector signed long long __a, __vector signed long long __b) {
2403   return __builtin_s390_vpksg(__a, __b);
2404 }
2405 
2406 static inline __ATTRS_o_ai __vector unsigned int
2407 vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {
2408   return __builtin_s390_vpklsg(__a, __b);
2409 }
2410 
2411 /*-- vec_packs_cc -----------------------------------------------------------*/
2412 
2413 static inline __ATTRS_o_ai __vector signed char
2414 vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {
2415   return __builtin_s390_vpkshs(__a, __b, __cc);
2416 }
2417 
2418 static inline __ATTRS_o_ai __vector unsigned char
2419 vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,
2420              int *__cc) {
2421   return __builtin_s390_vpklshs(__a, __b, __cc);
2422 }
2423 
2424 static inline __ATTRS_o_ai __vector signed short
2425 vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
2426   return __builtin_s390_vpksfs(__a, __b, __cc);
2427 }
2428 
2429 static inline __ATTRS_o_ai __vector unsigned short
2430 vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2431   return __builtin_s390_vpklsfs(__a, __b, __cc);
2432 }
2433 
2434 static inline __ATTRS_o_ai __vector signed int
2435 vec_packs_cc(__vector signed long long __a, __vector signed long long __b,
2436              int *__cc) {
2437   return __builtin_s390_vpksgs(__a, __b, __cc);
2438 }
2439 
2440 static inline __ATTRS_o_ai __vector unsigned int
2441 vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2442              int *__cc) {
2443   return __builtin_s390_vpklsgs(__a, __b, __cc);
2444 }
2445 
2446 /*-- vec_packsu -------------------------------------------------------------*/
2447 
2448 static inline __ATTRS_o_ai __vector unsigned char
2449 vec_packsu(__vector signed short __a, __vector signed short __b) {
2450   const __vector signed short __zero = (__vector signed short)0;
2451   return __builtin_s390_vpklsh(
2452     (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,
2453     (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);
2454 }
2455 
2456 static inline __ATTRS_o_ai __vector unsigned char
2457 vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {
2458   return __builtin_s390_vpklsh(__a, __b);
2459 }
2460 
2461 static inline __ATTRS_o_ai __vector unsigned short
2462 vec_packsu(__vector signed int __a, __vector signed int __b) {
2463   const __vector signed int __zero = (__vector signed int)0;
2464   return __builtin_s390_vpklsf(
2465     (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,
2466     (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);
2467 }
2468 
2469 static inline __ATTRS_o_ai __vector unsigned short
2470 vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {
2471   return __builtin_s390_vpklsf(__a, __b);
2472 }
2473 
2474 static inline __ATTRS_o_ai __vector unsigned int
2475 vec_packsu(__vector signed long long __a, __vector signed long long __b) {
2476   const __vector signed long long __zero = (__vector signed long long)0;
2477   return __builtin_s390_vpklsg(
2478     (__vector unsigned long long)(__a >= __zero) &
2479     (__vector unsigned long long)__a,
2480     (__vector unsigned long long)(__b >= __zero) &
2481     (__vector unsigned long long)__b);
2482 }
2483 
2484 static inline __ATTRS_o_ai __vector unsigned int
2485 vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {
2486   return __builtin_s390_vpklsg(__a, __b);
2487 }
2488 
2489 /*-- vec_packsu_cc ----------------------------------------------------------*/
2490 
2491 static inline __ATTRS_o_ai __vector unsigned char
2492 vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,
2493               int *__cc) {
2494   return __builtin_s390_vpklshs(__a, __b, __cc);
2495 }
2496 
2497 static inline __ATTRS_o_ai __vector unsigned short
2498 vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2499   return __builtin_s390_vpklsfs(__a, __b, __cc);
2500 }
2501 
2502 static inline __ATTRS_o_ai __vector unsigned int
2503 vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2504               int *__cc) {
2505   return __builtin_s390_vpklsgs(__a, __b, __cc);
2506 }
2507 
2508 /*-- vec_unpackh ------------------------------------------------------------*/
2509 
2510 static inline __ATTRS_o_ai __vector signed short
2511 vec_unpackh(__vector signed char __a) {
2512   return __builtin_s390_vuphb(__a);
2513 }
2514 
2515 static inline __ATTRS_o_ai __vector __bool short
2516 vec_unpackh(__vector __bool char __a) {
2517   return ((__vector __bool short)
2518           __builtin_s390_vuphb((__vector signed char)__a));
2519 }
2520 
2521 static inline __ATTRS_o_ai __vector unsigned short
2522 vec_unpackh(__vector unsigned char __a) {
2523   return __builtin_s390_vuplhb(__a);
2524 }
2525 
2526 static inline __ATTRS_o_ai __vector signed int
2527 vec_unpackh(__vector signed short __a) {
2528   return __builtin_s390_vuphh(__a);
2529 }
2530 
2531 static inline __ATTRS_o_ai __vector __bool int
2532 vec_unpackh(__vector __bool short __a) {
2533   return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);
2534 }
2535 
2536 static inline __ATTRS_o_ai __vector unsigned int
2537 vec_unpackh(__vector unsigned short __a) {
2538   return __builtin_s390_vuplhh(__a);
2539 }
2540 
2541 static inline __ATTRS_o_ai __vector signed long long
2542 vec_unpackh(__vector signed int __a) {
2543   return __builtin_s390_vuphf(__a);
2544 }
2545 
2546 static inline __ATTRS_o_ai __vector __bool long long
2547 vec_unpackh(__vector __bool int __a) {
2548   return ((__vector __bool long long)
2549           __builtin_s390_vuphf((__vector signed int)__a));
2550 }
2551 
2552 static inline __ATTRS_o_ai __vector unsigned long long
2553 vec_unpackh(__vector unsigned int __a) {
2554   return __builtin_s390_vuplhf(__a);
2555 }
2556 
2557 #if __ARCH__ >= 15
2558 static inline __ATTRS_o_ai __vector signed __int128
2559 vec_unpackh(__vector signed long long __a) {
2560   return (__vector signed __int128)__builtin_s390_vuphg(__a);
2561 }
2562 
2563 static inline __ATTRS_o_ai __vector __bool __int128
2564 vec_unpackh(__vector __bool long long __a) {
2565   return ((__vector __bool __int128)
2566           __builtin_s390_vuphg((__vector signed long long)__a));
2567 }
2568 
2569 static inline __ATTRS_o_ai __vector unsigned __int128
2570 vec_unpackh(__vector unsigned long long __a) {
2571   return (__vector unsigned __int128)__builtin_s390_vuplhg(__a);
2572 }
2573 #endif
2574 
2575 /*-- vec_unpackl ------------------------------------------------------------*/
2576 
2577 static inline __ATTRS_o_ai __vector signed short
2578 vec_unpackl(__vector signed char __a) {
2579   return __builtin_s390_vuplb(__a);
2580 }
2581 
2582 static inline __ATTRS_o_ai __vector __bool short
2583 vec_unpackl(__vector __bool char __a) {
2584   return ((__vector __bool short)
2585           __builtin_s390_vuplb((__vector signed char)__a));
2586 }
2587 
2588 static inline __ATTRS_o_ai __vector unsigned short
2589 vec_unpackl(__vector unsigned char __a) {
2590   return __builtin_s390_vupllb(__a);
2591 }
2592 
2593 static inline __ATTRS_o_ai __vector signed int
2594 vec_unpackl(__vector signed short __a) {
2595   return __builtin_s390_vuplhw(__a);
2596 }
2597 
2598 static inline __ATTRS_o_ai __vector __bool int
2599 vec_unpackl(__vector __bool short __a) {
2600   return ((__vector __bool int)
2601           __builtin_s390_vuplhw((__vector signed short)__a));
2602 }
2603 
2604 static inline __ATTRS_o_ai __vector unsigned int
2605 vec_unpackl(__vector unsigned short __a) {
2606   return __builtin_s390_vupllh(__a);
2607 }
2608 
2609 static inline __ATTRS_o_ai __vector signed long long
2610 vec_unpackl(__vector signed int __a) {
2611   return __builtin_s390_vuplf(__a);
2612 }
2613 
2614 static inline __ATTRS_o_ai __vector __bool long long
2615 vec_unpackl(__vector __bool int __a) {
2616   return ((__vector __bool long long)
2617           __builtin_s390_vuplf((__vector signed int)__a));
2618 }
2619 
2620 static inline __ATTRS_o_ai __vector unsigned long long
2621 vec_unpackl(__vector unsigned int __a) {
2622   return __builtin_s390_vupllf(__a);
2623 }
2624 
2625 #if __ARCH__ >= 15
2626 static inline __ATTRS_o_ai __vector signed __int128
2627 vec_unpackl(__vector signed long long __a) {
2628   return (__vector signed __int128)__builtin_s390_vuplg(__a);
2629 }
2630 
2631 static inline __ATTRS_o_ai __vector __bool __int128
2632 vec_unpackl(__vector __bool long long __a) {
2633   return ((__vector __bool __int128)
2634           __builtin_s390_vuplg((__vector signed long long)__a));
2635 }
2636 
2637 static inline __ATTRS_o_ai __vector unsigned __int128
2638 vec_unpackl(__vector unsigned long long __a) {
2639   return (__vector unsigned __int128)__builtin_s390_vupllg(__a);
2640 }
2641 #endif
2642 
2643 /*-- vec_cmpeq --------------------------------------------------------------*/
2644 
2645 static inline __ATTRS_o_ai __vector __bool char
2646 vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {
2647   return (__vector __bool char)(__a == __b);
2648 }
2649 
2650 static inline __ATTRS_o_ai __vector __bool char
2651 vec_cmpeq(__vector signed char __a, __vector signed char __b) {
2652   return (__vector __bool char)(__a == __b);
2653 }
2654 
2655 static inline __ATTRS_o_ai __vector __bool char
2656 vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {
2657   return (__vector __bool char)(__a == __b);
2658 }
2659 
2660 static inline __ATTRS_o_ai __vector __bool short
2661 vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {
2662   return (__vector __bool short)(__a == __b);
2663 }
2664 
2665 static inline __ATTRS_o_ai __vector __bool short
2666 vec_cmpeq(__vector signed short __a, __vector signed short __b) {
2667   return (__vector __bool short)(__a == __b);
2668 }
2669 
2670 static inline __ATTRS_o_ai __vector __bool short
2671 vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {
2672   return (__vector __bool short)(__a == __b);
2673 }
2674 
2675 static inline __ATTRS_o_ai __vector __bool int
2676 vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {
2677   return (__vector __bool int)(__a == __b);
2678 }
2679 
2680 static inline __ATTRS_o_ai __vector __bool int
2681 vec_cmpeq(__vector signed int __a, __vector signed int __b) {
2682   return (__vector __bool int)(__a == __b);
2683 }
2684 
2685 static inline __ATTRS_o_ai __vector __bool int
2686 vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {
2687   return (__vector __bool int)(__a == __b);
2688 }
2689 
2690 static inline __ATTRS_o_ai __vector __bool long long
2691 vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {
2692   return (__vector __bool long long)(__a == __b);
2693 }
2694 
2695 static inline __ATTRS_o_ai __vector __bool long long
2696 vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {
2697   return (__vector __bool long long)(__a == __b);
2698 }
2699 
2700 static inline __ATTRS_o_ai __vector __bool long long
2701 vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
2702   return (__vector __bool long long)(__a == __b);
2703 }
2704 
2705 static inline __ATTRS_o_ai __vector __bool __int128
2706 vec_cmpeq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
2707   return (__vector __bool __int128)(__a == __b);
2708 }
2709 
2710 static inline __ATTRS_o_ai __vector __bool __int128
2711 vec_cmpeq(__vector signed __int128 __a, __vector signed __int128 __b) {
2712   return (__vector __bool __int128)(__a == __b);
2713 }
2714 
2715 static inline __ATTRS_o_ai __vector __bool __int128
2716 vec_cmpeq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2717   return (__vector __bool __int128)(__a == __b);
2718 }
2719 
2720 #if __ARCH__ >= 12
2721 static inline __ATTRS_o_ai __vector __bool int
2722 vec_cmpeq(__vector float __a, __vector float __b) {
2723   return (__vector __bool int)(__a == __b);
2724 }
2725 #endif
2726 
2727 static inline __ATTRS_o_ai __vector __bool long long
2728 vec_cmpeq(__vector double __a, __vector double __b) {
2729   return (__vector __bool long long)(__a == __b);
2730 }
2731 
2732 /*-- vec_cmpge --------------------------------------------------------------*/
2733 
2734 static inline __ATTRS_o_ai __vector __bool char
2735 vec_cmpge(__vector signed char __a, __vector signed char __b) {
2736   return (__vector __bool char)(__a >= __b);
2737 }
2738 
2739 static inline __ATTRS_o_ai __vector __bool char
2740 vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {
2741   return (__vector __bool char)(__a >= __b);
2742 }
2743 
2744 static inline __ATTRS_o_ai __vector __bool short
2745 vec_cmpge(__vector signed short __a, __vector signed short __b) {
2746   return (__vector __bool short)(__a >= __b);
2747 }
2748 
2749 static inline __ATTRS_o_ai __vector __bool short
2750 vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {
2751   return (__vector __bool short)(__a >= __b);
2752 }
2753 
2754 static inline __ATTRS_o_ai __vector __bool int
2755 vec_cmpge(__vector signed int __a, __vector signed int __b) {
2756   return (__vector __bool int)(__a >= __b);
2757 }
2758 
2759 static inline __ATTRS_o_ai __vector __bool int
2760 vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {
2761   return (__vector __bool int)(__a >= __b);
2762 }
2763 
2764 static inline __ATTRS_o_ai __vector __bool long long
2765 vec_cmpge(__vector signed long long __a, __vector signed long long __b) {
2766   return (__vector __bool long long)(__a >= __b);
2767 }
2768 
2769 static inline __ATTRS_o_ai __vector __bool long long
2770 vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
2771   return (__vector __bool long long)(__a >= __b);
2772 }
2773 
2774 static inline __ATTRS_o_ai __vector __bool __int128
2775 vec_cmpge(__vector signed __int128 __a, __vector signed __int128 __b) {
2776   return (__vector __bool __int128)(__a >= __b);
2777 }
2778 
2779 static inline __ATTRS_o_ai __vector __bool __int128
2780 vec_cmpge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2781   return (__vector __bool __int128)(__a >= __b);
2782 }
2783 
2784 #if __ARCH__ >= 12
2785 static inline __ATTRS_o_ai __vector __bool int
2786 vec_cmpge(__vector float __a, __vector float __b) {
2787   return (__vector __bool int)(__a >= __b);
2788 }
2789 #endif
2790 
2791 static inline __ATTRS_o_ai __vector __bool long long
2792 vec_cmpge(__vector double __a, __vector double __b) {
2793   return (__vector __bool long long)(__a >= __b);
2794 }
2795 
2796 /*-- vec_cmpgt --------------------------------------------------------------*/
2797 
2798 static inline __ATTRS_o_ai __vector __bool char
2799 vec_cmpgt(__vector signed char __a, __vector signed char __b) {
2800   return (__vector __bool char)(__a > __b);
2801 }
2802 
2803 static inline __ATTRS_o_ai __vector __bool char
2804 vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {
2805   return (__vector __bool char)(__a > __b);
2806 }
2807 
2808 static inline __ATTRS_o_ai __vector __bool short
2809 vec_cmpgt(__vector signed short __a, __vector signed short __b) {
2810   return (__vector __bool short)(__a > __b);
2811 }
2812 
2813 static inline __ATTRS_o_ai __vector __bool short
2814 vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {
2815   return (__vector __bool short)(__a > __b);
2816 }
2817 
2818 static inline __ATTRS_o_ai __vector __bool int
2819 vec_cmpgt(__vector signed int __a, __vector signed int __b) {
2820   return (__vector __bool int)(__a > __b);
2821 }
2822 
2823 static inline __ATTRS_o_ai __vector __bool int
2824 vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {
2825   return (__vector __bool int)(__a > __b);
2826 }
2827 
2828 static inline __ATTRS_o_ai __vector __bool long long
2829 vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {
2830   return (__vector __bool long long)(__a > __b);
2831 }
2832 
2833 static inline __ATTRS_o_ai __vector __bool long long
2834 vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
2835   return (__vector __bool long long)(__a > __b);
2836 }
2837 
2838 static inline __ATTRS_o_ai __vector __bool __int128
2839 vec_cmpgt(__vector signed __int128 __a, __vector signed __int128 __b) {
2840   return (__vector __bool __int128)(__a > __b);
2841 }
2842 
2843 static inline __ATTRS_o_ai __vector __bool __int128
2844 vec_cmpgt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2845   return (__vector __bool __int128)(__a > __b);
2846 }
2847 
2848 #if __ARCH__ >= 12
2849 static inline __ATTRS_o_ai __vector __bool int
2850 vec_cmpgt(__vector float __a, __vector float __b) {
2851   return (__vector __bool int)(__a > __b);
2852 }
2853 #endif
2854 
2855 static inline __ATTRS_o_ai __vector __bool long long
2856 vec_cmpgt(__vector double __a, __vector double __b) {
2857   return (__vector __bool long long)(__a > __b);
2858 }
2859 
2860 /*-- vec_cmple --------------------------------------------------------------*/
2861 
2862 static inline __ATTRS_o_ai __vector __bool char
2863 vec_cmple(__vector signed char __a, __vector signed char __b) {
2864   return (__vector __bool char)(__a <= __b);
2865 }
2866 
2867 static inline __ATTRS_o_ai __vector __bool char
2868 vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {
2869   return (__vector __bool char)(__a <= __b);
2870 }
2871 
2872 static inline __ATTRS_o_ai __vector __bool short
2873 vec_cmple(__vector signed short __a, __vector signed short __b) {
2874   return (__vector __bool short)(__a <= __b);
2875 }
2876 
2877 static inline __ATTRS_o_ai __vector __bool short
2878 vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {
2879   return (__vector __bool short)(__a <= __b);
2880 }
2881 
2882 static inline __ATTRS_o_ai __vector __bool int
2883 vec_cmple(__vector signed int __a, __vector signed int __b) {
2884   return (__vector __bool int)(__a <= __b);
2885 }
2886 
2887 static inline __ATTRS_o_ai __vector __bool int
2888 vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {
2889   return (__vector __bool int)(__a <= __b);
2890 }
2891 
2892 static inline __ATTRS_o_ai __vector __bool long long
2893 vec_cmple(__vector signed long long __a, __vector signed long long __b) {
2894   return (__vector __bool long long)(__a <= __b);
2895 }
2896 
2897 static inline __ATTRS_o_ai __vector __bool long long
2898 vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
2899   return (__vector __bool long long)(__a <= __b);
2900 }
2901 
2902 static inline __ATTRS_o_ai __vector __bool __int128
2903 vec_cmple(__vector signed __int128 __a, __vector signed __int128 __b) {
2904   return (__vector __bool __int128)(__a <= __b);
2905 }
2906 
2907 static inline __ATTRS_o_ai __vector __bool __int128
2908 vec_cmple(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2909   return (__vector __bool __int128)(__a <= __b);
2910 }
2911 
2912 #if __ARCH__ >= 12
2913 static inline __ATTRS_o_ai __vector __bool int
2914 vec_cmple(__vector float __a, __vector float __b) {
2915   return (__vector __bool int)(__a <= __b);
2916 }
2917 #endif
2918 
2919 static inline __ATTRS_o_ai __vector __bool long long
2920 vec_cmple(__vector double __a, __vector double __b) {
2921   return (__vector __bool long long)(__a <= __b);
2922 }
2923 
2924 /*-- vec_cmplt --------------------------------------------------------------*/
2925 
2926 static inline __ATTRS_o_ai __vector __bool char
2927 vec_cmplt(__vector signed char __a, __vector signed char __b) {
2928   return (__vector __bool char)(__a < __b);
2929 }
2930 
2931 static inline __ATTRS_o_ai __vector __bool char
2932 vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {
2933   return (__vector __bool char)(__a < __b);
2934 }
2935 
2936 static inline __ATTRS_o_ai __vector __bool short
2937 vec_cmplt(__vector signed short __a, __vector signed short __b) {
2938   return (__vector __bool short)(__a < __b);
2939 }
2940 
2941 static inline __ATTRS_o_ai __vector __bool short
2942 vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {
2943   return (__vector __bool short)(__a < __b);
2944 }
2945 
2946 static inline __ATTRS_o_ai __vector __bool int
2947 vec_cmplt(__vector signed int __a, __vector signed int __b) {
2948   return (__vector __bool int)(__a < __b);
2949 }
2950 
2951 static inline __ATTRS_o_ai __vector __bool int
2952 vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {
2953   return (__vector __bool int)(__a < __b);
2954 }
2955 
2956 static inline __ATTRS_o_ai __vector __bool long long
2957 vec_cmplt(__vector signed long long __a, __vector signed long long __b) {
2958   return (__vector __bool long long)(__a < __b);
2959 }
2960 
2961 static inline __ATTRS_o_ai __vector __bool long long
2962 vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
2963   return (__vector __bool long long)(__a < __b);
2964 }
2965 
2966 static inline __ATTRS_o_ai __vector __bool __int128
2967 vec_cmplt(__vector signed __int128 __a, __vector signed __int128 __b) {
2968   return (__vector __bool __int128)(__a < __b);
2969 }
2970 
2971 static inline __ATTRS_o_ai __vector __bool __int128
2972 vec_cmplt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2973   return (__vector __bool __int128)(__a < __b);
2974 }
2975 
2976 #if __ARCH__ >= 12
2977 static inline __ATTRS_o_ai __vector __bool int
2978 vec_cmplt(__vector float __a, __vector float __b) {
2979   return (__vector __bool int)(__a < __b);
2980 }
2981 #endif
2982 
2983 static inline __ATTRS_o_ai __vector __bool long long
2984 vec_cmplt(__vector double __a, __vector double __b) {
2985   return (__vector __bool long long)(__a < __b);
2986 }
2987 
2988 /*-- vec_all_eq -------------------------------------------------------------*/
2989 
2990 static inline __ATTRS_o_ai int
2991 vec_all_eq(__vector signed char __a, __vector signed char __b) {
2992   int __cc;
2993   __builtin_s390_vceqbs((__vector unsigned char)__a,
2994                         (__vector unsigned char)__b, &__cc);
2995   return __cc == 0;
2996 }
2997 
2998 // This prototype is deprecated.
2999 static inline __ATTRS_o_ai int
3000 vec_all_eq(__vector signed char __a, __vector __bool char __b) {
3001   int __cc;
3002   __builtin_s390_vceqbs((__vector unsigned char)__a,
3003                         (__vector unsigned char)__b, &__cc);
3004   return __cc == 0;
3005 }
3006 
3007 // This prototype is deprecated.
3008 static inline __ATTRS_o_ai int
3009 vec_all_eq(__vector __bool char __a, __vector signed char __b) {
3010   int __cc;
3011   __builtin_s390_vceqbs((__vector unsigned char)__a,
3012                         (__vector unsigned char)__b, &__cc);
3013   return __cc == 0;
3014 }
3015 
3016 static inline __ATTRS_o_ai int
3017 vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {
3018   int __cc;
3019   __builtin_s390_vceqbs(__a, __b, &__cc);
3020   return __cc == 0;
3021 }
3022 
3023 // This prototype is deprecated.
3024 static inline __ATTRS_o_ai int
3025 vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {
3026   int __cc;
3027   __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
3028   return __cc == 0;
3029 }
3030 
3031 // This prototype is deprecated.
3032 static inline __ATTRS_o_ai int
3033 vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {
3034   int __cc;
3035   __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
3036   return __cc == 0;
3037 }
3038 
3039 static inline __ATTRS_o_ai int
3040 vec_all_eq(__vector __bool char __a, __vector __bool char __b) {
3041   int __cc;
3042   __builtin_s390_vceqbs((__vector unsigned char)__a,
3043                         (__vector unsigned char)__b, &__cc);
3044   return __cc == 0;
3045 }
3046 
3047 static inline __ATTRS_o_ai int
3048 vec_all_eq(__vector signed short __a, __vector signed short __b) {
3049   int __cc;
3050   __builtin_s390_vceqhs((__vector unsigned short)__a,
3051                         (__vector unsigned short)__b, &__cc);
3052   return __cc == 0;
3053 }
3054 
3055 // This prototype is deprecated.
3056 static inline __ATTRS_o_ai int
3057 vec_all_eq(__vector signed short __a, __vector __bool short __b) {
3058   int __cc;
3059   __builtin_s390_vceqhs((__vector unsigned short)__a,
3060                         (__vector unsigned short)__b, &__cc);
3061   return __cc == 0;
3062 }
3063 
3064 // This prototype is deprecated.
3065 static inline __ATTRS_o_ai int
3066 vec_all_eq(__vector __bool short __a, __vector signed short __b) {
3067   int __cc;
3068   __builtin_s390_vceqhs((__vector unsigned short)__a,
3069                         (__vector unsigned short)__b, &__cc);
3070   return __cc == 0;
3071 }
3072 
3073 static inline __ATTRS_o_ai int
3074 vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {
3075   int __cc;
3076   __builtin_s390_vceqhs(__a, __b, &__cc);
3077   return __cc == 0;
3078 }
3079 
3080 // This prototype is deprecated.
3081 static inline __ATTRS_o_ai int
3082 vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {
3083   int __cc;
3084   __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
3085   return __cc == 0;
3086 }
3087 
3088 // This prototype is deprecated.
3089 static inline __ATTRS_o_ai int
3090 vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {
3091   int __cc;
3092   __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
3093   return __cc == 0;
3094 }
3095 
3096 static inline __ATTRS_o_ai int
3097 vec_all_eq(__vector __bool short __a, __vector __bool short __b) {
3098   int __cc;
3099   __builtin_s390_vceqhs((__vector unsigned short)__a,
3100                         (__vector unsigned short)__b, &__cc);
3101   return __cc == 0;
3102 }
3103 
3104 static inline __ATTRS_o_ai int
3105 vec_all_eq(__vector signed int __a, __vector signed int __b) {
3106   int __cc;
3107   __builtin_s390_vceqfs((__vector unsigned int)__a,
3108                         (__vector unsigned int)__b, &__cc);
3109   return __cc == 0;
3110 }
3111 
3112 // This prototype is deprecated.
3113 static inline __ATTRS_o_ai int
3114 vec_all_eq(__vector signed int __a, __vector __bool int __b) {
3115   int __cc;
3116   __builtin_s390_vceqfs((__vector unsigned int)__a,
3117                         (__vector unsigned int)__b, &__cc);
3118   return __cc == 0;
3119 }
3120 
3121 // This prototype is deprecated.
3122 static inline __ATTRS_o_ai int
3123 vec_all_eq(__vector __bool int __a, __vector signed int __b) {
3124   int __cc;
3125   __builtin_s390_vceqfs((__vector unsigned int)__a,
3126                         (__vector unsigned int)__b, &__cc);
3127   return __cc == 0;
3128 }
3129 
3130 static inline __ATTRS_o_ai int
3131 vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {
3132   int __cc;
3133   __builtin_s390_vceqfs(__a, __b, &__cc);
3134   return __cc == 0;
3135 }
3136 
3137 // This prototype is deprecated.
3138 static inline __ATTRS_o_ai int
3139 vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {
3140   int __cc;
3141   __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
3142   return __cc == 0;
3143 }
3144 
3145 // This prototype is deprecated.
3146 static inline __ATTRS_o_ai int
3147 vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {
3148   int __cc;
3149   __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
3150   return __cc == 0;
3151 }
3152 
3153 static inline __ATTRS_o_ai int
3154 vec_all_eq(__vector __bool int __a, __vector __bool int __b) {
3155   int __cc;
3156   __builtin_s390_vceqfs((__vector unsigned int)__a,
3157                         (__vector unsigned int)__b, &__cc);
3158   return __cc == 0;
3159 }
3160 
3161 static inline __ATTRS_o_ai int
3162 vec_all_eq(__vector signed long long __a, __vector signed long long __b) {
3163   int __cc;
3164   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3165                         (__vector unsigned long long)__b, &__cc);
3166   return __cc == 0;
3167 }
3168 
3169 // This prototype is deprecated.
3170 static inline __ATTRS_o_ai int
3171 vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {
3172   int __cc;
3173   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3174                         (__vector unsigned long long)__b, &__cc);
3175   return __cc == 0;
3176 }
3177 
3178 // This prototype is deprecated.
3179 static inline __ATTRS_o_ai int
3180 vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {
3181   int __cc;
3182   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3183                         (__vector unsigned long long)__b, &__cc);
3184   return __cc == 0;
3185 }
3186 
3187 static inline __ATTRS_o_ai int
3188 vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
3189   int __cc;
3190   __builtin_s390_vceqgs(__a, __b, &__cc);
3191   return __cc == 0;
3192 }
3193 
3194 // This prototype is deprecated.
3195 static inline __ATTRS_o_ai int
3196 vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {
3197   int __cc;
3198   __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
3199   return __cc == 0;
3200 }
3201 
3202 // This prototype is deprecated.
3203 static inline __ATTRS_o_ai int
3204 vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {
3205   int __cc;
3206   __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
3207   return __cc == 0;
3208 }
3209 
3210 static inline __ATTRS_o_ai int
3211 vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
3212   int __cc;
3213   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3214                         (__vector unsigned long long)__b, &__cc);
3215   return __cc == 0;
3216 }
3217 
3218 #if __ARCH__ >= 15
3219 static inline __ATTRS_o_ai int
3220 vec_all_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
3221   int __cc;
3222   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3223   return __cc == 0;
3224 }
3225 
3226 static inline __ATTRS_o_ai int
3227 vec_all_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3228   int __cc;
3229   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3230   return __cc == 0;
3231 }
3232 
3233 static inline __ATTRS_o_ai int
3234 vec_all_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
3235   int __cc;
3236   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3237   return __cc == 0;
3238 }
3239 #endif
3240 
3241 #if __ARCH__ >= 12
3242 static inline __ATTRS_o_ai int
3243 vec_all_eq(__vector float __a, __vector float __b) {
3244   int __cc;
3245   __builtin_s390_vfcesbs(__a, __b, &__cc);
3246   return __cc == 0;
3247 }
3248 #endif
3249 
3250 static inline __ATTRS_o_ai int
3251 vec_all_eq(__vector double __a, __vector double __b) {
3252   int __cc;
3253   __builtin_s390_vfcedbs(__a, __b, &__cc);
3254   return __cc == 0;
3255 }
3256 
3257 /*-- vec_all_ne -------------------------------------------------------------*/
3258 
3259 static inline __ATTRS_o_ai int
3260 vec_all_ne(__vector signed char __a, __vector signed char __b) {
3261   int __cc;
3262   __builtin_s390_vceqbs((__vector unsigned char)__a,
3263                         (__vector unsigned char)__b, &__cc);
3264   return __cc == 3;
3265 }
3266 
3267 // This prototype is deprecated.
3268 static inline __ATTRS_o_ai int
3269 vec_all_ne(__vector signed char __a, __vector __bool char __b) {
3270   int __cc;
3271   __builtin_s390_vceqbs((__vector unsigned char)__a,
3272                         (__vector unsigned char)__b, &__cc);
3273   return __cc == 3;
3274 }
3275 
3276 // This prototype is deprecated.
3277 static inline __ATTRS_o_ai int
3278 vec_all_ne(__vector __bool char __a, __vector signed char __b) {
3279   int __cc;
3280   __builtin_s390_vceqbs((__vector unsigned char)__a,
3281                         (__vector unsigned char)__b, &__cc);
3282   return __cc == 3;
3283 }
3284 
3285 static inline __ATTRS_o_ai int
3286 vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {
3287   int __cc;
3288   __builtin_s390_vceqbs((__vector unsigned char)__a,
3289                         (__vector unsigned char)__b, &__cc);
3290   return __cc == 3;
3291 }
3292 
3293 // This prototype is deprecated.
3294 static inline __ATTRS_o_ai int
3295 vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {
3296   int __cc;
3297   __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
3298   return __cc == 3;
3299 }
3300 
3301 // This prototype is deprecated.
3302 static inline __ATTRS_o_ai int
3303 vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {
3304   int __cc;
3305   __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
3306   return __cc == 3;
3307 }
3308 
3309 static inline __ATTRS_o_ai int
3310 vec_all_ne(__vector __bool char __a, __vector __bool char __b) {
3311   int __cc;
3312   __builtin_s390_vceqbs((__vector unsigned char)__a,
3313                         (__vector unsigned char)__b, &__cc);
3314   return __cc == 3;
3315 }
3316 
3317 static inline __ATTRS_o_ai int
3318 vec_all_ne(__vector signed short __a, __vector signed short __b) {
3319   int __cc;
3320   __builtin_s390_vceqhs((__vector unsigned short)__a,
3321                         (__vector unsigned short)__b, &__cc);
3322   return __cc == 3;
3323 }
3324 
3325 // This prototype is deprecated.
3326 static inline __ATTRS_o_ai int
3327 vec_all_ne(__vector signed short __a, __vector __bool short __b) {
3328   int __cc;
3329   __builtin_s390_vceqhs((__vector unsigned short)__a,
3330                         (__vector unsigned short)__b, &__cc);
3331   return __cc == 3;
3332 }
3333 
3334 // This prototype is deprecated.
3335 static inline __ATTRS_o_ai int
3336 vec_all_ne(__vector __bool short __a, __vector signed short __b) {
3337   int __cc;
3338   __builtin_s390_vceqhs((__vector unsigned short)__a,
3339                         (__vector unsigned short)__b, &__cc);
3340   return __cc == 3;
3341 }
3342 
3343 static inline __ATTRS_o_ai int
3344 vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {
3345   int __cc;
3346   __builtin_s390_vceqhs(__a, __b, &__cc);
3347   return __cc == 3;
3348 }
3349 
3350 // This prototype is deprecated.
3351 static inline __ATTRS_o_ai int
3352 vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {
3353   int __cc;
3354   __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
3355   return __cc == 3;
3356 }
3357 
3358 // This prototype is deprecated.
3359 static inline __ATTRS_o_ai int
3360 vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {
3361   int __cc;
3362   __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
3363   return __cc == 3;
3364 }
3365 
3366 static inline __ATTRS_o_ai int
3367 vec_all_ne(__vector __bool short __a, __vector __bool short __b) {
3368   int __cc;
3369   __builtin_s390_vceqhs((__vector unsigned short)__a,
3370                         (__vector unsigned short)__b, &__cc);
3371   return __cc == 3;
3372 }
3373 
3374 static inline __ATTRS_o_ai int
3375 vec_all_ne(__vector signed int __a, __vector signed int __b) {
3376   int __cc;
3377   __builtin_s390_vceqfs((__vector unsigned int)__a,
3378                         (__vector unsigned int)__b, &__cc);
3379   return __cc == 3;
3380 }
3381 
3382 // This prototype is deprecated.
3383 static inline __ATTRS_o_ai int
3384 vec_all_ne(__vector signed int __a, __vector __bool int __b) {
3385   int __cc;
3386   __builtin_s390_vceqfs((__vector unsigned int)__a,
3387                         (__vector unsigned int)__b, &__cc);
3388   return __cc == 3;
3389 }
3390 
3391 // This prototype is deprecated.
3392 static inline __ATTRS_o_ai int
3393 vec_all_ne(__vector __bool int __a, __vector signed int __b) {
3394   int __cc;
3395   __builtin_s390_vceqfs((__vector unsigned int)__a,
3396                         (__vector unsigned int)__b, &__cc);
3397   return __cc == 3;
3398 }
3399 
3400 static inline __ATTRS_o_ai int
3401 vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {
3402   int __cc;
3403   __builtin_s390_vceqfs(__a, __b, &__cc);
3404   return __cc == 3;
3405 }
3406 
3407 // This prototype is deprecated.
3408 static inline __ATTRS_o_ai int
3409 vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {
3410   int __cc;
3411   __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
3412   return __cc == 3;
3413 }
3414 
3415 // This prototype is deprecated.
3416 static inline __ATTRS_o_ai int
3417 vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {
3418   int __cc;
3419   __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
3420   return __cc == 3;
3421 }
3422 
3423 static inline __ATTRS_o_ai int
3424 vec_all_ne(__vector __bool int __a, __vector __bool int __b) {
3425   int __cc;
3426   __builtin_s390_vceqfs((__vector unsigned int)__a,
3427                         (__vector unsigned int)__b, &__cc);
3428   return __cc == 3;
3429 }
3430 
3431 static inline __ATTRS_o_ai int
3432 vec_all_ne(__vector signed long long __a, __vector signed long long __b) {
3433   int __cc;
3434   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3435                         (__vector unsigned long long)__b, &__cc);
3436   return __cc == 3;
3437 }
3438 
3439 // This prototype is deprecated.
3440 static inline __ATTRS_o_ai int
3441 vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {
3442   int __cc;
3443   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3444                         (__vector unsigned long long)__b, &__cc);
3445   return __cc == 3;
3446 }
3447 
3448 // This prototype is deprecated.
3449 static inline __ATTRS_o_ai int
3450 vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {
3451   int __cc;
3452   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3453                         (__vector unsigned long long)__b, &__cc);
3454   return __cc == 3;
3455 }
3456 
3457 static inline __ATTRS_o_ai int
3458 vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
3459   int __cc;
3460   __builtin_s390_vceqgs(__a, __b, &__cc);
3461   return __cc == 3;
3462 }
3463 
3464 // This prototype is deprecated.
3465 static inline __ATTRS_o_ai int
3466 vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {
3467   int __cc;
3468   __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
3469   return __cc == 3;
3470 }
3471 
3472 // This prototype is deprecated.
3473 static inline __ATTRS_o_ai int
3474 vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {
3475   int __cc;
3476   __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
3477   return __cc == 3;
3478 }
3479 
3480 static inline __ATTRS_o_ai int
3481 vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
3482   int __cc;
3483   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3484                         (__vector unsigned long long)__b, &__cc);
3485   return __cc == 3;
3486 }
3487 
3488 #if __ARCH__ >= 15
3489 static inline __ATTRS_o_ai int
3490 vec_all_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
3491   int __cc;
3492   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3493   return __cc == 3;
3494 }
3495 
3496 static inline __ATTRS_o_ai int
3497 vec_all_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3498   int __cc;
3499   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3500   return __cc == 3;
3501 }
3502 
3503 static inline __ATTRS_o_ai int
3504 vec_all_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
3505   int __cc;
3506   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3507   return __cc == 3;
3508 }
3509 #endif
3510 
3511 #if __ARCH__ >= 12
3512 static inline __ATTRS_o_ai int
3513 vec_all_ne(__vector float __a, __vector float __b) {
3514   int __cc;
3515   __builtin_s390_vfcesbs(__a, __b, &__cc);
3516   return __cc == 3;
3517 }
3518 #endif
3519 
3520 static inline __ATTRS_o_ai int
3521 vec_all_ne(__vector double __a, __vector double __b) {
3522   int __cc;
3523   __builtin_s390_vfcedbs(__a, __b, &__cc);
3524   return __cc == 3;
3525 }
3526 
3527 /*-- vec_all_ge -------------------------------------------------------------*/
3528 
3529 static inline __ATTRS_o_ai int
3530 vec_all_ge(__vector signed char __a, __vector signed char __b) {
3531   int __cc;
3532   __builtin_s390_vchbs(__b, __a, &__cc);
3533   return __cc == 3;
3534 }
3535 
3536 // This prototype is deprecated.
3537 static inline __ATTRS_o_ai int
3538 vec_all_ge(__vector signed char __a, __vector __bool char __b) {
3539   int __cc;
3540   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3541   return __cc == 3;
3542 }
3543 
3544 // This prototype is deprecated.
3545 static inline __ATTRS_o_ai int
3546 vec_all_ge(__vector __bool char __a, __vector signed char __b) {
3547   int __cc;
3548   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3549   return __cc == 3;
3550 }
3551 
3552 static inline __ATTRS_o_ai int
3553 vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {
3554   int __cc;
3555   __builtin_s390_vchlbs(__b, __a, &__cc);
3556   return __cc == 3;
3557 }
3558 
3559 // This prototype is deprecated.
3560 static inline __ATTRS_o_ai int
3561 vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {
3562   int __cc;
3563   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3564   return __cc == 3;
3565 }
3566 
3567 // This prototype is deprecated.
3568 static inline __ATTRS_o_ai int
3569 vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {
3570   int __cc;
3571   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3572   return __cc == 3;
3573 }
3574 
3575 // This prototype is deprecated.
3576 static inline __ATTRS_o_ai int
3577 vec_all_ge(__vector __bool char __a, __vector __bool char __b) {
3578   int __cc;
3579   __builtin_s390_vchlbs((__vector unsigned char)__b,
3580                         (__vector unsigned char)__a, &__cc);
3581   return __cc == 3;
3582 }
3583 
3584 static inline __ATTRS_o_ai int
3585 vec_all_ge(__vector signed short __a, __vector signed short __b) {
3586   int __cc;
3587   __builtin_s390_vchhs(__b, __a, &__cc);
3588   return __cc == 3;
3589 }
3590 
3591 // This prototype is deprecated.
3592 static inline __ATTRS_o_ai int
3593 vec_all_ge(__vector signed short __a, __vector __bool short __b) {
3594   int __cc;
3595   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3596   return __cc == 3;
3597 }
3598 
3599 // This prototype is deprecated.
3600 static inline __ATTRS_o_ai int
3601 vec_all_ge(__vector __bool short __a, __vector signed short __b) {
3602   int __cc;
3603   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3604   return __cc == 3;
3605 }
3606 
3607 static inline __ATTRS_o_ai int
3608 vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {
3609   int __cc;
3610   __builtin_s390_vchlhs(__b, __a, &__cc);
3611   return __cc == 3;
3612 }
3613 
3614 // This prototype is deprecated.
3615 static inline __ATTRS_o_ai int
3616 vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {
3617   int __cc;
3618   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3619   return __cc == 3;
3620 }
3621 
3622 // This prototype is deprecated.
3623 static inline __ATTRS_o_ai int
3624 vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {
3625   int __cc;
3626   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3627   return __cc == 3;
3628 }
3629 
3630 // This prototype is deprecated.
3631 static inline __ATTRS_o_ai int
3632 vec_all_ge(__vector __bool short __a, __vector __bool short __b) {
3633   int __cc;
3634   __builtin_s390_vchlhs((__vector unsigned short)__b,
3635                         (__vector unsigned short)__a, &__cc);
3636   return __cc == 3;
3637 }
3638 
3639 static inline __ATTRS_o_ai int
3640 vec_all_ge(__vector signed int __a, __vector signed int __b) {
3641   int __cc;
3642   __builtin_s390_vchfs(__b, __a, &__cc);
3643   return __cc == 3;
3644 }
3645 
3646 // This prototype is deprecated.
3647 static inline __ATTRS_o_ai int
3648 vec_all_ge(__vector signed int __a, __vector __bool int __b) {
3649   int __cc;
3650   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
3651   return __cc == 3;
3652 }
3653 
3654 // This prototype is deprecated.
3655 static inline __ATTRS_o_ai int
3656 vec_all_ge(__vector __bool int __a, __vector signed int __b) {
3657   int __cc;
3658   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
3659   return __cc == 3;
3660 }
3661 
3662 static inline __ATTRS_o_ai int
3663 vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {
3664   int __cc;
3665   __builtin_s390_vchlfs(__b, __a, &__cc);
3666   return __cc == 3;
3667 }
3668 
3669 // This prototype is deprecated.
3670 static inline __ATTRS_o_ai int
3671 vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {
3672   int __cc;
3673   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
3674   return __cc == 3;
3675 }
3676 
3677 // This prototype is deprecated.
3678 static inline __ATTRS_o_ai int
3679 vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {
3680   int __cc;
3681   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
3682   return __cc == 3;
3683 }
3684 
3685 // This prototype is deprecated.
3686 static inline __ATTRS_o_ai int
3687 vec_all_ge(__vector __bool int __a, __vector __bool int __b) {
3688   int __cc;
3689   __builtin_s390_vchlfs((__vector unsigned int)__b,
3690                         (__vector unsigned int)__a, &__cc);
3691   return __cc == 3;
3692 }
3693 
3694 static inline __ATTRS_o_ai int
3695 vec_all_ge(__vector signed long long __a, __vector signed long long __b) {
3696   int __cc;
3697   __builtin_s390_vchgs(__b, __a, &__cc);
3698   return __cc == 3;
3699 }
3700 
3701 // This prototype is deprecated.
3702 static inline __ATTRS_o_ai int
3703 vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {
3704   int __cc;
3705   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
3706   return __cc == 3;
3707 }
3708 
3709 // This prototype is deprecated.
3710 static inline __ATTRS_o_ai int
3711 vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {
3712   int __cc;
3713   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
3714   return __cc == 3;
3715 }
3716 
3717 static inline __ATTRS_o_ai int
3718 vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
3719   int __cc;
3720   __builtin_s390_vchlgs(__b, __a, &__cc);
3721   return __cc == 3;
3722 }
3723 
3724 // This prototype is deprecated.
3725 static inline __ATTRS_o_ai int
3726 vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {
3727   int __cc;
3728   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
3729   return __cc == 3;
3730 }
3731 
3732 // This prototype is deprecated.
3733 static inline __ATTRS_o_ai int
3734 vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {
3735   int __cc;
3736   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
3737   return __cc == 3;
3738 }
3739 
3740 // This prototype is deprecated.
3741 static inline __ATTRS_o_ai int
3742 vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
3743   int __cc;
3744   __builtin_s390_vchlgs((__vector unsigned long long)__b,
3745                         (__vector unsigned long long)__a, &__cc);
3746   return __cc == 3;
3747 }
3748 
3749 #if __ARCH__ >= 15
3750 static inline __ATTRS_o_ai int
3751 vec_all_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
3752   int __cc;
3753   __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
3754   return __cc == 3;
3755 }
3756 
3757 static inline __ATTRS_o_ai int
3758 vec_all_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3759   int __cc;
3760   __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
3761   return __cc == 3;
3762 }
3763 #endif
3764 
3765 #if __ARCH__ >= 12
3766 static inline __ATTRS_o_ai int
3767 vec_all_ge(__vector float __a, __vector float __b) {
3768   int __cc;
3769   __builtin_s390_vfchesbs(__a, __b, &__cc);
3770   return __cc == 0;
3771 }
3772 #endif
3773 
3774 static inline __ATTRS_o_ai int
3775 vec_all_ge(__vector double __a, __vector double __b) {
3776   int __cc;
3777   __builtin_s390_vfchedbs(__a, __b, &__cc);
3778   return __cc == 0;
3779 }
3780 
3781 /*-- vec_all_gt -------------------------------------------------------------*/
3782 
3783 static inline __ATTRS_o_ai int
3784 vec_all_gt(__vector signed char __a, __vector signed char __b) {
3785   int __cc;
3786   __builtin_s390_vchbs(__a, __b, &__cc);
3787   return __cc == 0;
3788 }
3789 
3790 // This prototype is deprecated.
3791 static inline __ATTRS_o_ai int
3792 vec_all_gt(__vector signed char __a, __vector __bool char __b) {
3793   int __cc;
3794   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3795   return __cc == 0;
3796 }
3797 
3798 // This prototype is deprecated.
3799 static inline __ATTRS_o_ai int
3800 vec_all_gt(__vector __bool char __a, __vector signed char __b) {
3801   int __cc;
3802   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3803   return __cc == 0;
3804 }
3805 
3806 static inline __ATTRS_o_ai int
3807 vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {
3808   int __cc;
3809   __builtin_s390_vchlbs(__a, __b, &__cc);
3810   return __cc == 0;
3811 }
3812 
3813 // This prototype is deprecated.
3814 static inline __ATTRS_o_ai int
3815 vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {
3816   int __cc;
3817   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3818   return __cc == 0;
3819 }
3820 
3821 // This prototype is deprecated.
3822 static inline __ATTRS_o_ai int
3823 vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {
3824   int __cc;
3825   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3826   return __cc == 0;
3827 }
3828 
3829 // This prototype is deprecated.
3830 static inline __ATTRS_o_ai int
3831 vec_all_gt(__vector __bool char __a, __vector __bool char __b) {
3832   int __cc;
3833   __builtin_s390_vchlbs((__vector unsigned char)__a,
3834                         (__vector unsigned char)__b, &__cc);
3835   return __cc == 0;
3836 }
3837 
3838 static inline __ATTRS_o_ai int
3839 vec_all_gt(__vector signed short __a, __vector signed short __b) {
3840   int __cc;
3841   __builtin_s390_vchhs(__a, __b, &__cc);
3842   return __cc == 0;
3843 }
3844 
3845 // This prototype is deprecated.
3846 static inline __ATTRS_o_ai int
3847 vec_all_gt(__vector signed short __a, __vector __bool short __b) {
3848   int __cc;
3849   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3850   return __cc == 0;
3851 }
3852 
3853 // This prototype is deprecated.
3854 static inline __ATTRS_o_ai int
3855 vec_all_gt(__vector __bool short __a, __vector signed short __b) {
3856   int __cc;
3857   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3858   return __cc == 0;
3859 }
3860 
3861 static inline __ATTRS_o_ai int
3862 vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {
3863   int __cc;
3864   __builtin_s390_vchlhs(__a, __b, &__cc);
3865   return __cc == 0;
3866 }
3867 
3868 // This prototype is deprecated.
3869 static inline __ATTRS_o_ai int
3870 vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {
3871   int __cc;
3872   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3873   return __cc == 0;
3874 }
3875 
3876 // This prototype is deprecated.
3877 static inline __ATTRS_o_ai int
3878 vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {
3879   int __cc;
3880   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3881   return __cc == 0;
3882 }
3883 
3884 // This prototype is deprecated.
3885 static inline __ATTRS_o_ai int
3886 vec_all_gt(__vector __bool short __a, __vector __bool short __b) {
3887   int __cc;
3888   __builtin_s390_vchlhs((__vector unsigned short)__a,
3889                         (__vector unsigned short)__b, &__cc);
3890   return __cc == 0;
3891 }
3892 
3893 static inline __ATTRS_o_ai int
3894 vec_all_gt(__vector signed int __a, __vector signed int __b) {
3895   int __cc;
3896   __builtin_s390_vchfs(__a, __b, &__cc);
3897   return __cc == 0;
3898 }
3899 
3900 // This prototype is deprecated.
3901 static inline __ATTRS_o_ai int
3902 vec_all_gt(__vector signed int __a, __vector __bool int __b) {
3903   int __cc;
3904   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3905   return __cc == 0;
3906 }
3907 
3908 // This prototype is deprecated.
3909 static inline __ATTRS_o_ai int
3910 vec_all_gt(__vector __bool int __a, __vector signed int __b) {
3911   int __cc;
3912   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3913   return __cc == 0;
3914 }
3915 
3916 static inline __ATTRS_o_ai int
3917 vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {
3918   int __cc;
3919   __builtin_s390_vchlfs(__a, __b, &__cc);
3920   return __cc == 0;
3921 }
3922 
3923 // This prototype is deprecated.
3924 static inline __ATTRS_o_ai int
3925 vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {
3926   int __cc;
3927   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3928   return __cc == 0;
3929 }
3930 
3931 // This prototype is deprecated.
3932 static inline __ATTRS_o_ai int
3933 vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {
3934   int __cc;
3935   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3936   return __cc == 0;
3937 }
3938 
3939 // This prototype is deprecated.
3940 static inline __ATTRS_o_ai int
3941 vec_all_gt(__vector __bool int __a, __vector __bool int __b) {
3942   int __cc;
3943   __builtin_s390_vchlfs((__vector unsigned int)__a,
3944                         (__vector unsigned int)__b, &__cc);
3945   return __cc == 0;
3946 }
3947 
3948 static inline __ATTRS_o_ai int
3949 vec_all_gt(__vector signed long long __a, __vector signed long long __b) {
3950   int __cc;
3951   __builtin_s390_vchgs(__a, __b, &__cc);
3952   return __cc == 0;
3953 }
3954 
3955 // This prototype is deprecated.
3956 static inline __ATTRS_o_ai int
3957 vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {
3958   int __cc;
3959   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3960   return __cc == 0;
3961 }
3962 
3963 // This prototype is deprecated.
3964 static inline __ATTRS_o_ai int
3965 vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {
3966   int __cc;
3967   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3968   return __cc == 0;
3969 }
3970 
3971 static inline __ATTRS_o_ai int
3972 vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
3973   int __cc;
3974   __builtin_s390_vchlgs(__a, __b, &__cc);
3975   return __cc == 0;
3976 }
3977 
3978 // This prototype is deprecated.
3979 static inline __ATTRS_o_ai int
3980 vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {
3981   int __cc;
3982   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3983   return __cc == 0;
3984 }
3985 
3986 // This prototype is deprecated.
3987 static inline __ATTRS_o_ai int
3988 vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {
3989   int __cc;
3990   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3991   return __cc == 0;
3992 }
3993 
3994 // This prototype is deprecated.
3995 static inline __ATTRS_o_ai int
3996 vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
3997   int __cc;
3998   __builtin_s390_vchlgs((__vector unsigned long long)__a,
3999                         (__vector unsigned long long)__b, &__cc);
4000   return __cc == 0;
4001 }
4002 
4003 #if __ARCH__ >= 15
4004 static inline __ATTRS_o_ai int
4005 vec_all_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
4006   int __cc;
4007   __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
4008   return __cc == 0;
4009 }
4010 
4011 static inline __ATTRS_o_ai int
4012 vec_all_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4013   int __cc;
4014   __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4015   return __cc == 0;
4016 }
4017 #endif
4018 
4019 #if __ARCH__ >= 12
4020 static inline __ATTRS_o_ai int
4021 vec_all_gt(__vector float __a, __vector float __b) {
4022   int __cc;
4023   __builtin_s390_vfchsbs(__a, __b, &__cc);
4024   return __cc == 0;
4025 }
4026 #endif
4027 
4028 static inline __ATTRS_o_ai int
4029 vec_all_gt(__vector double __a, __vector double __b) {
4030   int __cc;
4031   __builtin_s390_vfchdbs(__a, __b, &__cc);
4032   return __cc == 0;
4033 }
4034 
4035 /*-- vec_all_le -------------------------------------------------------------*/
4036 
4037 static inline __ATTRS_o_ai int
4038 vec_all_le(__vector signed char __a, __vector signed char __b) {
4039   int __cc;
4040   __builtin_s390_vchbs(__a, __b, &__cc);
4041   return __cc == 3;
4042 }
4043 
4044 // This prototype is deprecated.
4045 static inline __ATTRS_o_ai int
4046 vec_all_le(__vector signed char __a, __vector __bool char __b) {
4047   int __cc;
4048   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
4049   return __cc == 3;
4050 }
4051 
4052 // This prototype is deprecated.
4053 static inline __ATTRS_o_ai int
4054 vec_all_le(__vector __bool char __a, __vector signed char __b) {
4055   int __cc;
4056   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
4057   return __cc == 3;
4058 }
4059 
4060 static inline __ATTRS_o_ai int
4061 vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {
4062   int __cc;
4063   __builtin_s390_vchlbs(__a, __b, &__cc);
4064   return __cc == 3;
4065 }
4066 
4067 // This prototype is deprecated.
4068 static inline __ATTRS_o_ai int
4069 vec_all_le(__vector unsigned char __a, __vector __bool char __b) {
4070   int __cc;
4071   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
4072   return __cc == 3;
4073 }
4074 
4075 // This prototype is deprecated.
4076 static inline __ATTRS_o_ai int
4077 vec_all_le(__vector __bool char __a, __vector unsigned char __b) {
4078   int __cc;
4079   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
4080   return __cc == 3;
4081 }
4082 
4083 // This prototype is deprecated.
4084 static inline __ATTRS_o_ai int
4085 vec_all_le(__vector __bool char __a, __vector __bool char __b) {
4086   int __cc;
4087   __builtin_s390_vchlbs((__vector unsigned char)__a,
4088                         (__vector unsigned char)__b, &__cc);
4089   return __cc == 3;
4090 }
4091 
4092 static inline __ATTRS_o_ai int
4093 vec_all_le(__vector signed short __a, __vector signed short __b) {
4094   int __cc;
4095   __builtin_s390_vchhs(__a, __b, &__cc);
4096   return __cc == 3;
4097 }
4098 
4099 // This prototype is deprecated.
4100 static inline __ATTRS_o_ai int
4101 vec_all_le(__vector signed short __a, __vector __bool short __b) {
4102   int __cc;
4103   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
4104   return __cc == 3;
4105 }
4106 
4107 // This prototype is deprecated.
4108 static inline __ATTRS_o_ai int
4109 vec_all_le(__vector __bool short __a, __vector signed short __b) {
4110   int __cc;
4111   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
4112   return __cc == 3;
4113 }
4114 
4115 static inline __ATTRS_o_ai int
4116 vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {
4117   int __cc;
4118   __builtin_s390_vchlhs(__a, __b, &__cc);
4119   return __cc == 3;
4120 }
4121 
4122 // This prototype is deprecated.
4123 static inline __ATTRS_o_ai int
4124 vec_all_le(__vector unsigned short __a, __vector __bool short __b) {
4125   int __cc;
4126   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
4127   return __cc == 3;
4128 }
4129 
4130 // This prototype is deprecated.
4131 static inline __ATTRS_o_ai int
4132 vec_all_le(__vector __bool short __a, __vector unsigned short __b) {
4133   int __cc;
4134   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
4135   return __cc == 3;
4136 }
4137 
4138 // This prototype is deprecated.
4139 static inline __ATTRS_o_ai int
4140 vec_all_le(__vector __bool short __a, __vector __bool short __b) {
4141   int __cc;
4142   __builtin_s390_vchlhs((__vector unsigned short)__a,
4143                         (__vector unsigned short)__b, &__cc);
4144   return __cc == 3;
4145 }
4146 
4147 static inline __ATTRS_o_ai int
4148 vec_all_le(__vector signed int __a, __vector signed int __b) {
4149   int __cc;
4150   __builtin_s390_vchfs(__a, __b, &__cc);
4151   return __cc == 3;
4152 }
4153 
4154 // This prototype is deprecated.
4155 static inline __ATTRS_o_ai int
4156 vec_all_le(__vector signed int __a, __vector __bool int __b) {
4157   int __cc;
4158   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
4159   return __cc == 3;
4160 }
4161 
4162 // This prototype is deprecated.
4163 static inline __ATTRS_o_ai int
4164 vec_all_le(__vector __bool int __a, __vector signed int __b) {
4165   int __cc;
4166   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
4167   return __cc == 3;
4168 }
4169 
4170 static inline __ATTRS_o_ai int
4171 vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {
4172   int __cc;
4173   __builtin_s390_vchlfs(__a, __b, &__cc);
4174   return __cc == 3;
4175 }
4176 
4177 // This prototype is deprecated.
4178 static inline __ATTRS_o_ai int
4179 vec_all_le(__vector unsigned int __a, __vector __bool int __b) {
4180   int __cc;
4181   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
4182   return __cc == 3;
4183 }
4184 
4185 // This prototype is deprecated.
4186 static inline __ATTRS_o_ai int
4187 vec_all_le(__vector __bool int __a, __vector unsigned int __b) {
4188   int __cc;
4189   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
4190   return __cc == 3;
4191 }
4192 
4193 // This prototype is deprecated.
4194 static inline __ATTRS_o_ai int
4195 vec_all_le(__vector __bool int __a, __vector __bool int __b) {
4196   int __cc;
4197   __builtin_s390_vchlfs((__vector unsigned int)__a,
4198                         (__vector unsigned int)__b, &__cc);
4199   return __cc == 3;
4200 }
4201 
4202 static inline __ATTRS_o_ai int
4203 vec_all_le(__vector signed long long __a, __vector signed long long __b) {
4204   int __cc;
4205   __builtin_s390_vchgs(__a, __b, &__cc);
4206   return __cc == 3;
4207 }
4208 
4209 // This prototype is deprecated.
4210 static inline __ATTRS_o_ai int
4211 vec_all_le(__vector signed long long __a, __vector __bool long long __b) {
4212   int __cc;
4213   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
4214   return __cc == 3;
4215 }
4216 
4217 // This prototype is deprecated.
4218 static inline __ATTRS_o_ai int
4219 vec_all_le(__vector __bool long long __a, __vector signed long long __b) {
4220   int __cc;
4221   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
4222   return __cc == 3;
4223 }
4224 
4225 static inline __ATTRS_o_ai int
4226 vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {
4227   int __cc;
4228   __builtin_s390_vchlgs(__a, __b, &__cc);
4229   return __cc == 3;
4230 }
4231 
4232 // This prototype is deprecated.
4233 static inline __ATTRS_o_ai int
4234 vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {
4235   int __cc;
4236   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
4237   return __cc == 3;
4238 }
4239 
4240 // This prototype is deprecated.
4241 static inline __ATTRS_o_ai int
4242 vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {
4243   int __cc;
4244   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
4245   return __cc == 3;
4246 }
4247 
4248 // This prototype is deprecated.
4249 static inline __ATTRS_o_ai int
4250 vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
4251   int __cc;
4252   __builtin_s390_vchlgs((__vector unsigned long long)__a,
4253                         (__vector unsigned long long)__b, &__cc);
4254   return __cc == 3;
4255 }
4256 
4257 #if __ARCH__ >= 15
4258 static inline __ATTRS_o_ai int
4259 vec_all_le(__vector signed __int128 __a, __vector signed __int128 __b) {
4260   int __cc;
4261   __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
4262   return __cc == 3;
4263 }
4264 
4265 static inline __ATTRS_o_ai int
4266 vec_all_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4267   int __cc;
4268   __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4269   return __cc == 3;
4270 }
4271 #endif
4272 
4273 #if __ARCH__ >= 12
4274 static inline __ATTRS_o_ai int
4275 vec_all_le(__vector float __a, __vector float __b) {
4276   int __cc;
4277   __builtin_s390_vfchesbs(__b, __a, &__cc);
4278   return __cc == 0;
4279 }
4280 #endif
4281 
4282 static inline __ATTRS_o_ai int
4283 vec_all_le(__vector double __a, __vector double __b) {
4284   int __cc;
4285   __builtin_s390_vfchedbs(__b, __a, &__cc);
4286   return __cc == 0;
4287 }
4288 
4289 /*-- vec_all_lt -------------------------------------------------------------*/
4290 
4291 static inline __ATTRS_o_ai int
4292 vec_all_lt(__vector signed char __a, __vector signed char __b) {
4293   int __cc;
4294   __builtin_s390_vchbs(__b, __a, &__cc);
4295   return __cc == 0;
4296 }
4297 
4298 // This prototype is deprecated.
4299 static inline __ATTRS_o_ai int
4300 vec_all_lt(__vector signed char __a, __vector __bool char __b) {
4301   int __cc;
4302   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
4303   return __cc == 0;
4304 }
4305 
4306 // This prototype is deprecated.
4307 static inline __ATTRS_o_ai int
4308 vec_all_lt(__vector __bool char __a, __vector signed char __b) {
4309   int __cc;
4310   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
4311   return __cc == 0;
4312 }
4313 
4314 static inline __ATTRS_o_ai int
4315 vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {
4316   int __cc;
4317   __builtin_s390_vchlbs(__b, __a, &__cc);
4318   return __cc == 0;
4319 }
4320 
4321 // This prototype is deprecated.
4322 static inline __ATTRS_o_ai int
4323 vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {
4324   int __cc;
4325   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
4326   return __cc == 0;
4327 }
4328 
4329 // This prototype is deprecated.
4330 static inline __ATTRS_o_ai int
4331 vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {
4332   int __cc;
4333   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
4334   return __cc == 0;
4335 }
4336 
4337 // This prototype is deprecated.
4338 static inline __ATTRS_o_ai int
4339 vec_all_lt(__vector __bool char __a, __vector __bool char __b) {
4340   int __cc;
4341   __builtin_s390_vchlbs((__vector unsigned char)__b,
4342                         (__vector unsigned char)__a, &__cc);
4343   return __cc == 0;
4344 }
4345 
4346 static inline __ATTRS_o_ai int
4347 vec_all_lt(__vector signed short __a, __vector signed short __b) {
4348   int __cc;
4349   __builtin_s390_vchhs(__b, __a, &__cc);
4350   return __cc == 0;
4351 }
4352 
4353 // This prototype is deprecated.
4354 static inline __ATTRS_o_ai int
4355 vec_all_lt(__vector signed short __a, __vector __bool short __b) {
4356   int __cc;
4357   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
4358   return __cc == 0;
4359 }
4360 
4361 // This prototype is deprecated.
4362 static inline __ATTRS_o_ai int
4363 vec_all_lt(__vector __bool short __a, __vector signed short __b) {
4364   int __cc;
4365   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
4366   return __cc == 0;
4367 }
4368 
4369 static inline __ATTRS_o_ai int
4370 vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {
4371   int __cc;
4372   __builtin_s390_vchlhs(__b, __a, &__cc);
4373   return __cc == 0;
4374 }
4375 
4376 // This prototype is deprecated.
4377 static inline __ATTRS_o_ai int
4378 vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {
4379   int __cc;
4380   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
4381   return __cc == 0;
4382 }
4383 
4384 // This prototype is deprecated.
4385 static inline __ATTRS_o_ai int
4386 vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {
4387   int __cc;
4388   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
4389   return __cc == 0;
4390 }
4391 
4392 // This prototype is deprecated.
4393 static inline __ATTRS_o_ai int
4394 vec_all_lt(__vector __bool short __a, __vector __bool short __b) {
4395   int __cc;
4396   __builtin_s390_vchlhs((__vector unsigned short)__b,
4397                         (__vector unsigned short)__a, &__cc);
4398   return __cc == 0;
4399 }
4400 
4401 static inline __ATTRS_o_ai int
4402 vec_all_lt(__vector signed int __a, __vector signed int __b) {
4403   int __cc;
4404   __builtin_s390_vchfs(__b, __a, &__cc);
4405   return __cc == 0;
4406 }
4407 
4408 // This prototype is deprecated.
4409 static inline __ATTRS_o_ai int
4410 vec_all_lt(__vector signed int __a, __vector __bool int __b) {
4411   int __cc;
4412   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
4413   return __cc == 0;
4414 }
4415 
4416 // This prototype is deprecated.
4417 static inline __ATTRS_o_ai int
4418 vec_all_lt(__vector __bool int __a, __vector signed int __b) {
4419   int __cc;
4420   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
4421   return __cc == 0;
4422 }
4423 
4424 static inline __ATTRS_o_ai int
4425 vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {
4426   int __cc;
4427   __builtin_s390_vchlfs(__b, __a, &__cc);
4428   return __cc == 0;
4429 }
4430 
4431 // This prototype is deprecated.
4432 static inline __ATTRS_o_ai int
4433 vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {
4434   int __cc;
4435   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
4436   return __cc == 0;
4437 }
4438 
4439 // This prototype is deprecated.
4440 static inline __ATTRS_o_ai int
4441 vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {
4442   int __cc;
4443   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
4444   return __cc == 0;
4445 }
4446 
4447 // This prototype is deprecated.
4448 static inline __ATTRS_o_ai int
4449 vec_all_lt(__vector __bool int __a, __vector __bool int __b) {
4450   int __cc;
4451   __builtin_s390_vchlfs((__vector unsigned int)__b,
4452                         (__vector unsigned int)__a, &__cc);
4453   return __cc == 0;
4454 }
4455 
4456 static inline __ATTRS_o_ai int
4457 vec_all_lt(__vector signed long long __a, __vector signed long long __b) {
4458   int __cc;
4459   __builtin_s390_vchgs(__b, __a, &__cc);
4460   return __cc == 0;
4461 }
4462 
4463 // This prototype is deprecated.
4464 static inline __ATTRS_o_ai int
4465 vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {
4466   int __cc;
4467   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
4468   return __cc == 0;
4469 }
4470 
4471 // This prototype is deprecated.
4472 static inline __ATTRS_o_ai int
4473 vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {
4474   int __cc;
4475   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
4476   return __cc == 0;
4477 }
4478 
4479 static inline __ATTRS_o_ai int
4480 vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
4481   int __cc;
4482   __builtin_s390_vchlgs(__b, __a, &__cc);
4483   return __cc == 0;
4484 }
4485 
4486 // This prototype is deprecated.
4487 static inline __ATTRS_o_ai int
4488 vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {
4489   int __cc;
4490   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4491   return __cc == 0;
4492 }
4493 
4494 // This prototype is deprecated.
4495 static inline __ATTRS_o_ai int
4496 vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {
4497   int __cc;
4498   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4499   return __cc == 0;
4500 }
4501 
4502 // This prototype is deprecated.
4503 static inline __ATTRS_o_ai int
4504 vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
4505   int __cc;
4506   __builtin_s390_vchlgs((__vector unsigned long long)__b,
4507                         (__vector unsigned long long)__a, &__cc);
4508   return __cc == 0;
4509 }
4510 
4511 #if __ARCH__ >= 15
4512 static inline __ATTRS_o_ai int
4513 vec_all_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
4514   int __cc;
4515   __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
4516   return __cc == 0;
4517 }
4518 
4519 static inline __ATTRS_o_ai int
4520 vec_all_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4521   int __cc;
4522   __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
4523   return __cc == 0;
4524 }
4525 #endif
4526 
4527 #if __ARCH__ >= 12
4528 static inline __ATTRS_o_ai int
4529 vec_all_lt(__vector float __a, __vector float __b) {
4530   int __cc;
4531   __builtin_s390_vfchsbs(__b, __a, &__cc);
4532   return __cc == 0;
4533 }
4534 #endif
4535 
4536 static inline __ATTRS_o_ai int
4537 vec_all_lt(__vector double __a, __vector double __b) {
4538   int __cc;
4539   __builtin_s390_vfchdbs(__b, __a, &__cc);
4540   return __cc == 0;
4541 }
4542 
4543 /*-- vec_all_nge ------------------------------------------------------------*/
4544 
4545 #if __ARCH__ >= 12
4546 static inline __ATTRS_o_ai int
4547 vec_all_nge(__vector float __a, __vector float __b) {
4548   int __cc;
4549   __builtin_s390_vfchesbs(__a, __b, &__cc);
4550   return __cc == 3;
4551 }
4552 #endif
4553 
4554 static inline __ATTRS_o_ai int
4555 vec_all_nge(__vector double __a, __vector double __b) {
4556   int __cc;
4557   __builtin_s390_vfchedbs(__a, __b, &__cc);
4558   return __cc == 3;
4559 }
4560 
4561 /*-- vec_all_ngt ------------------------------------------------------------*/
4562 
4563 #if __ARCH__ >= 12
4564 static inline __ATTRS_o_ai int
4565 vec_all_ngt(__vector float __a, __vector float __b) {
4566   int __cc;
4567   __builtin_s390_vfchsbs(__a, __b, &__cc);
4568   return __cc == 3;
4569 }
4570 #endif
4571 
4572 static inline __ATTRS_o_ai int
4573 vec_all_ngt(__vector double __a, __vector double __b) {
4574   int __cc;
4575   __builtin_s390_vfchdbs(__a, __b, &__cc);
4576   return __cc == 3;
4577 }
4578 
4579 /*-- vec_all_nle ------------------------------------------------------------*/
4580 
4581 #if __ARCH__ >= 12
4582 static inline __ATTRS_o_ai int
4583 vec_all_nle(__vector float __a, __vector float __b) {
4584   int __cc;
4585   __builtin_s390_vfchesbs(__b, __a, &__cc);
4586   return __cc == 3;
4587 }
4588 #endif
4589 
4590 static inline __ATTRS_o_ai int
4591 vec_all_nle(__vector double __a, __vector double __b) {
4592   int __cc;
4593   __builtin_s390_vfchedbs(__b, __a, &__cc);
4594   return __cc == 3;
4595 }
4596 
4597 /*-- vec_all_nlt ------------------------------------------------------------*/
4598 
4599 #if __ARCH__ >= 12
4600 static inline __ATTRS_o_ai int
4601 vec_all_nlt(__vector float __a, __vector float __b) {
4602   int __cc;
4603   __builtin_s390_vfchsbs(__b, __a, &__cc);
4604   return __cc == 3;
4605 }
4606 #endif
4607 
4608 static inline __ATTRS_o_ai int
4609 vec_all_nlt(__vector double __a, __vector double __b) {
4610   int __cc;
4611   __builtin_s390_vfchdbs(__b, __a, &__cc);
4612   return __cc == 3;
4613 }
4614 
4615 /*-- vec_all_nan ------------------------------------------------------------*/
4616 
4617 #if __ARCH__ >= 12
4618 static inline __ATTRS_o_ai int
4619 vec_all_nan(__vector float __a) {
4620   int __cc;
4621   __builtin_s390_vftcisb(__a, 15, &__cc);
4622   return __cc == 0;
4623 }
4624 #endif
4625 
4626 static inline __ATTRS_o_ai int
4627 vec_all_nan(__vector double __a) {
4628   int __cc;
4629   __builtin_s390_vftcidb(__a, 15, &__cc);
4630   return __cc == 0;
4631 }
4632 
4633 /*-- vec_all_numeric --------------------------------------------------------*/
4634 
4635 #if __ARCH__ >= 12
4636 static inline __ATTRS_o_ai int
4637 vec_all_numeric(__vector float __a) {
4638   int __cc;
4639   __builtin_s390_vftcisb(__a, 15, &__cc);
4640   return __cc == 3;
4641 }
4642 #endif
4643 
4644 static inline __ATTRS_o_ai int
4645 vec_all_numeric(__vector double __a) {
4646   int __cc;
4647   __builtin_s390_vftcidb(__a, 15, &__cc);
4648   return __cc == 3;
4649 }
4650 
4651 /*-- vec_any_eq -------------------------------------------------------------*/
4652 
4653 static inline __ATTRS_o_ai int
4654 vec_any_eq(__vector signed char __a, __vector signed char __b) {
4655   int __cc;
4656   __builtin_s390_vceqbs((__vector unsigned char)__a,
4657                         (__vector unsigned char)__b, &__cc);
4658   return __cc <= 1;
4659 }
4660 
4661 // This prototype is deprecated.
4662 static inline __ATTRS_o_ai int
4663 vec_any_eq(__vector signed char __a, __vector __bool char __b) {
4664   int __cc;
4665   __builtin_s390_vceqbs((__vector unsigned char)__a,
4666                         (__vector unsigned char)__b, &__cc);
4667   return __cc <= 1;
4668 }
4669 
4670 // This prototype is deprecated.
4671 static inline __ATTRS_o_ai int
4672 vec_any_eq(__vector __bool char __a, __vector signed char __b) {
4673   int __cc;
4674   __builtin_s390_vceqbs((__vector unsigned char)__a,
4675                         (__vector unsigned char)__b, &__cc);
4676   return __cc <= 1;
4677 }
4678 
4679 static inline __ATTRS_o_ai int
4680 vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
4681   int __cc;
4682   __builtin_s390_vceqbs(__a, __b, &__cc);
4683   return __cc <= 1;
4684 }
4685 
4686 // This prototype is deprecated.
4687 static inline __ATTRS_o_ai int
4688 vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {
4689   int __cc;
4690   __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
4691   return __cc <= 1;
4692 }
4693 
4694 // This prototype is deprecated.
4695 static inline __ATTRS_o_ai int
4696 vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {
4697   int __cc;
4698   __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
4699   return __cc <= 1;
4700 }
4701 
4702 static inline __ATTRS_o_ai int
4703 vec_any_eq(__vector __bool char __a, __vector __bool char __b) {
4704   int __cc;
4705   __builtin_s390_vceqbs((__vector unsigned char)__a,
4706                         (__vector unsigned char)__b, &__cc);
4707   return __cc <= 1;
4708 }
4709 
4710 static inline __ATTRS_o_ai int
4711 vec_any_eq(__vector signed short __a, __vector signed short __b) {
4712   int __cc;
4713   __builtin_s390_vceqhs((__vector unsigned short)__a,
4714                         (__vector unsigned short)__b, &__cc);
4715   return __cc <= 1;
4716 }
4717 
4718 // This prototype is deprecated.
4719 static inline __ATTRS_o_ai int
4720 vec_any_eq(__vector signed short __a, __vector __bool short __b) {
4721   int __cc;
4722   __builtin_s390_vceqhs((__vector unsigned short)__a,
4723                         (__vector unsigned short)__b, &__cc);
4724   return __cc <= 1;
4725 }
4726 
4727 // This prototype is deprecated.
4728 static inline __ATTRS_o_ai int
4729 vec_any_eq(__vector __bool short __a, __vector signed short __b) {
4730   int __cc;
4731   __builtin_s390_vceqhs((__vector unsigned short)__a,
4732                         (__vector unsigned short)__b, &__cc);
4733   return __cc <= 1;
4734 }
4735 
4736 static inline __ATTRS_o_ai int
4737 vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
4738   int __cc;
4739   __builtin_s390_vceqhs(__a, __b, &__cc);
4740   return __cc <= 1;
4741 }
4742 
4743 // This prototype is deprecated.
4744 static inline __ATTRS_o_ai int
4745 vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {
4746   int __cc;
4747   __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
4748   return __cc <= 1;
4749 }
4750 
4751 // This prototype is deprecated.
4752 static inline __ATTRS_o_ai int
4753 vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {
4754   int __cc;
4755   __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
4756   return __cc <= 1;
4757 }
4758 
4759 static inline __ATTRS_o_ai int
4760 vec_any_eq(__vector __bool short __a, __vector __bool short __b) {
4761   int __cc;
4762   __builtin_s390_vceqhs((__vector unsigned short)__a,
4763                         (__vector unsigned short)__b, &__cc);
4764   return __cc <= 1;
4765 }
4766 
4767 static inline __ATTRS_o_ai int
4768 vec_any_eq(__vector signed int __a, __vector signed int __b) {
4769   int __cc;
4770   __builtin_s390_vceqfs((__vector unsigned int)__a,
4771                         (__vector unsigned int)__b, &__cc);
4772   return __cc <= 1;
4773 }
4774 
4775 // This prototype is deprecated.
4776 static inline __ATTRS_o_ai int
4777 vec_any_eq(__vector signed int __a, __vector __bool int __b) {
4778   int __cc;
4779   __builtin_s390_vceqfs((__vector unsigned int)__a,
4780                         (__vector unsigned int)__b, &__cc);
4781   return __cc <= 1;
4782 }
4783 
4784 // This prototype is deprecated.
4785 static inline __ATTRS_o_ai int
4786 vec_any_eq(__vector __bool int __a, __vector signed int __b) {
4787   int __cc;
4788   __builtin_s390_vceqfs((__vector unsigned int)__a,
4789                         (__vector unsigned int)__b, &__cc);
4790   return __cc <= 1;
4791 }
4792 
4793 static inline __ATTRS_o_ai int
4794 vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
4795   int __cc;
4796   __builtin_s390_vceqfs(__a, __b, &__cc);
4797   return __cc <= 1;
4798 }
4799 
4800 // This prototype is deprecated.
4801 static inline __ATTRS_o_ai int
4802 vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {
4803   int __cc;
4804   __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
4805   return __cc <= 1;
4806 }
4807 
4808 // This prototype is deprecated.
4809 static inline __ATTRS_o_ai int
4810 vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {
4811   int __cc;
4812   __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
4813   return __cc <= 1;
4814 }
4815 
4816 static inline __ATTRS_o_ai int
4817 vec_any_eq(__vector __bool int __a, __vector __bool int __b) {
4818   int __cc;
4819   __builtin_s390_vceqfs((__vector unsigned int)__a,
4820                         (__vector unsigned int)__b, &__cc);
4821   return __cc <= 1;
4822 }
4823 
4824 static inline __ATTRS_o_ai int
4825 vec_any_eq(__vector signed long long __a, __vector signed long long __b) {
4826   int __cc;
4827   __builtin_s390_vceqgs((__vector unsigned long long)__a,
4828                         (__vector unsigned long long)__b, &__cc);
4829   return __cc <= 1;
4830 }
4831 
4832 // This prototype is deprecated.
4833 static inline __ATTRS_o_ai int
4834 vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {
4835   int __cc;
4836   __builtin_s390_vceqgs((__vector unsigned long long)__a,
4837                         (__vector unsigned long long)__b, &__cc);
4838   return __cc <= 1;
4839 }
4840 
4841 // This prototype is deprecated.
4842 static inline __ATTRS_o_ai int
4843 vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {
4844   int __cc;
4845   __builtin_s390_vceqgs((__vector unsigned long long)__a,
4846                         (__vector unsigned long long)__b, &__cc);
4847   return __cc <= 1;
4848 }
4849 
4850 static inline __ATTRS_o_ai int
4851 vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
4852   int __cc;
4853   __builtin_s390_vceqgs(__a, __b, &__cc);
4854   return __cc <= 1;
4855 }
4856 
4857 // This prototype is deprecated.
4858 static inline __ATTRS_o_ai int
4859 vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {
4860   int __cc;
4861   __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
4862   return __cc <= 1;
4863 }
4864 
4865 // This prototype is deprecated.
4866 static inline __ATTRS_o_ai int
4867 vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {
4868   int __cc;
4869   __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
4870   return __cc <= 1;
4871 }
4872 
4873 static inline __ATTRS_o_ai int
4874 vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
4875   int __cc;
4876   __builtin_s390_vceqgs((__vector unsigned long long)__a,
4877                         (__vector unsigned long long)__b, &__cc);
4878   return __cc <= 1;
4879 }
4880 
4881 #if __ARCH__ >= 15
4882 static inline __ATTRS_o_ai int
4883 vec_any_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
4884   int __cc;
4885   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4886   return __cc <= 1;
4887 }
4888 
4889 static inline __ATTRS_o_ai int
4890 vec_any_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4891   int __cc;
4892   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4893   return __cc <= 1;
4894 }
4895 
4896 static inline __ATTRS_o_ai int
4897 vec_any_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
4898   int __cc;
4899   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4900   return __cc <= 1;
4901 }
4902 #endif
4903 
4904 #if __ARCH__ >= 12
4905 static inline __ATTRS_o_ai int
4906 vec_any_eq(__vector float __a, __vector float __b) {
4907   int __cc;
4908   __builtin_s390_vfcesbs(__a, __b, &__cc);
4909   return __cc <= 1;
4910 }
4911 #endif
4912 
4913 static inline __ATTRS_o_ai int
4914 vec_any_eq(__vector double __a, __vector double __b) {
4915   int __cc;
4916   __builtin_s390_vfcedbs(__a, __b, &__cc);
4917   return __cc <= 1;
4918 }
4919 
4920 /*-- vec_any_ne -------------------------------------------------------------*/
4921 
4922 static inline __ATTRS_o_ai int
4923 vec_any_ne(__vector signed char __a, __vector signed char __b) {
4924   int __cc;
4925   __builtin_s390_vceqbs((__vector unsigned char)__a,
4926                         (__vector unsigned char)__b, &__cc);
4927   return __cc != 0;
4928 }
4929 
4930 // This prototype is deprecated.
4931 static inline __ATTRS_o_ai int
4932 vec_any_ne(__vector signed char __a, __vector __bool char __b) {
4933   int __cc;
4934   __builtin_s390_vceqbs((__vector unsigned char)__a,
4935                         (__vector unsigned char)__b, &__cc);
4936   return __cc != 0;
4937 }
4938 
4939 // This prototype is deprecated.
4940 static inline __ATTRS_o_ai int
4941 vec_any_ne(__vector __bool char __a, __vector signed char __b) {
4942   int __cc;
4943   __builtin_s390_vceqbs((__vector unsigned char)__a,
4944                         (__vector unsigned char)__b, &__cc);
4945   return __cc != 0;
4946 }
4947 
4948 static inline __ATTRS_o_ai int
4949 vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
4950   int __cc;
4951   __builtin_s390_vceqbs(__a, __b, &__cc);
4952   return __cc != 0;
4953 }
4954 
4955 // This prototype is deprecated.
4956 static inline __ATTRS_o_ai int
4957 vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {
4958   int __cc;
4959   __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
4960   return __cc != 0;
4961 }
4962 
4963 // This prototype is deprecated.
4964 static inline __ATTRS_o_ai int
4965 vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {
4966   int __cc;
4967   __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
4968   return __cc != 0;
4969 }
4970 
4971 static inline __ATTRS_o_ai int
4972 vec_any_ne(__vector __bool char __a, __vector __bool char __b) {
4973   int __cc;
4974   __builtin_s390_vceqbs((__vector unsigned char)__a,
4975                         (__vector unsigned char)__b, &__cc);
4976   return __cc != 0;
4977 }
4978 
4979 static inline __ATTRS_o_ai int
4980 vec_any_ne(__vector signed short __a, __vector signed short __b) {
4981   int __cc;
4982   __builtin_s390_vceqhs((__vector unsigned short)__a,
4983                         (__vector unsigned short)__b, &__cc);
4984   return __cc != 0;
4985 }
4986 
4987 // This prototype is deprecated.
4988 static inline __ATTRS_o_ai int
4989 vec_any_ne(__vector signed short __a, __vector __bool short __b) {
4990   int __cc;
4991   __builtin_s390_vceqhs((__vector unsigned short)__a,
4992                         (__vector unsigned short)__b, &__cc);
4993   return __cc != 0;
4994 }
4995 
4996 // This prototype is deprecated.
4997 static inline __ATTRS_o_ai int
4998 vec_any_ne(__vector __bool short __a, __vector signed short __b) {
4999   int __cc;
5000   __builtin_s390_vceqhs((__vector unsigned short)__a,
5001                         (__vector unsigned short)__b, &__cc);
5002   return __cc != 0;
5003 }
5004 
5005 static inline __ATTRS_o_ai int
5006 vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
5007   int __cc;
5008   __builtin_s390_vceqhs(__a, __b, &__cc);
5009   return __cc != 0;
5010 }
5011 
5012 // This prototype is deprecated.
5013 static inline __ATTRS_o_ai int
5014 vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {
5015   int __cc;
5016   __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
5017   return __cc != 0;
5018 }
5019 
5020 // This prototype is deprecated.
5021 static inline __ATTRS_o_ai int
5022 vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {
5023   int __cc;
5024   __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
5025   return __cc != 0;
5026 }
5027 
5028 static inline __ATTRS_o_ai int
5029 vec_any_ne(__vector __bool short __a, __vector __bool short __b) {
5030   int __cc;
5031   __builtin_s390_vceqhs((__vector unsigned short)__a,
5032                         (__vector unsigned short)__b, &__cc);
5033   return __cc != 0;
5034 }
5035 
5036 static inline __ATTRS_o_ai int
5037 vec_any_ne(__vector signed int __a, __vector signed int __b) {
5038   int __cc;
5039   __builtin_s390_vceqfs((__vector unsigned int)__a,
5040                         (__vector unsigned int)__b, &__cc);
5041   return __cc != 0;
5042 }
5043 
5044 // This prototype is deprecated.
5045 static inline __ATTRS_o_ai int
5046 vec_any_ne(__vector signed int __a, __vector __bool int __b) {
5047   int __cc;
5048   __builtin_s390_vceqfs((__vector unsigned int)__a,
5049                         (__vector unsigned int)__b, &__cc);
5050   return __cc != 0;
5051 }
5052 
5053 // This prototype is deprecated.
5054 static inline __ATTRS_o_ai int
5055 vec_any_ne(__vector __bool int __a, __vector signed int __b) {
5056   int __cc;
5057   __builtin_s390_vceqfs((__vector unsigned int)__a,
5058                         (__vector unsigned int)__b, &__cc);
5059   return __cc != 0;
5060 }
5061 
5062 static inline __ATTRS_o_ai int
5063 vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
5064   int __cc;
5065   __builtin_s390_vceqfs(__a, __b, &__cc);
5066   return __cc != 0;
5067 }
5068 
5069 // This prototype is deprecated.
5070 static inline __ATTRS_o_ai int
5071 vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {
5072   int __cc;
5073   __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
5074   return __cc != 0;
5075 }
5076 
5077 // This prototype is deprecated.
5078 static inline __ATTRS_o_ai int
5079 vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {
5080   int __cc;
5081   __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
5082   return __cc != 0;
5083 }
5084 
5085 static inline __ATTRS_o_ai int
5086 vec_any_ne(__vector __bool int __a, __vector __bool int __b) {
5087   int __cc;
5088   __builtin_s390_vceqfs((__vector unsigned int)__a,
5089                         (__vector unsigned int)__b, &__cc);
5090   return __cc != 0;
5091 }
5092 
5093 static inline __ATTRS_o_ai int
5094 vec_any_ne(__vector signed long long __a, __vector signed long long __b) {
5095   int __cc;
5096   __builtin_s390_vceqgs((__vector unsigned long long)__a,
5097                         (__vector unsigned long long)__b, &__cc);
5098   return __cc != 0;
5099 }
5100 
5101 // This prototype is deprecated.
5102 static inline __ATTRS_o_ai int
5103 vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {
5104   int __cc;
5105   __builtin_s390_vceqgs((__vector unsigned long long)__a,
5106                         (__vector unsigned long long)__b, &__cc);
5107   return __cc != 0;
5108 }
5109 
5110 // This prototype is deprecated.
5111 static inline __ATTRS_o_ai int
5112 vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {
5113   int __cc;
5114   __builtin_s390_vceqgs((__vector unsigned long long)__a,
5115                         (__vector unsigned long long)__b, &__cc);
5116   return __cc != 0;
5117 }
5118 
5119 static inline __ATTRS_o_ai int
5120 vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
5121   int __cc;
5122   __builtin_s390_vceqgs(__a, __b, &__cc);
5123   return __cc != 0;
5124 }
5125 
5126 // This prototype is deprecated.
5127 static inline __ATTRS_o_ai int
5128 vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {
5129   int __cc;
5130   __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
5131   return __cc != 0;
5132 }
5133 
5134 // This prototype is deprecated.
5135 static inline __ATTRS_o_ai int
5136 vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {
5137   int __cc;
5138   __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
5139   return __cc != 0;
5140 }
5141 
5142 static inline __ATTRS_o_ai int
5143 vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
5144   int __cc;
5145   __builtin_s390_vceqgs((__vector unsigned long long)__a,
5146                         (__vector unsigned long long)__b, &__cc);
5147   return __cc != 0;
5148 }
5149 
5150 #if __ARCH__ >= 15
5151 static inline __ATTRS_o_ai int
5152 vec_any_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
5153   int __cc;
5154   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5155   return __cc != 0;
5156 }
5157 
5158 static inline __ATTRS_o_ai int
5159 vec_any_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5160   int __cc;
5161   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5162   return __cc != 0;
5163 }
5164 
5165 static inline __ATTRS_o_ai int
5166 vec_any_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
5167   int __cc;
5168   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5169   return __cc != 0;
5170 }
5171 #endif
5172 
5173 #if __ARCH__ >= 12
5174 static inline __ATTRS_o_ai int
5175 vec_any_ne(__vector float __a, __vector float __b) {
5176   int __cc;
5177   __builtin_s390_vfcesbs(__a, __b, &__cc);
5178   return __cc != 0;
5179 }
5180 #endif
5181 
5182 static inline __ATTRS_o_ai int
5183 vec_any_ne(__vector double __a, __vector double __b) {
5184   int __cc;
5185   __builtin_s390_vfcedbs(__a, __b, &__cc);
5186   return __cc != 0;
5187 }
5188 
5189 /*-- vec_any_ge -------------------------------------------------------------*/
5190 
5191 static inline __ATTRS_o_ai int
5192 vec_any_ge(__vector signed char __a, __vector signed char __b) {
5193   int __cc;
5194   __builtin_s390_vchbs(__b, __a, &__cc);
5195   return __cc != 0;
5196 }
5197 
5198 // This prototype is deprecated.
5199 static inline __ATTRS_o_ai int
5200 vec_any_ge(__vector signed char __a, __vector __bool char __b) {
5201   int __cc;
5202   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5203   return __cc != 0;
5204 }
5205 
5206 // This prototype is deprecated.
5207 static inline __ATTRS_o_ai int
5208 vec_any_ge(__vector __bool char __a, __vector signed char __b) {
5209   int __cc;
5210   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5211   return __cc != 0;
5212 }
5213 
5214 static inline __ATTRS_o_ai int
5215 vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) {
5216   int __cc;
5217   __builtin_s390_vchlbs(__b, __a, &__cc);
5218   return __cc != 0;
5219 }
5220 
5221 // This prototype is deprecated.
5222 static inline __ATTRS_o_ai int
5223 vec_any_ge(__vector unsigned char __a, __vector __bool char __b) {
5224   int __cc;
5225   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5226   return __cc != 0;
5227 }
5228 
5229 // This prototype is deprecated.
5230 static inline __ATTRS_o_ai int
5231 vec_any_ge(__vector __bool char __a, __vector unsigned char __b) {
5232   int __cc;
5233   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5234   return __cc != 0;
5235 }
5236 
5237 // This prototype is deprecated.
5238 static inline __ATTRS_o_ai int
5239 vec_any_ge(__vector __bool char __a, __vector __bool char __b) {
5240   int __cc;
5241   __builtin_s390_vchlbs((__vector unsigned char)__b,
5242                         (__vector unsigned char)__a, &__cc);
5243   return __cc != 0;
5244 }
5245 
5246 static inline __ATTRS_o_ai int
5247 vec_any_ge(__vector signed short __a, __vector signed short __b) {
5248   int __cc;
5249   __builtin_s390_vchhs(__b, __a, &__cc);
5250   return __cc != 0;
5251 }
5252 
5253 // This prototype is deprecated.
5254 static inline __ATTRS_o_ai int
5255 vec_any_ge(__vector signed short __a, __vector __bool short __b) {
5256   int __cc;
5257   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
5258   return __cc != 0;
5259 }
5260 
5261 // This prototype is deprecated.
5262 static inline __ATTRS_o_ai int
5263 vec_any_ge(__vector __bool short __a, __vector signed short __b) {
5264   int __cc;
5265   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
5266   return __cc != 0;
5267 }
5268 
5269 static inline __ATTRS_o_ai int
5270 vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) {
5271   int __cc;
5272   __builtin_s390_vchlhs(__b, __a, &__cc);
5273   return __cc != 0;
5274 }
5275 
5276 // This prototype is deprecated.
5277 static inline __ATTRS_o_ai int
5278 vec_any_ge(__vector unsigned short __a, __vector __bool short __b) {
5279   int __cc;
5280   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
5281   return __cc != 0;
5282 }
5283 
5284 // This prototype is deprecated.
5285 static inline __ATTRS_o_ai int
5286 vec_any_ge(__vector __bool short __a, __vector unsigned short __b) {
5287   int __cc;
5288   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
5289   return __cc != 0;
5290 }
5291 
5292 // This prototype is deprecated.
5293 static inline __ATTRS_o_ai int
5294 vec_any_ge(__vector __bool short __a, __vector __bool short __b) {
5295   int __cc;
5296   __builtin_s390_vchlhs((__vector unsigned short)__b,
5297                         (__vector unsigned short)__a, &__cc);
5298   return __cc != 0;
5299 }
5300 
5301 static inline __ATTRS_o_ai int
5302 vec_any_ge(__vector signed int __a, __vector signed int __b) {
5303   int __cc;
5304   __builtin_s390_vchfs(__b, __a, &__cc);
5305   return __cc != 0;
5306 }
5307 
5308 // This prototype is deprecated.
5309 static inline __ATTRS_o_ai int
5310 vec_any_ge(__vector signed int __a, __vector __bool int __b) {
5311   int __cc;
5312   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
5313   return __cc != 0;
5314 }
5315 
5316 // This prototype is deprecated.
5317 static inline __ATTRS_o_ai int
5318 vec_any_ge(__vector __bool int __a, __vector signed int __b) {
5319   int __cc;
5320   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
5321   return __cc != 0;
5322 }
5323 
5324 static inline __ATTRS_o_ai int
5325 vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) {
5326   int __cc;
5327   __builtin_s390_vchlfs(__b, __a, &__cc);
5328   return __cc != 0;
5329 }
5330 
5331 // This prototype is deprecated.
5332 static inline __ATTRS_o_ai int
5333 vec_any_ge(__vector unsigned int __a, __vector __bool int __b) {
5334   int __cc;
5335   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
5336   return __cc != 0;
5337 }
5338 
5339 // This prototype is deprecated.
5340 static inline __ATTRS_o_ai int
5341 vec_any_ge(__vector __bool int __a, __vector unsigned int __b) {
5342   int __cc;
5343   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
5344   return __cc != 0;
5345 }
5346 
5347 // This prototype is deprecated.
5348 static inline __ATTRS_o_ai int
5349 vec_any_ge(__vector __bool int __a, __vector __bool int __b) {
5350   int __cc;
5351   __builtin_s390_vchlfs((__vector unsigned int)__b,
5352                         (__vector unsigned int)__a, &__cc);
5353   return __cc != 0;
5354 }
5355 
5356 static inline __ATTRS_o_ai int
5357 vec_any_ge(__vector signed long long __a, __vector signed long long __b) {
5358   int __cc;
5359   __builtin_s390_vchgs(__b, __a, &__cc);
5360   return __cc != 0;
5361 }
5362 
5363 // This prototype is deprecated.
5364 static inline __ATTRS_o_ai int
5365 vec_any_ge(__vector signed long long __a, __vector __bool long long __b) {
5366   int __cc;
5367   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
5368   return __cc != 0;
5369 }
5370 
5371 // This prototype is deprecated.
5372 static inline __ATTRS_o_ai int
5373 vec_any_ge(__vector __bool long long __a, __vector signed long long __b) {
5374   int __cc;
5375   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
5376   return __cc != 0;
5377 }
5378 
5379 static inline __ATTRS_o_ai int
5380 vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
5381   int __cc;
5382   __builtin_s390_vchlgs(__b, __a, &__cc);
5383   return __cc != 0;
5384 }
5385 
5386 // This prototype is deprecated.
5387 static inline __ATTRS_o_ai int
5388 vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) {
5389   int __cc;
5390   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
5391   return __cc != 0;
5392 }
5393 
5394 // This prototype is deprecated.
5395 static inline __ATTRS_o_ai int
5396 vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) {
5397   int __cc;
5398   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
5399   return __cc != 0;
5400 }
5401 
5402 // This prototype is deprecated.
5403 static inline __ATTRS_o_ai int
5404 vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {
5405   int __cc;
5406   __builtin_s390_vchlgs((__vector unsigned long long)__b,
5407                         (__vector unsigned long long)__a, &__cc);
5408   return __cc != 0;
5409 }
5410 
5411 #if __ARCH__ >= 15
5412 static inline __ATTRS_o_ai int
5413 vec_any_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
5414   int __cc;
5415   __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
5416   return __cc != 0;
5417 }
5418 
5419 static inline __ATTRS_o_ai int
5420 vec_any_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5421   int __cc;
5422   __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
5423   return __cc != 0;
5424 }
5425 #endif
5426 
5427 #if __ARCH__ >= 12
5428 static inline __ATTRS_o_ai int
5429 vec_any_ge(__vector float __a, __vector float __b) {
5430   int __cc;
5431   __builtin_s390_vfchesbs(__a, __b, &__cc);
5432   return __cc <= 1;
5433 }
5434 #endif
5435 
5436 static inline __ATTRS_o_ai int
5437 vec_any_ge(__vector double __a, __vector double __b) {
5438   int __cc;
5439   __builtin_s390_vfchedbs(__a, __b, &__cc);
5440   return __cc <= 1;
5441 }
5442 
5443 /*-- vec_any_gt -------------------------------------------------------------*/
5444 
5445 static inline __ATTRS_o_ai int
5446 vec_any_gt(__vector signed char __a, __vector signed char __b) {
5447   int __cc;
5448   __builtin_s390_vchbs(__a, __b, &__cc);
5449   return __cc <= 1;
5450 }
5451 
5452 // This prototype is deprecated.
5453 static inline __ATTRS_o_ai int
5454 vec_any_gt(__vector signed char __a, __vector __bool char __b) {
5455   int __cc;
5456   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5457   return __cc <= 1;
5458 }
5459 
5460 // This prototype is deprecated.
5461 static inline __ATTRS_o_ai int
5462 vec_any_gt(__vector __bool char __a, __vector signed char __b) {
5463   int __cc;
5464   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5465   return __cc <= 1;
5466 }
5467 
5468 static inline __ATTRS_o_ai int
5469 vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) {
5470   int __cc;
5471   __builtin_s390_vchlbs(__a, __b, &__cc);
5472   return __cc <= 1;
5473 }
5474 
5475 // This prototype is deprecated.
5476 static inline __ATTRS_o_ai int
5477 vec_any_gt(__vector unsigned char __a, __vector __bool char __b) {
5478   int __cc;
5479   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5480   return __cc <= 1;
5481 }
5482 
5483 // This prototype is deprecated.
5484 static inline __ATTRS_o_ai int
5485 vec_any_gt(__vector __bool char __a, __vector unsigned char __b) {
5486   int __cc;
5487   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5488   return __cc <= 1;
5489 }
5490 
5491 // This prototype is deprecated.
5492 static inline __ATTRS_o_ai int
5493 vec_any_gt(__vector __bool char __a, __vector __bool char __b) {
5494   int __cc;
5495   __builtin_s390_vchlbs((__vector unsigned char)__a,
5496                         (__vector unsigned char)__b, &__cc);
5497   return __cc <= 1;
5498 }
5499 
5500 static inline __ATTRS_o_ai int
5501 vec_any_gt(__vector signed short __a, __vector signed short __b) {
5502   int __cc;
5503   __builtin_s390_vchhs(__a, __b, &__cc);
5504   return __cc <= 1;
5505 }
5506 
5507 // This prototype is deprecated.
5508 static inline __ATTRS_o_ai int
5509 vec_any_gt(__vector signed short __a, __vector __bool short __b) {
5510   int __cc;
5511   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5512   return __cc <= 1;
5513 }
5514 
5515 // This prototype is deprecated.
5516 static inline __ATTRS_o_ai int
5517 vec_any_gt(__vector __bool short __a, __vector signed short __b) {
5518   int __cc;
5519   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5520   return __cc <= 1;
5521 }
5522 
5523 static inline __ATTRS_o_ai int
5524 vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) {
5525   int __cc;
5526   __builtin_s390_vchlhs(__a, __b, &__cc);
5527   return __cc <= 1;
5528 }
5529 
5530 // This prototype is deprecated.
5531 static inline __ATTRS_o_ai int
5532 vec_any_gt(__vector unsigned short __a, __vector __bool short __b) {
5533   int __cc;
5534   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5535   return __cc <= 1;
5536 }
5537 
5538 // This prototype is deprecated.
5539 static inline __ATTRS_o_ai int
5540 vec_any_gt(__vector __bool short __a, __vector unsigned short __b) {
5541   int __cc;
5542   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5543   return __cc <= 1;
5544 }
5545 
5546 // This prototype is deprecated.
5547 static inline __ATTRS_o_ai int
5548 vec_any_gt(__vector __bool short __a, __vector __bool short __b) {
5549   int __cc;
5550   __builtin_s390_vchlhs((__vector unsigned short)__a,
5551                         (__vector unsigned short)__b, &__cc);
5552   return __cc <= 1;
5553 }
5554 
5555 static inline __ATTRS_o_ai int
5556 vec_any_gt(__vector signed int __a, __vector signed int __b) {
5557   int __cc;
5558   __builtin_s390_vchfs(__a, __b, &__cc);
5559   return __cc <= 1;
5560 }
5561 
5562 // This prototype is deprecated.
5563 static inline __ATTRS_o_ai int
5564 vec_any_gt(__vector signed int __a, __vector __bool int __b) {
5565   int __cc;
5566   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5567   return __cc <= 1;
5568 }
5569 
5570 // This prototype is deprecated.
5571 static inline __ATTRS_o_ai int
5572 vec_any_gt(__vector __bool int __a, __vector signed int __b) {
5573   int __cc;
5574   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5575   return __cc <= 1;
5576 }
5577 
5578 static inline __ATTRS_o_ai int
5579 vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) {
5580   int __cc;
5581   __builtin_s390_vchlfs(__a, __b, &__cc);
5582   return __cc <= 1;
5583 }
5584 
5585 // This prototype is deprecated.
5586 static inline __ATTRS_o_ai int
5587 vec_any_gt(__vector unsigned int __a, __vector __bool int __b) {
5588   int __cc;
5589   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5590   return __cc <= 1;
5591 }
5592 
5593 // This prototype is deprecated.
5594 static inline __ATTRS_o_ai int
5595 vec_any_gt(__vector __bool int __a, __vector unsigned int __b) {
5596   int __cc;
5597   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5598   return __cc <= 1;
5599 }
5600 
5601 // This prototype is deprecated.
5602 static inline __ATTRS_o_ai int
5603 vec_any_gt(__vector __bool int __a, __vector __bool int __b) {
5604   int __cc;
5605   __builtin_s390_vchlfs((__vector unsigned int)__a,
5606                         (__vector unsigned int)__b, &__cc);
5607   return __cc <= 1;
5608 }
5609 
5610 static inline __ATTRS_o_ai int
5611 vec_any_gt(__vector signed long long __a, __vector signed long long __b) {
5612   int __cc;
5613   __builtin_s390_vchgs(__a, __b, &__cc);
5614   return __cc <= 1;
5615 }
5616 
5617 // This prototype is deprecated.
5618 static inline __ATTRS_o_ai int
5619 vec_any_gt(__vector signed long long __a, __vector __bool long long __b) {
5620   int __cc;
5621   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5622   return __cc <= 1;
5623 }
5624 
5625 // This prototype is deprecated.
5626 static inline __ATTRS_o_ai int
5627 vec_any_gt(__vector __bool long long __a, __vector signed long long __b) {
5628   int __cc;
5629   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5630   return __cc <= 1;
5631 }
5632 
5633 static inline __ATTRS_o_ai int
5634 vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
5635   int __cc;
5636   __builtin_s390_vchlgs(__a, __b, &__cc);
5637   return __cc <= 1;
5638 }
5639 
5640 // This prototype is deprecated.
5641 static inline __ATTRS_o_ai int
5642 vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) {
5643   int __cc;
5644   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5645   return __cc <= 1;
5646 }
5647 
5648 // This prototype is deprecated.
5649 static inline __ATTRS_o_ai int
5650 vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) {
5651   int __cc;
5652   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5653   return __cc <= 1;
5654 }
5655 
5656 // This prototype is deprecated.
5657 static inline __ATTRS_o_ai int
5658 vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {
5659   int __cc;
5660   __builtin_s390_vchlgs((__vector unsigned long long)__a,
5661                         (__vector unsigned long long)__b, &__cc);
5662   return __cc <= 1;
5663 }
5664 
5665 #if __ARCH__ >= 15
5666 static inline __ATTRS_o_ai int
5667 vec_any_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
5668   int __cc;
5669   __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
5670   return __cc <= 1;
5671 }
5672 
5673 static inline __ATTRS_o_ai int
5674 vec_any_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5675   int __cc;
5676   __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5677   return __cc <= 1;
5678 }
5679 #endif
5680 
5681 #if __ARCH__ >= 12
5682 static inline __ATTRS_o_ai int
5683 vec_any_gt(__vector float __a, __vector float __b) {
5684   int __cc;
5685   __builtin_s390_vfchsbs(__a, __b, &__cc);
5686   return __cc <= 1;
5687 }
5688 #endif
5689 
5690 static inline __ATTRS_o_ai int
5691 vec_any_gt(__vector double __a, __vector double __b) {
5692   int __cc;
5693   __builtin_s390_vfchdbs(__a, __b, &__cc);
5694   return __cc <= 1;
5695 }
5696 
5697 /*-- vec_any_le -------------------------------------------------------------*/
5698 
5699 static inline __ATTRS_o_ai int
5700 vec_any_le(__vector signed char __a, __vector signed char __b) {
5701   int __cc;
5702   __builtin_s390_vchbs(__a, __b, &__cc);
5703   return __cc != 0;
5704 }
5705 
5706 // This prototype is deprecated.
5707 static inline __ATTRS_o_ai int
5708 vec_any_le(__vector signed char __a, __vector __bool char __b) {
5709   int __cc;
5710   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5711   return __cc != 0;
5712 }
5713 
5714 // This prototype is deprecated.
5715 static inline __ATTRS_o_ai int
5716 vec_any_le(__vector __bool char __a, __vector signed char __b) {
5717   int __cc;
5718   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5719   return __cc != 0;
5720 }
5721 
5722 static inline __ATTRS_o_ai int
5723 vec_any_le(__vector unsigned char __a, __vector unsigned char __b) {
5724   int __cc;
5725   __builtin_s390_vchlbs(__a, __b, &__cc);
5726   return __cc != 0;
5727 }
5728 
5729 // This prototype is deprecated.
5730 static inline __ATTRS_o_ai int
5731 vec_any_le(__vector unsigned char __a, __vector __bool char __b) {
5732   int __cc;
5733   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5734   return __cc != 0;
5735 }
5736 
5737 // This prototype is deprecated.
5738 static inline __ATTRS_o_ai int
5739 vec_any_le(__vector __bool char __a, __vector unsigned char __b) {
5740   int __cc;
5741   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5742   return __cc != 0;
5743 }
5744 
5745 // This prototype is deprecated.
5746 static inline __ATTRS_o_ai int
5747 vec_any_le(__vector __bool char __a, __vector __bool char __b) {
5748   int __cc;
5749   __builtin_s390_vchlbs((__vector unsigned char)__a,
5750                         (__vector unsigned char)__b, &__cc);
5751   return __cc != 0;
5752 }
5753 
5754 static inline __ATTRS_o_ai int
5755 vec_any_le(__vector signed short __a, __vector signed short __b) {
5756   int __cc;
5757   __builtin_s390_vchhs(__a, __b, &__cc);
5758   return __cc != 0;
5759 }
5760 
5761 // This prototype is deprecated.
5762 static inline __ATTRS_o_ai int
5763 vec_any_le(__vector signed short __a, __vector __bool short __b) {
5764   int __cc;
5765   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5766   return __cc != 0;
5767 }
5768 
5769 // This prototype is deprecated.
5770 static inline __ATTRS_o_ai int
5771 vec_any_le(__vector __bool short __a, __vector signed short __b) {
5772   int __cc;
5773   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5774   return __cc != 0;
5775 }
5776 
5777 static inline __ATTRS_o_ai int
5778 vec_any_le(__vector unsigned short __a, __vector unsigned short __b) {
5779   int __cc;
5780   __builtin_s390_vchlhs(__a, __b, &__cc);
5781   return __cc != 0;
5782 }
5783 
5784 // This prototype is deprecated.
5785 static inline __ATTRS_o_ai int
5786 vec_any_le(__vector unsigned short __a, __vector __bool short __b) {
5787   int __cc;
5788   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5789   return __cc != 0;
5790 }
5791 
5792 // This prototype is deprecated.
5793 static inline __ATTRS_o_ai int
5794 vec_any_le(__vector __bool short __a, __vector unsigned short __b) {
5795   int __cc;
5796   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5797   return __cc != 0;
5798 }
5799 
5800 // This prototype is deprecated.
5801 static inline __ATTRS_o_ai int
5802 vec_any_le(__vector __bool short __a, __vector __bool short __b) {
5803   int __cc;
5804   __builtin_s390_vchlhs((__vector unsigned short)__a,
5805                         (__vector unsigned short)__b, &__cc);
5806   return __cc != 0;
5807 }
5808 
5809 static inline __ATTRS_o_ai int
5810 vec_any_le(__vector signed int __a, __vector signed int __b) {
5811   int __cc;
5812   __builtin_s390_vchfs(__a, __b, &__cc);
5813   return __cc != 0;
5814 }
5815 
5816 // This prototype is deprecated.
5817 static inline __ATTRS_o_ai int
5818 vec_any_le(__vector signed int __a, __vector __bool int __b) {
5819   int __cc;
5820   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5821   return __cc != 0;
5822 }
5823 
5824 // This prototype is deprecated.
5825 static inline __ATTRS_o_ai int
5826 vec_any_le(__vector __bool int __a, __vector signed int __b) {
5827   int __cc;
5828   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5829   return __cc != 0;
5830 }
5831 
5832 static inline __ATTRS_o_ai int
5833 vec_any_le(__vector unsigned int __a, __vector unsigned int __b) {
5834   int __cc;
5835   __builtin_s390_vchlfs(__a, __b, &__cc);
5836   return __cc != 0;
5837 }
5838 
5839 // This prototype is deprecated.
5840 static inline __ATTRS_o_ai int
5841 vec_any_le(__vector unsigned int __a, __vector __bool int __b) {
5842   int __cc;
5843   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5844   return __cc != 0;
5845 }
5846 
5847 // This prototype is deprecated.
5848 static inline __ATTRS_o_ai int
5849 vec_any_le(__vector __bool int __a, __vector unsigned int __b) {
5850   int __cc;
5851   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5852   return __cc != 0;
5853 }
5854 
5855 // This prototype is deprecated.
5856 static inline __ATTRS_o_ai int
5857 vec_any_le(__vector __bool int __a, __vector __bool int __b) {
5858   int __cc;
5859   __builtin_s390_vchlfs((__vector unsigned int)__a,
5860                         (__vector unsigned int)__b, &__cc);
5861   return __cc != 0;
5862 }
5863 
5864 static inline __ATTRS_o_ai int
5865 vec_any_le(__vector signed long long __a, __vector signed long long __b) {
5866   int __cc;
5867   __builtin_s390_vchgs(__a, __b, &__cc);
5868   return __cc != 0;
5869 }
5870 
5871 // This prototype is deprecated.
5872 static inline __ATTRS_o_ai int
5873 vec_any_le(__vector signed long long __a, __vector __bool long long __b) {
5874   int __cc;
5875   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5876   return __cc != 0;
5877 }
5878 
5879 // This prototype is deprecated.
5880 static inline __ATTRS_o_ai int
5881 vec_any_le(__vector __bool long long __a, __vector signed long long __b) {
5882   int __cc;
5883   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5884   return __cc != 0;
5885 }
5886 
5887 static inline __ATTRS_o_ai int
5888 vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) {
5889   int __cc;
5890   __builtin_s390_vchlgs(__a, __b, &__cc);
5891   return __cc != 0;
5892 }
5893 
5894 // This prototype is deprecated.
5895 static inline __ATTRS_o_ai int
5896 vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) {
5897   int __cc;
5898   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5899   return __cc != 0;
5900 }
5901 
5902 // This prototype is deprecated.
5903 static inline __ATTRS_o_ai int
5904 vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) {
5905   int __cc;
5906   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5907   return __cc != 0;
5908 }
5909 
5910 // This prototype is deprecated.
5911 static inline __ATTRS_o_ai int
5912 vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {
5913   int __cc;
5914   __builtin_s390_vchlgs((__vector unsigned long long)__a,
5915                         (__vector unsigned long long)__b, &__cc);
5916   return __cc != 0;
5917 }
5918 
5919 #if __ARCH__ >= 15
5920 static inline __ATTRS_o_ai int
5921 vec_any_le(__vector signed __int128 __a, __vector signed __int128 __b) {
5922   int __cc;
5923   __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
5924   return __cc != 0;
5925 }
5926 
5927 static inline __ATTRS_o_ai int
5928 vec_any_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5929   int __cc;
5930   __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5931   return __cc != 0;
5932 }
5933 #endif
5934 
5935 #if __ARCH__ >= 12
5936 static inline __ATTRS_o_ai int
5937 vec_any_le(__vector float __a, __vector float __b) {
5938   int __cc;
5939   __builtin_s390_vfchesbs(__b, __a, &__cc);
5940   return __cc <= 1;
5941 }
5942 #endif
5943 
5944 static inline __ATTRS_o_ai int
5945 vec_any_le(__vector double __a, __vector double __b) {
5946   int __cc;
5947   __builtin_s390_vfchedbs(__b, __a, &__cc);
5948   return __cc <= 1;
5949 }
5950 
5951 /*-- vec_any_lt -------------------------------------------------------------*/
5952 
5953 static inline __ATTRS_o_ai int
5954 vec_any_lt(__vector signed char __a, __vector signed char __b) {
5955   int __cc;
5956   __builtin_s390_vchbs(__b, __a, &__cc);
5957   return __cc <= 1;
5958 }
5959 
5960 // This prototype is deprecated.
5961 static inline __ATTRS_o_ai int
5962 vec_any_lt(__vector signed char __a, __vector __bool char __b) {
5963   int __cc;
5964   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5965   return __cc <= 1;
5966 }
5967 
5968 // This prototype is deprecated.
5969 static inline __ATTRS_o_ai int
5970 vec_any_lt(__vector __bool char __a, __vector signed char __b) {
5971   int __cc;
5972   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5973   return __cc <= 1;
5974 }
5975 
5976 static inline __ATTRS_o_ai int
5977 vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) {
5978   int __cc;
5979   __builtin_s390_vchlbs(__b, __a, &__cc);
5980   return __cc <= 1;
5981 }
5982 
5983 // This prototype is deprecated.
5984 static inline __ATTRS_o_ai int
5985 vec_any_lt(__vector unsigned char __a, __vector __bool char __b) {
5986   int __cc;
5987   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5988   return __cc <= 1;
5989 }
5990 
5991 // This prototype is deprecated.
5992 static inline __ATTRS_o_ai int
5993 vec_any_lt(__vector __bool char __a, __vector unsigned char __b) {
5994   int __cc;
5995   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5996   return __cc <= 1;
5997 }
5998 
5999 // This prototype is deprecated.
6000 static inline __ATTRS_o_ai int
6001 vec_any_lt(__vector __bool char __a, __vector __bool char __b) {
6002   int __cc;
6003   __builtin_s390_vchlbs((__vector unsigned char)__b,
6004                         (__vector unsigned char)__a, &__cc);
6005   return __cc <= 1;
6006 }
6007 
6008 static inline __ATTRS_o_ai int
6009 vec_any_lt(__vector signed short __a, __vector signed short __b) {
6010   int __cc;
6011   __builtin_s390_vchhs(__b, __a, &__cc);
6012   return __cc <= 1;
6013 }
6014 
6015 // This prototype is deprecated.
6016 static inline __ATTRS_o_ai int
6017 vec_any_lt(__vector signed short __a, __vector __bool short __b) {
6018   int __cc;
6019   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
6020   return __cc <= 1;
6021 }
6022 
6023 // This prototype is deprecated.
6024 static inline __ATTRS_o_ai int
6025 vec_any_lt(__vector __bool short __a, __vector signed short __b) {
6026   int __cc;
6027   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
6028   return __cc <= 1;
6029 }
6030 
6031 static inline __ATTRS_o_ai int
6032 vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) {
6033   int __cc;
6034   __builtin_s390_vchlhs(__b, __a, &__cc);
6035   return __cc <= 1;
6036 }
6037 
6038 // This prototype is deprecated.
6039 static inline __ATTRS_o_ai int
6040 vec_any_lt(__vector unsigned short __a, __vector __bool short __b) {
6041   int __cc;
6042   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
6043   return __cc <= 1;
6044 }
6045 
6046 // This prototype is deprecated.
6047 static inline __ATTRS_o_ai int
6048 vec_any_lt(__vector __bool short __a, __vector unsigned short __b) {
6049   int __cc;
6050   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
6051   return __cc <= 1;
6052 }
6053 
6054 // This prototype is deprecated.
6055 static inline __ATTRS_o_ai int
6056 vec_any_lt(__vector __bool short __a, __vector __bool short __b) {
6057   int __cc;
6058   __builtin_s390_vchlhs((__vector unsigned short)__b,
6059                         (__vector unsigned short)__a, &__cc);
6060   return __cc <= 1;
6061 }
6062 
6063 static inline __ATTRS_o_ai int
6064 vec_any_lt(__vector signed int __a, __vector signed int __b) {
6065   int __cc;
6066   __builtin_s390_vchfs(__b, __a, &__cc);
6067   return __cc <= 1;
6068 }
6069 
6070 // This prototype is deprecated.
6071 static inline __ATTRS_o_ai int
6072 vec_any_lt(__vector signed int __a, __vector __bool int __b) {
6073   int __cc;
6074   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
6075   return __cc <= 1;
6076 }
6077 
6078 // This prototype is deprecated.
6079 static inline __ATTRS_o_ai int
6080 vec_any_lt(__vector __bool int __a, __vector signed int __b) {
6081   int __cc;
6082   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
6083   return __cc <= 1;
6084 }
6085 
6086 static inline __ATTRS_o_ai int
6087 vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) {
6088   int __cc;
6089   __builtin_s390_vchlfs(__b, __a, &__cc);
6090   return __cc <= 1;
6091 }
6092 
6093 // This prototype is deprecated.
6094 static inline __ATTRS_o_ai int
6095 vec_any_lt(__vector unsigned int __a, __vector __bool int __b) {
6096   int __cc;
6097   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
6098   return __cc <= 1;
6099 }
6100 
6101 // This prototype is deprecated.
6102 static inline __ATTRS_o_ai int
6103 vec_any_lt(__vector __bool int __a, __vector unsigned int __b) {
6104   int __cc;
6105   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
6106   return __cc <= 1;
6107 }
6108 
6109 // This prototype is deprecated.
6110 static inline __ATTRS_o_ai int
6111 vec_any_lt(__vector __bool int __a, __vector __bool int __b) {
6112   int __cc;
6113   __builtin_s390_vchlfs((__vector unsigned int)__b,
6114                         (__vector unsigned int)__a, &__cc);
6115   return __cc <= 1;
6116 }
6117 
6118 static inline __ATTRS_o_ai int
6119 vec_any_lt(__vector signed long long __a, __vector signed long long __b) {
6120   int __cc;
6121   __builtin_s390_vchgs(__b, __a, &__cc);
6122   return __cc <= 1;
6123 }
6124 
6125 // This prototype is deprecated.
6126 static inline __ATTRS_o_ai int
6127 vec_any_lt(__vector signed long long __a, __vector __bool long long __b) {
6128   int __cc;
6129   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
6130   return __cc <= 1;
6131 }
6132 
6133 // This prototype is deprecated.
6134 static inline __ATTRS_o_ai int
6135 vec_any_lt(__vector __bool long long __a, __vector signed long long __b) {
6136   int __cc;
6137   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
6138   return __cc <= 1;
6139 }
6140 
6141 static inline __ATTRS_o_ai int
6142 vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
6143   int __cc;
6144   __builtin_s390_vchlgs(__b, __a, &__cc);
6145   return __cc <= 1;
6146 }
6147 
6148 // This prototype is deprecated.
6149 static inline __ATTRS_o_ai int
6150 vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) {
6151   int __cc;
6152   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
6153   return __cc <= 1;
6154 }
6155 
6156 // This prototype is deprecated.
6157 static inline __ATTRS_o_ai int
6158 vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) {
6159   int __cc;
6160   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
6161   return __cc <= 1;
6162 }
6163 
6164 // This prototype is deprecated.
6165 static inline __ATTRS_o_ai int
6166 vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {
6167   int __cc;
6168   __builtin_s390_vchlgs((__vector unsigned long long)__b,
6169                         (__vector unsigned long long)__a, &__cc);
6170   return __cc <= 1;
6171 }
6172 
6173 #if __ARCH__ >= 15
6174 static inline __ATTRS_o_ai int
6175 vec_any_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
6176   int __cc;
6177   __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
6178   return __cc <= 1;
6179 }
6180 
6181 static inline __ATTRS_o_ai int
6182 vec_any_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6183   int __cc;
6184   __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
6185   return __cc <= 1;
6186 }
6187 #endif
6188 
6189 #if __ARCH__ >= 12
6190 static inline __ATTRS_o_ai int
6191 vec_any_lt(__vector float __a, __vector float __b) {
6192   int __cc;
6193   __builtin_s390_vfchsbs(__b, __a, &__cc);
6194   return __cc <= 1;
6195 }
6196 #endif
6197 
6198 static inline __ATTRS_o_ai int
6199 vec_any_lt(__vector double __a, __vector double __b) {
6200   int __cc;
6201   __builtin_s390_vfchdbs(__b, __a, &__cc);
6202   return __cc <= 1;
6203 }
6204 
6205 /*-- vec_any_nge ------------------------------------------------------------*/
6206 
6207 #if __ARCH__ >= 12
6208 static inline __ATTRS_o_ai int
6209 vec_any_nge(__vector float __a, __vector float __b) {
6210   int __cc;
6211   __builtin_s390_vfchesbs(__a, __b, &__cc);
6212   return __cc != 0;
6213 }
6214 #endif
6215 
6216 static inline __ATTRS_o_ai int
6217 vec_any_nge(__vector double __a, __vector double __b) {
6218   int __cc;
6219   __builtin_s390_vfchedbs(__a, __b, &__cc);
6220   return __cc != 0;
6221 }
6222 
6223 /*-- vec_any_ngt ------------------------------------------------------------*/
6224 
6225 #if __ARCH__ >= 12
6226 static inline __ATTRS_o_ai int
6227 vec_any_ngt(__vector float __a, __vector float __b) {
6228   int __cc;
6229   __builtin_s390_vfchsbs(__a, __b, &__cc);
6230   return __cc != 0;
6231 }
6232 #endif
6233 
6234 static inline __ATTRS_o_ai int
6235 vec_any_ngt(__vector double __a, __vector double __b) {
6236   int __cc;
6237   __builtin_s390_vfchdbs(__a, __b, &__cc);
6238   return __cc != 0;
6239 }
6240 
6241 /*-- vec_any_nle ------------------------------------------------------------*/
6242 
6243 #if __ARCH__ >= 12
6244 static inline __ATTRS_o_ai int
6245 vec_any_nle(__vector float __a, __vector float __b) {
6246   int __cc;
6247   __builtin_s390_vfchesbs(__b, __a, &__cc);
6248   return __cc != 0;
6249 }
6250 #endif
6251 
6252 static inline __ATTRS_o_ai int
6253 vec_any_nle(__vector double __a, __vector double __b) {
6254   int __cc;
6255   __builtin_s390_vfchedbs(__b, __a, &__cc);
6256   return __cc != 0;
6257 }
6258 
6259 /*-- vec_any_nlt ------------------------------------------------------------*/
6260 
6261 #if __ARCH__ >= 12
6262 static inline __ATTRS_o_ai int
6263 vec_any_nlt(__vector float __a, __vector float __b) {
6264   int __cc;
6265   __builtin_s390_vfchsbs(__b, __a, &__cc);
6266   return __cc != 0;
6267 }
6268 #endif
6269 
6270 static inline __ATTRS_o_ai int
6271 vec_any_nlt(__vector double __a, __vector double __b) {
6272   int __cc;
6273   __builtin_s390_vfchdbs(__b, __a, &__cc);
6274   return __cc != 0;
6275 }
6276 
6277 /*-- vec_any_nan ------------------------------------------------------------*/
6278 
6279 #if __ARCH__ >= 12
6280 static inline __ATTRS_o_ai int
6281 vec_any_nan(__vector float __a) {
6282   int __cc;
6283   __builtin_s390_vftcisb(__a, 15, &__cc);
6284   return __cc != 3;
6285 }
6286 #endif
6287 
6288 static inline __ATTRS_o_ai int
6289 vec_any_nan(__vector double __a) {
6290   int __cc;
6291   __builtin_s390_vftcidb(__a, 15, &__cc);
6292   return __cc != 3;
6293 }
6294 
6295 /*-- vec_any_numeric --------------------------------------------------------*/
6296 
6297 #if __ARCH__ >= 12
6298 static inline __ATTRS_o_ai int
6299 vec_any_numeric(__vector float __a) {
6300   int __cc;
6301   __builtin_s390_vftcisb(__a, 15, &__cc);
6302   return __cc != 0;
6303 }
6304 #endif
6305 
6306 static inline __ATTRS_o_ai int
6307 vec_any_numeric(__vector double __a) {
6308   int __cc;
6309   __builtin_s390_vftcidb(__a, 15, &__cc);
6310   return __cc != 0;
6311 }
6312 
6313 /*-- vec_blend --------------------------------------------------------------*/
6314 
6315 #if __ARCH__ >= 15
6316 static inline __ATTRS_o_ai __vector signed char
6317 vec_blend(__vector signed char __a, __vector signed char __b,
6318           __vector signed char __c) {
6319   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6320 }
6321 
6322 static inline __ATTRS_o_ai __vector __bool char
6323 vec_blend(__vector __bool char __a, __vector __bool char __b,
6324           __vector signed char __c) {
6325   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6326 }
6327 
6328 static inline __ATTRS_o_ai __vector unsigned char
6329 vec_blend(__vector unsigned char __a, __vector unsigned char __b,
6330           __vector signed char __c) {
6331   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6332 }
6333 
6334 static inline __ATTRS_o_ai __vector signed short
6335 vec_blend(__vector signed short __a, __vector signed short __b,
6336           __vector signed short __c) {
6337   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6338 }
6339 
6340 static inline __ATTRS_o_ai __vector __bool short
6341 vec_blend(__vector __bool short __a, __vector __bool short __b,
6342           __vector signed short __c) {
6343   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6344 }
6345 
6346 static inline __ATTRS_o_ai __vector unsigned short
6347 vec_blend(__vector unsigned short __a, __vector unsigned short __b,
6348           __vector signed short __c) {
6349   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6350 }
6351 
6352 static inline __ATTRS_o_ai __vector signed int
6353 vec_blend(__vector signed int __a, __vector signed int __b,
6354           __vector signed int __c) {
6355   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6356 }
6357 
6358 static inline __ATTRS_o_ai __vector __bool int
6359 vec_blend(__vector __bool int __a, __vector __bool int __b,
6360           __vector signed int __c) {
6361   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6362 }
6363 
6364 static inline __ATTRS_o_ai __vector unsigned int
6365 vec_blend(__vector unsigned int __a, __vector unsigned int __b,
6366           __vector signed int __c) {
6367   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6368 }
6369 
6370 static inline __ATTRS_o_ai __vector signed long long
6371 vec_blend(__vector signed long long __a, __vector signed long long __b,
6372           __vector signed long long __c) {
6373   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6374 }
6375 
6376 static inline __ATTRS_o_ai __vector __bool long long
6377 vec_blend(__vector __bool long long __a, __vector __bool long long __b,
6378           __vector signed long long __c) {
6379   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6380 }
6381 
6382 static inline __ATTRS_o_ai __vector unsigned long long
6383 vec_blend(__vector unsigned long long __a, __vector unsigned long long __b,
6384           __vector signed long long __c) {
6385   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6386 }
6387 
6388 static inline __ATTRS_o_ai __vector signed __int128
6389 vec_blend(__vector signed __int128 __a, __vector signed __int128 __b,
6390           __vector signed __int128 __c) {
6391   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6392 }
6393 
6394 static inline __ATTRS_o_ai __vector __bool __int128
6395 vec_blend(__vector __bool __int128 __a, __vector __bool __int128 __b,
6396           __vector signed __int128 __c) {
6397   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6398 }
6399 
6400 static inline __ATTRS_o_ai __vector unsigned __int128
6401 vec_blend(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
6402           __vector signed __int128 __c) {
6403   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6404 }
6405 
6406 static inline __ATTRS_o_ai __vector float
6407 vec_blend(__vector float __a, __vector float __b,
6408           __vector signed int __c) {
6409   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6410 }
6411 
6412 static inline __ATTRS_o_ai __vector double
6413 vec_blend(__vector double __a, __vector double __b,
6414           __vector signed long long __c) {
6415   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6416 }
6417 #endif
6418 
6419 /*-- vec_and ---------------------------------------------------------------*/
6420 
6421 static inline __ATTRS_o_ai __vector __bool char
6422 vec_and(__vector __bool char __a, __vector __bool char __b) {
6423   return __a & __b;
6424 }
6425 
6426 static inline __ATTRS_o_ai __vector signed char
6427 vec_and(__vector signed char __a, __vector signed char __b) {
6428   return __a & __b;
6429 }
6430 
6431 static inline __ATTRS_o_ai __vector unsigned char
6432 vec_and(__vector unsigned char __a, __vector unsigned char __b) {
6433   return __a & __b;
6434 }
6435 
6436 static inline __ATTRS_o_ai __vector __bool short
6437 vec_and(__vector __bool short __a, __vector __bool short __b) {
6438   return __a & __b;
6439 }
6440 
6441 static inline __ATTRS_o_ai __vector signed short
6442 vec_and(__vector signed short __a, __vector signed short __b) {
6443   return __a & __b;
6444 }
6445 
6446 static inline __ATTRS_o_ai __vector unsigned short
6447 vec_and(__vector unsigned short __a, __vector unsigned short __b) {
6448   return __a & __b;
6449 }
6450 
6451 static inline __ATTRS_o_ai __vector __bool int
6452 vec_and(__vector __bool int __a, __vector __bool int __b) {
6453   return __a & __b;
6454 }
6455 
6456 static inline __ATTRS_o_ai __vector signed int
6457 vec_and(__vector signed int __a, __vector signed int __b) {
6458   return __a & __b;
6459 }
6460 
6461 static inline __ATTRS_o_ai __vector unsigned int
6462 vec_and(__vector unsigned int __a, __vector unsigned int __b) {
6463   return __a & __b;
6464 }
6465 
6466 static inline __ATTRS_o_ai __vector __bool long long
6467 vec_and(__vector __bool long long __a, __vector __bool long long __b) {
6468   return __a & __b;
6469 }
6470 
6471 static inline __ATTRS_o_ai __vector signed long long
6472 vec_and(__vector signed long long __a, __vector signed long long __b) {
6473   return __a & __b;
6474 }
6475 
6476 static inline __ATTRS_o_ai __vector unsigned long long
6477 vec_and(__vector unsigned long long __a, __vector unsigned long long __b) {
6478   return __a & __b;
6479 }
6480 
6481 static inline __ATTRS_o_ai __vector __bool __int128
6482 vec_and(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6483   return __a & __b;
6484 }
6485 
6486 static inline __ATTRS_o_ai __vector signed __int128
6487 vec_and(__vector signed __int128 __a, __vector signed __int128 __b) {
6488   return __a & __b;
6489 }
6490 
6491 static inline __ATTRS_o_ai __vector unsigned __int128
6492 vec_and(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6493   return __a & __b;
6494 }
6495 
6496 #if __ARCH__ >= 12
6497 static inline __ATTRS_o_ai __vector float
6498 vec_and(__vector float __a, __vector float __b) {
6499   return (__vector float)((__vector unsigned int)__a &
6500                           (__vector unsigned int)__b);
6501 }
6502 #endif
6503 
6504 static inline __ATTRS_o_ai __vector double
6505 vec_and(__vector double __a, __vector double __b) {
6506   return (__vector double)((__vector unsigned long long)__a &
6507                            (__vector unsigned long long)__b);
6508 }
6509 
6510 /*-- vec_or ----------------------------------------------------------------*/
6511 
6512 static inline __ATTRS_o_ai __vector __bool char
6513 vec_or(__vector __bool char __a, __vector __bool char __b) {
6514   return __a | __b;
6515 }
6516 
6517 static inline __ATTRS_o_ai __vector signed char
6518 vec_or(__vector signed char __a, __vector signed char __b) {
6519   return __a | __b;
6520 }
6521 
6522 static inline __ATTRS_o_ai __vector unsigned char
6523 vec_or(__vector unsigned char __a, __vector unsigned char __b) {
6524   return __a | __b;
6525 }
6526 
6527 static inline __ATTRS_o_ai __vector __bool short
6528 vec_or(__vector __bool short __a, __vector __bool short __b) {
6529   return __a | __b;
6530 }
6531 
6532 static inline __ATTRS_o_ai __vector signed short
6533 vec_or(__vector signed short __a, __vector signed short __b) {
6534   return __a | __b;
6535 }
6536 
6537 static inline __ATTRS_o_ai __vector unsigned short
6538 vec_or(__vector unsigned short __a, __vector unsigned short __b) {
6539   return __a | __b;
6540 }
6541 
6542 static inline __ATTRS_o_ai __vector __bool int
6543 vec_or(__vector __bool int __a, __vector __bool int __b) {
6544   return __a | __b;
6545 }
6546 
6547 static inline __ATTRS_o_ai __vector signed int
6548 vec_or(__vector signed int __a, __vector signed int __b) {
6549   return __a | __b;
6550 }
6551 
6552 static inline __ATTRS_o_ai __vector unsigned int
6553 vec_or(__vector unsigned int __a, __vector unsigned int __b) {
6554   return __a | __b;
6555 }
6556 
6557 static inline __ATTRS_o_ai __vector __bool long long
6558 vec_or(__vector __bool long long __a, __vector __bool long long __b) {
6559   return __a | __b;
6560 }
6561 
6562 static inline __ATTRS_o_ai __vector signed long long
6563 vec_or(__vector signed long long __a, __vector signed long long __b) {
6564   return __a | __b;
6565 }
6566 
6567 static inline __ATTRS_o_ai __vector unsigned long long
6568 vec_or(__vector unsigned long long __a, __vector unsigned long long __b) {
6569   return __a | __b;
6570 }
6571 
6572 static inline __ATTRS_o_ai __vector __bool __int128
6573 vec_or(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6574   return __a | __b;
6575 }
6576 
6577 static inline __ATTRS_o_ai __vector signed __int128
6578 vec_or(__vector signed __int128 __a, __vector signed __int128 __b) {
6579   return __a | __b;
6580 }
6581 
6582 static inline __ATTRS_o_ai __vector unsigned __int128
6583 vec_or(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6584   return __a | __b;
6585 }
6586 
6587 #if __ARCH__ >= 12
6588 static inline __ATTRS_o_ai __vector float
6589 vec_or(__vector float __a, __vector float __b) {
6590   return (__vector float)((__vector unsigned int)__a |
6591                           (__vector unsigned int)__b);
6592 }
6593 #endif
6594 
6595 static inline __ATTRS_o_ai __vector double
6596 vec_or(__vector double __a, __vector double __b) {
6597   return (__vector double)((__vector unsigned long long)__a |
6598                            (__vector unsigned long long)__b);
6599 }
6600 
6601 /*-- vec_xor ----------------------------------------------------------------*/
6602 
6603 static inline __ATTRS_o_ai __vector __bool char
6604 vec_xor(__vector __bool char __a, __vector __bool char __b) {
6605   return __a ^ __b;
6606 }
6607 
6608 static inline __ATTRS_o_ai __vector signed char
6609 vec_xor(__vector signed char __a, __vector signed char __b) {
6610   return __a ^ __b;
6611 }
6612 
6613 static inline __ATTRS_o_ai __vector unsigned char
6614 vec_xor(__vector unsigned char __a, __vector unsigned char __b) {
6615   return __a ^ __b;
6616 }
6617 
6618 static inline __ATTRS_o_ai __vector __bool short
6619 vec_xor(__vector __bool short __a, __vector __bool short __b) {
6620   return __a ^ __b;
6621 }
6622 
6623 static inline __ATTRS_o_ai __vector signed short
6624 vec_xor(__vector signed short __a, __vector signed short __b) {
6625   return __a ^ __b;
6626 }
6627 
6628 static inline __ATTRS_o_ai __vector unsigned short
6629 vec_xor(__vector unsigned short __a, __vector unsigned short __b) {
6630   return __a ^ __b;
6631 }
6632 
6633 static inline __ATTRS_o_ai __vector __bool int
6634 vec_xor(__vector __bool int __a, __vector __bool int __b) {
6635   return __a ^ __b;
6636 }
6637 
6638 static inline __ATTRS_o_ai __vector signed int
6639 vec_xor(__vector signed int __a, __vector signed int __b) {
6640   return __a ^ __b;
6641 }
6642 
6643 static inline __ATTRS_o_ai __vector unsigned int
6644 vec_xor(__vector unsigned int __a, __vector unsigned int __b) {
6645   return __a ^ __b;
6646 }
6647 
6648 static inline __ATTRS_o_ai __vector __bool long long
6649 vec_xor(__vector __bool long long __a, __vector __bool long long __b) {
6650   return __a ^ __b;
6651 }
6652 
6653 static inline __ATTRS_o_ai __vector signed long long
6654 vec_xor(__vector signed long long __a, __vector signed long long __b) {
6655   return __a ^ __b;
6656 }
6657 
6658 static inline __ATTRS_o_ai __vector unsigned long long
6659 vec_xor(__vector unsigned long long __a, __vector unsigned long long __b) {
6660   return __a ^ __b;
6661 }
6662 
6663 static inline __ATTRS_o_ai __vector __bool __int128
6664 vec_xor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6665   return __a ^ __b;
6666 }
6667 
6668 static inline __ATTRS_o_ai __vector signed __int128
6669 vec_xor(__vector signed __int128 __a, __vector signed __int128 __b) {
6670   return __a ^ __b;
6671 }
6672 
6673 static inline __ATTRS_o_ai __vector unsigned __int128
6674 vec_xor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6675   return __a ^ __b;
6676 }
6677 
6678 #if __ARCH__ >= 12
6679 static inline __ATTRS_o_ai __vector float
6680 vec_xor(__vector float __a, __vector float __b) {
6681   return (__vector float)((__vector unsigned int)__a ^
6682                           (__vector unsigned int)__b);
6683 }
6684 #endif
6685 
6686 static inline __ATTRS_o_ai __vector double
6687 vec_xor(__vector double __a, __vector double __b) {
6688   return (__vector double)((__vector unsigned long long)__a ^
6689                            (__vector unsigned long long)__b);
6690 }
6691 
6692 /*-- vec_andc ---------------------------------------------------------------*/
6693 
6694 static inline __ATTRS_o_ai __vector __bool char
6695 vec_andc(__vector __bool char __a, __vector __bool char __b) {
6696   return __a & ~__b;
6697 }
6698 
6699 static inline __ATTRS_o_ai __vector signed char
6700 vec_andc(__vector signed char __a, __vector signed char __b) {
6701   return __a & ~__b;
6702 }
6703 
6704 // This prototype is deprecated.
6705 static inline __ATTRS_o_ai __vector signed char
6706 vec_andc(__vector __bool char __a, __vector signed char __b) {
6707   return __a & ~__b;
6708 }
6709 
6710 // This prototype is deprecated.
6711 static inline __ATTRS_o_ai __vector signed char
6712 vec_andc(__vector signed char __a, __vector __bool char __b) {
6713   return __a & ~__b;
6714 }
6715 
6716 static inline __ATTRS_o_ai __vector unsigned char
6717 vec_andc(__vector unsigned char __a, __vector unsigned char __b) {
6718   return __a & ~__b;
6719 }
6720 
6721 // This prototype is deprecated.
6722 static inline __ATTRS_o_ai __vector unsigned char
6723 vec_andc(__vector __bool char __a, __vector unsigned char __b) {
6724   return __a & ~__b;
6725 }
6726 
6727 // This prototype is deprecated.
6728 static inline __ATTRS_o_ai __vector unsigned char
6729 vec_andc(__vector unsigned char __a, __vector __bool char __b) {
6730   return __a & ~__b;
6731 }
6732 
6733 static inline __ATTRS_o_ai __vector __bool short
6734 vec_andc(__vector __bool short __a, __vector __bool short __b) {
6735   return __a & ~__b;
6736 }
6737 
6738 static inline __ATTRS_o_ai __vector signed short
6739 vec_andc(__vector signed short __a, __vector signed short __b) {
6740   return __a & ~__b;
6741 }
6742 
6743 // This prototype is deprecated.
6744 static inline __ATTRS_o_ai __vector signed short
6745 vec_andc(__vector __bool short __a, __vector signed short __b) {
6746   return __a & ~__b;
6747 }
6748 
6749 // This prototype is deprecated.
6750 static inline __ATTRS_o_ai __vector signed short
6751 vec_andc(__vector signed short __a, __vector __bool short __b) {
6752   return __a & ~__b;
6753 }
6754 
6755 static inline __ATTRS_o_ai __vector unsigned short
6756 vec_andc(__vector unsigned short __a, __vector unsigned short __b) {
6757   return __a & ~__b;
6758 }
6759 
6760 // This prototype is deprecated.
6761 static inline __ATTRS_o_ai __vector unsigned short
6762 vec_andc(__vector __bool short __a, __vector unsigned short __b) {
6763   return __a & ~__b;
6764 }
6765 
6766 // This prototype is deprecated.
6767 static inline __ATTRS_o_ai __vector unsigned short
6768 vec_andc(__vector unsigned short __a, __vector __bool short __b) {
6769   return __a & ~__b;
6770 }
6771 
6772 static inline __ATTRS_o_ai __vector __bool int
6773 vec_andc(__vector __bool int __a, __vector __bool int __b) {
6774   return __a & ~__b;
6775 }
6776 
6777 static inline __ATTRS_o_ai __vector signed int
6778 vec_andc(__vector signed int __a, __vector signed int __b) {
6779   return __a & ~__b;
6780 }
6781 
6782 // This prototype is deprecated.
6783 static inline __ATTRS_o_ai __vector signed int
6784 vec_andc(__vector __bool int __a, __vector signed int __b) {
6785   return __a & ~__b;
6786 }
6787 
6788 // This prototype is deprecated.
6789 static inline __ATTRS_o_ai __vector signed int
6790 vec_andc(__vector signed int __a, __vector __bool int __b) {
6791   return __a & ~__b;
6792 }
6793 
6794 static inline __ATTRS_o_ai __vector unsigned int
6795 vec_andc(__vector unsigned int __a, __vector unsigned int __b) {
6796   return __a & ~__b;
6797 }
6798 
6799 // This prototype is deprecated.
6800 static inline __ATTRS_o_ai __vector unsigned int
6801 vec_andc(__vector __bool int __a, __vector unsigned int __b) {
6802   return __a & ~__b;
6803 }
6804 
6805 // This prototype is deprecated.
6806 static inline __ATTRS_o_ai __vector unsigned int
6807 vec_andc(__vector unsigned int __a, __vector __bool int __b) {
6808   return __a & ~__b;
6809 }
6810 
6811 static inline __ATTRS_o_ai __vector __bool long long
6812 vec_andc(__vector __bool long long __a, __vector __bool long long __b) {
6813   return __a & ~__b;
6814 }
6815 
6816 static inline __ATTRS_o_ai __vector signed long long
6817 vec_andc(__vector signed long long __a, __vector signed long long __b) {
6818   return __a & ~__b;
6819 }
6820 
6821 // This prototype is deprecated.
6822 static inline __ATTRS_o_ai __vector signed long long
6823 vec_andc(__vector __bool long long __a, __vector signed long long __b) {
6824   return __a & ~__b;
6825 }
6826 
6827 // This prototype is deprecated.
6828 static inline __ATTRS_o_ai __vector signed long long
6829 vec_andc(__vector signed long long __a, __vector __bool long long __b) {
6830   return __a & ~__b;
6831 }
6832 
6833 static inline __ATTRS_o_ai __vector unsigned long long
6834 vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) {
6835   return __a & ~__b;
6836 }
6837 
6838 // This prototype is deprecated.
6839 static inline __ATTRS_o_ai __vector unsigned long long
6840 vec_andc(__vector __bool long long __a, __vector unsigned long long __b) {
6841   return __a & ~__b;
6842 }
6843 
6844 // This prototype is deprecated.
6845 static inline __ATTRS_o_ai __vector unsigned long long
6846 vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {
6847   return __a & ~__b;
6848 }
6849 
6850 static inline __ATTRS_o_ai __vector __bool __int128
6851 vec_andc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6852   return __a & ~__b;
6853 }
6854 
6855 static inline __ATTRS_o_ai __vector signed __int128
6856 vec_andc(__vector signed __int128 __a, __vector signed __int128 __b) {
6857   return __a & ~__b;
6858 }
6859 
6860 static inline __ATTRS_o_ai __vector unsigned __int128
6861 vec_andc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6862   return __a & ~__b;
6863 }
6864 
6865 #if __ARCH__ >= 12
6866 static inline __ATTRS_o_ai __vector float
6867 vec_andc(__vector float __a, __vector float __b) {
6868   return (__vector float)((__vector unsigned int)__a &
6869                          ~(__vector unsigned int)__b);
6870 }
6871 #endif
6872 
6873 static inline __ATTRS_o_ai __vector double
6874 vec_andc(__vector double __a, __vector double __b) {
6875   return (__vector double)((__vector unsigned long long)__a &
6876                          ~(__vector unsigned long long)__b);
6877 }
6878 
6879 // This prototype is deprecated.
6880 static inline __ATTRS_o_ai __vector double
6881 vec_andc(__vector __bool long long __a, __vector double __b) {
6882   return (__vector double)((__vector unsigned long long)__a &
6883                          ~(__vector unsigned long long)__b);
6884 }
6885 
6886 // This prototype is deprecated.
6887 static inline __ATTRS_o_ai __vector double
6888 vec_andc(__vector double __a, __vector __bool long long __b) {
6889   return (__vector double)((__vector unsigned long long)__a &
6890                          ~(__vector unsigned long long)__b);
6891 }
6892 
6893 /*-- vec_nor ----------------------------------------------------------------*/
6894 
6895 static inline __ATTRS_o_ai __vector __bool char
6896 vec_nor(__vector __bool char __a, __vector __bool char __b) {
6897   return ~(__a | __b);
6898 }
6899 
6900 static inline __ATTRS_o_ai __vector signed char
6901 vec_nor(__vector signed char __a, __vector signed char __b) {
6902   return ~(__a | __b);
6903 }
6904 
6905 // This prototype is deprecated.
6906 static inline __ATTRS_o_ai __vector signed char
6907 vec_nor(__vector __bool char __a, __vector signed char __b) {
6908   return ~(__a | __b);
6909 }
6910 
6911 // This prototype is deprecated.
6912 static inline __ATTRS_o_ai __vector signed char
6913 vec_nor(__vector signed char __a, __vector __bool char __b) {
6914   return ~(__a | __b);
6915 }
6916 
6917 static inline __ATTRS_o_ai __vector unsigned char
6918 vec_nor(__vector unsigned char __a, __vector unsigned char __b) {
6919   return ~(__a | __b);
6920 }
6921 
6922 // This prototype is deprecated.
6923 static inline __ATTRS_o_ai __vector unsigned char
6924 vec_nor(__vector __bool char __a, __vector unsigned char __b) {
6925   return ~(__a | __b);
6926 }
6927 
6928 // This prototype is deprecated.
6929 static inline __ATTRS_o_ai __vector unsigned char
6930 vec_nor(__vector unsigned char __a, __vector __bool char __b) {
6931   return ~(__a | __b);
6932 }
6933 
6934 static inline __ATTRS_o_ai __vector __bool short
6935 vec_nor(__vector __bool short __a, __vector __bool short __b) {
6936   return ~(__a | __b);
6937 }
6938 
6939 static inline __ATTRS_o_ai __vector signed short
6940 vec_nor(__vector signed short __a, __vector signed short __b) {
6941   return ~(__a | __b);
6942 }
6943 
6944 // This prototype is deprecated.
6945 static inline __ATTRS_o_ai __vector signed short
6946 vec_nor(__vector __bool short __a, __vector signed short __b) {
6947   return ~(__a | __b);
6948 }
6949 
6950 // This prototype is deprecated.
6951 static inline __ATTRS_o_ai __vector signed short
6952 vec_nor(__vector signed short __a, __vector __bool short __b) {
6953   return ~(__a | __b);
6954 }
6955 
6956 static inline __ATTRS_o_ai __vector unsigned short
6957 vec_nor(__vector unsigned short __a, __vector unsigned short __b) {
6958   return ~(__a | __b);
6959 }
6960 
6961 // This prototype is deprecated.
6962 static inline __ATTRS_o_ai __vector unsigned short
6963 vec_nor(__vector __bool short __a, __vector unsigned short __b) {
6964   return ~(__a | __b);
6965 }
6966 
6967 // This prototype is deprecated.
6968 static inline __ATTRS_o_ai __vector unsigned short
6969 vec_nor(__vector unsigned short __a, __vector __bool short __b) {
6970   return ~(__a | __b);
6971 }
6972 
6973 static inline __ATTRS_o_ai __vector __bool int
6974 vec_nor(__vector __bool int __a, __vector __bool int __b) {
6975   return ~(__a | __b);
6976 }
6977 
6978 static inline __ATTRS_o_ai __vector signed int
6979 vec_nor(__vector signed int __a, __vector signed int __b) {
6980   return ~(__a | __b);
6981 }
6982 
6983 // This prototype is deprecated.
6984 static inline __ATTRS_o_ai __vector signed int
6985 vec_nor(__vector __bool int __a, __vector signed int __b) {
6986   return ~(__a | __b);
6987 }
6988 
6989 // This prototype is deprecated.
6990 static inline __ATTRS_o_ai __vector signed int
6991 vec_nor(__vector signed int __a, __vector __bool int __b) {
6992   return ~(__a | __b);
6993 }
6994 
6995 static inline __ATTRS_o_ai __vector unsigned int
6996 vec_nor(__vector unsigned int __a, __vector unsigned int __b) {
6997   return ~(__a | __b);
6998 }
6999 
7000 // This prototype is deprecated.
7001 static inline __ATTRS_o_ai __vector unsigned int
7002 vec_nor(__vector __bool int __a, __vector unsigned int __b) {
7003   return ~(__a | __b);
7004 }
7005 
7006 // This prototype is deprecated.
7007 static inline __ATTRS_o_ai __vector unsigned int
7008 vec_nor(__vector unsigned int __a, __vector __bool int __b) {
7009   return ~(__a | __b);
7010 }
7011 
7012 static inline __ATTRS_o_ai __vector __bool long long
7013 vec_nor(__vector __bool long long __a, __vector __bool long long __b) {
7014   return ~(__a | __b);
7015 }
7016 
7017 static inline __ATTRS_o_ai __vector signed long long
7018 vec_nor(__vector signed long long __a, __vector signed long long __b) {
7019   return ~(__a | __b);
7020 }
7021 
7022 // This prototype is deprecated.
7023 static inline __ATTRS_o_ai __vector signed long long
7024 vec_nor(__vector __bool long long __a, __vector signed long long __b) {
7025   return ~(__a | __b);
7026 }
7027 
7028 // This prototype is deprecated.
7029 static inline __ATTRS_o_ai __vector signed long long
7030 vec_nor(__vector signed long long __a, __vector __bool long long __b) {
7031   return ~(__a | __b);
7032 }
7033 
7034 static inline __ATTRS_o_ai __vector unsigned long long
7035 vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) {
7036   return ~(__a | __b);
7037 }
7038 
7039 // This prototype is deprecated.
7040 static inline __ATTRS_o_ai __vector unsigned long long
7041 vec_nor(__vector __bool long long __a, __vector unsigned long long __b) {
7042   return ~(__a | __b);
7043 }
7044 
7045 // This prototype is deprecated.
7046 static inline __ATTRS_o_ai __vector unsigned long long
7047 vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {
7048   return ~(__a | __b);
7049 }
7050 
7051 static inline __ATTRS_o_ai __vector __bool __int128
7052 vec_nor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7053   return ~(__a | __b);
7054 }
7055 
7056 static inline __ATTRS_o_ai __vector signed __int128
7057 vec_nor(__vector signed __int128 __a, __vector signed __int128 __b) {
7058   return ~(__a | __b);
7059 }
7060 
7061 static inline __ATTRS_o_ai __vector unsigned __int128
7062 vec_nor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7063   return ~(__a | __b);
7064 }
7065 
7066 #if __ARCH__ >= 12
7067 static inline __ATTRS_o_ai __vector float
7068 vec_nor(__vector float __a, __vector float __b) {
7069   return (__vector float)~((__vector unsigned int)__a |
7070                          (__vector unsigned int)__b);
7071 }
7072 #endif
7073 
7074 static inline __ATTRS_o_ai __vector double
7075 vec_nor(__vector double __a, __vector double __b) {
7076   return (__vector double)~((__vector unsigned long long)__a |
7077                           (__vector unsigned long long)__b);
7078 }
7079 
7080 // This prototype is deprecated.
7081 static inline __ATTRS_o_ai __vector double
7082 vec_nor(__vector __bool long long __a, __vector double __b) {
7083   return (__vector double)~((__vector unsigned long long)__a |
7084                           (__vector unsigned long long)__b);
7085 }
7086 
7087 // This prototype is deprecated.
7088 static inline __ATTRS_o_ai __vector double
7089 vec_nor(__vector double __a, __vector __bool long long __b) {
7090   return (__vector double)~((__vector unsigned long long)__a |
7091                           (__vector unsigned long long)__b);
7092 }
7093 
7094 /*-- vec_orc ----------------------------------------------------------------*/
7095 
7096 #if __ARCH__ >= 12
7097 static inline __ATTRS_o_ai __vector __bool char
7098 vec_orc(__vector __bool char __a, __vector __bool char __b) {
7099   return __a | ~__b;
7100 }
7101 
7102 static inline __ATTRS_o_ai __vector signed char
7103 vec_orc(__vector signed char __a, __vector signed char __b) {
7104   return __a | ~__b;
7105 }
7106 
7107 static inline __ATTRS_o_ai __vector unsigned char
7108 vec_orc(__vector unsigned char __a, __vector unsigned char __b) {
7109   return __a | ~__b;
7110 }
7111 
7112 static inline __ATTRS_o_ai __vector __bool short
7113 vec_orc(__vector __bool short __a, __vector __bool short __b) {
7114   return __a | ~__b;
7115 }
7116 
7117 static inline __ATTRS_o_ai __vector signed short
7118 vec_orc(__vector signed short __a, __vector signed short __b) {
7119   return __a | ~__b;
7120 }
7121 
7122 static inline __ATTRS_o_ai __vector unsigned short
7123 vec_orc(__vector unsigned short __a, __vector unsigned short __b) {
7124   return __a | ~__b;
7125 }
7126 
7127 static inline __ATTRS_o_ai __vector __bool int
7128 vec_orc(__vector __bool int __a, __vector __bool int __b) {
7129   return __a | ~__b;
7130 }
7131 
7132 static inline __ATTRS_o_ai __vector signed int
7133 vec_orc(__vector signed int __a, __vector signed int __b) {
7134   return __a | ~__b;
7135 }
7136 
7137 static inline __ATTRS_o_ai __vector unsigned int
7138 vec_orc(__vector unsigned int __a, __vector unsigned int __b) {
7139   return __a | ~__b;
7140 }
7141 
7142 static inline __ATTRS_o_ai __vector __bool long long
7143 vec_orc(__vector __bool long long __a, __vector __bool long long __b) {
7144   return __a | ~__b;
7145 }
7146 
7147 static inline __ATTRS_o_ai __vector signed long long
7148 vec_orc(__vector signed long long __a, __vector signed long long __b) {
7149   return __a | ~__b;
7150 }
7151 
7152 static inline __ATTRS_o_ai __vector unsigned long long
7153 vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {
7154   return __a | ~__b;
7155 }
7156 
7157 static inline __ATTRS_o_ai __vector __bool __int128
7158 vec_orc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7159   return __a | ~__b;
7160 }
7161 
7162 static inline __ATTRS_o_ai __vector signed __int128
7163 vec_orc(__vector signed __int128 __a, __vector signed __int128 __b) {
7164   return __a | ~__b;
7165 }
7166 
7167 static inline __ATTRS_o_ai __vector unsigned __int128
7168 vec_orc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7169   return __a | ~__b;
7170 }
7171 
7172 static inline __ATTRS_o_ai __vector float
7173 vec_orc(__vector float __a, __vector float __b) {
7174   return (__vector float)((__vector unsigned int)__a |
7175                         ~(__vector unsigned int)__b);
7176 }
7177 
7178 static inline __ATTRS_o_ai __vector double
7179 vec_orc(__vector double __a, __vector double __b) {
7180   return (__vector double)((__vector unsigned long long)__a |
7181                          ~(__vector unsigned long long)__b);
7182 }
7183 #endif
7184 
7185 /*-- vec_nand ---------------------------------------------------------------*/
7186 
7187 #if __ARCH__ >= 12
7188 static inline __ATTRS_o_ai __vector __bool char
7189 vec_nand(__vector __bool char __a, __vector __bool char __b) {
7190   return ~(__a & __b);
7191 }
7192 
7193 static inline __ATTRS_o_ai __vector signed char
7194 vec_nand(__vector signed char __a, __vector signed char __b) {
7195   return ~(__a & __b);
7196 }
7197 
7198 static inline __ATTRS_o_ai __vector unsigned char
7199 vec_nand(__vector unsigned char __a, __vector unsigned char __b) {
7200   return ~(__a & __b);
7201 }
7202 
7203 static inline __ATTRS_o_ai __vector __bool short
7204 vec_nand(__vector __bool short __a, __vector __bool short __b) {
7205   return ~(__a & __b);
7206 }
7207 
7208 static inline __ATTRS_o_ai __vector signed short
7209 vec_nand(__vector signed short __a, __vector signed short __b) {
7210   return ~(__a & __b);
7211 }
7212 
7213 static inline __ATTRS_o_ai __vector unsigned short
7214 vec_nand(__vector unsigned short __a, __vector unsigned short __b) {
7215   return ~(__a & __b);
7216 }
7217 
7218 static inline __ATTRS_o_ai __vector __bool int
7219 vec_nand(__vector __bool int __a, __vector __bool int __b) {
7220   return ~(__a & __b);
7221 }
7222 
7223 static inline __ATTRS_o_ai __vector signed int
7224 vec_nand(__vector signed int __a, __vector signed int __b) {
7225   return ~(__a & __b);
7226 }
7227 
7228 static inline __ATTRS_o_ai __vector unsigned int
7229 vec_nand(__vector unsigned int __a, __vector unsigned int __b) {
7230   return ~(__a & __b);
7231 }
7232 
7233 static inline __ATTRS_o_ai __vector __bool long long
7234 vec_nand(__vector __bool long long __a, __vector __bool long long __b) {
7235   return ~(__a & __b);
7236 }
7237 
7238 static inline __ATTRS_o_ai __vector signed long long
7239 vec_nand(__vector signed long long __a, __vector signed long long __b) {
7240   return ~(__a & __b);
7241 }
7242 
7243 static inline __ATTRS_o_ai __vector unsigned long long
7244 vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {
7245   return ~(__a & __b);
7246 }
7247 
7248 static inline __ATTRS_o_ai __vector __bool __int128
7249 vec_nand(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7250   return ~(__a & __b);
7251 }
7252 
7253 static inline __ATTRS_o_ai __vector signed __int128
7254 vec_nand(__vector signed __int128 __a, __vector signed __int128 __b) {
7255   return ~(__a & __b);
7256 }
7257 
7258 static inline __ATTRS_o_ai __vector unsigned __int128
7259 vec_nand(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7260   return ~(__a & __b);
7261 }
7262 
7263 static inline __ATTRS_o_ai __vector float
7264 vec_nand(__vector float __a, __vector float __b) {
7265   return (__vector float)~((__vector unsigned int)__a &
7266                          (__vector unsigned int)__b);
7267 }
7268 
7269 static inline __ATTRS_o_ai __vector double
7270 vec_nand(__vector double __a, __vector double __b) {
7271   return (__vector double)~((__vector unsigned long long)__a &
7272                           (__vector unsigned long long)__b);
7273 }
7274 #endif
7275 
7276 /*-- vec_eqv ----------------------------------------------------------------*/
7277 
7278 #if __ARCH__ >= 12
7279 static inline __ATTRS_o_ai __vector __bool char
7280 vec_eqv(__vector __bool char __a, __vector __bool char __b) {
7281   return ~(__a ^ __b);
7282 }
7283 
7284 static inline __ATTRS_o_ai __vector signed char
7285 vec_eqv(__vector signed char __a, __vector signed char __b) {
7286   return ~(__a ^ __b);
7287 }
7288 
7289 static inline __ATTRS_o_ai __vector unsigned char
7290 vec_eqv(__vector unsigned char __a, __vector unsigned char __b) {
7291   return ~(__a ^ __b);
7292 }
7293 
7294 static inline __ATTRS_o_ai __vector __bool short
7295 vec_eqv(__vector __bool short __a, __vector __bool short __b) {
7296   return ~(__a ^ __b);
7297 }
7298 
7299 static inline __ATTRS_o_ai __vector signed short
7300 vec_eqv(__vector signed short __a, __vector signed short __b) {
7301   return ~(__a ^ __b);
7302 }
7303 
7304 static inline __ATTRS_o_ai __vector unsigned short
7305 vec_eqv(__vector unsigned short __a, __vector unsigned short __b) {
7306   return ~(__a ^ __b);
7307 }
7308 
7309 static inline __ATTRS_o_ai __vector __bool int
7310 vec_eqv(__vector __bool int __a, __vector __bool int __b) {
7311   return ~(__a ^ __b);
7312 }
7313 
7314 static inline __ATTRS_o_ai __vector signed int
7315 vec_eqv(__vector signed int __a, __vector signed int __b) {
7316   return ~(__a ^ __b);
7317 }
7318 
7319 static inline __ATTRS_o_ai __vector unsigned int
7320 vec_eqv(__vector unsigned int __a, __vector unsigned int __b) {
7321   return ~(__a ^ __b);
7322 }
7323 
7324 static inline __ATTRS_o_ai __vector __bool long long
7325 vec_eqv(__vector __bool long long __a, __vector __bool long long __b) {
7326   return ~(__a ^ __b);
7327 }
7328 
7329 static inline __ATTRS_o_ai __vector signed long long
7330 vec_eqv(__vector signed long long __a, __vector signed long long __b) {
7331   return ~(__a ^ __b);
7332 }
7333 
7334 static inline __ATTRS_o_ai __vector unsigned long long
7335 vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {
7336   return ~(__a ^ __b);
7337 }
7338 
7339 static inline __ATTRS_o_ai __vector __bool __int128
7340 vec_eqv(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7341   return ~(__a ^ __b);
7342 }
7343 
7344 static inline __ATTRS_o_ai __vector signed __int128
7345 vec_eqv(__vector signed __int128 __a, __vector signed __int128 __b) {
7346   return ~(__a ^ __b);
7347 }
7348 
7349 static inline __ATTRS_o_ai __vector unsigned __int128
7350 vec_eqv(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7351   return ~(__a ^ __b);
7352 }
7353 
7354 static inline __ATTRS_o_ai __vector float
7355 vec_eqv(__vector float __a, __vector float __b) {
7356   return (__vector float)~((__vector unsigned int)__a ^
7357                          (__vector unsigned int)__b);
7358 }
7359 
7360 static inline __ATTRS_o_ai __vector double
7361 vec_eqv(__vector double __a, __vector double __b) {
7362   return (__vector double)~((__vector unsigned long long)__a ^
7363                           (__vector unsigned long long)__b);
7364 }
7365 #endif
7366 
7367 /*-- vec_evaluate -----------------------------------------------------------*/
7368 
7369 #if __ARCH__ >= 15
7370 extern __ATTRS_o __vector signed char
7371 vec_evaluate(__vector signed char __a, __vector signed char __b,
7372              __vector signed char __c, unsigned char __d)
7373   __constant(__d);
7374 
7375 extern __ATTRS_o __vector unsigned char
7376 vec_evaluate(__vector unsigned char __a, __vector unsigned char __b,
7377              __vector unsigned char __c, unsigned char __d)
7378   __constant(__d);
7379 
7380 extern __ATTRS_o __vector __bool char
7381 vec_evaluate(__vector __bool char __a, __vector __bool char __b,
7382              __vector __bool char __c, unsigned char __d)
7383   __constant(__d);
7384 
7385 extern __ATTRS_o __vector signed short
7386 vec_evaluate(__vector signed short __a, __vector signed short __b,
7387              __vector signed short __c, unsigned char __d)
7388   __constant(__d);
7389 
7390 extern __ATTRS_o __vector unsigned short
7391 vec_evaluate(__vector unsigned short __a, __vector unsigned short __b,
7392              __vector unsigned short __c, unsigned char __d)
7393   __constant(__d);
7394 
7395 extern __ATTRS_o __vector __bool short
7396 vec_evaluate(__vector __bool short __a, __vector __bool short __b,
7397              __vector __bool short __c, unsigned char __d)
7398   __constant(__d);
7399 
7400 extern __ATTRS_o __vector signed int
7401 vec_evaluate(__vector signed int __a, __vector signed int __b,
7402              __vector signed int __c, unsigned char __d)
7403   __constant(__d);
7404 
7405 extern __ATTRS_o __vector unsigned int
7406 vec_evaluate(__vector unsigned int __a, __vector unsigned int __b,
7407              __vector unsigned int __c, unsigned char __d)
7408   __constant(__d);
7409 
7410 extern __ATTRS_o __vector __bool int
7411 vec_evaluate(__vector __bool int __a, __vector __bool int __b,
7412              __vector __bool int __c, unsigned char __d)
7413   __constant(__d);
7414 
7415 extern __ATTRS_o __vector signed long long
7416 vec_evaluate(__vector signed long long __a, __vector signed long long __b,
7417              __vector signed long long __c, unsigned char __d)
7418   __constant(__d);
7419 
7420 extern __ATTRS_o __vector unsigned long long
7421 vec_evaluate(__vector unsigned long long __a, __vector unsigned long long __b,
7422              __vector unsigned long long __c, unsigned char __d)
7423   __constant(__d);
7424 
7425 extern __ATTRS_o __vector __bool long long
7426 vec_evaluate(__vector __bool long long __a, __vector __bool long long __b,
7427              __vector __bool long long __c, unsigned char __d)
7428   __constant(__d);
7429 
7430 extern __ATTRS_o __vector signed __int128
7431 vec_evaluate(__vector signed __int128 __a, __vector signed __int128 __b,
7432              __vector signed __int128 __c, unsigned char __d)
7433   __constant(__d);
7434 
7435 extern __ATTRS_o __vector unsigned __int128
7436 vec_evaluate(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
7437              __vector unsigned __int128 __c, unsigned char __d)
7438   __constant(__d);
7439 
7440 extern __ATTRS_o __vector __bool __int128
7441 vec_evaluate(__vector __bool __int128 __a, __vector __bool __int128 __b,
7442              __vector __bool __int128 __c, unsigned char __d)
7443   __constant(__d);
7444 
7445 #define vec_evaluate(A, B, C, D) \
7446   ((__typeof__((vec_evaluate)((A), (B), (C), (D)))) \
7447   __builtin_s390_veval((__vector unsigned char)(A), \
7448                        (__vector unsigned char)(B), \
7449                        (__vector unsigned char)(C), (D)))
7450 #endif
7451 
7452 /*-- vec_cntlz --------------------------------------------------------------*/
7453 
7454 static inline __ATTRS_o_ai __vector unsigned char
7455 vec_cntlz(__vector signed char __a) {
7456   return __builtin_s390_vclzb((__vector unsigned char)__a);
7457 }
7458 
7459 static inline __ATTRS_o_ai __vector unsigned char
7460 vec_cntlz(__vector unsigned char __a) {
7461   return __builtin_s390_vclzb(__a);
7462 }
7463 
7464 static inline __ATTRS_o_ai __vector unsigned short
7465 vec_cntlz(__vector signed short __a) {
7466   return __builtin_s390_vclzh((__vector unsigned short)__a);
7467 }
7468 
7469 static inline __ATTRS_o_ai __vector unsigned short
7470 vec_cntlz(__vector unsigned short __a) {
7471   return __builtin_s390_vclzh(__a);
7472 }
7473 
7474 static inline __ATTRS_o_ai __vector unsigned int
7475 vec_cntlz(__vector signed int __a) {
7476   return __builtin_s390_vclzf((__vector unsigned int)__a);
7477 }
7478 
7479 static inline __ATTRS_o_ai __vector unsigned int
7480 vec_cntlz(__vector unsigned int __a) {
7481   return __builtin_s390_vclzf(__a);
7482 }
7483 
7484 static inline __ATTRS_o_ai __vector unsigned long long
7485 vec_cntlz(__vector signed long long __a) {
7486   return __builtin_s390_vclzg((__vector unsigned long long)__a);
7487 }
7488 
7489 static inline __ATTRS_o_ai __vector unsigned long long
7490 vec_cntlz(__vector unsigned long long __a) {
7491   return __builtin_s390_vclzg(__a);
7492 }
7493 
7494 #if __ARCH__ >= 15
7495 static inline __ATTRS_o_ai __vector unsigned __int128
7496 vec_cntlz(__vector signed __int128 __a) {
7497   return (__vector unsigned __int128)
7498          __builtin_s390_vclzq((unsigned __int128)__a);
7499 }
7500 
7501 static inline __ATTRS_o_ai __vector unsigned __int128
7502 vec_cntlz(__vector unsigned __int128 __a) {
7503   return (__vector unsigned __int128)
7504          __builtin_s390_vclzq((unsigned __int128)__a);
7505 }
7506 #endif
7507 
7508 /*-- vec_cnttz --------------------------------------------------------------*/
7509 
7510 static inline __ATTRS_o_ai __vector unsigned char
7511 vec_cnttz(__vector signed char __a) {
7512   return __builtin_s390_vctzb((__vector unsigned char)__a);
7513 }
7514 
7515 static inline __ATTRS_o_ai __vector unsigned char
7516 vec_cnttz(__vector unsigned char __a) {
7517   return __builtin_s390_vctzb(__a);
7518 }
7519 
7520 static inline __ATTRS_o_ai __vector unsigned short
7521 vec_cnttz(__vector signed short __a) {
7522   return __builtin_s390_vctzh((__vector unsigned short)__a);
7523 }
7524 
7525 static inline __ATTRS_o_ai __vector unsigned short
7526 vec_cnttz(__vector unsigned short __a) {
7527   return __builtin_s390_vctzh(__a);
7528 }
7529 
7530 static inline __ATTRS_o_ai __vector unsigned int
7531 vec_cnttz(__vector signed int __a) {
7532   return __builtin_s390_vctzf((__vector unsigned int)__a);
7533 }
7534 
7535 static inline __ATTRS_o_ai __vector unsigned int
7536 vec_cnttz(__vector unsigned int __a) {
7537   return __builtin_s390_vctzf(__a);
7538 }
7539 
7540 static inline __ATTRS_o_ai __vector unsigned long long
7541 vec_cnttz(__vector signed long long __a) {
7542   return __builtin_s390_vctzg((__vector unsigned long long)__a);
7543 }
7544 
7545 static inline __ATTRS_o_ai __vector unsigned long long
7546 vec_cnttz(__vector unsigned long long __a) {
7547   return __builtin_s390_vctzg(__a);
7548 }
7549 
7550 #if __ARCH__ >= 15
7551 static inline __ATTRS_o_ai __vector unsigned __int128
7552 vec_cnttz(__vector signed __int128 __a) {
7553   return (__vector unsigned __int128)
7554          __builtin_s390_vctzq((unsigned __int128)__a);
7555 }
7556 
7557 static inline __ATTRS_o_ai __vector unsigned __int128
7558 vec_cnttz(__vector unsigned __int128 __a) {
7559   return (__vector unsigned __int128)
7560          __builtin_s390_vctzq((unsigned __int128)__a);
7561 }
7562 #endif
7563 
7564 /*-- vec_popcnt -------------------------------------------------------------*/
7565 
7566 static inline __ATTRS_o_ai __vector unsigned char
7567 vec_popcnt(__vector signed char __a) {
7568   return __builtin_elementwise_popcount((__vector unsigned char)__a);
7569 }
7570 
7571 static inline __ATTRS_o_ai __vector unsigned char
7572 vec_popcnt(__vector unsigned char __a) {
7573   return __builtin_elementwise_popcount(__a);
7574 }
7575 
7576 static inline __ATTRS_o_ai __vector unsigned short
7577 vec_popcnt(__vector signed short __a) {
7578   return __builtin_elementwise_popcount((__vector unsigned short)__a);
7579 }
7580 
7581 static inline __ATTRS_o_ai __vector unsigned short
7582 vec_popcnt(__vector unsigned short __a) {
7583   return __builtin_elementwise_popcount(__a);
7584 }
7585 
7586 static inline __ATTRS_o_ai __vector unsigned int
7587 vec_popcnt(__vector signed int __a) {
7588   return __builtin_elementwise_popcount((__vector unsigned int)__a);
7589 }
7590 
7591 static inline __ATTRS_o_ai __vector unsigned int
7592 vec_popcnt(__vector unsigned int __a) {
7593   return __builtin_elementwise_popcount(__a);
7594 }
7595 
7596 static inline __ATTRS_o_ai __vector unsigned long long
7597 vec_popcnt(__vector signed long long __a) {
7598   return __builtin_elementwise_popcount((__vector unsigned long long)__a);
7599 }
7600 
7601 static inline __ATTRS_o_ai __vector unsigned long long
7602 vec_popcnt(__vector unsigned long long __a) {
7603   return __builtin_elementwise_popcount(__a);
7604 }
7605 
7606 /*-- vec_rl -----------------------------------------------------------------*/
7607 
7608 static inline __ATTRS_o_ai __vector signed char
7609 vec_rl(__vector signed char __a, __vector unsigned char __b) {
7610   return (__vector signed char)__builtin_s390_verllvb(
7611     (__vector unsigned char)__a, __b);
7612 }
7613 
7614 static inline __ATTRS_o_ai __vector unsigned char
7615 vec_rl(__vector unsigned char __a, __vector unsigned char __b) {
7616   return __builtin_s390_verllvb(__a, __b);
7617 }
7618 
7619 static inline __ATTRS_o_ai __vector signed short
7620 vec_rl(__vector signed short __a, __vector unsigned short __b) {
7621   return (__vector signed short)__builtin_s390_verllvh(
7622     (__vector unsigned short)__a, __b);
7623 }
7624 
7625 static inline __ATTRS_o_ai __vector unsigned short
7626 vec_rl(__vector unsigned short __a, __vector unsigned short __b) {
7627   return __builtin_s390_verllvh(__a, __b);
7628 }
7629 
7630 static inline __ATTRS_o_ai __vector signed int
7631 vec_rl(__vector signed int __a, __vector unsigned int __b) {
7632   return (__vector signed int)__builtin_s390_verllvf(
7633     (__vector unsigned int)__a, __b);
7634 }
7635 
7636 static inline __ATTRS_o_ai __vector unsigned int
7637 vec_rl(__vector unsigned int __a, __vector unsigned int __b) {
7638   return __builtin_s390_verllvf(__a, __b);
7639 }
7640 
7641 static inline __ATTRS_o_ai __vector signed long long
7642 vec_rl(__vector signed long long __a, __vector unsigned long long __b) {
7643   return (__vector signed long long)__builtin_s390_verllvg(
7644     (__vector unsigned long long)__a, __b);
7645 }
7646 
7647 static inline __ATTRS_o_ai __vector unsigned long long
7648 vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) {
7649   return __builtin_s390_verllvg(__a, __b);
7650 }
7651 
7652 /*-- vec_rli ----------------------------------------------------------------*/
7653 
7654 static inline __ATTRS_o_ai __vector signed char
7655 vec_rli(__vector signed char __a, unsigned long __b) {
7656   return (__vector signed char)__builtin_s390_verllb(
7657     (__vector unsigned char)__a, (unsigned char)__b);
7658 }
7659 
7660 static inline __ATTRS_o_ai __vector unsigned char
7661 vec_rli(__vector unsigned char __a, unsigned long __b) {
7662   return __builtin_s390_verllb(__a, (unsigned char)__b);
7663 }
7664 
7665 static inline __ATTRS_o_ai __vector signed short
7666 vec_rli(__vector signed short __a, unsigned long __b) {
7667   return (__vector signed short)__builtin_s390_verllh(
7668     (__vector unsigned short)__a, (unsigned char)__b);
7669 }
7670 
7671 static inline __ATTRS_o_ai __vector unsigned short
7672 vec_rli(__vector unsigned short __a, unsigned long __b) {
7673   return __builtin_s390_verllh(__a, (unsigned char)__b);
7674 }
7675 
7676 static inline __ATTRS_o_ai __vector signed int
7677 vec_rli(__vector signed int __a, unsigned long __b) {
7678   return (__vector signed int)__builtin_s390_verllf(
7679     (__vector unsigned int)__a, (unsigned char)__b);
7680 }
7681 
7682 static inline __ATTRS_o_ai __vector unsigned int
7683 vec_rli(__vector unsigned int __a, unsigned long __b) {
7684   return __builtin_s390_verllf(__a, (unsigned char)__b);
7685 }
7686 
7687 static inline __ATTRS_o_ai __vector signed long long
7688 vec_rli(__vector signed long long __a, unsigned long __b) {
7689   return (__vector signed long long)__builtin_s390_verllg(
7690     (__vector unsigned long long)__a, (unsigned char)__b);
7691 }
7692 
7693 static inline __ATTRS_o_ai __vector unsigned long long
7694 vec_rli(__vector unsigned long long __a, unsigned long __b) {
7695   return __builtin_s390_verllg(__a, (unsigned char)__b);
7696 }
7697 
7698 /*-- vec_rl_mask ------------------------------------------------------------*/
7699 
7700 extern __ATTRS_o __vector signed char
7701 vec_rl_mask(__vector signed char __a, __vector unsigned char __b,
7702             unsigned char __c) __constant(__c);
7703 
7704 extern __ATTRS_o __vector unsigned char
7705 vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b,
7706             unsigned char __c) __constant(__c);
7707 
7708 extern __ATTRS_o __vector signed short
7709 vec_rl_mask(__vector signed short __a, __vector unsigned short __b,
7710             unsigned char __c) __constant(__c);
7711 
7712 extern __ATTRS_o __vector unsigned short
7713 vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b,
7714             unsigned char __c) __constant(__c);
7715 
7716 extern __ATTRS_o __vector signed int
7717 vec_rl_mask(__vector signed int __a, __vector unsigned int __b,
7718             unsigned char __c) __constant(__c);
7719 
7720 extern __ATTRS_o __vector unsigned int
7721 vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b,
7722             unsigned char __c) __constant(__c);
7723 
7724 extern __ATTRS_o __vector signed long long
7725 vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b,
7726             unsigned char __c) __constant(__c);
7727 
7728 extern __ATTRS_o __vector unsigned long long
7729 vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b,
7730             unsigned char __c) __constant(__c);
7731 
7732 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
7733   __extension__ ({ \
7734     __vector unsigned char __res; \
7735     __vector unsigned char __x = (__vector unsigned char)(X); \
7736     __vector unsigned char __y = (__vector unsigned char)(Y); \
7737     switch (sizeof ((X)[0])) { \
7738     case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \
7739              (__vector unsigned char)__x, (__vector unsigned char)__x, \
7740              (__vector unsigned char)__y, (Z)); break; \
7741     case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \
7742              (__vector unsigned short)__x, (__vector unsigned short)__x, \
7743              (__vector unsigned short)__y, (Z)); break; \
7744     case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \
7745              (__vector unsigned int)__x, (__vector unsigned int)__x, \
7746              (__vector unsigned int)__y, (Z)); break; \
7747     default: __res = (__vector unsigned char) __builtin_s390_verimg( \
7748              (__vector unsigned long long)__x, (__vector unsigned long long)__x, \
7749              (__vector unsigned long long)__y, (Z)); break; \
7750     } __res; }))
7751 
7752 /*-- vec_sll ----------------------------------------------------------------*/
7753 
7754 static inline __ATTRS_o_ai __vector signed char
7755 vec_sll(__vector signed char __a, __vector unsigned char __b) {
7756   return (__vector signed char)__builtin_s390_vsl(
7757     (__vector unsigned char)__a, __b);
7758 }
7759 
7760 // This prototype is deprecated.
7761 static inline __ATTRS_o_ai __vector signed char
7762 vec_sll(__vector signed char __a, __vector unsigned short __b) {
7763   return (__vector signed char)__builtin_s390_vsl(
7764     (__vector unsigned char)__a, (__vector unsigned char)__b);
7765 }
7766 
7767 // This prototype is deprecated.
7768 static inline __ATTRS_o_ai __vector signed char
7769 vec_sll(__vector signed char __a, __vector unsigned int __b) {
7770   return (__vector signed char)__builtin_s390_vsl(
7771     (__vector unsigned char)__a, (__vector unsigned char)__b);
7772 }
7773 
7774 // This prototype is deprecated.
7775 static inline __ATTRS_o_ai __vector __bool char
7776 vec_sll(__vector __bool char __a, __vector unsigned char __b) {
7777   return (__vector __bool char)__builtin_s390_vsl(
7778     (__vector unsigned char)__a, __b);
7779 }
7780 
7781 // This prototype is deprecated.
7782 static inline __ATTRS_o_ai __vector __bool char
7783 vec_sll(__vector __bool char __a, __vector unsigned short __b) {
7784   return (__vector __bool char)__builtin_s390_vsl(
7785     (__vector unsigned char)__a, (__vector unsigned char)__b);
7786 }
7787 
7788 // This prototype is deprecated.
7789 static inline __ATTRS_o_ai __vector __bool char
7790 vec_sll(__vector __bool char __a, __vector unsigned int __b) {
7791   return (__vector __bool char)__builtin_s390_vsl(
7792     (__vector unsigned char)__a, (__vector unsigned char)__b);
7793 }
7794 
7795 static inline __ATTRS_o_ai __vector unsigned char
7796 vec_sll(__vector unsigned char __a, __vector unsigned char __b) {
7797   return __builtin_s390_vsl(__a, __b);
7798 }
7799 
7800 // This prototype is deprecated.
7801 static inline __ATTRS_o_ai __vector unsigned char
7802 vec_sll(__vector unsigned char __a, __vector unsigned short __b) {
7803   return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
7804 }
7805 
7806 // This prototype is deprecated.
7807 static inline __ATTRS_o_ai __vector unsigned char
7808 vec_sll(__vector unsigned char __a, __vector unsigned int __b) {
7809   return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
7810 }
7811 
7812 static inline __ATTRS_o_ai __vector signed short
7813 vec_sll(__vector signed short __a, __vector unsigned char __b) {
7814   return (__vector signed short)__builtin_s390_vsl(
7815     (__vector unsigned char)__a, __b);
7816 }
7817 
7818 // This prototype is deprecated.
7819 static inline __ATTRS_o_ai __vector signed short
7820 vec_sll(__vector signed short __a, __vector unsigned short __b) {
7821   return (__vector signed short)__builtin_s390_vsl(
7822     (__vector unsigned char)__a, (__vector unsigned char)__b);
7823 }
7824 
7825 // This prototype is deprecated.
7826 static inline __ATTRS_o_ai __vector signed short
7827 vec_sll(__vector signed short __a, __vector unsigned int __b) {
7828   return (__vector signed short)__builtin_s390_vsl(
7829     (__vector unsigned char)__a, (__vector unsigned char)__b);
7830 }
7831 
7832 // This prototype is deprecated.
7833 static inline __ATTRS_o_ai __vector __bool short
7834 vec_sll(__vector __bool short __a, __vector unsigned char __b) {
7835   return (__vector __bool short)__builtin_s390_vsl(
7836     (__vector unsigned char)__a, __b);
7837 }
7838 
7839 // This prototype is deprecated.
7840 static inline __ATTRS_o_ai __vector __bool short
7841 vec_sll(__vector __bool short __a, __vector unsigned short __b) {
7842   return (__vector __bool short)__builtin_s390_vsl(
7843     (__vector unsigned char)__a, (__vector unsigned char)__b);
7844 }
7845 
7846 // This prototype is deprecated.
7847 static inline __ATTRS_o_ai __vector __bool short
7848 vec_sll(__vector __bool short __a, __vector unsigned int __b) {
7849   return (__vector __bool short)__builtin_s390_vsl(
7850     (__vector unsigned char)__a, (__vector unsigned char)__b);
7851 }
7852 
7853 static inline __ATTRS_o_ai __vector unsigned short
7854 vec_sll(__vector unsigned short __a, __vector unsigned char __b) {
7855   return (__vector unsigned short)__builtin_s390_vsl(
7856     (__vector unsigned char)__a, __b);
7857 }
7858 
7859 // This prototype is deprecated.
7860 static inline __ATTRS_o_ai __vector unsigned short
7861 vec_sll(__vector unsigned short __a, __vector unsigned short __b) {
7862   return (__vector unsigned short)__builtin_s390_vsl(
7863     (__vector unsigned char)__a, (__vector unsigned char)__b);
7864 }
7865 
7866 // This prototype is deprecated.
7867 static inline __ATTRS_o_ai __vector unsigned short
7868 vec_sll(__vector unsigned short __a, __vector unsigned int __b) {
7869   return (__vector unsigned short)__builtin_s390_vsl(
7870     (__vector unsigned char)__a, (__vector unsigned char)__b);
7871 }
7872 
7873 static inline __ATTRS_o_ai __vector signed int
7874 vec_sll(__vector signed int __a, __vector unsigned char __b) {
7875   return (__vector signed int)__builtin_s390_vsl(
7876     (__vector unsigned char)__a, __b);
7877 }
7878 
7879 // This prototype is deprecated.
7880 static inline __ATTRS_o_ai __vector signed int
7881 vec_sll(__vector signed int __a, __vector unsigned short __b) {
7882   return (__vector signed int)__builtin_s390_vsl(
7883     (__vector unsigned char)__a, (__vector unsigned char)__b);
7884 }
7885 
7886 // This prototype is deprecated.
7887 static inline __ATTRS_o_ai __vector signed int
7888 vec_sll(__vector signed int __a, __vector unsigned int __b) {
7889   return (__vector signed int)__builtin_s390_vsl(
7890     (__vector unsigned char)__a, (__vector unsigned char)__b);
7891 }
7892 
7893 // This prototype is deprecated.
7894 static inline __ATTRS_o_ai __vector __bool int
7895 vec_sll(__vector __bool int __a, __vector unsigned char __b) {
7896   return (__vector __bool int)__builtin_s390_vsl(
7897     (__vector unsigned char)__a, __b);
7898 }
7899 
7900 // This prototype is deprecated.
7901 static inline __ATTRS_o_ai __vector __bool int
7902 vec_sll(__vector __bool int __a, __vector unsigned short __b) {
7903   return (__vector __bool int)__builtin_s390_vsl(
7904     (__vector unsigned char)__a, (__vector unsigned char)__b);
7905 }
7906 
7907 // This prototype is deprecated.
7908 static inline __ATTRS_o_ai __vector __bool int
7909 vec_sll(__vector __bool int __a, __vector unsigned int __b) {
7910   return (__vector __bool int)__builtin_s390_vsl(
7911     (__vector unsigned char)__a, (__vector unsigned char)__b);
7912 }
7913 
7914 static inline __ATTRS_o_ai __vector unsigned int
7915 vec_sll(__vector unsigned int __a, __vector unsigned char __b) {
7916   return (__vector unsigned int)__builtin_s390_vsl(
7917     (__vector unsigned char)__a, __b);
7918 }
7919 
7920 // This prototype is deprecated.
7921 static inline __ATTRS_o_ai __vector unsigned int
7922 vec_sll(__vector unsigned int __a, __vector unsigned short __b) {
7923   return (__vector unsigned int)__builtin_s390_vsl(
7924     (__vector unsigned char)__a, (__vector unsigned char)__b);
7925 }
7926 
7927 // This prototype is deprecated.
7928 static inline __ATTRS_o_ai __vector unsigned int
7929 vec_sll(__vector unsigned int __a, __vector unsigned int __b) {
7930   return (__vector unsigned int)__builtin_s390_vsl(
7931     (__vector unsigned char)__a, (__vector unsigned char)__b);
7932 }
7933 
7934 static inline __ATTRS_o_ai __vector signed long long
7935 vec_sll(__vector signed long long __a, __vector unsigned char __b) {
7936   return (__vector signed long long)__builtin_s390_vsl(
7937     (__vector unsigned char)__a, __b);
7938 }
7939 
7940 // This prototype is deprecated.
7941 static inline __ATTRS_o_ai __vector signed long long
7942 vec_sll(__vector signed long long __a, __vector unsigned short __b) {
7943   return (__vector signed long long)__builtin_s390_vsl(
7944     (__vector unsigned char)__a, (__vector unsigned char)__b);
7945 }
7946 
7947 // This prototype is deprecated.
7948 static inline __ATTRS_o_ai __vector signed long long
7949 vec_sll(__vector signed long long __a, __vector unsigned int __b) {
7950   return (__vector signed long long)__builtin_s390_vsl(
7951     (__vector unsigned char)__a, (__vector unsigned char)__b);
7952 }
7953 
7954 // This prototype is deprecated.
7955 static inline __ATTRS_o_ai __vector __bool long long
7956 vec_sll(__vector __bool long long __a, __vector unsigned char __b) {
7957   return (__vector __bool long long)__builtin_s390_vsl(
7958     (__vector unsigned char)__a, __b);
7959 }
7960 
7961 // This prototype is deprecated.
7962 static inline __ATTRS_o_ai __vector __bool long long
7963 vec_sll(__vector __bool long long __a, __vector unsigned short __b) {
7964   return (__vector __bool long long)__builtin_s390_vsl(
7965     (__vector unsigned char)__a, (__vector unsigned char)__b);
7966 }
7967 
7968 // This prototype is deprecated.
7969 static inline __ATTRS_o_ai __vector __bool long long
7970 vec_sll(__vector __bool long long __a, __vector unsigned int __b) {
7971   return (__vector __bool long long)__builtin_s390_vsl(
7972     (__vector unsigned char)__a, (__vector unsigned char)__b);
7973 }
7974 
7975 static inline __ATTRS_o_ai __vector unsigned long long
7976 vec_sll(__vector unsigned long long __a, __vector unsigned char __b) {
7977   return (__vector unsigned long long)__builtin_s390_vsl(
7978     (__vector unsigned char)__a, __b);
7979 }
7980 
7981 // This prototype is deprecated.
7982 static inline __ATTRS_o_ai __vector unsigned long long
7983 vec_sll(__vector unsigned long long __a, __vector unsigned short __b) {
7984   return (__vector unsigned long long)__builtin_s390_vsl(
7985     (__vector unsigned char)__a, (__vector unsigned char)__b);
7986 }
7987 
7988 // This prototype is deprecated.
7989 static inline __ATTRS_o_ai __vector unsigned long long
7990 vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {
7991   return (__vector unsigned long long)__builtin_s390_vsl(
7992     (__vector unsigned char)__a, (__vector unsigned char)__b);
7993 }
7994 
7995 static inline __ATTRS_o_ai __vector signed __int128
7996 vec_sll(__vector signed __int128 __a, __vector unsigned char __b) {
7997   return (__vector signed __int128)__builtin_s390_vsl(
7998     (__vector unsigned char)__a, __b);
7999 }
8000 
8001 static inline __ATTRS_o_ai __vector unsigned __int128
8002 vec_sll(__vector unsigned __int128 __a, __vector unsigned char __b) {
8003   return (__vector unsigned __int128)__builtin_s390_vsl(
8004     (__vector unsigned char)__a, __b);
8005 }
8006 
8007 /*-- vec_slb ----------------------------------------------------------------*/
8008 
8009 // This prototype is deprecated.
8010 static inline __ATTRS_o_ai __vector signed char
8011 vec_slb(__vector signed char __a, __vector signed char __b) {
8012   return (__vector signed char)__builtin_s390_vslb(
8013     (__vector unsigned char)__a, (__vector unsigned char)__b);
8014 }
8015 
8016 static inline __ATTRS_o_ai __vector signed char
8017 vec_slb(__vector signed char __a, __vector unsigned char __b) {
8018   return (__vector signed char)__builtin_s390_vslb(
8019     (__vector unsigned char)__a, __b);
8020 }
8021 
8022 // This prototype is deprecated.
8023 static inline __ATTRS_o_ai __vector unsigned char
8024 vec_slb(__vector unsigned char __a, __vector signed char __b) {
8025   return __builtin_s390_vslb(__a, (__vector unsigned char)__b);
8026 }
8027 
8028 static inline __ATTRS_o_ai __vector unsigned char
8029 vec_slb(__vector unsigned char __a, __vector unsigned char __b) {
8030   return __builtin_s390_vslb(__a, __b);
8031 }
8032 
8033 // This prototype is deprecated.
8034 static inline __ATTRS_o_ai __vector signed short
8035 vec_slb(__vector signed short __a, __vector signed short __b) {
8036   return (__vector signed short)__builtin_s390_vslb(
8037     (__vector unsigned char)__a, (__vector unsigned char)__b);
8038 }
8039 
8040 // This prototype is deprecated.
8041 static inline __ATTRS_o_ai __vector signed short
8042 vec_slb(__vector signed short __a, __vector unsigned short __b) {
8043   return (__vector signed short)__builtin_s390_vslb(
8044     (__vector unsigned char)__a, (__vector unsigned char)__b);
8045 }
8046 
8047 static inline __ATTRS_o_ai __vector signed short
8048 vec_slb(__vector signed short __a, __vector unsigned char __b) {
8049   return (__vector signed short)__builtin_s390_vslb(
8050     (__vector unsigned char)__a, __b);
8051 }
8052 
8053 // This prototype is deprecated.
8054 static inline __ATTRS_o_ai __vector unsigned short
8055 vec_slb(__vector unsigned short __a, __vector signed short __b) {
8056   return (__vector unsigned short)__builtin_s390_vslb(
8057     (__vector unsigned char)__a, (__vector unsigned char)__b);
8058 }
8059 
8060 // This prototype is deprecated.
8061 static inline __ATTRS_o_ai __vector unsigned short
8062 vec_slb(__vector unsigned short __a, __vector unsigned short __b) {
8063   return (__vector unsigned short)__builtin_s390_vslb(
8064     (__vector unsigned char)__a, (__vector unsigned char)__b);
8065 }
8066 
8067 static inline __ATTRS_o_ai __vector unsigned short
8068 vec_slb(__vector unsigned short __a, __vector unsigned char __b) {
8069   return (__vector unsigned short)__builtin_s390_vslb(
8070     (__vector unsigned char)__a, __b);
8071 }
8072 
8073 // This prototype is deprecated.
8074 static inline __ATTRS_o_ai __vector signed int
8075 vec_slb(__vector signed int __a, __vector signed int __b) {
8076   return (__vector signed int)__builtin_s390_vslb(
8077     (__vector unsigned char)__a, (__vector unsigned char)__b);
8078 }
8079 
8080 // This prototype is deprecated.
8081 static inline __ATTRS_o_ai __vector signed int
8082 vec_slb(__vector signed int __a, __vector unsigned int __b) {
8083   return (__vector signed int)__builtin_s390_vslb(
8084     (__vector unsigned char)__a, (__vector unsigned char)__b);
8085 }
8086 
8087 static inline __ATTRS_o_ai __vector signed int
8088 vec_slb(__vector signed int __a, __vector unsigned char __b) {
8089   return (__vector signed int)__builtin_s390_vslb(
8090     (__vector unsigned char)__a, __b);
8091 }
8092 
8093 // This prototype is deprecated.
8094 static inline __ATTRS_o_ai __vector unsigned int
8095 vec_slb(__vector unsigned int __a, __vector signed int __b) {
8096   return (__vector unsigned int)__builtin_s390_vslb(
8097     (__vector unsigned char)__a, (__vector unsigned char)__b);
8098 }
8099 
8100 // This prototype is deprecated.
8101 static inline __ATTRS_o_ai __vector unsigned int
8102 vec_slb(__vector unsigned int __a, __vector unsigned int __b) {
8103   return (__vector unsigned int)__builtin_s390_vslb(
8104     (__vector unsigned char)__a, (__vector unsigned char)__b);
8105 }
8106 
8107 static inline __ATTRS_o_ai __vector unsigned int
8108 vec_slb(__vector unsigned int __a, __vector unsigned char __b) {
8109   return (__vector unsigned int)__builtin_s390_vslb(
8110     (__vector unsigned char)__a, __b);
8111 }
8112 
8113 // This prototype is deprecated.
8114 static inline __ATTRS_o_ai __vector signed long long
8115 vec_slb(__vector signed long long __a, __vector signed long long __b) {
8116   return (__vector signed long long)__builtin_s390_vslb(
8117     (__vector unsigned char)__a, (__vector unsigned char)__b);
8118 }
8119 
8120 // This prototype is deprecated.
8121 static inline __ATTRS_o_ai __vector signed long long
8122 vec_slb(__vector signed long long __a, __vector unsigned long long __b) {
8123   return (__vector signed long long)__builtin_s390_vslb(
8124     (__vector unsigned char)__a, (__vector unsigned char)__b);
8125 }
8126 
8127 static inline __ATTRS_o_ai __vector signed long long
8128 vec_slb(__vector signed long long __a, __vector unsigned char __b) {
8129   return (__vector signed long long)__builtin_s390_vslb(
8130     (__vector unsigned char)__a, __b);
8131 }
8132 
8133 // This prototype is deprecated.
8134 static inline __ATTRS_o_ai __vector unsigned long long
8135 vec_slb(__vector unsigned long long __a, __vector signed long long __b) {
8136   return (__vector unsigned long long)__builtin_s390_vslb(
8137     (__vector unsigned char)__a, (__vector unsigned char)__b);
8138 }
8139 
8140 // This prototype is deprecated.
8141 static inline __ATTRS_o_ai __vector unsigned long long
8142 vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {
8143   return (__vector unsigned long long)__builtin_s390_vslb(
8144     (__vector unsigned char)__a, (__vector unsigned char)__b);
8145 }
8146 
8147 static inline __ATTRS_o_ai __vector unsigned long long
8148 vec_slb(__vector unsigned long long __a, __vector unsigned char __b) {
8149   return (__vector unsigned long long)__builtin_s390_vslb(
8150     (__vector unsigned char)__a, __b);
8151 }
8152 
8153 static inline __ATTRS_o_ai __vector signed __int128
8154 vec_slb(__vector signed __int128 __a, __vector unsigned char __b) {
8155   return (__vector signed __int128)__builtin_s390_vslb(
8156     (__vector unsigned char)__a, __b);
8157 }
8158 
8159 static inline __ATTRS_o_ai __vector unsigned __int128
8160 vec_slb(__vector unsigned __int128 __a, __vector unsigned char __b) {
8161   return (__vector unsigned __int128)__builtin_s390_vslb(
8162     (__vector unsigned char)__a, __b);
8163 }
8164 
8165 #if __ARCH__ >= 12
8166 // This prototype is deprecated.
8167 static inline __ATTRS_o_ai __vector float
8168 vec_slb(__vector float __a, __vector signed int __b) {
8169   return (__vector float)__builtin_s390_vslb(
8170     (__vector unsigned char)__a, (__vector unsigned char)__b);
8171 }
8172 
8173 // This prototype is deprecated.
8174 static inline __ATTRS_o_ai __vector float
8175 vec_slb(__vector float __a, __vector unsigned int __b) {
8176   return (__vector float)__builtin_s390_vslb(
8177     (__vector unsigned char)__a, (__vector unsigned char)__b);
8178 }
8179 
8180 static inline __ATTRS_o_ai __vector float
8181 vec_slb(__vector float __a, __vector unsigned char __b) {
8182   return (__vector float)__builtin_s390_vslb(
8183     (__vector unsigned char)__a, __b);
8184 }
8185 #endif
8186 
8187 // This prototype is deprecated.
8188 static inline __ATTRS_o_ai __vector double
8189 vec_slb(__vector double __a, __vector signed long long __b) {
8190   return (__vector double)__builtin_s390_vslb(
8191     (__vector unsigned char)__a, (__vector unsigned char)__b);
8192 }
8193 
8194 // This prototype is deprecated.
8195 static inline __ATTRS_o_ai __vector double
8196 vec_slb(__vector double __a, __vector unsigned long long __b) {
8197   return (__vector double)__builtin_s390_vslb(
8198     (__vector unsigned char)__a, (__vector unsigned char)__b);
8199 }
8200 
8201 static inline __ATTRS_o_ai __vector double
8202 vec_slb(__vector double __a, __vector unsigned char __b) {
8203   return (__vector double)__builtin_s390_vslb(
8204     (__vector unsigned char)__a, __b);
8205 }
8206 
8207 /*-- vec_sld ----------------------------------------------------------------*/
8208 
8209 extern __ATTRS_o __vector signed char
8210 vec_sld(__vector signed char __a, __vector signed char __b, int __c)
8211   __constant_range(__c, 0, 15);
8212 
8213 // This prototype is deprecated.
8214 extern __ATTRS_o __vector __bool char
8215 vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)
8216   __constant_range(__c, 0, 15);
8217 
8218 extern __ATTRS_o __vector unsigned char
8219 vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c)
8220   __constant_range(__c, 0, 15);
8221 
8222 extern __ATTRS_o __vector signed short
8223 vec_sld(__vector signed short __a, __vector signed short __b, int __c)
8224   __constant_range(__c, 0, 15);
8225 
8226 // This prototype is deprecated.
8227 extern __ATTRS_o __vector __bool short
8228 vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)
8229   __constant_range(__c, 0, 15);
8230 
8231 extern __ATTRS_o __vector unsigned short
8232 vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c)
8233   __constant_range(__c, 0, 15);
8234 
8235 extern __ATTRS_o __vector signed int
8236 vec_sld(__vector signed int __a, __vector signed int __b, int __c)
8237   __constant_range(__c, 0, 15);
8238 
8239 // This prototype is deprecated.
8240 extern __ATTRS_o __vector __bool int
8241 vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)
8242   __constant_range(__c, 0, 15);
8243 
8244 extern __ATTRS_o __vector unsigned int
8245 vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c)
8246   __constant_range(__c, 0, 15);
8247 
8248 extern __ATTRS_o __vector signed long long
8249 vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)
8250   __constant_range(__c, 0, 15);
8251 
8252 // This prototype is deprecated.
8253 extern __ATTRS_o __vector __bool long long
8254 vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)
8255   __constant_range(__c, 0, 15);
8256 
8257 extern __ATTRS_o __vector unsigned long long
8258 vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,
8259         int __c)
8260   __constant_range(__c, 0, 15);
8261 
8262 extern __ATTRS_o __vector signed __int128
8263 vec_sld(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8264   __constant_range(__c, 0, 15);
8265 
8266 extern __ATTRS_o __vector unsigned __int128
8267 vec_sld(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8268         int __c)
8269   __constant_range(__c, 0, 15);
8270 
8271 #if __ARCH__ >= 12
8272 extern __ATTRS_o __vector float
8273 vec_sld(__vector float __a, __vector float __b, int __c)
8274   __constant_range(__c, 0, 15);
8275 #endif
8276 
8277 extern __ATTRS_o __vector double
8278 vec_sld(__vector double __a, __vector double __b, int __c)
8279   __constant_range(__c, 0, 15);
8280 
8281 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
8282   __builtin_s390_vsldb((__vector unsigned char)(X), \
8283                        (__vector unsigned char)(Y), (Z)))
8284 
8285 /*-- vec_sldw ---------------------------------------------------------------*/
8286 
8287 extern __ATTRS_o __vector signed char
8288 vec_sldw(__vector signed char __a, __vector signed char __b, int __c)
8289   __constant_range(__c, 0, 3);
8290 
8291 extern __ATTRS_o __vector unsigned char
8292 vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c)
8293   __constant_range(__c, 0, 3);
8294 
8295 extern __ATTRS_o __vector signed short
8296 vec_sldw(__vector signed short __a, __vector signed short __b, int __c)
8297   __constant_range(__c, 0, 3);
8298 
8299 extern __ATTRS_o __vector unsigned short
8300 vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c)
8301   __constant_range(__c, 0, 3);
8302 
8303 extern __ATTRS_o __vector signed int
8304 vec_sldw(__vector signed int __a, __vector signed int __b, int __c)
8305   __constant_range(__c, 0, 3);
8306 
8307 extern __ATTRS_o __vector unsigned int
8308 vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c)
8309   __constant_range(__c, 0, 3);
8310 
8311 extern __ATTRS_o __vector signed long long
8312 vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c)
8313   __constant_range(__c, 0, 3);
8314 
8315 extern __ATTRS_o __vector unsigned long long
8316 vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,
8317          int __c)
8318   __constant_range(__c, 0, 3);
8319 
8320 extern __ATTRS_o __vector signed __int128
8321 vec_sldw(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8322   __constant_range(__c, 0, 3);
8323 
8324 extern __ATTRS_o __vector unsigned __int128
8325 vec_sldw(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8326          int __c)
8327   __constant_range(__c, 0, 3);
8328 
8329 // This prototype is deprecated.
8330 extern __ATTRS_o __vector double
8331 vec_sldw(__vector double __a, __vector double __b, int __c)
8332   __constant_range(__c, 0, 3);
8333 
8334 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
8335   __builtin_s390_vsldb((__vector unsigned char)(X), \
8336                        (__vector unsigned char)(Y), (Z) * 4))
8337 
8338 /*-- vec_sldb ---------------------------------------------------------------*/
8339 
8340 #if __ARCH__ >= 13
8341 
8342 extern __ATTRS_o __vector signed char
8343 vec_sldb(__vector signed char __a, __vector signed char __b, int __c)
8344   __constant_range(__c, 0, 7);
8345 
8346 extern __ATTRS_o __vector unsigned char
8347 vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c)
8348   __constant_range(__c, 0, 7);
8349 
8350 extern __ATTRS_o __vector signed short
8351 vec_sldb(__vector signed short __a, __vector signed short __b, int __c)
8352   __constant_range(__c, 0, 7);
8353 
8354 extern __ATTRS_o __vector unsigned short
8355 vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c)
8356   __constant_range(__c, 0, 7);
8357 
8358 extern __ATTRS_o __vector signed int
8359 vec_sldb(__vector signed int __a, __vector signed int __b, int __c)
8360   __constant_range(__c, 0, 7);
8361 
8362 extern __ATTRS_o __vector unsigned int
8363 vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c)
8364   __constant_range(__c, 0, 7);
8365 
8366 extern __ATTRS_o __vector signed long long
8367 vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c)
8368   __constant_range(__c, 0, 7);
8369 
8370 extern __ATTRS_o __vector unsigned long long
8371 vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,
8372          int __c)
8373   __constant_range(__c, 0, 7);
8374 
8375 extern __ATTRS_o __vector signed __int128
8376 vec_sldb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8377   __constant_range(__c, 0, 7);
8378 
8379 extern __ATTRS_o __vector unsigned __int128
8380 vec_sldb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8381          int __c)
8382   __constant_range(__c, 0, 7);
8383 
8384 extern __ATTRS_o __vector float
8385 vec_sldb(__vector float __a, __vector float __b, int __c)
8386   __constant_range(__c, 0, 7);
8387 
8388 extern __ATTRS_o __vector double
8389 vec_sldb(__vector double __a, __vector double __b, int __c)
8390   __constant_range(__c, 0, 7);
8391 
8392 #define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
8393   __builtin_s390_vsld((__vector unsigned char)(X), \
8394                       (__vector unsigned char)(Y), (Z)))
8395 
8396 #endif
8397 
8398 /*-- vec_sral ---------------------------------------------------------------*/
8399 
8400 static inline __ATTRS_o_ai __vector signed char
8401 vec_sral(__vector signed char __a, __vector unsigned char __b) {
8402   return (__vector signed char)__builtin_s390_vsra(
8403     (__vector unsigned char)__a, __b);
8404 }
8405 
8406 // This prototype is deprecated.
8407 static inline __ATTRS_o_ai __vector signed char
8408 vec_sral(__vector signed char __a, __vector unsigned short __b) {
8409   return (__vector signed char)__builtin_s390_vsra(
8410     (__vector unsigned char)__a, (__vector unsigned char)__b);
8411 }
8412 
8413 // This prototype is deprecated.
8414 static inline __ATTRS_o_ai __vector signed char
8415 vec_sral(__vector signed char __a, __vector unsigned int __b) {
8416   return (__vector signed char)__builtin_s390_vsra(
8417     (__vector unsigned char)__a, (__vector unsigned char)__b);
8418 }
8419 
8420 // This prototype is deprecated.
8421 static inline __ATTRS_o_ai __vector __bool char
8422 vec_sral(__vector __bool char __a, __vector unsigned char __b) {
8423   return (__vector __bool char)__builtin_s390_vsra(
8424     (__vector unsigned char)__a, __b);
8425 }
8426 
8427 // This prototype is deprecated.
8428 static inline __ATTRS_o_ai __vector __bool char
8429 vec_sral(__vector __bool char __a, __vector unsigned short __b) {
8430   return (__vector __bool char)__builtin_s390_vsra(
8431     (__vector unsigned char)__a, (__vector unsigned char)__b);
8432 }
8433 
8434 // This prototype is deprecated.
8435 static inline __ATTRS_o_ai __vector __bool char
8436 vec_sral(__vector __bool char __a, __vector unsigned int __b) {
8437   return (__vector __bool char)__builtin_s390_vsra(
8438     (__vector unsigned char)__a, (__vector unsigned char)__b);
8439 }
8440 
8441 static inline __ATTRS_o_ai __vector unsigned char
8442 vec_sral(__vector unsigned char __a, __vector unsigned char __b) {
8443   return __builtin_s390_vsra(__a, __b);
8444 }
8445 
8446 // This prototype is deprecated.
8447 static inline __ATTRS_o_ai __vector unsigned char
8448 vec_sral(__vector unsigned char __a, __vector unsigned short __b) {
8449   return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
8450 }
8451 
8452 // This prototype is deprecated.
8453 static inline __ATTRS_o_ai __vector unsigned char
8454 vec_sral(__vector unsigned char __a, __vector unsigned int __b) {
8455   return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
8456 }
8457 
8458 static inline __ATTRS_o_ai __vector signed short
8459 vec_sral(__vector signed short __a, __vector unsigned char __b) {
8460   return (__vector signed short)__builtin_s390_vsra(
8461     (__vector unsigned char)__a, __b);
8462 }
8463 
8464 // This prototype is deprecated.
8465 static inline __ATTRS_o_ai __vector signed short
8466 vec_sral(__vector signed short __a, __vector unsigned short __b) {
8467   return (__vector signed short)__builtin_s390_vsra(
8468     (__vector unsigned char)__a, (__vector unsigned char)__b);
8469 }
8470 
8471 // This prototype is deprecated.
8472 static inline __ATTRS_o_ai __vector signed short
8473 vec_sral(__vector signed short __a, __vector unsigned int __b) {
8474   return (__vector signed short)__builtin_s390_vsra(
8475     (__vector unsigned char)__a, (__vector unsigned char)__b);
8476 }
8477 
8478 // This prototype is deprecated.
8479 static inline __ATTRS_o_ai __vector __bool short
8480 vec_sral(__vector __bool short __a, __vector unsigned char __b) {
8481   return (__vector __bool short)__builtin_s390_vsra(
8482     (__vector unsigned char)__a, __b);
8483 }
8484 
8485 // This prototype is deprecated.
8486 static inline __ATTRS_o_ai __vector __bool short
8487 vec_sral(__vector __bool short __a, __vector unsigned short __b) {
8488   return (__vector __bool short)__builtin_s390_vsra(
8489     (__vector unsigned char)__a, (__vector unsigned char)__b);
8490 }
8491 
8492 // This prototype is deprecated.
8493 static inline __ATTRS_o_ai __vector __bool short
8494 vec_sral(__vector __bool short __a, __vector unsigned int __b) {
8495   return (__vector __bool short)__builtin_s390_vsra(
8496     (__vector unsigned char)__a, (__vector unsigned char)__b);
8497 }
8498 
8499 static inline __ATTRS_o_ai __vector unsigned short
8500 vec_sral(__vector unsigned short __a, __vector unsigned char __b) {
8501   return (__vector unsigned short)__builtin_s390_vsra(
8502     (__vector unsigned char)__a, __b);
8503 }
8504 
8505 // This prototype is deprecated.
8506 static inline __ATTRS_o_ai __vector unsigned short
8507 vec_sral(__vector unsigned short __a, __vector unsigned short __b) {
8508   return (__vector unsigned short)__builtin_s390_vsra(
8509     (__vector unsigned char)__a, (__vector unsigned char)__b);
8510 }
8511 
8512 // This prototype is deprecated.
8513 static inline __ATTRS_o_ai __vector unsigned short
8514 vec_sral(__vector unsigned short __a, __vector unsigned int __b) {
8515   return (__vector unsigned short)__builtin_s390_vsra(
8516     (__vector unsigned char)__a, (__vector unsigned char)__b);
8517 }
8518 
8519 static inline __ATTRS_o_ai __vector signed int
8520 vec_sral(__vector signed int __a, __vector unsigned char __b) {
8521   return (__vector signed int)__builtin_s390_vsra(
8522     (__vector unsigned char)__a, __b);
8523 }
8524 
8525 // This prototype is deprecated.
8526 static inline __ATTRS_o_ai __vector signed int
8527 vec_sral(__vector signed int __a, __vector unsigned short __b) {
8528   return (__vector signed int)__builtin_s390_vsra(
8529     (__vector unsigned char)__a, (__vector unsigned char)__b);
8530 }
8531 
8532 // This prototype is deprecated.
8533 static inline __ATTRS_o_ai __vector signed int
8534 vec_sral(__vector signed int __a, __vector unsigned int __b) {
8535   return (__vector signed int)__builtin_s390_vsra(
8536     (__vector unsigned char)__a, (__vector unsigned char)__b);
8537 }
8538 
8539 // This prototype is deprecated.
8540 static inline __ATTRS_o_ai __vector __bool int
8541 vec_sral(__vector __bool int __a, __vector unsigned char __b) {
8542   return (__vector __bool int)__builtin_s390_vsra(
8543     (__vector unsigned char)__a, __b);
8544 }
8545 
8546 // This prototype is deprecated.
8547 static inline __ATTRS_o_ai __vector __bool int
8548 vec_sral(__vector __bool int __a, __vector unsigned short __b) {
8549   return (__vector __bool int)__builtin_s390_vsra(
8550     (__vector unsigned char)__a, (__vector unsigned char)__b);
8551 }
8552 
8553 // This prototype is deprecated.
8554 static inline __ATTRS_o_ai __vector __bool int
8555 vec_sral(__vector __bool int __a, __vector unsigned int __b) {
8556   return (__vector __bool int)__builtin_s390_vsra(
8557     (__vector unsigned char)__a, (__vector unsigned char)__b);
8558 }
8559 
8560 static inline __ATTRS_o_ai __vector unsigned int
8561 vec_sral(__vector unsigned int __a, __vector unsigned char __b) {
8562   return (__vector unsigned int)__builtin_s390_vsra(
8563     (__vector unsigned char)__a, __b);
8564 }
8565 
8566 // This prototype is deprecated.
8567 static inline __ATTRS_o_ai __vector unsigned int
8568 vec_sral(__vector unsigned int __a, __vector unsigned short __b) {
8569   return (__vector unsigned int)__builtin_s390_vsra(
8570     (__vector unsigned char)__a, (__vector unsigned char)__b);
8571 }
8572 
8573 // This prototype is deprecated.
8574 static inline __ATTRS_o_ai __vector unsigned int
8575 vec_sral(__vector unsigned int __a, __vector unsigned int __b) {
8576   return (__vector unsigned int)__builtin_s390_vsra(
8577     (__vector unsigned char)__a, (__vector unsigned char)__b);
8578 }
8579 
8580 static inline __ATTRS_o_ai __vector signed long long
8581 vec_sral(__vector signed long long __a, __vector unsigned char __b) {
8582   return (__vector signed long long)__builtin_s390_vsra(
8583     (__vector unsigned char)__a, __b);
8584 }
8585 
8586 // This prototype is deprecated.
8587 static inline __ATTRS_o_ai __vector signed long long
8588 vec_sral(__vector signed long long __a, __vector unsigned short __b) {
8589   return (__vector signed long long)__builtin_s390_vsra(
8590     (__vector unsigned char)__a, (__vector unsigned char)__b);
8591 }
8592 
8593 // This prototype is deprecated.
8594 static inline __ATTRS_o_ai __vector signed long long
8595 vec_sral(__vector signed long long __a, __vector unsigned int __b) {
8596   return (__vector signed long long)__builtin_s390_vsra(
8597     (__vector unsigned char)__a, (__vector unsigned char)__b);
8598 }
8599 
8600 // This prototype is deprecated.
8601 static inline __ATTRS_o_ai __vector __bool long long
8602 vec_sral(__vector __bool long long __a, __vector unsigned char __b) {
8603   return (__vector __bool long long)__builtin_s390_vsra(
8604     (__vector unsigned char)__a, __b);
8605 }
8606 
8607 // This prototype is deprecated.
8608 static inline __ATTRS_o_ai __vector __bool long long
8609 vec_sral(__vector __bool long long __a, __vector unsigned short __b) {
8610   return (__vector __bool long long)__builtin_s390_vsra(
8611     (__vector unsigned char)__a, (__vector unsigned char)__b);
8612 }
8613 
8614 // This prototype is deprecated.
8615 static inline __ATTRS_o_ai __vector __bool long long
8616 vec_sral(__vector __bool long long __a, __vector unsigned int __b) {
8617   return (__vector __bool long long)__builtin_s390_vsra(
8618     (__vector unsigned char)__a, (__vector unsigned char)__b);
8619 }
8620 
8621 static inline __ATTRS_o_ai __vector unsigned long long
8622 vec_sral(__vector unsigned long long __a, __vector unsigned char __b) {
8623   return (__vector unsigned long long)__builtin_s390_vsra(
8624     (__vector unsigned char)__a, __b);
8625 }
8626 
8627 // This prototype is deprecated.
8628 static inline __ATTRS_o_ai __vector unsigned long long
8629 vec_sral(__vector unsigned long long __a, __vector unsigned short __b) {
8630   return (__vector unsigned long long)__builtin_s390_vsra(
8631     (__vector unsigned char)__a, (__vector unsigned char)__b);
8632 }
8633 
8634 // This prototype is deprecated.
8635 static inline __ATTRS_o_ai __vector unsigned long long
8636 vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {
8637   return (__vector unsigned long long)__builtin_s390_vsra(
8638     (__vector unsigned char)__a, (__vector unsigned char)__b);
8639 }
8640 
8641 static inline __ATTRS_o_ai __vector signed __int128
8642 vec_sral(__vector signed __int128 __a, __vector unsigned char __b) {
8643   return (__vector signed __int128)__builtin_s390_vsra(
8644     (__vector unsigned char)__a, __b);
8645 }
8646 
8647 static inline __ATTRS_o_ai __vector unsigned __int128
8648 vec_sral(__vector unsigned __int128 __a, __vector unsigned char __b) {
8649   return (__vector unsigned __int128)__builtin_s390_vsra(
8650     (__vector unsigned char)__a, __b);
8651 }
8652 
8653 /*-- vec_srab ---------------------------------------------------------------*/
8654 
8655 // This prototype is deprecated.
8656 static inline __ATTRS_o_ai __vector signed char
8657 vec_srab(__vector signed char __a, __vector signed char __b) {
8658   return (__vector signed char)__builtin_s390_vsrab(
8659     (__vector unsigned char)__a, (__vector unsigned char)__b);
8660 }
8661 
8662 static inline __ATTRS_o_ai __vector signed char
8663 vec_srab(__vector signed char __a, __vector unsigned char __b) {
8664   return (__vector signed char)__builtin_s390_vsrab(
8665     (__vector unsigned char)__a, __b);
8666 }
8667 
8668 // This prototype is deprecated.
8669 static inline __ATTRS_o_ai __vector unsigned char
8670 vec_srab(__vector unsigned char __a, __vector signed char __b) {
8671   return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);
8672 }
8673 
8674 static inline __ATTRS_o_ai __vector unsigned char
8675 vec_srab(__vector unsigned char __a, __vector unsigned char __b) {
8676   return __builtin_s390_vsrab(__a, __b);
8677 }
8678 
8679 // This prototype is deprecated.
8680 static inline __ATTRS_o_ai __vector signed short
8681 vec_srab(__vector signed short __a, __vector signed short __b) {
8682   return (__vector signed short)__builtin_s390_vsrab(
8683     (__vector unsigned char)__a, (__vector unsigned char)__b);
8684 }
8685 
8686 // This prototype is deprecated.
8687 static inline __ATTRS_o_ai __vector signed short
8688 vec_srab(__vector signed short __a, __vector unsigned short __b) {
8689   return (__vector signed short)__builtin_s390_vsrab(
8690     (__vector unsigned char)__a, (__vector unsigned char)__b);
8691 }
8692 
8693 static inline __ATTRS_o_ai __vector signed short
8694 vec_srab(__vector signed short __a, __vector unsigned char __b) {
8695   return (__vector signed short)__builtin_s390_vsrab(
8696     (__vector unsigned char)__a, __b);
8697 }
8698 
8699 // This prototype is deprecated.
8700 static inline __ATTRS_o_ai __vector unsigned short
8701 vec_srab(__vector unsigned short __a, __vector signed short __b) {
8702   return (__vector unsigned short)__builtin_s390_vsrab(
8703     (__vector unsigned char)__a, (__vector unsigned char)__b);
8704 }
8705 
8706 // This prototype is deprecated.
8707 static inline __ATTRS_o_ai __vector unsigned short
8708 vec_srab(__vector unsigned short __a, __vector unsigned short __b) {
8709   return (__vector unsigned short)__builtin_s390_vsrab(
8710     (__vector unsigned char)__a, (__vector unsigned char)__b);
8711 }
8712 
8713 static inline __ATTRS_o_ai __vector unsigned short
8714 vec_srab(__vector unsigned short __a, __vector unsigned char __b) {
8715   return (__vector unsigned short)__builtin_s390_vsrab(
8716     (__vector unsigned char)__a, __b);
8717 }
8718 
8719 // This prototype is deprecated.
8720 static inline __ATTRS_o_ai __vector signed int
8721 vec_srab(__vector signed int __a, __vector signed int __b) {
8722   return (__vector signed int)__builtin_s390_vsrab(
8723     (__vector unsigned char)__a, (__vector unsigned char)__b);
8724 }
8725 
8726 // This prototype is deprecated.
8727 static inline __ATTRS_o_ai __vector signed int
8728 vec_srab(__vector signed int __a, __vector unsigned int __b) {
8729   return (__vector signed int)__builtin_s390_vsrab(
8730     (__vector unsigned char)__a, (__vector unsigned char)__b);
8731 }
8732 
8733 static inline __ATTRS_o_ai __vector signed int
8734 vec_srab(__vector signed int __a, __vector unsigned char __b) {
8735   return (__vector signed int)__builtin_s390_vsrab(
8736     (__vector unsigned char)__a, __b);
8737 }
8738 
8739 // This prototype is deprecated.
8740 static inline __ATTRS_o_ai __vector unsigned int
8741 vec_srab(__vector unsigned int __a, __vector signed int __b) {
8742   return (__vector unsigned int)__builtin_s390_vsrab(
8743     (__vector unsigned char)__a, (__vector unsigned char)__b);
8744 }
8745 
8746 // This prototype is deprecated.
8747 static inline __ATTRS_o_ai __vector unsigned int
8748 vec_srab(__vector unsigned int __a, __vector unsigned int __b) {
8749   return (__vector unsigned int)__builtin_s390_vsrab(
8750     (__vector unsigned char)__a, (__vector unsigned char)__b);
8751 }
8752 
8753 static inline __ATTRS_o_ai __vector unsigned int
8754 vec_srab(__vector unsigned int __a, __vector unsigned char __b) {
8755   return (__vector unsigned int)__builtin_s390_vsrab(
8756     (__vector unsigned char)__a, __b);
8757 }
8758 
8759 // This prototype is deprecated.
8760 static inline __ATTRS_o_ai __vector signed long long
8761 vec_srab(__vector signed long long __a, __vector signed long long __b) {
8762   return (__vector signed long long)__builtin_s390_vsrab(
8763     (__vector unsigned char)__a, (__vector unsigned char)__b);
8764 }
8765 
8766 // This prototype is deprecated.
8767 static inline __ATTRS_o_ai __vector signed long long
8768 vec_srab(__vector signed long long __a, __vector unsigned long long __b) {
8769   return (__vector signed long long)__builtin_s390_vsrab(
8770     (__vector unsigned char)__a, (__vector unsigned char)__b);
8771 }
8772 
8773 static inline __ATTRS_o_ai __vector signed long long
8774 vec_srab(__vector signed long long __a, __vector unsigned char __b) {
8775   return (__vector signed long long)__builtin_s390_vsrab(
8776     (__vector unsigned char)__a, __b);
8777 }
8778 
8779 // This prototype is deprecated.
8780 static inline __ATTRS_o_ai __vector unsigned long long
8781 vec_srab(__vector unsigned long long __a, __vector signed long long __b) {
8782   return (__vector unsigned long long)__builtin_s390_vsrab(
8783     (__vector unsigned char)__a, (__vector unsigned char)__b);
8784 }
8785 
8786 // This prototype is deprecated.
8787 static inline __ATTRS_o_ai __vector unsigned long long
8788 vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {
8789   return (__vector unsigned long long)__builtin_s390_vsrab(
8790     (__vector unsigned char)__a, (__vector unsigned char)__b);
8791 }
8792 
8793 static inline __ATTRS_o_ai __vector unsigned long long
8794 vec_srab(__vector unsigned long long __a, __vector unsigned char __b) {
8795   return (__vector unsigned long long)__builtin_s390_vsrab(
8796     (__vector unsigned char)__a, __b);
8797 }
8798 
8799 static inline __ATTRS_o_ai __vector signed __int128
8800 vec_srab(__vector signed __int128 __a, __vector unsigned char __b) {
8801   return (__vector signed __int128)__builtin_s390_vsrab(
8802     (__vector unsigned char)__a, __b);
8803 }
8804 
8805 static inline __ATTRS_o_ai __vector unsigned __int128
8806 vec_srab(__vector unsigned __int128 __a, __vector unsigned char __b) {
8807   return (__vector unsigned __int128)__builtin_s390_vsrab(
8808     (__vector unsigned char)__a, __b);
8809 }
8810 
8811 #if __ARCH__ >= 12
8812 // This prototype is deprecated.
8813 static inline __ATTRS_o_ai __vector float
8814 vec_srab(__vector float __a, __vector signed int __b) {
8815   return (__vector float)__builtin_s390_vsrab(
8816     (__vector unsigned char)__a, (__vector unsigned char)__b);
8817 }
8818 
8819 // This prototype is deprecated.
8820 static inline __ATTRS_o_ai __vector float
8821 vec_srab(__vector float __a, __vector unsigned int __b) {
8822   return (__vector float)__builtin_s390_vsrab(
8823     (__vector unsigned char)__a, (__vector unsigned char)__b);
8824 }
8825 
8826 static inline __ATTRS_o_ai __vector float
8827 vec_srab(__vector float __a, __vector unsigned char __b) {
8828   return (__vector float)__builtin_s390_vsrab(
8829     (__vector unsigned char)__a, __b);
8830 }
8831 #endif
8832 
8833 // This prototype is deprecated.
8834 static inline __ATTRS_o_ai __vector double
8835 vec_srab(__vector double __a, __vector signed long long __b) {
8836   return (__vector double)__builtin_s390_vsrab(
8837     (__vector unsigned char)__a, (__vector unsigned char)__b);
8838 }
8839 
8840 // This prototype is deprecated.
8841 static inline __ATTRS_o_ai __vector double
8842 vec_srab(__vector double __a, __vector unsigned long long __b) {
8843   return (__vector double)__builtin_s390_vsrab(
8844     (__vector unsigned char)__a, (__vector unsigned char)__b);
8845 }
8846 
8847 static inline __ATTRS_o_ai __vector double
8848 vec_srab(__vector double __a, __vector unsigned char __b) {
8849   return (__vector double)__builtin_s390_vsrab(
8850     (__vector unsigned char)__a, __b);
8851 }
8852 
8853 /*-- vec_srl ----------------------------------------------------------------*/
8854 
8855 static inline __ATTRS_o_ai __vector signed char
8856 vec_srl(__vector signed char __a, __vector unsigned char __b) {
8857   return (__vector signed char)__builtin_s390_vsrl(
8858     (__vector unsigned char)__a, __b);
8859 }
8860 
8861 // This prototype is deprecated.
8862 static inline __ATTRS_o_ai __vector signed char
8863 vec_srl(__vector signed char __a, __vector unsigned short __b) {
8864   return (__vector signed char)__builtin_s390_vsrl(
8865     (__vector unsigned char)__a, (__vector unsigned char)__b);
8866 }
8867 
8868 // This prototype is deprecated.
8869 static inline __ATTRS_o_ai __vector signed char
8870 vec_srl(__vector signed char __a, __vector unsigned int __b) {
8871   return (__vector signed char)__builtin_s390_vsrl(
8872     (__vector unsigned char)__a, (__vector unsigned char)__b);
8873 }
8874 
8875 // This prototype is deprecated.
8876 static inline __ATTRS_o_ai __vector __bool char
8877 vec_srl(__vector __bool char __a, __vector unsigned char __b) {
8878   return (__vector __bool char)__builtin_s390_vsrl(
8879     (__vector unsigned char)__a, __b);
8880 }
8881 
8882 // This prototype is deprecated.
8883 static inline __ATTRS_o_ai __vector __bool char
8884 vec_srl(__vector __bool char __a, __vector unsigned short __b) {
8885   return (__vector __bool char)__builtin_s390_vsrl(
8886     (__vector unsigned char)__a, (__vector unsigned char)__b);
8887 }
8888 
8889 // This prototype is deprecated.
8890 static inline __ATTRS_o_ai __vector __bool char
8891 vec_srl(__vector __bool char __a, __vector unsigned int __b) {
8892   return (__vector __bool char)__builtin_s390_vsrl(
8893     (__vector unsigned char)__a, (__vector unsigned char)__b);
8894 }
8895 
8896 static inline __ATTRS_o_ai __vector unsigned char
8897 vec_srl(__vector unsigned char __a, __vector unsigned char __b) {
8898   return __builtin_s390_vsrl(__a, __b);
8899 }
8900 
8901 // This prototype is deprecated.
8902 static inline __ATTRS_o_ai __vector unsigned char
8903 vec_srl(__vector unsigned char __a, __vector unsigned short __b) {
8904   return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
8905 }
8906 
8907 // This prototype is deprecated.
8908 static inline __ATTRS_o_ai __vector unsigned char
8909 vec_srl(__vector unsigned char __a, __vector unsigned int __b) {
8910   return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
8911 }
8912 
8913 static inline __ATTRS_o_ai __vector signed short
8914 vec_srl(__vector signed short __a, __vector unsigned char __b) {
8915   return (__vector signed short)__builtin_s390_vsrl(
8916     (__vector unsigned char)__a, __b);
8917 }
8918 
8919 // This prototype is deprecated.
8920 static inline __ATTRS_o_ai __vector signed short
8921 vec_srl(__vector signed short __a, __vector unsigned short __b) {
8922   return (__vector signed short)__builtin_s390_vsrl(
8923     (__vector unsigned char)__a, (__vector unsigned char)__b);
8924 }
8925 
8926 // This prototype is deprecated.
8927 static inline __ATTRS_o_ai __vector signed short
8928 vec_srl(__vector signed short __a, __vector unsigned int __b) {
8929   return (__vector signed short)__builtin_s390_vsrl(
8930     (__vector unsigned char)__a, (__vector unsigned char)__b);
8931 }
8932 
8933 // This prototype is deprecated.
8934 static inline __ATTRS_o_ai __vector __bool short
8935 vec_srl(__vector __bool short __a, __vector unsigned char __b) {
8936   return (__vector __bool short)__builtin_s390_vsrl(
8937     (__vector unsigned char)__a, __b);
8938 }
8939 
8940 // This prototype is deprecated.
8941 static inline __ATTRS_o_ai __vector __bool short
8942 vec_srl(__vector __bool short __a, __vector unsigned short __b) {
8943   return (__vector __bool short)__builtin_s390_vsrl(
8944     (__vector unsigned char)__a, (__vector unsigned char)__b);
8945 }
8946 
8947 // This prototype is deprecated.
8948 static inline __ATTRS_o_ai __vector __bool short
8949 vec_srl(__vector __bool short __a, __vector unsigned int __b) {
8950   return (__vector __bool short)__builtin_s390_vsrl(
8951     (__vector unsigned char)__a, (__vector unsigned char)__b);
8952 }
8953 
8954 static inline __ATTRS_o_ai __vector unsigned short
8955 vec_srl(__vector unsigned short __a, __vector unsigned char __b) {
8956   return (__vector unsigned short)__builtin_s390_vsrl(
8957     (__vector unsigned char)__a, __b);
8958 }
8959 
8960 // This prototype is deprecated.
8961 static inline __ATTRS_o_ai __vector unsigned short
8962 vec_srl(__vector unsigned short __a, __vector unsigned short __b) {
8963   return (__vector unsigned short)__builtin_s390_vsrl(
8964     (__vector unsigned char)__a, (__vector unsigned char)__b);
8965 }
8966 
8967 // This prototype is deprecated.
8968 static inline __ATTRS_o_ai __vector unsigned short
8969 vec_srl(__vector unsigned short __a, __vector unsigned int __b) {
8970   return (__vector unsigned short)__builtin_s390_vsrl(
8971     (__vector unsigned char)__a, (__vector unsigned char)__b);
8972 }
8973 
8974 static inline __ATTRS_o_ai __vector signed int
8975 vec_srl(__vector signed int __a, __vector unsigned char __b) {
8976   return (__vector signed int)__builtin_s390_vsrl(
8977     (__vector unsigned char)__a, __b);
8978 }
8979 
8980 // This prototype is deprecated.
8981 static inline __ATTRS_o_ai __vector signed int
8982 vec_srl(__vector signed int __a, __vector unsigned short __b) {
8983   return (__vector signed int)__builtin_s390_vsrl(
8984     (__vector unsigned char)__a, (__vector unsigned char)__b);
8985 }
8986 
8987 // This prototype is deprecated.
8988 static inline __ATTRS_o_ai __vector signed int
8989 vec_srl(__vector signed int __a, __vector unsigned int __b) {
8990   return (__vector signed int)__builtin_s390_vsrl(
8991     (__vector unsigned char)__a, (__vector unsigned char)__b);
8992 }
8993 
8994 // This prototype is deprecated.
8995 static inline __ATTRS_o_ai __vector __bool int
8996 vec_srl(__vector __bool int __a, __vector unsigned char __b) {
8997   return (__vector __bool int)__builtin_s390_vsrl(
8998     (__vector unsigned char)__a, __b);
8999 }
9000 
9001 // This prototype is deprecated.
9002 static inline __ATTRS_o_ai __vector __bool int
9003 vec_srl(__vector __bool int __a, __vector unsigned short __b) {
9004   return (__vector __bool int)__builtin_s390_vsrl(
9005     (__vector unsigned char)__a, (__vector unsigned char)__b);
9006 }
9007 
9008 // This prototype is deprecated.
9009 static inline __ATTRS_o_ai __vector __bool int
9010 vec_srl(__vector __bool int __a, __vector unsigned int __b) {
9011   return (__vector __bool int)__builtin_s390_vsrl(
9012     (__vector unsigned char)__a, (__vector unsigned char)__b);
9013 }
9014 
9015 static inline __ATTRS_o_ai __vector unsigned int
9016 vec_srl(__vector unsigned int __a, __vector unsigned char __b) {
9017   return (__vector unsigned int)__builtin_s390_vsrl(
9018     (__vector unsigned char)__a, __b);
9019 }
9020 
9021 // This prototype is deprecated.
9022 static inline __ATTRS_o_ai __vector unsigned int
9023 vec_srl(__vector unsigned int __a, __vector unsigned short __b) {
9024   return (__vector unsigned int)__builtin_s390_vsrl(
9025     (__vector unsigned char)__a, (__vector unsigned char)__b);
9026 }
9027 
9028 // This prototype is deprecated.
9029 static inline __ATTRS_o_ai __vector unsigned int
9030 vec_srl(__vector unsigned int __a, __vector unsigned int __b) {
9031   return (__vector unsigned int)__builtin_s390_vsrl(
9032     (__vector unsigned char)__a, (__vector unsigned char)__b);
9033 }
9034 
9035 static inline __ATTRS_o_ai __vector signed long long
9036 vec_srl(__vector signed long long __a, __vector unsigned char __b) {
9037   return (__vector signed long long)__builtin_s390_vsrl(
9038     (__vector unsigned char)__a, __b);
9039 }
9040 
9041 // This prototype is deprecated.
9042 static inline __ATTRS_o_ai __vector signed long long
9043 vec_srl(__vector signed long long __a, __vector unsigned short __b) {
9044   return (__vector signed long long)__builtin_s390_vsrl(
9045     (__vector unsigned char)__a, (__vector unsigned char)__b);
9046 }
9047 
9048 // This prototype is deprecated.
9049 static inline __ATTRS_o_ai __vector signed long long
9050 vec_srl(__vector signed long long __a, __vector unsigned int __b) {
9051   return (__vector signed long long)__builtin_s390_vsrl(
9052     (__vector unsigned char)__a, (__vector unsigned char)__b);
9053 }
9054 
9055 // This prototype is deprecated.
9056 static inline __ATTRS_o_ai __vector __bool long long
9057 vec_srl(__vector __bool long long __a, __vector unsigned char __b) {
9058   return (__vector __bool long long)__builtin_s390_vsrl(
9059     (__vector unsigned char)__a, __b);
9060 }
9061 
9062 // This prototype is deprecated.
9063 static inline __ATTRS_o_ai __vector __bool long long
9064 vec_srl(__vector __bool long long __a, __vector unsigned short __b) {
9065   return (__vector __bool long long)__builtin_s390_vsrl(
9066     (__vector unsigned char)__a, (__vector unsigned char)__b);
9067 }
9068 
9069 // This prototype is deprecated.
9070 static inline __ATTRS_o_ai __vector __bool long long
9071 vec_srl(__vector __bool long long __a, __vector unsigned int __b) {
9072   return (__vector __bool long long)__builtin_s390_vsrl(
9073     (__vector unsigned char)__a, (__vector unsigned char)__b);
9074 }
9075 
9076 static inline __ATTRS_o_ai __vector unsigned long long
9077 vec_srl(__vector unsigned long long __a, __vector unsigned char __b) {
9078   return (__vector unsigned long long)__builtin_s390_vsrl(
9079     (__vector unsigned char)__a, __b);
9080 }
9081 
9082 // This prototype is deprecated.
9083 static inline __ATTRS_o_ai __vector unsigned long long
9084 vec_srl(__vector unsigned long long __a, __vector unsigned short __b) {
9085   return (__vector unsigned long long)__builtin_s390_vsrl(
9086     (__vector unsigned char)__a, (__vector unsigned char)__b);
9087 }
9088 
9089 // This prototype is deprecated.
9090 static inline __ATTRS_o_ai __vector unsigned long long
9091 vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {
9092   return (__vector unsigned long long)__builtin_s390_vsrl(
9093     (__vector unsigned char)__a, (__vector unsigned char)__b);
9094 }
9095 
9096 static inline __ATTRS_o_ai __vector signed __int128
9097 vec_srl(__vector signed __int128 __a, __vector unsigned char __b) {
9098   return (__vector signed __int128)__builtin_s390_vsrl(
9099     (__vector unsigned char)__a, __b);
9100 }
9101 
9102 static inline __ATTRS_o_ai __vector unsigned __int128
9103 vec_srl(__vector unsigned __int128 __a, __vector unsigned char __b) {
9104   return (__vector unsigned __int128)__builtin_s390_vsrl(
9105     (__vector unsigned char)__a, __b);
9106 }
9107 
9108 /*-- vec_srb ----------------------------------------------------------------*/
9109 
9110 // This prototype is deprecated.
9111 static inline __ATTRS_o_ai __vector signed char
9112 vec_srb(__vector signed char __a, __vector signed char __b) {
9113   return (__vector signed char)__builtin_s390_vsrlb(
9114     (__vector unsigned char)__a, (__vector unsigned char)__b);
9115 }
9116 
9117 static inline __ATTRS_o_ai __vector signed char
9118 vec_srb(__vector signed char __a, __vector unsigned char __b) {
9119   return (__vector signed char)__builtin_s390_vsrlb(
9120     (__vector unsigned char)__a, __b);
9121 }
9122 
9123 // This prototype is deprecated.
9124 static inline __ATTRS_o_ai __vector unsigned char
9125 vec_srb(__vector unsigned char __a, __vector signed char __b) {
9126   return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);
9127 }
9128 
9129 static inline __ATTRS_o_ai __vector unsigned char
9130 vec_srb(__vector unsigned char __a, __vector unsigned char __b) {
9131   return __builtin_s390_vsrlb(__a, __b);
9132 }
9133 
9134 // This prototype is deprecated.
9135 static inline __ATTRS_o_ai __vector signed short
9136 vec_srb(__vector signed short __a, __vector signed short __b) {
9137   return (__vector signed short)__builtin_s390_vsrlb(
9138     (__vector unsigned char)__a, (__vector unsigned char)__b);
9139 }
9140 
9141 // This prototype is deprecated.
9142 static inline __ATTRS_o_ai __vector signed short
9143 vec_srb(__vector signed short __a, __vector unsigned short __b) {
9144   return (__vector signed short)__builtin_s390_vsrlb(
9145     (__vector unsigned char)__a, (__vector unsigned char)__b);
9146 }
9147 
9148 static inline __ATTRS_o_ai __vector signed short
9149 vec_srb(__vector signed short __a, __vector unsigned char __b) {
9150   return (__vector signed short)__builtin_s390_vsrlb(
9151     (__vector unsigned char)__a, __b);
9152 }
9153 
9154 // This prototype is deprecated.
9155 static inline __ATTRS_o_ai __vector unsigned short
9156 vec_srb(__vector unsigned short __a, __vector signed short __b) {
9157   return (__vector unsigned short)__builtin_s390_vsrlb(
9158     (__vector unsigned char)__a, (__vector unsigned char)__b);
9159 }
9160 
9161 // This prototype is deprecated.
9162 static inline __ATTRS_o_ai __vector unsigned short
9163 vec_srb(__vector unsigned short __a, __vector unsigned short __b) {
9164   return (__vector unsigned short)__builtin_s390_vsrlb(
9165     (__vector unsigned char)__a, (__vector unsigned char)__b);
9166 }
9167 
9168 static inline __ATTRS_o_ai __vector unsigned short
9169 vec_srb(__vector unsigned short __a, __vector unsigned char __b) {
9170   return (__vector unsigned short)__builtin_s390_vsrlb(
9171     (__vector unsigned char)__a, __b);
9172 }
9173 
9174 // This prototype is deprecated.
9175 static inline __ATTRS_o_ai __vector signed int
9176 vec_srb(__vector signed int __a, __vector signed int __b) {
9177   return (__vector signed int)__builtin_s390_vsrlb(
9178     (__vector unsigned char)__a, (__vector unsigned char)__b);
9179 }
9180 
9181 // This prototype is deprecated.
9182 static inline __ATTRS_o_ai __vector signed int
9183 vec_srb(__vector signed int __a, __vector unsigned int __b) {
9184   return (__vector signed int)__builtin_s390_vsrlb(
9185     (__vector unsigned char)__a, (__vector unsigned char)__b);
9186 }
9187 
9188 static inline __ATTRS_o_ai __vector signed int
9189 vec_srb(__vector signed int __a, __vector unsigned char __b) {
9190   return (__vector signed int)__builtin_s390_vsrlb(
9191     (__vector unsigned char)__a, __b);
9192 }
9193 
9194 // This prototype is deprecated.
9195 static inline __ATTRS_o_ai __vector unsigned int
9196 vec_srb(__vector unsigned int __a, __vector signed int __b) {
9197   return (__vector unsigned int)__builtin_s390_vsrlb(
9198     (__vector unsigned char)__a, (__vector unsigned char)__b);
9199 }
9200 
9201 // This prototype is deprecated.
9202 static inline __ATTRS_o_ai __vector unsigned int
9203 vec_srb(__vector unsigned int __a, __vector unsigned int __b) {
9204   return (__vector unsigned int)__builtin_s390_vsrlb(
9205     (__vector unsigned char)__a, (__vector unsigned char)__b);
9206 }
9207 
9208 static inline __ATTRS_o_ai __vector unsigned int
9209 vec_srb(__vector unsigned int __a, __vector unsigned char __b) {
9210   return (__vector unsigned int)__builtin_s390_vsrlb(
9211     (__vector unsigned char)__a, __b);
9212 }
9213 
9214 // This prototype is deprecated.
9215 static inline __ATTRS_o_ai __vector signed long long
9216 vec_srb(__vector signed long long __a, __vector signed long long __b) {
9217   return (__vector signed long long)__builtin_s390_vsrlb(
9218     (__vector unsigned char)__a, (__vector unsigned char)__b);
9219 }
9220 
9221 // This prototype is deprecated.
9222 static inline __ATTRS_o_ai __vector signed long long
9223 vec_srb(__vector signed long long __a, __vector unsigned long long __b) {
9224   return (__vector signed long long)__builtin_s390_vsrlb(
9225     (__vector unsigned char)__a, (__vector unsigned char)__b);
9226 }
9227 
9228 static inline __ATTRS_o_ai __vector signed long long
9229 vec_srb(__vector signed long long __a, __vector unsigned char __b) {
9230   return (__vector signed long long)__builtin_s390_vsrlb(
9231     (__vector unsigned char)__a, __b);
9232 }
9233 
9234 // This prototype is deprecated.
9235 static inline __ATTRS_o_ai __vector unsigned long long
9236 vec_srb(__vector unsigned long long __a, __vector signed long long __b) {
9237   return (__vector unsigned long long)__builtin_s390_vsrlb(
9238     (__vector unsigned char)__a, (__vector unsigned char)__b);
9239 }
9240 
9241 // This prototype is deprecated.
9242 static inline __ATTRS_o_ai __vector unsigned long long
9243 vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {
9244   return (__vector unsigned long long)__builtin_s390_vsrlb(
9245     (__vector unsigned char)__a, (__vector unsigned char)__b);
9246 }
9247 
9248 static inline __ATTRS_o_ai __vector unsigned long long
9249 vec_srb(__vector unsigned long long __a, __vector unsigned char __b) {
9250   return (__vector unsigned long long)__builtin_s390_vsrlb(
9251     (__vector unsigned char)__a, __b);
9252 }
9253 
9254 static inline __ATTRS_o_ai __vector signed __int128
9255 vec_srb(__vector signed __int128 __a, __vector unsigned char __b) {
9256   return (__vector signed __int128)__builtin_s390_vsrlb(
9257     (__vector unsigned char)__a, __b);
9258 }
9259 
9260 static inline __ATTRS_o_ai __vector unsigned __int128
9261 vec_srb(__vector unsigned __int128 __a, __vector unsigned char __b) {
9262   return (__vector unsigned __int128)__builtin_s390_vsrlb(
9263     (__vector unsigned char)__a, __b);
9264 }
9265 
9266 #if __ARCH__ >= 12
9267 // This prototype is deprecated.
9268 static inline __ATTRS_o_ai __vector float
9269 vec_srb(__vector float __a, __vector signed int __b) {
9270   return (__vector float)__builtin_s390_vsrlb(
9271     (__vector unsigned char)__a, (__vector unsigned char)__b);
9272 }
9273 
9274 // This prototype is deprecated.
9275 static inline __ATTRS_o_ai __vector float
9276 vec_srb(__vector float __a, __vector unsigned int __b) {
9277   return (__vector float)__builtin_s390_vsrlb(
9278     (__vector unsigned char)__a, (__vector unsigned char)__b);
9279 }
9280 
9281 static inline __ATTRS_o_ai __vector float
9282 vec_srb(__vector float __a, __vector unsigned char __b) {
9283   return (__vector float)__builtin_s390_vsrlb(
9284     (__vector unsigned char)__a, __b);
9285 }
9286 #endif
9287 
9288 // This prototype is deprecated.
9289 static inline __ATTRS_o_ai __vector double
9290 vec_srb(__vector double __a, __vector signed long long __b) {
9291   return (__vector double)__builtin_s390_vsrlb(
9292     (__vector unsigned char)__a, (__vector unsigned char)__b);
9293 }
9294 
9295 // This prototype is deprecated.
9296 static inline __ATTRS_o_ai __vector double
9297 vec_srb(__vector double __a, __vector unsigned long long __b) {
9298   return (__vector double)__builtin_s390_vsrlb(
9299     (__vector unsigned char)__a, (__vector unsigned char)__b);
9300 }
9301 
9302 static inline __ATTRS_o_ai __vector double
9303 vec_srb(__vector double __a, __vector unsigned char __b) {
9304   return (__vector double)__builtin_s390_vsrlb(
9305     (__vector unsigned char)__a, __b);
9306 }
9307 
9308 /*-- vec_srdb ---------------------------------------------------------------*/
9309 
9310 #if __ARCH__ >= 13
9311 
9312 extern __ATTRS_o __vector signed char
9313 vec_srdb(__vector signed char __a, __vector signed char __b, int __c)
9314   __constant_range(__c, 0, 7);
9315 
9316 extern __ATTRS_o __vector unsigned char
9317 vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c)
9318   __constant_range(__c, 0, 7);
9319 
9320 extern __ATTRS_o __vector signed short
9321 vec_srdb(__vector signed short __a, __vector signed short __b, int __c)
9322   __constant_range(__c, 0, 7);
9323 
9324 extern __ATTRS_o __vector unsigned short
9325 vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c)
9326   __constant_range(__c, 0, 7);
9327 
9328 extern __ATTRS_o __vector signed int
9329 vec_srdb(__vector signed int __a, __vector signed int __b, int __c)
9330   __constant_range(__c, 0, 7);
9331 
9332 extern __ATTRS_o __vector unsigned int
9333 vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c)
9334   __constant_range(__c, 0, 7);
9335 
9336 extern __ATTRS_o __vector signed long long
9337 vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c)
9338   __constant_range(__c, 0, 7);
9339 
9340 extern __ATTRS_o __vector unsigned long long
9341 vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,
9342          int __c)
9343   __constant_range(__c, 0, 7);
9344 
9345 extern __ATTRS_o __vector signed __int128
9346 vec_srdb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
9347   __constant_range(__c, 0, 7);
9348 
9349 extern __ATTRS_o __vector unsigned __int128
9350 vec_srdb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9351          int __c)
9352   __constant_range(__c, 0, 7);
9353 
9354 extern __ATTRS_o __vector float
9355 vec_srdb(__vector float __a, __vector float __b, int __c)
9356   __constant_range(__c, 0, 7);
9357 
9358 extern __ATTRS_o __vector double
9359 vec_srdb(__vector double __a, __vector double __b, int __c)
9360   __constant_range(__c, 0, 7);
9361 
9362 #define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
9363   __builtin_s390_vsrd((__vector unsigned char)(X), \
9364                       (__vector unsigned char)(Y), (Z)))
9365 
9366 #endif
9367 
9368 /*-- vec_abs ----------------------------------------------------------------*/
9369 
9370 static inline __ATTRS_o_ai __vector signed char
9371 vec_abs(__vector signed char __a) {
9372   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0));
9373 }
9374 
9375 static inline __ATTRS_o_ai __vector signed short
9376 vec_abs(__vector signed short __a) {
9377   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0));
9378 }
9379 
9380 static inline __ATTRS_o_ai __vector signed int
9381 vec_abs(__vector signed int __a) {
9382   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0));
9383 }
9384 
9385 static inline __ATTRS_o_ai __vector signed long long
9386 vec_abs(__vector signed long long __a) {
9387   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));
9388 }
9389 
9390 static inline __ATTRS_o_ai __vector signed __int128
9391 vec_abs(__vector signed __int128 __a) {
9392   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed __int128)0));
9393 }
9394 
9395 #if __ARCH__ >= 12
9396 static inline __ATTRS_o_ai __vector float
9397 vec_abs(__vector float __a) {
9398   return __builtin_s390_vflpsb(__a);
9399 }
9400 #endif
9401 
9402 static inline __ATTRS_o_ai __vector double
9403 vec_abs(__vector double __a) {
9404   return __builtin_s390_vflpdb(__a);
9405 }
9406 
9407 /*-- vec_nabs ---------------------------------------------------------------*/
9408 
9409 #if __ARCH__ >= 12
9410 static inline __ATTRS_o_ai __vector float
9411 vec_nabs(__vector float __a) {
9412   return __builtin_s390_vflnsb(__a);
9413 }
9414 #endif
9415 
9416 static inline __ATTRS_o_ai __vector double
9417 vec_nabs(__vector double __a) {
9418   return __builtin_s390_vflndb(__a);
9419 }
9420 
9421 /*-- vec_max ----------------------------------------------------------------*/
9422 
9423 static inline __ATTRS_o_ai __vector signed char
9424 vec_max(__vector signed char __a, __vector signed char __b) {
9425   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9426 }
9427 
9428 // This prototype is deprecated.
9429 static inline __ATTRS_o_ai __vector signed char
9430 vec_max(__vector signed char __a, __vector __bool char __b) {
9431   __vector signed char __bc = (__vector signed char)__b;
9432   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9433 }
9434 
9435 // This prototype is deprecated.
9436 static inline __ATTRS_o_ai __vector signed char
9437 vec_max(__vector __bool char __a, __vector signed char __b) {
9438   __vector signed char __ac = (__vector signed char)__a;
9439   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9440 }
9441 
9442 static inline __ATTRS_o_ai __vector unsigned char
9443 vec_max(__vector unsigned char __a, __vector unsigned char __b) {
9444   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9445 }
9446 
9447 // This prototype is deprecated.
9448 static inline __ATTRS_o_ai __vector unsigned char
9449 vec_max(__vector unsigned char __a, __vector __bool char __b) {
9450   __vector unsigned char __bc = (__vector unsigned char)__b;
9451   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9452 }
9453 
9454 // This prototype is deprecated.
9455 static inline __ATTRS_o_ai __vector unsigned char
9456 vec_max(__vector __bool char __a, __vector unsigned char __b) {
9457   __vector unsigned char __ac = (__vector unsigned char)__a;
9458   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9459 }
9460 
9461 static inline __ATTRS_o_ai __vector signed short
9462 vec_max(__vector signed short __a, __vector signed short __b) {
9463   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9464 }
9465 
9466 // This prototype is deprecated.
9467 static inline __ATTRS_o_ai __vector signed short
9468 vec_max(__vector signed short __a, __vector __bool short __b) {
9469   __vector signed short __bc = (__vector signed short)__b;
9470   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9471 }
9472 
9473 // This prototype is deprecated.
9474 static inline __ATTRS_o_ai __vector signed short
9475 vec_max(__vector __bool short __a, __vector signed short __b) {
9476   __vector signed short __ac = (__vector signed short)__a;
9477   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9478 }
9479 
9480 static inline __ATTRS_o_ai __vector unsigned short
9481 vec_max(__vector unsigned short __a, __vector unsigned short __b) {
9482   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9483 }
9484 
9485 // This prototype is deprecated.
9486 static inline __ATTRS_o_ai __vector unsigned short
9487 vec_max(__vector unsigned short __a, __vector __bool short __b) {
9488   __vector unsigned short __bc = (__vector unsigned short)__b;
9489   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9490 }
9491 
9492 // This prototype is deprecated.
9493 static inline __ATTRS_o_ai __vector unsigned short
9494 vec_max(__vector __bool short __a, __vector unsigned short __b) {
9495   __vector unsigned short __ac = (__vector unsigned short)__a;
9496   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9497 }
9498 
9499 static inline __ATTRS_o_ai __vector signed int
9500 vec_max(__vector signed int __a, __vector signed int __b) {
9501   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9502 }
9503 
9504 // This prototype is deprecated.
9505 static inline __ATTRS_o_ai __vector signed int
9506 vec_max(__vector signed int __a, __vector __bool int __b) {
9507   __vector signed int __bc = (__vector signed int)__b;
9508   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9509 }
9510 
9511 // This prototype is deprecated.
9512 static inline __ATTRS_o_ai __vector signed int
9513 vec_max(__vector __bool int __a, __vector signed int __b) {
9514   __vector signed int __ac = (__vector signed int)__a;
9515   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9516 }
9517 
9518 static inline __ATTRS_o_ai __vector unsigned int
9519 vec_max(__vector unsigned int __a, __vector unsigned int __b) {
9520   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9521 }
9522 
9523 // This prototype is deprecated.
9524 static inline __ATTRS_o_ai __vector unsigned int
9525 vec_max(__vector unsigned int __a, __vector __bool int __b) {
9526   __vector unsigned int __bc = (__vector unsigned int)__b;
9527   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9528 }
9529 
9530 // This prototype is deprecated.
9531 static inline __ATTRS_o_ai __vector unsigned int
9532 vec_max(__vector __bool int __a, __vector unsigned int __b) {
9533   __vector unsigned int __ac = (__vector unsigned int)__a;
9534   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9535 }
9536 
9537 static inline __ATTRS_o_ai __vector signed long long
9538 vec_max(__vector signed long long __a, __vector signed long long __b) {
9539   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9540 }
9541 
9542 // This prototype is deprecated.
9543 static inline __ATTRS_o_ai __vector signed long long
9544 vec_max(__vector signed long long __a, __vector __bool long long __b) {
9545   __vector signed long long __bc = (__vector signed long long)__b;
9546   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9547 }
9548 
9549 // This prototype is deprecated.
9550 static inline __ATTRS_o_ai __vector signed long long
9551 vec_max(__vector __bool long long __a, __vector signed long long __b) {
9552   __vector signed long long __ac = (__vector signed long long)__a;
9553   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9554 }
9555 
9556 static inline __ATTRS_o_ai __vector unsigned long long
9557 vec_max(__vector unsigned long long __a, __vector unsigned long long __b) {
9558   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9559 }
9560 
9561 // This prototype is deprecated.
9562 static inline __ATTRS_o_ai __vector unsigned long long
9563 vec_max(__vector unsigned long long __a, __vector __bool long long __b) {
9564   __vector unsigned long long __bc = (__vector unsigned long long)__b;
9565   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9566 }
9567 
9568 // This prototype is deprecated.
9569 static inline __ATTRS_o_ai __vector unsigned long long
9570 vec_max(__vector __bool long long __a, __vector unsigned long long __b) {
9571   __vector unsigned long long __ac = (__vector unsigned long long)__a;
9572   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9573 }
9574 
9575 static inline __ATTRS_o_ai __vector signed __int128
9576 vec_max(__vector signed __int128 __a, __vector signed __int128 __b) {
9577   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9578 }
9579 
9580 static inline __ATTRS_o_ai __vector unsigned __int128
9581 vec_max(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9582   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9583 }
9584 
9585 #if __ARCH__ >= 12
9586 static inline __ATTRS_o_ai __vector float
9587 vec_max(__vector float __a, __vector float __b) {
9588   return __builtin_s390_vfmaxsb(__a, __b, 0);
9589 }
9590 #endif
9591 
9592 static inline __ATTRS_o_ai __vector double
9593 vec_max(__vector double __a, __vector double __b) {
9594 #if __ARCH__ >= 12
9595   return __builtin_s390_vfmaxdb(__a, __b, 0);
9596 #else
9597   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9598 #endif
9599 }
9600 
9601 /*-- vec_min ----------------------------------------------------------------*/
9602 
9603 static inline __ATTRS_o_ai __vector signed char
9604 vec_min(__vector signed char __a, __vector signed char __b) {
9605   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9606 }
9607 
9608 // This prototype is deprecated.
9609 static inline __ATTRS_o_ai __vector signed char
9610 vec_min(__vector signed char __a, __vector __bool char __b) {
9611   __vector signed char __bc = (__vector signed char)__b;
9612   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9613 }
9614 
9615 // This prototype is deprecated.
9616 static inline __ATTRS_o_ai __vector signed char
9617 vec_min(__vector __bool char __a, __vector signed char __b) {
9618   __vector signed char __ac = (__vector signed char)__a;
9619   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9620 }
9621 
9622 static inline __ATTRS_o_ai __vector unsigned char
9623 vec_min(__vector unsigned char __a, __vector unsigned char __b) {
9624   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9625 }
9626 
9627 // This prototype is deprecated.
9628 static inline __ATTRS_o_ai __vector unsigned char
9629 vec_min(__vector unsigned char __a, __vector __bool char __b) {
9630   __vector unsigned char __bc = (__vector unsigned char)__b;
9631   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9632 }
9633 
9634 // This prototype is deprecated.
9635 static inline __ATTRS_o_ai __vector unsigned char
9636 vec_min(__vector __bool char __a, __vector unsigned char __b) {
9637   __vector unsigned char __ac = (__vector unsigned char)__a;
9638   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9639 }
9640 
9641 static inline __ATTRS_o_ai __vector signed short
9642 vec_min(__vector signed short __a, __vector signed short __b) {
9643   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9644 }
9645 
9646 // This prototype is deprecated.
9647 static inline __ATTRS_o_ai __vector signed short
9648 vec_min(__vector signed short __a, __vector __bool short __b) {
9649   __vector signed short __bc = (__vector signed short)__b;
9650   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9651 }
9652 
9653 // This prototype is deprecated.
9654 static inline __ATTRS_o_ai __vector signed short
9655 vec_min(__vector __bool short __a, __vector signed short __b) {
9656   __vector signed short __ac = (__vector signed short)__a;
9657   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9658 }
9659 
9660 static inline __ATTRS_o_ai __vector unsigned short
9661 vec_min(__vector unsigned short __a, __vector unsigned short __b) {
9662   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9663 }
9664 
9665 // This prototype is deprecated.
9666 static inline __ATTRS_o_ai __vector unsigned short
9667 vec_min(__vector unsigned short __a, __vector __bool short __b) {
9668   __vector unsigned short __bc = (__vector unsigned short)__b;
9669   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9670 }
9671 
9672 // This prototype is deprecated.
9673 static inline __ATTRS_o_ai __vector unsigned short
9674 vec_min(__vector __bool short __a, __vector unsigned short __b) {
9675   __vector unsigned short __ac = (__vector unsigned short)__a;
9676   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9677 }
9678 
9679 static inline __ATTRS_o_ai __vector signed int
9680 vec_min(__vector signed int __a, __vector signed int __b) {
9681   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9682 }
9683 
9684 // This prototype is deprecated.
9685 static inline __ATTRS_o_ai __vector signed int
9686 vec_min(__vector signed int __a, __vector __bool int __b) {
9687   __vector signed int __bc = (__vector signed int)__b;
9688   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9689 }
9690 
9691 // This prototype is deprecated.
9692 static inline __ATTRS_o_ai __vector signed int
9693 vec_min(__vector __bool int __a, __vector signed int __b) {
9694   __vector signed int __ac = (__vector signed int)__a;
9695   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9696 }
9697 
9698 static inline __ATTRS_o_ai __vector unsigned int
9699 vec_min(__vector unsigned int __a, __vector unsigned int __b) {
9700   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9701 }
9702 
9703 // This prototype is deprecated.
9704 static inline __ATTRS_o_ai __vector unsigned int
9705 vec_min(__vector unsigned int __a, __vector __bool int __b) {
9706   __vector unsigned int __bc = (__vector unsigned int)__b;
9707   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9708 }
9709 
9710 // This prototype is deprecated.
9711 static inline __ATTRS_o_ai __vector unsigned int
9712 vec_min(__vector __bool int __a, __vector unsigned int __b) {
9713   __vector unsigned int __ac = (__vector unsigned int)__a;
9714   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9715 }
9716 
9717 static inline __ATTRS_o_ai __vector signed long long
9718 vec_min(__vector signed long long __a, __vector signed long long __b) {
9719   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9720 }
9721 
9722 // This prototype is deprecated.
9723 static inline __ATTRS_o_ai __vector signed long long
9724 vec_min(__vector signed long long __a, __vector __bool long long __b) {
9725   __vector signed long long __bc = (__vector signed long long)__b;
9726   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9727 }
9728 
9729 // This prototype is deprecated.
9730 static inline __ATTRS_o_ai __vector signed long long
9731 vec_min(__vector __bool long long __a, __vector signed long long __b) {
9732   __vector signed long long __ac = (__vector signed long long)__a;
9733   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9734 }
9735 
9736 static inline __ATTRS_o_ai __vector unsigned long long
9737 vec_min(__vector unsigned long long __a, __vector unsigned long long __b) {
9738   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9739 }
9740 
9741 // This prototype is deprecated.
9742 static inline __ATTRS_o_ai __vector unsigned long long
9743 vec_min(__vector unsigned long long __a, __vector __bool long long __b) {
9744   __vector unsigned long long __bc = (__vector unsigned long long)__b;
9745   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9746 }
9747 
9748 // This prototype is deprecated.
9749 static inline __ATTRS_o_ai __vector unsigned long long
9750 vec_min(__vector __bool long long __a, __vector unsigned long long __b) {
9751   __vector unsigned long long __ac = (__vector unsigned long long)__a;
9752   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9753 }
9754 
9755 static inline __ATTRS_o_ai __vector signed __int128
9756 vec_min(__vector signed __int128 __a, __vector signed __int128 __b) {
9757   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9758 }
9759 
9760 static inline __ATTRS_o_ai __vector unsigned __int128
9761 vec_min(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9762   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9763 }
9764 
9765 #if __ARCH__ >= 12
9766 static inline __ATTRS_o_ai __vector float
9767 vec_min(__vector float __a, __vector float __b) {
9768   return __builtin_s390_vfminsb(__a, __b, 0);
9769 }
9770 #endif
9771 
9772 static inline __ATTRS_o_ai __vector double
9773 vec_min(__vector double __a, __vector double __b) {
9774 #if __ARCH__ >= 12
9775   return __builtin_s390_vfmindb(__a, __b, 0);
9776 #else
9777   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9778 #endif
9779 }
9780 
9781 /*-- vec_add_u128 -----------------------------------------------------------*/
9782 
9783 // This prototype is deprecated.
9784 static inline __ATTRS_ai __vector unsigned char
9785 vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {
9786   return (__vector unsigned char)(__vector unsigned __int128)
9787          ((__int128)__a + (__int128)__b);
9788 }
9789 
9790 /*-- vec_addc ---------------------------------------------------------------*/
9791 
9792 static inline __ATTRS_o_ai __vector unsigned char
9793 vec_addc(__vector unsigned char __a, __vector unsigned char __b) {
9794   return __builtin_s390_vaccb(__a, __b);
9795 }
9796 
9797 static inline __ATTRS_o_ai __vector unsigned short
9798 vec_addc(__vector unsigned short __a, __vector unsigned short __b) {
9799   return __builtin_s390_vacch(__a, __b);
9800 }
9801 
9802 static inline __ATTRS_o_ai __vector unsigned int
9803 vec_addc(__vector unsigned int __a, __vector unsigned int __b) {
9804   return __builtin_s390_vaccf(__a, __b);
9805 }
9806 
9807 static inline __ATTRS_o_ai __vector unsigned long long
9808 vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {
9809   return __builtin_s390_vaccg(__a, __b);
9810 }
9811 
9812 static inline __ATTRS_o_ai __vector unsigned __int128
9813 vec_addc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9814   return (__vector unsigned __int128)
9815          __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
9816 }
9817 
9818 /*-- vec_addc_u128 ----------------------------------------------------------*/
9819 
9820 // This prototype is deprecated.
9821 static inline __ATTRS_ai __vector unsigned char
9822 vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {
9823   return (__vector unsigned char)(__vector unsigned __int128)
9824          __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
9825 }
9826 
9827 /*-- vec_adde ---------------------------------------------------------------*/
9828 
9829 static inline __ATTRS_ai __vector unsigned __int128
9830 vec_adde(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9831          __vector unsigned __int128 __c) {
9832   return (__vector unsigned __int128)
9833          __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
9834                              (unsigned __int128)__c);
9835 }
9836 
9837 /*-- vec_adde_u128 ----------------------------------------------------------*/
9838 
9839 // This prototype is deprecated.
9840 static inline __ATTRS_ai __vector unsigned char
9841 vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,
9842               __vector unsigned char __c) {
9843   return (__vector unsigned char)(__vector unsigned __int128)
9844          __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
9845                              (unsigned __int128)__c);
9846 }
9847 
9848 /*-- vec_addec --------------------------------------------------------------*/
9849 
9850 static inline __ATTRS_ai __vector unsigned __int128
9851 vec_addec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9852           __vector unsigned __int128 __c) {
9853   return (__vector unsigned __int128)
9854          __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
9855                                (unsigned __int128)__c);
9856 }
9857 
9858 /*-- vec_addec_u128 ---------------------------------------------------------*/
9859 
9860 // This prototype is deprecated.
9861 static inline __ATTRS_ai __vector unsigned char
9862 vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,
9863                __vector unsigned char __c) {
9864   return (__vector unsigned char)(__vector unsigned __int128)
9865          __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
9866                                (unsigned __int128)__c);
9867 }
9868 
9869 /*-- vec_avg ----------------------------------------------------------------*/
9870 
9871 static inline __ATTRS_o_ai __vector signed char
9872 vec_avg(__vector signed char __a, __vector signed char __b) {
9873   return __builtin_s390_vavgb(__a, __b);
9874 }
9875 
9876 static inline __ATTRS_o_ai __vector signed short
9877 vec_avg(__vector signed short __a, __vector signed short __b) {
9878   return __builtin_s390_vavgh(__a, __b);
9879 }
9880 
9881 static inline __ATTRS_o_ai __vector signed int
9882 vec_avg(__vector signed int __a, __vector signed int __b) {
9883   return __builtin_s390_vavgf(__a, __b);
9884 }
9885 
9886 static inline __ATTRS_o_ai __vector signed long long
9887 vec_avg(__vector signed long long __a, __vector signed long long __b) {
9888   return __builtin_s390_vavgg(__a, __b);
9889 }
9890 
9891 #if __ARCH__ >= 15
9892 static inline __ATTRS_o_ai __vector signed __int128
9893 vec_avg(__vector signed __int128 __a, __vector signed __int128 __b) {
9894   return (__vector signed __int128)
9895          __builtin_s390_vavgq((signed __int128)__a, (signed __int128)__b);
9896 }
9897 #endif
9898 
9899 static inline __ATTRS_o_ai __vector unsigned char
9900 vec_avg(__vector unsigned char __a, __vector unsigned char __b) {
9901   return __builtin_s390_vavglb(__a, __b);
9902 }
9903 
9904 static inline __ATTRS_o_ai __vector unsigned short
9905 vec_avg(__vector unsigned short __a, __vector unsigned short __b) {
9906   return __builtin_s390_vavglh(__a, __b);
9907 }
9908 
9909 static inline __ATTRS_o_ai __vector unsigned int
9910 vec_avg(__vector unsigned int __a, __vector unsigned int __b) {
9911   return __builtin_s390_vavglf(__a, __b);
9912 }
9913 
9914 static inline __ATTRS_o_ai __vector unsigned long long
9915 vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {
9916   return __builtin_s390_vavglg(__a, __b);
9917 }
9918 
9919 #if __ARCH__ >= 15
9920 static inline __ATTRS_o_ai __vector unsigned __int128
9921 vec_avg(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9922   return (__vector unsigned __int128)
9923          __builtin_s390_vavglq((unsigned __int128)__a, (unsigned __int128)__b);
9924 }
9925 #endif
9926 
9927 /*-- vec_checksum -----------------------------------------------------------*/
9928 
9929 static inline __ATTRS_ai __vector unsigned int
9930 vec_checksum(__vector unsigned int __a, __vector unsigned int __b) {
9931   return __builtin_s390_vcksm(__a, __b);
9932 }
9933 
9934 /*-- vec_gfmsum -------------------------------------------------------------*/
9935 
9936 static inline __ATTRS_o_ai __vector unsigned short
9937 vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) {
9938   return __builtin_s390_vgfmb(__a, __b);
9939 }
9940 
9941 static inline __ATTRS_o_ai __vector unsigned int
9942 vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) {
9943   return __builtin_s390_vgfmh(__a, __b);
9944 }
9945 
9946 static inline __ATTRS_o_ai __vector unsigned long long
9947 vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {
9948   return __builtin_s390_vgfmf(__a, __b);
9949 }
9950 
9951 static inline __ATTRS_o_ai __vector unsigned __int128
9952 vec_gfmsum(__vector unsigned long long __a, __vector unsigned long long __b) {
9953   return (__vector unsigned __int128)__builtin_s390_vgfmg(__a, __b);
9954 }
9955 
9956 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
9957 
9958 // This prototype is deprecated.
9959 static inline __ATTRS_o_ai __vector unsigned char
9960 vec_gfmsum_128(__vector unsigned long long __a,
9961                __vector unsigned long long __b) {
9962   return (__vector unsigned char)(__vector unsigned __int128)
9963          __builtin_s390_vgfmg(__a, __b);
9964 }
9965 
9966 /*-- vec_gfmsum_accum -------------------------------------------------------*/
9967 
9968 static inline __ATTRS_o_ai __vector unsigned short
9969 vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b,
9970                  __vector unsigned short __c) {
9971   return __builtin_s390_vgfmab(__a, __b, __c);
9972 }
9973 
9974 static inline __ATTRS_o_ai __vector unsigned int
9975 vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b,
9976                  __vector unsigned int __c) {
9977   return __builtin_s390_vgfmah(__a, __b, __c);
9978 }
9979 
9980 static inline __ATTRS_o_ai __vector unsigned long long
9981 vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,
9982                  __vector unsigned long long __c) {
9983   return __builtin_s390_vgfmaf(__a, __b, __c);
9984 }
9985 
9986 static inline __ATTRS_o_ai __vector unsigned __int128
9987 vec_gfmsum_accum(__vector unsigned long long __a, __vector unsigned long long __b,
9988                  __vector unsigned __int128 __c) {
9989   return (__vector unsigned __int128)
9990          __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
9991 }
9992 
9993 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
9994 
9995 // This prototype is deprecated.
9996 static inline __ATTRS_o_ai __vector unsigned char
9997 vec_gfmsum_accum_128(__vector unsigned long long __a,
9998                      __vector unsigned long long __b,
9999                      __vector unsigned char __c) {
10000   return (__vector unsigned char)(__vector unsigned __int128)
10001          __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
10002 }
10003 
10004 /*-- vec_mladd --------------------------------------------------------------*/
10005 
10006 static inline __ATTRS_o_ai __vector signed char
10007 vec_mladd(__vector signed char __a, __vector signed char __b,
10008           __vector signed char __c) {
10009   return __a * __b + __c;
10010 }
10011 
10012 static inline __ATTRS_o_ai __vector signed char
10013 vec_mladd(__vector unsigned char __a, __vector signed char __b,
10014           __vector signed char __c) {
10015   return (__vector signed char)__a * __b + __c;
10016 }
10017 
10018 static inline __ATTRS_o_ai __vector signed char
10019 vec_mladd(__vector signed char __a, __vector unsigned char __b,
10020           __vector unsigned char __c) {
10021   return __a * (__vector signed char)__b + (__vector signed char)__c;
10022 }
10023 
10024 static inline __ATTRS_o_ai __vector unsigned char
10025 vec_mladd(__vector unsigned char __a, __vector unsigned char __b,
10026           __vector unsigned char __c) {
10027   return __a * __b + __c;
10028 }
10029 
10030 static inline __ATTRS_o_ai __vector signed short
10031 vec_mladd(__vector signed short __a, __vector signed short __b,
10032           __vector signed short __c) {
10033   return __a * __b + __c;
10034 }
10035 
10036 static inline __ATTRS_o_ai __vector signed short
10037 vec_mladd(__vector unsigned short __a, __vector signed short __b,
10038           __vector signed short __c) {
10039   return (__vector signed short)__a * __b + __c;
10040 }
10041 
10042 static inline __ATTRS_o_ai __vector signed short
10043 vec_mladd(__vector signed short __a, __vector unsigned short __b,
10044           __vector unsigned short __c) {
10045   return __a * (__vector signed short)__b + (__vector signed short)__c;
10046 }
10047 
10048 static inline __ATTRS_o_ai __vector unsigned short
10049 vec_mladd(__vector unsigned short __a, __vector unsigned short __b,
10050           __vector unsigned short __c) {
10051   return __a * __b + __c;
10052 }
10053 
10054 static inline __ATTRS_o_ai __vector signed int
10055 vec_mladd(__vector signed int __a, __vector signed int __b,
10056           __vector signed int __c) {
10057   return __a * __b + __c;
10058 }
10059 
10060 static inline __ATTRS_o_ai __vector signed int
10061 vec_mladd(__vector unsigned int __a, __vector signed int __b,
10062           __vector signed int __c) {
10063   return (__vector signed int)__a * __b + __c;
10064 }
10065 
10066 static inline __ATTRS_o_ai __vector signed int
10067 vec_mladd(__vector signed int __a, __vector unsigned int __b,
10068           __vector unsigned int __c) {
10069   return __a * (__vector signed int)__b + (__vector signed int)__c;
10070 }
10071 
10072 static inline __ATTRS_o_ai __vector unsigned int
10073 vec_mladd(__vector unsigned int __a, __vector unsigned int __b,
10074           __vector unsigned int __c) {
10075   return __a * __b + __c;
10076 }
10077 
10078 #if __ARCH__ >= 15
10079 static inline __ATTRS_o_ai __vector signed long long
10080 vec_mladd(__vector signed long long __a, __vector signed long long __b,
10081           __vector signed long long __c) {
10082   return __a * __b + __c;
10083 }
10084 
10085 static inline __ATTRS_o_ai __vector signed long long
10086 vec_mladd(__vector unsigned long long __a, __vector signed long long __b,
10087           __vector signed long long __c) {
10088   return (__vector signed long long)__a * __b + __c;
10089 }
10090 
10091 static inline __ATTRS_o_ai __vector signed long long
10092 vec_mladd(__vector signed long long __a, __vector unsigned long long __b,
10093           __vector unsigned long long __c) {
10094   return __a * (__vector signed long long)__b + (__vector signed long long)__c;
10095 }
10096 
10097 static inline __ATTRS_o_ai __vector unsigned long long
10098 vec_mladd(__vector unsigned long long __a, __vector unsigned long long __b,
10099           __vector unsigned long long __c) {
10100   return __a * __b + __c;
10101 }
10102 
10103 static inline __ATTRS_o_ai __vector signed __int128
10104 vec_mladd(__vector signed __int128 __a, __vector signed __int128 __b,
10105           __vector signed __int128 __c) {
10106   return __a * __b + __c;
10107 }
10108 
10109 static inline __ATTRS_o_ai __vector signed __int128
10110 vec_mladd(__vector unsigned __int128 __a, __vector signed __int128 __b,
10111           __vector signed __int128 __c) {
10112   return (__vector signed __int128)__a * __b + __c;
10113 }
10114 
10115 static inline __ATTRS_o_ai __vector signed __int128
10116 vec_mladd(__vector signed __int128 __a, __vector unsigned __int128 __b,
10117           __vector unsigned __int128 __c) {
10118   return __a * (__vector signed __int128)__b + (__vector signed __int128)__c;
10119 }
10120 
10121 static inline __ATTRS_o_ai __vector unsigned __int128
10122 vec_mladd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10123           __vector unsigned __int128 __c) {
10124   return __a * __b + __c;
10125 }
10126 #endif
10127 
10128 /*-- vec_mhadd --------------------------------------------------------------*/
10129 
10130 static inline __ATTRS_o_ai __vector signed char
10131 vec_mhadd(__vector signed char __a, __vector signed char __b,
10132           __vector signed char __c) {
10133   return __builtin_s390_vmahb(__a, __b, __c);
10134 }
10135 
10136 static inline __ATTRS_o_ai __vector unsigned char
10137 vec_mhadd(__vector unsigned char __a, __vector unsigned char __b,
10138           __vector unsigned char __c) {
10139   return __builtin_s390_vmalhb(__a, __b, __c);
10140 }
10141 
10142 static inline __ATTRS_o_ai __vector signed short
10143 vec_mhadd(__vector signed short __a, __vector signed short __b,
10144           __vector signed short __c) {
10145   return __builtin_s390_vmahh(__a, __b, __c);
10146 }
10147 
10148 static inline __ATTRS_o_ai __vector unsigned short
10149 vec_mhadd(__vector unsigned short __a, __vector unsigned short __b,
10150           __vector unsigned short __c) {
10151   return __builtin_s390_vmalhh(__a, __b, __c);
10152 }
10153 
10154 static inline __ATTRS_o_ai __vector signed int
10155 vec_mhadd(__vector signed int __a, __vector signed int __b,
10156           __vector signed int __c) {
10157   return __builtin_s390_vmahf(__a, __b, __c);
10158 }
10159 
10160 static inline __ATTRS_o_ai __vector unsigned int
10161 vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,
10162           __vector unsigned int __c) {
10163   return __builtin_s390_vmalhf(__a, __b, __c);
10164 }
10165 
10166 #if __ARCH__ >= 15
10167 static inline __ATTRS_o_ai __vector signed long long
10168 vec_mhadd(__vector signed long long __a, __vector signed long long __b,
10169           __vector signed long long __c) {
10170   return __builtin_s390_vmahg(__a, __b, __c);
10171 }
10172 
10173 static inline __ATTRS_o_ai __vector unsigned long long
10174 vec_mhadd(__vector unsigned long long __a, __vector unsigned long long __b,
10175           __vector unsigned long long __c) {
10176   return __builtin_s390_vmalhg(__a, __b, __c);
10177 }
10178 
10179 static inline __ATTRS_o_ai __vector signed __int128
10180 vec_mhadd(__vector signed __int128 __a, __vector signed __int128 __b,
10181           __vector signed __int128 __c) {
10182   return (__vector signed __int128)
10183          __builtin_s390_vmahq((signed __int128)__a, (signed __int128)__b, (signed __int128)__c);
10184 }
10185 
10186 static inline __ATTRS_o_ai __vector unsigned __int128
10187 vec_mhadd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10188           __vector unsigned __int128 __c) {
10189   return (__vector unsigned __int128)
10190          __builtin_s390_vmalhq((unsigned __int128)__a, (unsigned __int128)__b, (unsigned __int128)__c);
10191 }
10192 #endif
10193 
10194 /*-- vec_meadd --------------------------------------------------------------*/
10195 
10196 static inline __ATTRS_o_ai __vector signed short
10197 vec_meadd(__vector signed char __a, __vector signed char __b,
10198           __vector signed short __c) {
10199   return __builtin_s390_vmaeb(__a, __b, __c);
10200 }
10201 
10202 static inline __ATTRS_o_ai __vector unsigned short
10203 vec_meadd(__vector unsigned char __a, __vector unsigned char __b,
10204           __vector unsigned short __c) {
10205   return __builtin_s390_vmaleb(__a, __b, __c);
10206 }
10207 
10208 static inline __ATTRS_o_ai __vector signed int
10209 vec_meadd(__vector signed short __a, __vector signed short __b,
10210           __vector signed int __c) {
10211   return __builtin_s390_vmaeh(__a, __b, __c);
10212 }
10213 
10214 static inline __ATTRS_o_ai __vector unsigned int
10215 vec_meadd(__vector unsigned short __a, __vector unsigned short __b,
10216           __vector unsigned int __c) {
10217   return __builtin_s390_vmaleh(__a, __b, __c);
10218 }
10219 
10220 static inline __ATTRS_o_ai __vector signed long long
10221 vec_meadd(__vector signed int __a, __vector signed int __b,
10222           __vector signed long long __c) {
10223   return __builtin_s390_vmaef(__a, __b, __c);
10224 }
10225 
10226 static inline __ATTRS_o_ai __vector unsigned long long
10227 vec_meadd(__vector unsigned int __a, __vector unsigned int __b,
10228           __vector unsigned long long __c) {
10229   return __builtin_s390_vmalef(__a, __b, __c);
10230 }
10231 
10232 #if __ARCH__ >= 15
10233 static inline __ATTRS_o_ai __vector signed __int128
10234 vec_meadd(__vector signed long long __a, __vector signed long long __b,
10235           __vector signed __int128 __c) {
10236   return (__vector signed __int128)
10237          __builtin_s390_vmaeg(__a, __b, (signed __int128)__c);
10238 }
10239 
10240 static inline __ATTRS_o_ai __vector unsigned __int128
10241 vec_meadd(__vector unsigned long long __a, __vector unsigned long long __b,
10242           __vector unsigned __int128 __c) {
10243   return (__vector unsigned __int128)
10244          __builtin_s390_vmaleg(__a, __b, (unsigned __int128)__c);
10245 }
10246 #endif
10247 
10248 /*-- vec_moadd --------------------------------------------------------------*/
10249 
10250 static inline __ATTRS_o_ai __vector signed short
10251 vec_moadd(__vector signed char __a, __vector signed char __b,
10252           __vector signed short __c) {
10253   return __builtin_s390_vmaob(__a, __b, __c);
10254 }
10255 
10256 static inline __ATTRS_o_ai __vector unsigned short
10257 vec_moadd(__vector unsigned char __a, __vector unsigned char __b,
10258           __vector unsigned short __c) {
10259   return __builtin_s390_vmalob(__a, __b, __c);
10260 }
10261 
10262 static inline __ATTRS_o_ai __vector signed int
10263 vec_moadd(__vector signed short __a, __vector signed short __b,
10264           __vector signed int __c) {
10265   return __builtin_s390_vmaoh(__a, __b, __c);
10266 }
10267 
10268 static inline __ATTRS_o_ai __vector unsigned int
10269 vec_moadd(__vector unsigned short __a, __vector unsigned short __b,
10270           __vector unsigned int __c) {
10271   return __builtin_s390_vmaloh(__a, __b, __c);
10272 }
10273 
10274 static inline __ATTRS_o_ai __vector signed long long
10275 vec_moadd(__vector signed int __a, __vector signed int __b,
10276           __vector signed long long __c) {
10277   return __builtin_s390_vmaof(__a, __b, __c);
10278 }
10279 
10280 static inline __ATTRS_o_ai __vector unsigned long long
10281 vec_moadd(__vector unsigned int __a, __vector unsigned int __b,
10282           __vector unsigned long long __c) {
10283   return __builtin_s390_vmalof(__a, __b, __c);
10284 }
10285 
10286 #if __ARCH__ >= 15
10287 static inline __ATTRS_o_ai __vector signed __int128
10288 vec_moadd(__vector signed long long __a, __vector signed long long __b,
10289           __vector signed __int128 __c) {
10290   return (__vector signed __int128)
10291          __builtin_s390_vmaog(__a, __b, (signed __int128)__c);
10292 }
10293 
10294 static inline __ATTRS_o_ai __vector unsigned __int128
10295 vec_moadd(__vector unsigned long long __a, __vector unsigned long long __b,
10296           __vector unsigned __int128 __c) {
10297   return (__vector unsigned __int128)
10298          __builtin_s390_vmalog(__a, __b, (unsigned __int128)__c);
10299 }
10300 #endif
10301 
10302 /*-- vec_mulh ---------------------------------------------------------------*/
10303 
10304 static inline __ATTRS_o_ai __vector signed char
10305 vec_mulh(__vector signed char __a, __vector signed char __b) {
10306   return __builtin_s390_vmhb(__a, __b);
10307 }
10308 
10309 static inline __ATTRS_o_ai __vector unsigned char
10310 vec_mulh(__vector unsigned char __a, __vector unsigned char __b) {
10311   return __builtin_s390_vmlhb(__a, __b);
10312 }
10313 
10314 static inline __ATTRS_o_ai __vector signed short
10315 vec_mulh(__vector signed short __a, __vector signed short __b) {
10316   return __builtin_s390_vmhh(__a, __b);
10317 }
10318 
10319 static inline __ATTRS_o_ai __vector unsigned short
10320 vec_mulh(__vector unsigned short __a, __vector unsigned short __b) {
10321   return __builtin_s390_vmlhh(__a, __b);
10322 }
10323 
10324 static inline __ATTRS_o_ai __vector signed int
10325 vec_mulh(__vector signed int __a, __vector signed int __b) {
10326   return __builtin_s390_vmhf(__a, __b);
10327 }
10328 
10329 static inline __ATTRS_o_ai __vector unsigned int
10330 vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {
10331   return __builtin_s390_vmlhf(__a, __b);
10332 }
10333 
10334 #if __ARCH__ >= 15
10335 static inline __ATTRS_o_ai __vector signed long long
10336 vec_mulh(__vector signed long long __a, __vector signed long long __b) {
10337   return __builtin_s390_vmhg(__a, __b);
10338 }
10339 
10340 static inline __ATTRS_o_ai __vector unsigned long long
10341 vec_mulh(__vector unsigned long long __a, __vector unsigned long long __b) {
10342   return __builtin_s390_vmlhg(__a, __b);
10343 }
10344 
10345 static inline __ATTRS_o_ai __vector signed __int128
10346 vec_mulh(__vector signed __int128 __a, __vector signed __int128 __b) {
10347   return (__vector signed __int128)
10348          __builtin_s390_vmhq((signed __int128)__a, (signed __int128)__b);
10349 }
10350 
10351 static inline __ATTRS_o_ai __vector unsigned __int128
10352 vec_mulh(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
10353   return (__vector unsigned __int128)
10354          __builtin_s390_vmlhq((unsigned __int128)__a, (unsigned __int128)__b);
10355 }
10356 #endif
10357 
10358 /*-- vec_mule ---------------------------------------------------------------*/
10359 
10360 static inline __ATTRS_o_ai __vector signed short
10361 vec_mule(__vector signed char __a, __vector signed char __b) {
10362   return __builtin_s390_vmeb(__a, __b);
10363 }
10364 
10365 static inline __ATTRS_o_ai __vector unsigned short
10366 vec_mule(__vector unsigned char __a, __vector unsigned char __b) {
10367   return __builtin_s390_vmleb(__a, __b);
10368 }
10369 
10370 static inline __ATTRS_o_ai __vector signed int
10371 vec_mule(__vector signed short __a, __vector signed short __b) {
10372   return __builtin_s390_vmeh(__a, __b);
10373 }
10374 
10375 static inline __ATTRS_o_ai __vector unsigned int
10376 vec_mule(__vector unsigned short __a, __vector unsigned short __b) {
10377   return __builtin_s390_vmleh(__a, __b);
10378 }
10379 
10380 static inline __ATTRS_o_ai __vector signed long long
10381 vec_mule(__vector signed int __a, __vector signed int __b) {
10382   return __builtin_s390_vmef(__a, __b);
10383 }
10384 
10385 static inline __ATTRS_o_ai __vector unsigned long long
10386 vec_mule(__vector unsigned int __a, __vector unsigned int __b) {
10387   return __builtin_s390_vmlef(__a, __b);
10388 }
10389 
10390 #if __ARCH__ >= 15
10391 static inline __ATTRS_o_ai __vector signed __int128
10392 vec_mule(__vector signed long long __a, __vector signed long long __b) {
10393   return (__vector signed __int128)__builtin_s390_vmeg(__a, __b);
10394 }
10395 
10396 static inline __ATTRS_o_ai __vector unsigned __int128
10397 vec_mule(__vector unsigned long long __a, __vector unsigned long long __b) {
10398   return (__vector unsigned __int128)__builtin_s390_vmleg(__a, __b);
10399 }
10400 #endif
10401 
10402 /*-- vec_mulo ---------------------------------------------------------------*/
10403 
10404 static inline __ATTRS_o_ai __vector signed short
10405 vec_mulo(__vector signed char __a, __vector signed char __b) {
10406   return __builtin_s390_vmob(__a, __b);
10407 }
10408 
10409 static inline __ATTRS_o_ai __vector unsigned short
10410 vec_mulo(__vector unsigned char __a, __vector unsigned char __b) {
10411   return __builtin_s390_vmlob(__a, __b);
10412 }
10413 
10414 static inline __ATTRS_o_ai __vector signed int
10415 vec_mulo(__vector signed short __a, __vector signed short __b) {
10416   return __builtin_s390_vmoh(__a, __b);
10417 }
10418 
10419 static inline __ATTRS_o_ai __vector unsigned int
10420 vec_mulo(__vector unsigned short __a, __vector unsigned short __b) {
10421   return __builtin_s390_vmloh(__a, __b);
10422 }
10423 
10424 static inline __ATTRS_o_ai __vector signed long long
10425 vec_mulo(__vector signed int __a, __vector signed int __b) {
10426   return __builtin_s390_vmof(__a, __b);
10427 }
10428 
10429 static inline __ATTRS_o_ai __vector unsigned long long
10430 vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {
10431   return __builtin_s390_vmlof(__a, __b);
10432 }
10433 
10434 #if __ARCH__ >= 15
10435 static inline __ATTRS_o_ai __vector signed __int128
10436 vec_mulo(__vector signed long long __a, __vector signed long long __b) {
10437   return (__vector signed __int128)__builtin_s390_vmog(__a, __b);
10438 }
10439 
10440 static inline __ATTRS_o_ai __vector unsigned __int128
10441 vec_mulo(__vector unsigned long long __a, __vector unsigned long long __b) {
10442   return (__vector unsigned __int128)__builtin_s390_vmlog(__a, __b);
10443 }
10444 #endif
10445 
10446 /*-- vec_msum ---------------------------------------------------------------*/
10447 
10448 #if __ARCH__ >= 12
10449 extern __ATTRS_o __vector unsigned __int128
10450 vec_msum(__vector unsigned long long __a, __vector unsigned long long __b,
10451          __vector unsigned __int128 __c, int __d)
10452   __constant_range(__d, 0, 15);
10453 
10454 #define vec_msum(X, Y, Z, W) \
10455   ((__typeof__((vec_msum)((X), (Y), (Z), (W)))) \
10456    __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
10457 #endif
10458 
10459 /*-- vec_msum_u128 ----------------------------------------------------------*/
10460 
10461 #if __ARCH__ >= 12
10462 // This prototype is deprecated.
10463 extern __ATTRS_o __vector unsigned char
10464 vec_msum_u128(__vector unsigned long long __a, __vector unsigned long long __b,
10465               __vector unsigned char __c, int __d)
10466   __constant_range(__d, 0, 15);
10467 
10468 #define vec_msum_u128(X, Y, Z, W) \
10469   ((__typeof__((vec_msum_u128)((X), (Y), (Z), (W)))) \
10470    (__vector unsigned __int128) \
10471    __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
10472 #endif
10473 
10474 /*-- vec_sub_u128 -----------------------------------------------------------*/
10475 
10476 // This prototype is deprecated.
10477 static inline __ATTRS_ai __vector unsigned char
10478 vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {
10479   return (__vector unsigned char)(__vector unsigned __int128)
10480          ((__int128)__a - (__int128)__b);
10481 }
10482 
10483 /*-- vec_subc ---------------------------------------------------------------*/
10484 
10485 static inline __ATTRS_o_ai __vector unsigned char
10486 vec_subc(__vector unsigned char __a, __vector unsigned char __b) {
10487   return __builtin_s390_vscbib(__a, __b);
10488 }
10489 
10490 static inline __ATTRS_o_ai __vector unsigned short
10491 vec_subc(__vector unsigned short __a, __vector unsigned short __b) {
10492   return __builtin_s390_vscbih(__a, __b);
10493 }
10494 
10495 static inline __ATTRS_o_ai __vector unsigned int
10496 vec_subc(__vector unsigned int __a, __vector unsigned int __b) {
10497   return __builtin_s390_vscbif(__a, __b);
10498 }
10499 
10500 static inline __ATTRS_o_ai __vector unsigned long long
10501 vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {
10502   return __builtin_s390_vscbig(__a, __b);
10503 }
10504 
10505 static inline __ATTRS_o_ai __vector unsigned __int128
10506 vec_subc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
10507   return (__vector unsigned __int128)
10508          __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
10509 }
10510 
10511 /*-- vec_subc_u128 ----------------------------------------------------------*/
10512 
10513 // This prototype is deprecated.
10514 static inline __ATTRS_ai __vector unsigned char
10515 vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {
10516   return (__vector unsigned char)(__vector unsigned __int128)
10517          __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
10518 }
10519 
10520 /*-- vec_sube ---------------------------------------------------------------*/
10521 
10522 static inline __ATTRS_ai __vector unsigned __int128
10523 vec_sube(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10524          __vector unsigned __int128 __c) {
10525   return (__vector unsigned __int128)
10526          __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
10527                               (unsigned __int128)__c);
10528 }
10529 
10530 /*-- vec_sube_u128 ----------------------------------------------------------*/
10531 
10532 // This prototype is deprecated.
10533 static inline __ATTRS_ai __vector unsigned char
10534 vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,
10535               __vector unsigned char __c) {
10536   return (__vector unsigned char)(__vector unsigned __int128)
10537          __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
10538                               (unsigned __int128)__c);
10539 }
10540 
10541 /*-- vec_subec --------------------------------------------------------------*/
10542 
10543 static inline __ATTRS_ai __vector unsigned __int128
10544 vec_subec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10545           __vector unsigned __int128 __c) {
10546   return (__vector unsigned __int128)
10547          __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
10548                                 (unsigned __int128)__c);
10549 }
10550 
10551 /*-- vec_subec_u128 ---------------------------------------------------------*/
10552 
10553 // This prototype is deprecated.
10554 static inline __ATTRS_ai __vector unsigned char
10555 vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,
10556                __vector unsigned char __c) {
10557   return (__vector unsigned char)(__vector unsigned __int128)
10558          __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
10559                                 (unsigned __int128)__c);
10560 }
10561 
10562 /*-- vec_sum2 ---------------------------------------------------------------*/
10563 
10564 static inline __ATTRS_o_ai __vector unsigned long long
10565 vec_sum2(__vector unsigned short __a, __vector unsigned short __b) {
10566   return __builtin_s390_vsumgh(__a, __b);
10567 }
10568 
10569 static inline __ATTRS_o_ai __vector unsigned long long
10570 vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {
10571   return __builtin_s390_vsumgf(__a, __b);
10572 }
10573 
10574 /*-- vec_sum ----------------------------------------------------------------*/
10575 
10576 static inline __ATTRS_o_ai __vector unsigned __int128
10577 vec_sum(__vector unsigned int __a, __vector unsigned int __b) {
10578   return (__vector unsigned __int128)__builtin_s390_vsumqf(__a, __b);
10579 }
10580 
10581 static inline __ATTRS_o_ai __vector unsigned __int128
10582 vec_sum(__vector unsigned long long __a, __vector unsigned long long __b) {
10583   return (__vector unsigned __int128)__builtin_s390_vsumqg(__a, __b);
10584 }
10585 
10586 /*-- vec_sum_u128 -----------------------------------------------------------*/
10587 
10588 // This prototype is deprecated.
10589 static inline __ATTRS_o_ai __vector unsigned char
10590 vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {
10591   return (__vector unsigned char)(__vector unsigned __int128)
10592          __builtin_s390_vsumqf(__a, __b);
10593 }
10594 
10595 // This prototype is deprecated.
10596 static inline __ATTRS_o_ai __vector unsigned char
10597 vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {
10598   return (__vector unsigned char)(__vector unsigned __int128)
10599          __builtin_s390_vsumqg(__a, __b);
10600 }
10601 
10602 /*-- vec_sum4 ---------------------------------------------------------------*/
10603 
10604 static inline __ATTRS_o_ai __vector unsigned int
10605 vec_sum4(__vector unsigned char __a, __vector unsigned char __b) {
10606   return __builtin_s390_vsumb(__a, __b);
10607 }
10608 
10609 static inline __ATTRS_o_ai __vector unsigned int
10610 vec_sum4(__vector unsigned short __a, __vector unsigned short __b) {
10611   return __builtin_s390_vsumh(__a, __b);
10612 }
10613 
10614 /*-- vec_test_mask ----------------------------------------------------------*/
10615 
10616 static inline __ATTRS_o_ai int
10617 vec_test_mask(__vector signed char __a, __vector unsigned char __b) {
10618   return __builtin_s390_vtm((__vector unsigned char)__a,
10619                             (__vector unsigned char)__b);
10620 }
10621 
10622 static inline __ATTRS_o_ai int
10623 vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) {
10624   return __builtin_s390_vtm(__a, __b);
10625 }
10626 
10627 static inline __ATTRS_o_ai int
10628 vec_test_mask(__vector signed short __a, __vector unsigned short __b) {
10629   return __builtin_s390_vtm((__vector unsigned char)__a,
10630                             (__vector unsigned char)__b);
10631 }
10632 
10633 static inline __ATTRS_o_ai int
10634 vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) {
10635   return __builtin_s390_vtm((__vector unsigned char)__a,
10636                             (__vector unsigned char)__b);
10637 }
10638 
10639 static inline __ATTRS_o_ai int
10640 vec_test_mask(__vector signed int __a, __vector unsigned int __b) {
10641   return __builtin_s390_vtm((__vector unsigned char)__a,
10642                             (__vector unsigned char)__b);
10643 }
10644 
10645 static inline __ATTRS_o_ai int
10646 vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) {
10647   return __builtin_s390_vtm((__vector unsigned char)__a,
10648                             (__vector unsigned char)__b);
10649 }
10650 
10651 static inline __ATTRS_o_ai int
10652 vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) {
10653   return __builtin_s390_vtm((__vector unsigned char)__a,
10654                             (__vector unsigned char)__b);
10655 }
10656 
10657 static inline __ATTRS_o_ai int
10658 vec_test_mask(__vector unsigned long long __a,
10659               __vector unsigned long long __b) {
10660   return __builtin_s390_vtm((__vector unsigned char)__a,
10661                             (__vector unsigned char)__b);
10662 }
10663 
10664 static inline __ATTRS_o_ai int
10665 vec_test_mask(__vector signed __int128 __a, __vector unsigned __int128 __b) {
10666   return __builtin_s390_vtm((__vector unsigned char)__a,
10667                             (__vector unsigned char)__b);
10668 }
10669 
10670 static inline __ATTRS_o_ai int
10671 vec_test_mask(__vector unsigned __int128 __a,
10672               __vector unsigned __int128 __b) {
10673   return __builtin_s390_vtm((__vector unsigned char)__a,
10674                             (__vector unsigned char)__b);
10675 }
10676 
10677 #if __ARCH__ >= 12
10678 static inline __ATTRS_o_ai int
10679 vec_test_mask(__vector float __a, __vector unsigned int __b) {
10680   return __builtin_s390_vtm((__vector unsigned char)__a,
10681                             (__vector unsigned char)__b);
10682 }
10683 #endif
10684 
10685 static inline __ATTRS_o_ai int
10686 vec_test_mask(__vector double __a, __vector unsigned long long __b) {
10687   return __builtin_s390_vtm((__vector unsigned char)__a,
10688                             (__vector unsigned char)__b);
10689 }
10690 
10691 /*-- vec_madd ---------------------------------------------------------------*/
10692 
10693 #if __ARCH__ >= 12
10694 static inline __ATTRS_o_ai __vector float
10695 vec_madd(__vector float __a, __vector float __b, __vector float __c) {
10696   return __builtin_s390_vfmasb(__a, __b, __c);
10697 }
10698 #endif
10699 
10700 static inline __ATTRS_o_ai __vector double
10701 vec_madd(__vector double __a, __vector double __b, __vector double __c) {
10702   return __builtin_s390_vfmadb(__a, __b, __c);
10703 }
10704 
10705 /*-- vec_msub ---------------------------------------------------------------*/
10706 
10707 #if __ARCH__ >= 12
10708 static inline __ATTRS_o_ai __vector float
10709 vec_msub(__vector float __a, __vector float __b, __vector float __c) {
10710   return __builtin_s390_vfmssb(__a, __b, __c);
10711 }
10712 #endif
10713 
10714 static inline __ATTRS_o_ai __vector double
10715 vec_msub(__vector double __a, __vector double __b, __vector double __c) {
10716   return __builtin_s390_vfmsdb(__a, __b, __c);
10717 }
10718 
10719 /*-- vec_nmadd ---------------------------------------------------------------*/
10720 
10721 #if __ARCH__ >= 12
10722 static inline __ATTRS_o_ai __vector float
10723 vec_nmadd(__vector float __a, __vector float __b, __vector float __c) {
10724   return __builtin_s390_vfnmasb(__a, __b, __c);
10725 }
10726 
10727 static inline __ATTRS_o_ai __vector double
10728 vec_nmadd(__vector double __a, __vector double __b, __vector double __c) {
10729   return __builtin_s390_vfnmadb(__a, __b, __c);
10730 }
10731 #endif
10732 
10733 /*-- vec_nmsub ---------------------------------------------------------------*/
10734 
10735 #if __ARCH__ >= 12
10736 static inline __ATTRS_o_ai __vector float
10737 vec_nmsub(__vector float __a, __vector float __b, __vector float __c) {
10738   return __builtin_s390_vfnmssb(__a, __b, __c);
10739 }
10740 
10741 static inline __ATTRS_o_ai __vector double
10742 vec_nmsub(__vector double __a, __vector double __b, __vector double __c) {
10743   return __builtin_s390_vfnmsdb(__a, __b, __c);
10744 }
10745 #endif
10746 
10747 /*-- vec_sqrt ---------------------------------------------------------------*/
10748 
10749 #if __ARCH__ >= 12
10750 static inline __ATTRS_o_ai __vector float
10751 vec_sqrt(__vector float __a) {
10752   return __builtin_s390_vfsqsb(__a);
10753 }
10754 #endif
10755 
10756 static inline __ATTRS_o_ai __vector double
10757 vec_sqrt(__vector double __a) {
10758   return __builtin_s390_vfsqdb(__a);
10759 }
10760 
10761 /*-- vec_ld2f ---------------------------------------------------------------*/
10762 
10763 // This prototype is deprecated.
10764 static inline __ATTRS_ai __vector double
10765 vec_ld2f(const float *__ptr) {
10766   typedef float __v2f32 __attribute__((__vector_size__(8)));
10767   return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double);
10768 }
10769 
10770 /*-- vec_st2f ---------------------------------------------------------------*/
10771 
10772 // This prototype is deprecated.
10773 static inline __ATTRS_ai void
10774 vec_st2f(__vector double __a, float *__ptr) {
10775   typedef float __v2f32 __attribute__((__vector_size__(8)));
10776   *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
10777 }
10778 
10779 /*-- vec_ctd ----------------------------------------------------------------*/
10780 
10781 // This prototype is deprecated.
10782 static inline __ATTRS_o_ai __vector double
10783 vec_ctd(__vector signed long long __a, int __b)
10784   __constant_range(__b, 0, 31) {
10785   __vector double __conv = __builtin_convertvector(__a, __vector double);
10786   __conv *= ((__vector double)(__vector unsigned long long)
10787              ((0x3ffULL - __b) << 52));
10788   return __conv;
10789 }
10790 
10791 // This prototype is deprecated.
10792 static inline __ATTRS_o_ai __vector double
10793 vec_ctd(__vector unsigned long long __a, int __b)
10794   __constant_range(__b, 0, 31) {
10795   __vector double __conv = __builtin_convertvector(__a, __vector double);
10796   __conv *= ((__vector double)(__vector unsigned long long)
10797              ((0x3ffULL - __b) << 52));
10798   return __conv;
10799 }
10800 
10801 /*-- vec_ctsl ---------------------------------------------------------------*/
10802 
10803 // This prototype is deprecated.
10804 static inline __ATTRS_o_ai __vector signed long long
10805 vec_ctsl(__vector double __a, int __b)
10806   __constant_range(__b, 0, 31) {
10807   __a *= ((__vector double)(__vector unsigned long long)
10808           ((0x3ffULL + __b) << 52));
10809   return __builtin_convertvector(__a, __vector signed long long);
10810 }
10811 
10812 /*-- vec_ctul ---------------------------------------------------------------*/
10813 
10814 // This prototype is deprecated.
10815 static inline __ATTRS_o_ai __vector unsigned long long
10816 vec_ctul(__vector double __a, int __b)
10817   __constant_range(__b, 0, 31) {
10818   __a *= ((__vector double)(__vector unsigned long long)
10819           ((0x3ffULL + __b) << 52));
10820   return __builtin_convertvector(__a, __vector unsigned long long);
10821 }
10822 
10823 /*-- vec_doublee ------------------------------------------------------------*/
10824 
10825 #if __ARCH__ >= 12
10826 static inline __ATTRS_ai __vector double
10827 vec_doublee(__vector float __a) {
10828   typedef float __v2f32 __attribute__((__vector_size__(8)));
10829   __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
10830   return __builtin_convertvector(__pack, __vector double);
10831 }
10832 #endif
10833 
10834 /*-- vec_floate -------------------------------------------------------------*/
10835 
10836 #if __ARCH__ >= 12
10837 static inline __ATTRS_ai __vector float
10838 vec_floate(__vector double __a) {
10839   typedef float __v2f32 __attribute__((__vector_size__(8)));
10840   __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
10841   return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
10842 }
10843 #endif
10844 
10845 /*-- vec_double -------------------------------------------------------------*/
10846 
10847 static inline __ATTRS_o_ai __vector double
10848 vec_double(__vector signed long long __a) {
10849   return __builtin_convertvector(__a, __vector double);
10850 }
10851 
10852 static inline __ATTRS_o_ai __vector double
10853 vec_double(__vector unsigned long long __a) {
10854   return __builtin_convertvector(__a, __vector double);
10855 }
10856 
10857 /*-- vec_float --------------------------------------------------------------*/
10858 
10859 #if __ARCH__ >= 13
10860 
10861 static inline __ATTRS_o_ai __vector float
10862 vec_float(__vector signed int __a) {
10863   return __builtin_convertvector(__a, __vector float);
10864 }
10865 
10866 static inline __ATTRS_o_ai __vector float
10867 vec_float(__vector unsigned int __a) {
10868   return __builtin_convertvector(__a, __vector float);
10869 }
10870 
10871 #endif
10872 
10873 /*-- vec_signed -------------------------------------------------------------*/
10874 
10875 static inline __ATTRS_o_ai __vector signed long long
10876 vec_signed(__vector double __a) {
10877   return __builtin_convertvector(__a, __vector signed long long);
10878 }
10879 
10880 #if __ARCH__ >= 13
10881 static inline __ATTRS_o_ai __vector signed int
10882 vec_signed(__vector float __a) {
10883   return __builtin_convertvector(__a, __vector signed int);
10884 }
10885 #endif
10886 
10887 /*-- vec_unsigned -----------------------------------------------------------*/
10888 
10889 static inline __ATTRS_o_ai __vector unsigned long long
10890 vec_unsigned(__vector double __a) {
10891   return __builtin_convertvector(__a, __vector unsigned long long);
10892 }
10893 
10894 #if __ARCH__ >= 13
10895 static inline __ATTRS_o_ai __vector unsigned int
10896 vec_unsigned(__vector float __a) {
10897   return __builtin_convertvector(__a, __vector unsigned int);
10898 }
10899 #endif
10900 
10901 /*-- vec_roundp -------------------------------------------------------------*/
10902 
10903 #if __ARCH__ >= 12
10904 static inline __ATTRS_o_ai __vector float
10905 vec_roundp(__vector float __a) {
10906   return __builtin_s390_vfisb(__a, 4, 6);
10907 }
10908 #endif
10909 
10910 static inline __ATTRS_o_ai __vector double
10911 vec_roundp(__vector double __a) {
10912   return __builtin_s390_vfidb(__a, 4, 6);
10913 }
10914 
10915 /*-- vec_ceil ---------------------------------------------------------------*/
10916 
10917 #if __ARCH__ >= 12
10918 static inline __ATTRS_o_ai __vector float
10919 vec_ceil(__vector float __a) {
10920   // On this platform, vec_ceil never triggers the IEEE-inexact exception.
10921   return __builtin_s390_vfisb(__a, 4, 6);
10922 }
10923 #endif
10924 
10925 static inline __ATTRS_o_ai __vector double
10926 vec_ceil(__vector double __a) {
10927   // On this platform, vec_ceil never triggers the IEEE-inexact exception.
10928   return __builtin_s390_vfidb(__a, 4, 6);
10929 }
10930 
10931 /*-- vec_roundm -------------------------------------------------------------*/
10932 
10933 #if __ARCH__ >= 12
10934 static inline __ATTRS_o_ai __vector float
10935 vec_roundm(__vector float __a) {
10936   return __builtin_s390_vfisb(__a, 4, 7);
10937 }
10938 #endif
10939 
10940 static inline __ATTRS_o_ai __vector double
10941 vec_roundm(__vector double __a) {
10942   return __builtin_s390_vfidb(__a, 4, 7);
10943 }
10944 
10945 /*-- vec_floor --------------------------------------------------------------*/
10946 
10947 #if __ARCH__ >= 12
10948 static inline __ATTRS_o_ai __vector float
10949 vec_floor(__vector float __a) {
10950   // On this platform, vec_floor never triggers the IEEE-inexact exception.
10951   return __builtin_s390_vfisb(__a, 4, 7);
10952 }
10953 #endif
10954 
10955 static inline __ATTRS_o_ai __vector double
10956 vec_floor(__vector double __a) {
10957   // On this platform, vec_floor never triggers the IEEE-inexact exception.
10958   return __builtin_s390_vfidb(__a, 4, 7);
10959 }
10960 
10961 /*-- vec_roundz -------------------------------------------------------------*/
10962 
10963 #if __ARCH__ >= 12
10964 static inline __ATTRS_o_ai __vector float
10965 vec_roundz(__vector float __a) {
10966   return __builtin_s390_vfisb(__a, 4, 5);
10967 }
10968 #endif
10969 
10970 static inline __ATTRS_o_ai __vector double
10971 vec_roundz(__vector double __a) {
10972   return __builtin_s390_vfidb(__a, 4, 5);
10973 }
10974 
10975 /*-- vec_trunc --------------------------------------------------------------*/
10976 
10977 #if __ARCH__ >= 12
10978 static inline __ATTRS_o_ai __vector float
10979 vec_trunc(__vector float __a) {
10980   // On this platform, vec_trunc never triggers the IEEE-inexact exception.
10981   return __builtin_s390_vfisb(__a, 4, 5);
10982 }
10983 #endif
10984 
10985 static inline __ATTRS_o_ai __vector double
10986 vec_trunc(__vector double __a) {
10987   // On this platform, vec_trunc never triggers the IEEE-inexact exception.
10988   return __builtin_s390_vfidb(__a, 4, 5);
10989 }
10990 
10991 /*-- vec_roundc -------------------------------------------------------------*/
10992 
10993 #if __ARCH__ >= 12
10994 static inline __ATTRS_o_ai __vector float
10995 vec_roundc(__vector float __a) {
10996   return __builtin_s390_vfisb(__a, 4, 0);
10997 }
10998 #endif
10999 
11000 static inline __ATTRS_o_ai __vector double
11001 vec_roundc(__vector double __a) {
11002   return __builtin_s390_vfidb(__a, 4, 0);
11003 }
11004 
11005 /*-- vec_rint ---------------------------------------------------------------*/
11006 
11007 #if __ARCH__ >= 12
11008 static inline __ATTRS_o_ai __vector float
11009 vec_rint(__vector float __a) {
11010   // vec_rint may trigger the IEEE-inexact exception.
11011   return __builtin_s390_vfisb(__a, 0, 0);
11012 }
11013 #endif
11014 
11015 static inline __ATTRS_o_ai __vector double
11016 vec_rint(__vector double __a) {
11017   // vec_rint may trigger the IEEE-inexact exception.
11018   return __builtin_s390_vfidb(__a, 0, 0);
11019 }
11020 
11021 /*-- vec_round --------------------------------------------------------------*/
11022 
11023 #if __ARCH__ >= 12
11024 static inline __ATTRS_o_ai __vector float
11025 vec_round(__vector float __a) {
11026   return __builtin_s390_vfisb(__a, 4, 4);
11027 }
11028 #endif
11029 
11030 static inline __ATTRS_o_ai __vector double
11031 vec_round(__vector double __a) {
11032   return __builtin_s390_vfidb(__a, 4, 4);
11033 }
11034 
11035 /*-- vec_fp_test_data_class -------------------------------------------------*/
11036 
11037 #if __ARCH__ >= 12
11038 extern __ATTRS_o __vector __bool int
11039 vec_fp_test_data_class(__vector float __a, int __b, int *__c)
11040   __constant_range(__b, 0, 4095);
11041 
11042 extern __ATTRS_o __vector __bool long long
11043 vec_fp_test_data_class(__vector double __a, int __b, int *__c)
11044   __constant_range(__b, 0, 4095);
11045 
11046 #define vec_fp_test_data_class(X, Y, Z) \
11047   ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
11048    __extension__ ({ \
11049      __vector unsigned char __res; \
11050      __vector unsigned char __x = (__vector unsigned char)(X); \
11051      int *__z = (Z); \
11052      switch (sizeof ((X)[0])) { \
11053      case 4:  __res = (__vector unsigned char) \
11054                       __builtin_s390_vftcisb((__vector float)__x, (Y), __z); \
11055               break; \
11056      default: __res = (__vector unsigned char) \
11057                       __builtin_s390_vftcidb((__vector double)__x, (Y), __z); \
11058               break; \
11059      } __res; }))
11060 #else
11061 #define vec_fp_test_data_class(X, Y, Z) \
11062   ((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
11063 #endif
11064 
11065 #define __VEC_CLASS_FP_ZERO_P (1 << 11)
11066 #define __VEC_CLASS_FP_ZERO_N (1 << 10)
11067 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
11068 #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
11069 #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
11070 #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
11071                                __VEC_CLASS_FP_NORMAL_N)
11072 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
11073 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
11074 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
11075                                   __VEC_CLASS_FP_SUBNORMAL_N)
11076 #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
11077 #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
11078 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
11079                                  __VEC_CLASS_FP_INFINITY_N)
11080 #define __VEC_CLASS_FP_QNAN_P (1 << 3)
11081 #define __VEC_CLASS_FP_QNAN_N (1 << 2)
11082 #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
11083 #define __VEC_CLASS_FP_SNAN_P (1 << 1)
11084 #define __VEC_CLASS_FP_SNAN_N (1 << 0)
11085 #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
11086 #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
11087 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
11088                                    __VEC_CLASS_FP_SUBNORMAL | \
11089                                    __VEC_CLASS_FP_ZERO | \
11090                                    __VEC_CLASS_FP_INFINITY)
11091 
11092 /*-- vec_extend_to_fp32_hi --------------------------------------------------*/
11093 
11094 #if __ARCH__ >= 14
11095 #define vec_extend_to_fp32_hi(X, W) \
11096   ((__vector float)__builtin_s390_vclfnhs((X), (W)));
11097 #endif
11098 
11099 /*-- vec_extend_to_fp32_hi --------------------------------------------------*/
11100 
11101 #if __ARCH__ >= 14
11102 #define vec_extend_to_fp32_lo(X, W) \
11103   ((__vector float)__builtin_s390_vclfnls((X), (W)));
11104 #endif
11105 
11106 /*-- vec_round_from_fp32 ----------------------------------------------------*/
11107 
11108 #if __ARCH__ >= 14
11109 #define vec_round_from_fp32(X, Y, W) \
11110   ((__vector unsigned short)__builtin_s390_vcrnfs((X), (Y), (W)));
11111 #endif
11112 
11113 /*-- vec_convert_to_fp16 ----------------------------------------------------*/
11114 
11115 #if __ARCH__ >= 14
11116 #define vec_convert_to_fp16(X, W) \
11117   ((__vector unsigned short)__builtin_s390_vcfn((X), (W)));
11118 #endif
11119 
11120 /*-- vec_convert_from_fp16 --------------------------------------------------*/
11121 
11122 #if __ARCH__ >= 14
11123 #define vec_convert_from_fp16(X, W) \
11124   ((__vector unsigned short)__builtin_s390_vcnf((X), (W)));
11125 #endif
11126 
11127 /*-- vec_cp_until_zero ------------------------------------------------------*/
11128 
11129 static inline __ATTRS_o_ai __vector signed char
11130 vec_cp_until_zero(__vector signed char __a) {
11131   return ((__vector signed char)
11132           __builtin_s390_vistrb((__vector unsigned char)__a));
11133 }
11134 
11135 static inline __ATTRS_o_ai __vector __bool char
11136 vec_cp_until_zero(__vector __bool char __a) {
11137   return ((__vector __bool char)
11138           __builtin_s390_vistrb((__vector unsigned char)__a));
11139 }
11140 
11141 static inline __ATTRS_o_ai __vector unsigned char
11142 vec_cp_until_zero(__vector unsigned char __a) {
11143   return __builtin_s390_vistrb(__a);
11144 }
11145 
11146 static inline __ATTRS_o_ai __vector signed short
11147 vec_cp_until_zero(__vector signed short __a) {
11148   return ((__vector signed short)
11149           __builtin_s390_vistrh((__vector unsigned short)__a));
11150 }
11151 
11152 static inline __ATTRS_o_ai __vector __bool short
11153 vec_cp_until_zero(__vector __bool short __a) {
11154   return ((__vector __bool short)
11155           __builtin_s390_vistrh((__vector unsigned short)__a));
11156 }
11157 
11158 static inline __ATTRS_o_ai __vector unsigned short
11159 vec_cp_until_zero(__vector unsigned short __a) {
11160   return __builtin_s390_vistrh(__a);
11161 }
11162 
11163 static inline __ATTRS_o_ai __vector signed int
11164 vec_cp_until_zero(__vector signed int __a) {
11165   return ((__vector signed int)
11166           __builtin_s390_vistrf((__vector unsigned int)__a));
11167 }
11168 
11169 static inline __ATTRS_o_ai __vector __bool int
11170 vec_cp_until_zero(__vector __bool int __a) {
11171   return ((__vector __bool int)
11172           __builtin_s390_vistrf((__vector unsigned int)__a));
11173 }
11174 
11175 static inline __ATTRS_o_ai __vector unsigned int
11176 vec_cp_until_zero(__vector unsigned int __a) {
11177   return __builtin_s390_vistrf(__a);
11178 }
11179 
11180 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
11181 
11182 static inline __ATTRS_o_ai __vector signed char
11183 vec_cp_until_zero_cc(__vector signed char __a, int *__cc) {
11184   return (__vector signed char)
11185     __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
11186 }
11187 
11188 static inline __ATTRS_o_ai __vector __bool char
11189 vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) {
11190   return (__vector __bool char)
11191     __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
11192 }
11193 
11194 static inline __ATTRS_o_ai __vector unsigned char
11195 vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) {
11196   return __builtin_s390_vistrbs(__a, __cc);
11197 }
11198 
11199 static inline __ATTRS_o_ai __vector signed short
11200 vec_cp_until_zero_cc(__vector signed short __a, int *__cc) {
11201   return (__vector signed short)
11202     __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
11203 }
11204 
11205 static inline __ATTRS_o_ai __vector __bool short
11206 vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) {
11207   return (__vector __bool short)
11208     __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
11209 }
11210 
11211 static inline __ATTRS_o_ai __vector unsigned short
11212 vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) {
11213   return __builtin_s390_vistrhs(__a, __cc);
11214 }
11215 
11216 static inline __ATTRS_o_ai __vector signed int
11217 vec_cp_until_zero_cc(__vector signed int __a, int *__cc) {
11218   return (__vector signed int)
11219     __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
11220 }
11221 
11222 static inline __ATTRS_o_ai __vector __bool int
11223 vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) {
11224   return (__vector __bool int)
11225     __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
11226 }
11227 
11228 static inline __ATTRS_o_ai __vector unsigned int
11229 vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) {
11230   return __builtin_s390_vistrfs(__a, __cc);
11231 }
11232 
11233 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
11234 
11235 static inline __ATTRS_o_ai __vector signed char
11236 vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) {
11237   return (__vector signed char)
11238     __builtin_s390_vfeeb((__vector unsigned char)__a,
11239                          (__vector unsigned char)__b);
11240 }
11241 
11242 static inline __ATTRS_o_ai __vector unsigned char
11243 vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) {
11244   return __builtin_s390_vfeeb((__vector unsigned char)__a,
11245                               (__vector unsigned char)__b);
11246 }
11247 
11248 static inline __ATTRS_o_ai __vector unsigned char
11249 vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) {
11250   return __builtin_s390_vfeeb(__a, __b);
11251 }
11252 
11253 static inline __ATTRS_o_ai __vector signed short
11254 vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) {
11255   return (__vector signed short)
11256     __builtin_s390_vfeeh((__vector unsigned short)__a,
11257                          (__vector unsigned short)__b);
11258 }
11259 
11260 static inline __ATTRS_o_ai __vector unsigned short
11261 vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) {
11262   return __builtin_s390_vfeeh((__vector unsigned short)__a,
11263                               (__vector unsigned short)__b);
11264 }
11265 
11266 static inline __ATTRS_o_ai __vector unsigned short
11267 vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) {
11268   return __builtin_s390_vfeeh(__a, __b);
11269 }
11270 
11271 static inline __ATTRS_o_ai __vector signed int
11272 vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) {
11273   return (__vector signed int)
11274     __builtin_s390_vfeef((__vector unsigned int)__a,
11275                          (__vector unsigned int)__b);
11276 }
11277 
11278 static inline __ATTRS_o_ai __vector unsigned int
11279 vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) {
11280   return __builtin_s390_vfeef((__vector unsigned int)__a,
11281                               (__vector unsigned int)__b);
11282 }
11283 
11284 static inline __ATTRS_o_ai __vector unsigned int
11285 vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) {
11286   return __builtin_s390_vfeef(__a, __b);
11287 }
11288 
11289 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
11290 
11291 static inline __ATTRS_o_ai __vector signed char
11292 vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
11293   return (__vector signed char)
11294     __builtin_s390_vfeebs((__vector unsigned char)__a,
11295                           (__vector unsigned char)__b, __cc);
11296 }
11297 
11298 static inline __ATTRS_o_ai __vector unsigned char
11299 vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
11300   return __builtin_s390_vfeebs((__vector unsigned char)__a,
11301                                (__vector unsigned char)__b, __cc);
11302 }
11303 
11304 static inline __ATTRS_o_ai __vector unsigned char
11305 vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11306                  int *__cc) {
11307   return __builtin_s390_vfeebs(__a, __b, __cc);
11308 }
11309 
11310 static inline __ATTRS_o_ai __vector signed short
11311 vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b,
11312                  int *__cc) {
11313   return (__vector signed short)
11314     __builtin_s390_vfeehs((__vector unsigned short)__a,
11315                           (__vector unsigned short)__b, __cc);
11316 }
11317 
11318 static inline __ATTRS_o_ai __vector unsigned short
11319 vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) {
11320   return __builtin_s390_vfeehs((__vector unsigned short)__a,
11321                                (__vector unsigned short)__b, __cc);
11322 }
11323 
11324 static inline __ATTRS_o_ai __vector unsigned short
11325 vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11326                  int *__cc) {
11327   return __builtin_s390_vfeehs(__a, __b, __cc);
11328 }
11329 
11330 static inline __ATTRS_o_ai __vector signed int
11331 vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
11332   return (__vector signed int)
11333     __builtin_s390_vfeefs((__vector unsigned int)__a,
11334                           (__vector unsigned int)__b, __cc);
11335 }
11336 
11337 static inline __ATTRS_o_ai __vector unsigned int
11338 vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
11339   return __builtin_s390_vfeefs((__vector unsigned int)__a,
11340                                (__vector unsigned int)__b, __cc);
11341 }
11342 
11343 static inline __ATTRS_o_ai __vector unsigned int
11344 vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11345                  int *__cc) {
11346   return __builtin_s390_vfeefs(__a, __b, __cc);
11347 }
11348 
11349 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
11350 
11351 static inline __ATTRS_o_ai __vector signed char
11352 vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) {
11353   return (__vector signed char)
11354     __builtin_s390_vfeezb((__vector unsigned char)__a,
11355                           (__vector unsigned char)__b);
11356 }
11357 
11358 static inline __ATTRS_o_ai __vector unsigned char
11359 vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
11360   return __builtin_s390_vfeezb((__vector unsigned char)__a,
11361                                (__vector unsigned char)__b);
11362 }
11363 
11364 static inline __ATTRS_o_ai __vector unsigned char
11365 vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
11366   return __builtin_s390_vfeezb(__a, __b);
11367 }
11368 
11369 static inline __ATTRS_o_ai __vector signed short
11370 vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) {
11371   return (__vector signed short)
11372     __builtin_s390_vfeezh((__vector unsigned short)__a,
11373                           (__vector unsigned short)__b);
11374 }
11375 
11376 static inline __ATTRS_o_ai __vector unsigned short
11377 vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
11378   return __builtin_s390_vfeezh((__vector unsigned short)__a,
11379                                (__vector unsigned short)__b);
11380 }
11381 
11382 static inline __ATTRS_o_ai __vector unsigned short
11383 vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
11384   return __builtin_s390_vfeezh(__a, __b);
11385 }
11386 
11387 static inline __ATTRS_o_ai __vector signed int
11388 vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) {
11389   return (__vector signed int)
11390     __builtin_s390_vfeezf((__vector unsigned int)__a,
11391                           (__vector unsigned int)__b);
11392 }
11393 
11394 static inline __ATTRS_o_ai __vector unsigned int
11395 vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
11396   return __builtin_s390_vfeezf((__vector unsigned int)__a,
11397                                (__vector unsigned int)__b);
11398 }
11399 
11400 static inline __ATTRS_o_ai __vector unsigned int
11401 vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
11402   return __builtin_s390_vfeezf(__a, __b);
11403 }
11404 
11405 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
11406 
11407 static inline __ATTRS_o_ai __vector signed char
11408 vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
11409                       int *__cc) {
11410   return (__vector signed char)
11411     __builtin_s390_vfeezbs((__vector unsigned char)__a,
11412                            (__vector unsigned char)__b, __cc);
11413 }
11414 
11415 static inline __ATTRS_o_ai __vector unsigned char
11416 vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
11417                       int *__cc) {
11418   return __builtin_s390_vfeezbs((__vector unsigned char)__a,
11419                                 (__vector unsigned char)__b, __cc);
11420 }
11421 
11422 static inline __ATTRS_o_ai __vector unsigned char
11423 vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11424                       int *__cc) {
11425   return __builtin_s390_vfeezbs(__a, __b, __cc);
11426 }
11427 
11428 static inline __ATTRS_o_ai __vector signed short
11429 vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
11430                       int *__cc) {
11431   return (__vector signed short)
11432     __builtin_s390_vfeezhs((__vector unsigned short)__a,
11433                            (__vector unsigned short)__b, __cc);
11434 }
11435 
11436 static inline __ATTRS_o_ai __vector unsigned short
11437 vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
11438                       int *__cc) {
11439   return __builtin_s390_vfeezhs((__vector unsigned short)__a,
11440                                 (__vector unsigned short)__b, __cc);
11441 }
11442 
11443 static inline __ATTRS_o_ai __vector unsigned short
11444 vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11445                       int *__cc) {
11446   return __builtin_s390_vfeezhs(__a, __b, __cc);
11447 }
11448 
11449 static inline __ATTRS_o_ai __vector signed int
11450 vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
11451                       int *__cc) {
11452   return (__vector signed int)
11453     __builtin_s390_vfeezfs((__vector unsigned int)__a,
11454                            (__vector unsigned int)__b, __cc);
11455 }
11456 
11457 static inline __ATTRS_o_ai __vector unsigned int
11458 vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
11459                       int *__cc) {
11460   return __builtin_s390_vfeezfs((__vector unsigned int)__a,
11461                                 (__vector unsigned int)__b, __cc);
11462 }
11463 
11464 static inline __ATTRS_o_ai __vector unsigned int
11465 vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11466                       int *__cc) {
11467   return __builtin_s390_vfeezfs(__a, __b, __cc);
11468 }
11469 
11470 /*-- vec_cmpne_idx ----------------------------------------------------------*/
11471 
11472 static inline __ATTRS_o_ai __vector signed char
11473 vec_cmpne_idx(__vector signed char __a, __vector signed char __b) {
11474   return (__vector signed char)
11475     __builtin_s390_vfeneb((__vector unsigned char)__a,
11476                           (__vector unsigned char)__b);
11477 }
11478 
11479 static inline __ATTRS_o_ai __vector unsigned char
11480 vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) {
11481   return __builtin_s390_vfeneb((__vector unsigned char)__a,
11482                                (__vector unsigned char)__b);
11483 }
11484 
11485 static inline __ATTRS_o_ai __vector unsigned char
11486 vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) {
11487   return __builtin_s390_vfeneb(__a, __b);
11488 }
11489 
11490 static inline __ATTRS_o_ai __vector signed short
11491 vec_cmpne_idx(__vector signed short __a, __vector signed short __b) {
11492   return (__vector signed short)
11493     __builtin_s390_vfeneh((__vector unsigned short)__a,
11494                           (__vector unsigned short)__b);
11495 }
11496 
11497 static inline __ATTRS_o_ai __vector unsigned short
11498 vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) {
11499   return __builtin_s390_vfeneh((__vector unsigned short)__a,
11500                                (__vector unsigned short)__b);
11501 }
11502 
11503 static inline __ATTRS_o_ai __vector unsigned short
11504 vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) {
11505   return __builtin_s390_vfeneh(__a, __b);
11506 }
11507 
11508 static inline __ATTRS_o_ai __vector signed int
11509 vec_cmpne_idx(__vector signed int __a, __vector signed int __b) {
11510   return (__vector signed int)
11511     __builtin_s390_vfenef((__vector unsigned int)__a,
11512                           (__vector unsigned int)__b);
11513 }
11514 
11515 static inline __ATTRS_o_ai __vector unsigned int
11516 vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) {
11517   return __builtin_s390_vfenef((__vector unsigned int)__a,
11518                                (__vector unsigned int)__b);
11519 }
11520 
11521 static inline __ATTRS_o_ai __vector unsigned int
11522 vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) {
11523   return __builtin_s390_vfenef(__a, __b);
11524 }
11525 
11526 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
11527 
11528 static inline __ATTRS_o_ai __vector signed char
11529 vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
11530   return (__vector signed char)
11531     __builtin_s390_vfenebs((__vector unsigned char)__a,
11532                            (__vector unsigned char)__b, __cc);
11533 }
11534 
11535 static inline __ATTRS_o_ai __vector unsigned char
11536 vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
11537   return __builtin_s390_vfenebs((__vector unsigned char)__a,
11538                                 (__vector unsigned char)__b, __cc);
11539 }
11540 
11541 static inline __ATTRS_o_ai __vector unsigned char
11542 vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11543                  int *__cc) {
11544   return __builtin_s390_vfenebs(__a, __b, __cc);
11545 }
11546 
11547 static inline __ATTRS_o_ai __vector signed short
11548 vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b,
11549                  int *__cc) {
11550   return (__vector signed short)
11551     __builtin_s390_vfenehs((__vector unsigned short)__a,
11552                            (__vector unsigned short)__b, __cc);
11553 }
11554 
11555 static inline __ATTRS_o_ai __vector unsigned short
11556 vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b,
11557                  int *__cc) {
11558   return __builtin_s390_vfenehs((__vector unsigned short)__a,
11559                                 (__vector unsigned short)__b, __cc);
11560 }
11561 
11562 static inline __ATTRS_o_ai __vector unsigned short
11563 vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11564                  int *__cc) {
11565   return __builtin_s390_vfenehs(__a, __b, __cc);
11566 }
11567 
11568 static inline __ATTRS_o_ai __vector signed int
11569 vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
11570   return (__vector signed int)
11571     __builtin_s390_vfenefs((__vector unsigned int)__a,
11572                            (__vector unsigned int)__b, __cc);
11573 }
11574 
11575 static inline __ATTRS_o_ai __vector unsigned int
11576 vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
11577   return __builtin_s390_vfenefs((__vector unsigned int)__a,
11578                                 (__vector unsigned int)__b, __cc);
11579 }
11580 
11581 static inline __ATTRS_o_ai __vector unsigned int
11582 vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11583                  int *__cc) {
11584   return __builtin_s390_vfenefs(__a, __b, __cc);
11585 }
11586 
11587 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
11588 
11589 static inline __ATTRS_o_ai __vector signed char
11590 vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) {
11591   return (__vector signed char)
11592     __builtin_s390_vfenezb((__vector unsigned char)__a,
11593                            (__vector unsigned char)__b);
11594 }
11595 
11596 static inline __ATTRS_o_ai __vector unsigned char
11597 vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
11598   return __builtin_s390_vfenezb((__vector unsigned char)__a,
11599                                 (__vector unsigned char)__b);
11600 }
11601 
11602 static inline __ATTRS_o_ai __vector unsigned char
11603 vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
11604   return __builtin_s390_vfenezb(__a, __b);
11605 }
11606 
11607 static inline __ATTRS_o_ai __vector signed short
11608 vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) {
11609   return (__vector signed short)
11610     __builtin_s390_vfenezh((__vector unsigned short)__a,
11611                            (__vector unsigned short)__b);
11612 }
11613 
11614 static inline __ATTRS_o_ai __vector unsigned short
11615 vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
11616   return __builtin_s390_vfenezh((__vector unsigned short)__a,
11617                                 (__vector unsigned short)__b);
11618 }
11619 
11620 static inline __ATTRS_o_ai __vector unsigned short
11621 vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
11622   return __builtin_s390_vfenezh(__a, __b);
11623 }
11624 
11625 static inline __ATTRS_o_ai __vector signed int
11626 vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) {
11627   return (__vector signed int)
11628     __builtin_s390_vfenezf((__vector unsigned int)__a,
11629                            (__vector unsigned int)__b);
11630 }
11631 
11632 static inline __ATTRS_o_ai __vector unsigned int
11633 vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
11634   return __builtin_s390_vfenezf((__vector unsigned int)__a,
11635                                 (__vector unsigned int)__b);
11636 }
11637 
11638 static inline __ATTRS_o_ai __vector unsigned int
11639 vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
11640   return __builtin_s390_vfenezf(__a, __b);
11641 }
11642 
11643 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
11644 
11645 static inline __ATTRS_o_ai __vector signed char
11646 vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
11647                       int *__cc) {
11648   return (__vector signed char)
11649     __builtin_s390_vfenezbs((__vector unsigned char)__a,
11650                             (__vector unsigned char)__b, __cc);
11651 }
11652 
11653 static inline __ATTRS_o_ai __vector unsigned char
11654 vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
11655                       int *__cc) {
11656   return __builtin_s390_vfenezbs((__vector unsigned char)__a,
11657                                  (__vector unsigned char)__b, __cc);
11658 }
11659 
11660 static inline __ATTRS_o_ai __vector unsigned char
11661 vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11662                       int *__cc) {
11663   return __builtin_s390_vfenezbs(__a, __b, __cc);
11664 }
11665 
11666 static inline __ATTRS_o_ai __vector signed short
11667 vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
11668                       int *__cc) {
11669   return (__vector signed short)
11670     __builtin_s390_vfenezhs((__vector unsigned short)__a,
11671                             (__vector unsigned short)__b, __cc);
11672 }
11673 
11674 static inline __ATTRS_o_ai __vector unsigned short
11675 vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
11676                       int *__cc) {
11677   return __builtin_s390_vfenezhs((__vector unsigned short)__a,
11678                                  (__vector unsigned short)__b, __cc);
11679 }
11680 
11681 static inline __ATTRS_o_ai __vector unsigned short
11682 vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11683                       int *__cc) {
11684   return __builtin_s390_vfenezhs(__a, __b, __cc);
11685 }
11686 
11687 static inline __ATTRS_o_ai __vector signed int
11688 vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
11689                       int *__cc) {
11690   return (__vector signed int)
11691     __builtin_s390_vfenezfs((__vector unsigned int)__a,
11692                             (__vector unsigned int)__b, __cc);
11693 }
11694 
11695 static inline __ATTRS_o_ai __vector unsigned int
11696 vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
11697                       int *__cc) {
11698   return __builtin_s390_vfenezfs((__vector unsigned int)__a,
11699                                  (__vector unsigned int)__b, __cc);
11700 }
11701 
11702 static inline __ATTRS_o_ai __vector unsigned int
11703 vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11704                       int *__cc) {
11705   return __builtin_s390_vfenezfs(__a, __b, __cc);
11706 }
11707 
11708 /*-- vec_cmprg --------------------------------------------------------------*/
11709 
11710 static inline __ATTRS_o_ai __vector __bool char
11711 vec_cmprg(__vector unsigned char __a, __vector unsigned char __b,
11712           __vector unsigned char __c) {
11713   return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
11714 }
11715 
11716 static inline __ATTRS_o_ai __vector __bool short
11717 vec_cmprg(__vector unsigned short __a, __vector unsigned short __b,
11718           __vector unsigned short __c) {
11719   return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
11720 }
11721 
11722 static inline __ATTRS_o_ai __vector __bool int
11723 vec_cmprg(__vector unsigned int __a, __vector unsigned int __b,
11724           __vector unsigned int __c) {
11725   return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
11726 }
11727 
11728 /*-- vec_cmprg_cc -----------------------------------------------------------*/
11729 
11730 static inline __ATTRS_o_ai __vector __bool char
11731 vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b,
11732              __vector unsigned char __c, int *__cc) {
11733   return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
11734 }
11735 
11736 static inline __ATTRS_o_ai __vector __bool short
11737 vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b,
11738              __vector unsigned short __c, int *__cc) {
11739   return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
11740 }
11741 
11742 static inline __ATTRS_o_ai __vector __bool int
11743 vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b,
11744              __vector unsigned int __c, int *__cc) {
11745   return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
11746 }
11747 
11748 /*-- vec_cmprg_idx ----------------------------------------------------------*/
11749 
11750 static inline __ATTRS_o_ai __vector unsigned char
11751 vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b,
11752               __vector unsigned char __c) {
11753   return __builtin_s390_vstrcb(__a, __b, __c, 0);
11754 }
11755 
11756 static inline __ATTRS_o_ai __vector unsigned short
11757 vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b,
11758               __vector unsigned short __c) {
11759   return __builtin_s390_vstrch(__a, __b, __c, 0);
11760 }
11761 
11762 static inline __ATTRS_o_ai __vector unsigned int
11763 vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b,
11764               __vector unsigned int __c) {
11765   return __builtin_s390_vstrcf(__a, __b, __c, 0);
11766 }
11767 
11768 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
11769 
11770 static inline __ATTRS_o_ai __vector unsigned char
11771 vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11772                  __vector unsigned char __c, int *__cc) {
11773   return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
11774 }
11775 
11776 static inline __ATTRS_o_ai __vector unsigned short
11777 vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11778                  __vector unsigned short __c, int *__cc) {
11779   return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
11780 }
11781 
11782 static inline __ATTRS_o_ai __vector unsigned int
11783 vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11784                  __vector unsigned int __c, int *__cc) {
11785   return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
11786 }
11787 
11788 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
11789 
11790 static inline __ATTRS_o_ai __vector unsigned char
11791 vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
11792                    __vector unsigned char __c) {
11793   return __builtin_s390_vstrczb(__a, __b, __c, 0);
11794 }
11795 
11796 static inline __ATTRS_o_ai __vector unsigned short
11797 vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
11798                    __vector unsigned short __c) {
11799   return __builtin_s390_vstrczh(__a, __b, __c, 0);
11800 }
11801 
11802 static inline __ATTRS_o_ai __vector unsigned int
11803 vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
11804                    __vector unsigned int __c) {
11805   return __builtin_s390_vstrczf(__a, __b, __c, 0);
11806 }
11807 
11808 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
11809 
11810 static inline __ATTRS_o_ai __vector unsigned char
11811 vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11812                       __vector unsigned char __c, int *__cc) {
11813   return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
11814 }
11815 
11816 static inline __ATTRS_o_ai __vector unsigned short
11817 vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11818                       __vector unsigned short __c, int *__cc) {
11819   return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
11820 }
11821 
11822 static inline __ATTRS_o_ai __vector unsigned int
11823 vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11824                       __vector unsigned int __c, int *__cc) {
11825   return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
11826 }
11827 
11828 /*-- vec_cmpnrg -------------------------------------------------------------*/
11829 
11830 static inline __ATTRS_o_ai __vector __bool char
11831 vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b,
11832            __vector unsigned char __c) {
11833   return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
11834 }
11835 
11836 static inline __ATTRS_o_ai __vector __bool short
11837 vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b,
11838            __vector unsigned short __c) {
11839   return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
11840 }
11841 
11842 static inline __ATTRS_o_ai __vector __bool int
11843 vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b,
11844            __vector unsigned int __c) {
11845   return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
11846 }
11847 
11848 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
11849 
11850 static inline __ATTRS_o_ai __vector __bool char
11851 vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b,
11852               __vector unsigned char __c, int *__cc) {
11853   return (__vector __bool char)
11854     __builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
11855 }
11856 
11857 static inline __ATTRS_o_ai __vector __bool short
11858 vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b,
11859               __vector unsigned short __c, int *__cc) {
11860   return (__vector __bool short)
11861     __builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
11862 }
11863 
11864 static inline __ATTRS_o_ai __vector __bool int
11865 vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b,
11866               __vector unsigned int __c, int *__cc) {
11867   return (__vector __bool int)
11868     __builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
11869 }
11870 
11871 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
11872 
11873 static inline __ATTRS_o_ai __vector unsigned char
11874 vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b,
11875                __vector unsigned char __c) {
11876   return __builtin_s390_vstrcb(__a, __b, __c, 8);
11877 }
11878 
11879 static inline __ATTRS_o_ai __vector unsigned short
11880 vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b,
11881                __vector unsigned short __c) {
11882   return __builtin_s390_vstrch(__a, __b, __c, 8);
11883 }
11884 
11885 static inline __ATTRS_o_ai __vector unsigned int
11886 vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b,
11887                __vector unsigned int __c) {
11888   return __builtin_s390_vstrcf(__a, __b, __c, 8);
11889 }
11890 
11891 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
11892 
11893 static inline __ATTRS_o_ai __vector unsigned char
11894 vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11895                   __vector unsigned char __c, int *__cc) {
11896   return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
11897 }
11898 
11899 static inline __ATTRS_o_ai __vector unsigned short
11900 vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11901                   __vector unsigned short __c, int *__cc) {
11902   return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
11903 }
11904 
11905 static inline __ATTRS_o_ai __vector unsigned int
11906 vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11907                   __vector unsigned int __c, int *__cc) {
11908   return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
11909 }
11910 
11911 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
11912 
11913 static inline __ATTRS_o_ai __vector unsigned char
11914 vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
11915                     __vector unsigned char __c) {
11916   return __builtin_s390_vstrczb(__a, __b, __c, 8);
11917 }
11918 
11919 static inline __ATTRS_o_ai __vector unsigned short
11920 vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
11921                     __vector unsigned short __c) {
11922   return __builtin_s390_vstrczh(__a, __b, __c, 8);
11923 }
11924 
11925 static inline __ATTRS_o_ai __vector unsigned int
11926 vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
11927                     __vector unsigned int __c) {
11928   return __builtin_s390_vstrczf(__a, __b, __c, 8);
11929 }
11930 
11931 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
11932 
11933 static inline __ATTRS_o_ai __vector unsigned char
11934 vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,
11935                        __vector unsigned char __b,
11936                        __vector unsigned char __c, int *__cc) {
11937   return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
11938 }
11939 
11940 static inline __ATTRS_o_ai __vector unsigned short
11941 vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,
11942                        __vector unsigned short __b,
11943                        __vector unsigned short __c, int *__cc) {
11944   return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
11945 }
11946 
11947 static inline __ATTRS_o_ai __vector unsigned int
11948 vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,
11949                        __vector unsigned int __b,
11950                        __vector unsigned int __c, int *__cc) {
11951   return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
11952 }
11953 
11954 /*-- vec_find_any_eq --------------------------------------------------------*/
11955 
11956 static inline __ATTRS_o_ai __vector __bool char
11957 vec_find_any_eq(__vector signed char __a, __vector signed char __b) {
11958   return (__vector __bool char)
11959     __builtin_s390_vfaeb((__vector unsigned char)__a,
11960                          (__vector unsigned char)__b, 4);
11961 }
11962 
11963 static inline __ATTRS_o_ai __vector __bool char
11964 vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) {
11965   return (__vector __bool char)
11966     __builtin_s390_vfaeb((__vector unsigned char)__a,
11967                          (__vector unsigned char)__b, 4);
11968 }
11969 
11970 static inline __ATTRS_o_ai __vector __bool char
11971 vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
11972   return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4);
11973 }
11974 
11975 static inline __ATTRS_o_ai __vector __bool short
11976 vec_find_any_eq(__vector signed short __a, __vector signed short __b) {
11977   return (__vector __bool short)
11978     __builtin_s390_vfaeh((__vector unsigned short)__a,
11979                          (__vector unsigned short)__b, 4);
11980 }
11981 
11982 static inline __ATTRS_o_ai __vector __bool short
11983 vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) {
11984   return (__vector __bool short)
11985     __builtin_s390_vfaeh((__vector unsigned short)__a,
11986                          (__vector unsigned short)__b, 4);
11987 }
11988 
11989 static inline __ATTRS_o_ai __vector __bool short
11990 vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
11991   return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4);
11992 }
11993 
11994 static inline __ATTRS_o_ai __vector __bool int
11995 vec_find_any_eq(__vector signed int __a, __vector signed int __b) {
11996   return (__vector __bool int)
11997     __builtin_s390_vfaef((__vector unsigned int)__a,
11998                          (__vector unsigned int)__b, 4);
11999 }
12000 
12001 static inline __ATTRS_o_ai __vector __bool int
12002 vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) {
12003   return (__vector __bool int)
12004     __builtin_s390_vfaef((__vector unsigned int)__a,
12005                          (__vector unsigned int)__b, 4);
12006 }
12007 
12008 static inline __ATTRS_o_ai __vector __bool int
12009 vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
12010   return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4);
12011 }
12012 
12013 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
12014 
12015 static inline __ATTRS_o_ai __vector __bool char
12016 vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b,
12017                    int *__cc) {
12018   return (__vector __bool char)
12019     __builtin_s390_vfaebs((__vector unsigned char)__a,
12020                           (__vector unsigned char)__b, 4, __cc);
12021 }
12022 
12023 static inline __ATTRS_o_ai __vector __bool char
12024 vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b,
12025                    int *__cc) {
12026   return (__vector __bool char)
12027     __builtin_s390_vfaebs((__vector unsigned char)__a,
12028                           (__vector unsigned char)__b, 4, __cc);
12029 }
12030 
12031 static inline __ATTRS_o_ai __vector __bool char
12032 vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b,
12033                    int *__cc) {
12034   return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
12035 }
12036 
12037 static inline __ATTRS_o_ai __vector __bool short
12038 vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b,
12039                    int *__cc) {
12040   return (__vector __bool short)
12041     __builtin_s390_vfaehs((__vector unsigned short)__a,
12042                           (__vector unsigned short)__b, 4, __cc);
12043 }
12044 
12045 static inline __ATTRS_o_ai __vector __bool short
12046 vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b,
12047                    int *__cc) {
12048   return (__vector __bool short)
12049     __builtin_s390_vfaehs((__vector unsigned short)__a,
12050                           (__vector unsigned short)__b, 4, __cc);
12051 }
12052 
12053 static inline __ATTRS_o_ai __vector __bool short
12054 vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b,
12055                    int *__cc) {
12056   return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
12057 }
12058 
12059 static inline __ATTRS_o_ai __vector __bool int
12060 vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b,
12061                    int *__cc) {
12062   return (__vector __bool int)
12063     __builtin_s390_vfaefs((__vector unsigned int)__a,
12064                           (__vector unsigned int)__b, 4, __cc);
12065 }
12066 
12067 static inline __ATTRS_o_ai __vector __bool int
12068 vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b,
12069                    int *__cc) {
12070   return (__vector __bool int)
12071     __builtin_s390_vfaefs((__vector unsigned int)__a,
12072                           (__vector unsigned int)__b, 4, __cc);
12073 }
12074 
12075 static inline __ATTRS_o_ai __vector __bool int
12076 vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b,
12077                    int *__cc) {
12078   return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
12079 }
12080 
12081 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
12082 
12083 static inline __ATTRS_o_ai __vector signed char
12084 vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) {
12085   return (__vector signed char)
12086     __builtin_s390_vfaeb((__vector unsigned char)__a,
12087                          (__vector unsigned char)__b, 0);
12088 }
12089 
12090 static inline __ATTRS_o_ai __vector unsigned char
12091 vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) {
12092   return __builtin_s390_vfaeb((__vector unsigned char)__a,
12093                               (__vector unsigned char)__b, 0);
12094 }
12095 
12096 static inline __ATTRS_o_ai __vector unsigned char
12097 vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) {
12098   return __builtin_s390_vfaeb(__a, __b, 0);
12099 }
12100 
12101 static inline __ATTRS_o_ai __vector signed short
12102 vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) {
12103   return (__vector signed short)
12104     __builtin_s390_vfaeh((__vector unsigned short)__a,
12105                          (__vector unsigned short)__b, 0);
12106 }
12107 
12108 static inline __ATTRS_o_ai __vector unsigned short
12109 vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) {
12110   return __builtin_s390_vfaeh((__vector unsigned short)__a,
12111                               (__vector unsigned short)__b, 0);
12112 }
12113 
12114 static inline __ATTRS_o_ai __vector unsigned short
12115 vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) {
12116   return __builtin_s390_vfaeh(__a, __b, 0);
12117 }
12118 
12119 static inline __ATTRS_o_ai __vector signed int
12120 vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) {
12121   return (__vector signed int)
12122     __builtin_s390_vfaef((__vector unsigned int)__a,
12123                          (__vector unsigned int)__b, 0);
12124 }
12125 
12126 static inline __ATTRS_o_ai __vector unsigned int
12127 vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) {
12128   return __builtin_s390_vfaef((__vector unsigned int)__a,
12129                               (__vector unsigned int)__b, 0);
12130 }
12131 
12132 static inline __ATTRS_o_ai __vector unsigned int
12133 vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) {
12134   return __builtin_s390_vfaef(__a, __b, 0);
12135 }
12136 
12137 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
12138 
12139 static inline __ATTRS_o_ai __vector signed char
12140 vec_find_any_eq_idx_cc(__vector signed char __a,
12141                        __vector signed char __b, int *__cc) {
12142   return (__vector signed char)
12143     __builtin_s390_vfaebs((__vector unsigned char)__a,
12144                           (__vector unsigned char)__b, 0, __cc);
12145 }
12146 
12147 static inline __ATTRS_o_ai __vector unsigned char
12148 vec_find_any_eq_idx_cc(__vector __bool char __a,
12149                        __vector __bool char __b, int *__cc) {
12150   return __builtin_s390_vfaebs((__vector unsigned char)__a,
12151                                (__vector unsigned char)__b, 0, __cc);
12152 }
12153 
12154 static inline __ATTRS_o_ai __vector unsigned char
12155 vec_find_any_eq_idx_cc(__vector unsigned char __a,
12156                        __vector unsigned char __b, int *__cc) {
12157   return __builtin_s390_vfaebs(__a, __b, 0, __cc);
12158 }
12159 
12160 static inline __ATTRS_o_ai __vector signed short
12161 vec_find_any_eq_idx_cc(__vector signed short __a,
12162                        __vector signed short __b, int *__cc) {
12163   return (__vector signed short)
12164     __builtin_s390_vfaehs((__vector unsigned short)__a,
12165                           (__vector unsigned short)__b, 0, __cc);
12166 }
12167 
12168 static inline __ATTRS_o_ai __vector unsigned short
12169 vec_find_any_eq_idx_cc(__vector __bool short __a,
12170                        __vector __bool short __b, int *__cc) {
12171   return __builtin_s390_vfaehs((__vector unsigned short)__a,
12172                                (__vector unsigned short)__b, 0, __cc);
12173 }
12174 
12175 static inline __ATTRS_o_ai __vector unsigned short
12176 vec_find_any_eq_idx_cc(__vector unsigned short __a,
12177                        __vector unsigned short __b, int *__cc) {
12178   return __builtin_s390_vfaehs(__a, __b, 0, __cc);
12179 }
12180 
12181 static inline __ATTRS_o_ai __vector signed int
12182 vec_find_any_eq_idx_cc(__vector signed int __a,
12183                        __vector signed int __b, int *__cc) {
12184   return (__vector signed int)
12185     __builtin_s390_vfaefs((__vector unsigned int)__a,
12186                           (__vector unsigned int)__b, 0, __cc);
12187 }
12188 
12189 static inline __ATTRS_o_ai __vector unsigned int
12190 vec_find_any_eq_idx_cc(__vector __bool int __a,
12191                        __vector __bool int __b, int *__cc) {
12192   return __builtin_s390_vfaefs((__vector unsigned int)__a,
12193                                (__vector unsigned int)__b, 0, __cc);
12194 }
12195 
12196 static inline __ATTRS_o_ai __vector unsigned int
12197 vec_find_any_eq_idx_cc(__vector unsigned int __a,
12198                        __vector unsigned int __b, int *__cc) {
12199   return __builtin_s390_vfaefs(__a, __b, 0, __cc);
12200 }
12201 
12202 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
12203 
12204 static inline __ATTRS_o_ai __vector signed char
12205 vec_find_any_eq_or_0_idx(__vector signed char __a,
12206                          __vector signed char __b) {
12207   return (__vector signed char)
12208     __builtin_s390_vfaezb((__vector unsigned char)__a,
12209                           (__vector unsigned char)__b, 0);
12210 }
12211 
12212 static inline __ATTRS_o_ai __vector unsigned char
12213 vec_find_any_eq_or_0_idx(__vector __bool char __a,
12214                          __vector __bool char __b) {
12215   return __builtin_s390_vfaezb((__vector unsigned char)__a,
12216                                (__vector unsigned char)__b, 0);
12217 }
12218 
12219 static inline __ATTRS_o_ai __vector unsigned char
12220 vec_find_any_eq_or_0_idx(__vector unsigned char __a,
12221                          __vector unsigned char __b) {
12222   return __builtin_s390_vfaezb(__a, __b, 0);
12223 }
12224 
12225 static inline __ATTRS_o_ai __vector signed short
12226 vec_find_any_eq_or_0_idx(__vector signed short __a,
12227                          __vector signed short __b) {
12228   return (__vector signed short)
12229     __builtin_s390_vfaezh((__vector unsigned short)__a,
12230                           (__vector unsigned short)__b, 0);
12231 }
12232 
12233 static inline __ATTRS_o_ai __vector unsigned short
12234 vec_find_any_eq_or_0_idx(__vector __bool short __a,
12235                          __vector __bool short __b) {
12236   return __builtin_s390_vfaezh((__vector unsigned short)__a,
12237                                (__vector unsigned short)__b, 0);
12238 }
12239 
12240 static inline __ATTRS_o_ai __vector unsigned short
12241 vec_find_any_eq_or_0_idx(__vector unsigned short __a,
12242                          __vector unsigned short __b) {
12243   return __builtin_s390_vfaezh(__a, __b, 0);
12244 }
12245 
12246 static inline __ATTRS_o_ai __vector signed int
12247 vec_find_any_eq_or_0_idx(__vector signed int __a,
12248                          __vector signed int __b) {
12249   return (__vector signed int)
12250     __builtin_s390_vfaezf((__vector unsigned int)__a,
12251                           (__vector unsigned int)__b, 0);
12252 }
12253 
12254 static inline __ATTRS_o_ai __vector unsigned int
12255 vec_find_any_eq_or_0_idx(__vector __bool int __a,
12256                          __vector __bool int __b) {
12257   return __builtin_s390_vfaezf((__vector unsigned int)__a,
12258                                (__vector unsigned int)__b, 0);
12259 }
12260 
12261 static inline __ATTRS_o_ai __vector unsigned int
12262 vec_find_any_eq_or_0_idx(__vector unsigned int __a,
12263                          __vector unsigned int __b) {
12264   return __builtin_s390_vfaezf(__a, __b, 0);
12265 }
12266 
12267 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
12268 
12269 static inline __ATTRS_o_ai __vector signed char
12270 vec_find_any_eq_or_0_idx_cc(__vector signed char __a,
12271                             __vector signed char __b, int *__cc) {
12272   return (__vector signed char)
12273     __builtin_s390_vfaezbs((__vector unsigned char)__a,
12274                            (__vector unsigned char)__b, 0, __cc);
12275 }
12276 
12277 static inline __ATTRS_o_ai __vector unsigned char
12278 vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,
12279                             __vector __bool char __b, int *__cc) {
12280   return __builtin_s390_vfaezbs((__vector unsigned char)__a,
12281                                 (__vector unsigned char)__b, 0, __cc);
12282 }
12283 
12284 static inline __ATTRS_o_ai __vector unsigned char
12285 vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,
12286                             __vector unsigned char __b, int *__cc) {
12287   return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
12288 }
12289 
12290 static inline __ATTRS_o_ai __vector signed short
12291 vec_find_any_eq_or_0_idx_cc(__vector signed short __a,
12292                             __vector signed short __b, int *__cc) {
12293   return (__vector signed short)
12294     __builtin_s390_vfaezhs((__vector unsigned short)__a,
12295                            (__vector unsigned short)__b, 0, __cc);
12296 }
12297 
12298 static inline __ATTRS_o_ai __vector unsigned short
12299 vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,
12300                             __vector __bool short __b, int *__cc) {
12301   return __builtin_s390_vfaezhs((__vector unsigned short)__a,
12302                                 (__vector unsigned short)__b, 0, __cc);
12303 }
12304 
12305 static inline __ATTRS_o_ai __vector unsigned short
12306 vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,
12307                             __vector unsigned short __b, int *__cc) {
12308   return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
12309 }
12310 
12311 static inline __ATTRS_o_ai __vector signed int
12312 vec_find_any_eq_or_0_idx_cc(__vector signed int __a,
12313                             __vector signed int __b, int *__cc) {
12314   return (__vector signed int)
12315     __builtin_s390_vfaezfs((__vector unsigned int)__a,
12316                            (__vector unsigned int)__b, 0, __cc);
12317 }
12318 
12319 static inline __ATTRS_o_ai __vector unsigned int
12320 vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,
12321                             __vector __bool int __b, int *__cc) {
12322   return __builtin_s390_vfaezfs((__vector unsigned int)__a,
12323                                 (__vector unsigned int)__b, 0, __cc);
12324 }
12325 
12326 static inline __ATTRS_o_ai __vector unsigned int
12327 vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,
12328                             __vector unsigned int __b, int *__cc) {
12329   return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
12330 }
12331 
12332 /*-- vec_find_any_ne --------------------------------------------------------*/
12333 
12334 static inline __ATTRS_o_ai __vector __bool char
12335 vec_find_any_ne(__vector signed char __a, __vector signed char __b) {
12336   return (__vector __bool char)
12337     __builtin_s390_vfaeb((__vector unsigned char)__a,
12338                          (__vector unsigned char)__b, 12);
12339 }
12340 
12341 static inline __ATTRS_o_ai __vector __bool char
12342 vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) {
12343   return (__vector __bool char)
12344     __builtin_s390_vfaeb((__vector unsigned char)__a,
12345                          (__vector unsigned char)__b, 12);
12346 }
12347 
12348 static inline __ATTRS_o_ai __vector __bool char
12349 vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
12350   return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12);
12351 }
12352 
12353 static inline __ATTRS_o_ai __vector __bool short
12354 vec_find_any_ne(__vector signed short __a, __vector signed short __b) {
12355   return (__vector __bool short)
12356     __builtin_s390_vfaeh((__vector unsigned short)__a,
12357                          (__vector unsigned short)__b, 12);
12358 }
12359 
12360 static inline __ATTRS_o_ai __vector __bool short
12361 vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) {
12362   return (__vector __bool short)
12363     __builtin_s390_vfaeh((__vector unsigned short)__a,
12364                          (__vector unsigned short)__b, 12);
12365 }
12366 
12367 static inline __ATTRS_o_ai __vector __bool short
12368 vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
12369   return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12);
12370 }
12371 
12372 static inline __ATTRS_o_ai __vector __bool int
12373 vec_find_any_ne(__vector signed int __a, __vector signed int __b) {
12374   return (__vector __bool int)
12375     __builtin_s390_vfaef((__vector unsigned int)__a,
12376                          (__vector unsigned int)__b, 12);
12377 }
12378 
12379 static inline __ATTRS_o_ai __vector __bool int
12380 vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) {
12381   return (__vector __bool int)
12382     __builtin_s390_vfaef((__vector unsigned int)__a,
12383                          (__vector unsigned int)__b, 12);
12384 }
12385 
12386 static inline __ATTRS_o_ai __vector __bool int
12387 vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
12388   return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12);
12389 }
12390 
12391 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
12392 
12393 static inline __ATTRS_o_ai __vector __bool char
12394 vec_find_any_ne_cc(__vector signed char __a,
12395                    __vector signed char __b, int *__cc) {
12396   return (__vector __bool char)
12397     __builtin_s390_vfaebs((__vector unsigned char)__a,
12398                           (__vector unsigned char)__b, 12, __cc);
12399 }
12400 
12401 static inline __ATTRS_o_ai __vector __bool char
12402 vec_find_any_ne_cc(__vector __bool char __a,
12403                    __vector __bool char __b, int *__cc) {
12404   return (__vector __bool char)
12405     __builtin_s390_vfaebs((__vector unsigned char)__a,
12406                           (__vector unsigned char)__b, 12, __cc);
12407 }
12408 
12409 static inline __ATTRS_o_ai __vector __bool char
12410 vec_find_any_ne_cc(__vector unsigned char __a,
12411                    __vector unsigned char __b, int *__cc) {
12412   return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
12413 }
12414 
12415 static inline __ATTRS_o_ai __vector __bool short
12416 vec_find_any_ne_cc(__vector signed short __a,
12417                    __vector signed short __b, int *__cc) {
12418   return (__vector __bool short)
12419     __builtin_s390_vfaehs((__vector unsigned short)__a,
12420                           (__vector unsigned short)__b, 12, __cc);
12421 }
12422 
12423 static inline __ATTRS_o_ai __vector __bool short
12424 vec_find_any_ne_cc(__vector __bool short __a,
12425                    __vector __bool short __b, int *__cc) {
12426   return (__vector __bool short)
12427     __builtin_s390_vfaehs((__vector unsigned short)__a,
12428                           (__vector unsigned short)__b, 12, __cc);
12429 }
12430 
12431 static inline __ATTRS_o_ai __vector __bool short
12432 vec_find_any_ne_cc(__vector unsigned short __a,
12433                    __vector unsigned short __b, int *__cc) {
12434   return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
12435 }
12436 
12437 static inline __ATTRS_o_ai __vector __bool int
12438 vec_find_any_ne_cc(__vector signed int __a,
12439                    __vector signed int __b, int *__cc) {
12440   return (__vector __bool int)
12441     __builtin_s390_vfaefs((__vector unsigned int)__a,
12442                           (__vector unsigned int)__b, 12, __cc);
12443 }
12444 
12445 static inline __ATTRS_o_ai __vector __bool int
12446 vec_find_any_ne_cc(__vector __bool int __a,
12447                    __vector __bool int __b, int *__cc) {
12448   return (__vector __bool int)
12449     __builtin_s390_vfaefs((__vector unsigned int)__a,
12450                           (__vector unsigned int)__b, 12, __cc);
12451 }
12452 
12453 static inline __ATTRS_o_ai __vector __bool int
12454 vec_find_any_ne_cc(__vector unsigned int __a,
12455                    __vector unsigned int __b, int *__cc) {
12456   return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
12457 }
12458 
12459 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
12460 
12461 static inline __ATTRS_o_ai __vector signed char
12462 vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) {
12463   return (__vector signed char)
12464     __builtin_s390_vfaeb((__vector unsigned char)__a,
12465                          (__vector unsigned char)__b, 8);
12466 }
12467 
12468 static inline __ATTRS_o_ai __vector unsigned char
12469 vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) {
12470   return __builtin_s390_vfaeb((__vector unsigned char)__a,
12471                               (__vector unsigned char)__b, 8);
12472 }
12473 
12474 static inline __ATTRS_o_ai __vector unsigned char
12475 vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) {
12476   return __builtin_s390_vfaeb(__a, __b, 8);
12477 }
12478 
12479 static inline __ATTRS_o_ai __vector signed short
12480 vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) {
12481   return (__vector signed short)
12482     __builtin_s390_vfaeh((__vector unsigned short)__a,
12483                          (__vector unsigned short)__b, 8);
12484 }
12485 
12486 static inline __ATTRS_o_ai __vector unsigned short
12487 vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) {
12488   return __builtin_s390_vfaeh((__vector unsigned short)__a,
12489                               (__vector unsigned short)__b, 8);
12490 }
12491 
12492 static inline __ATTRS_o_ai __vector unsigned short
12493 vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) {
12494   return __builtin_s390_vfaeh(__a, __b, 8);
12495 }
12496 
12497 static inline __ATTRS_o_ai __vector signed int
12498 vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) {
12499   return (__vector signed int)
12500     __builtin_s390_vfaef((__vector unsigned int)__a,
12501                          (__vector unsigned int)__b, 8);
12502 }
12503 
12504 static inline __ATTRS_o_ai __vector unsigned int
12505 vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) {
12506   return __builtin_s390_vfaef((__vector unsigned int)__a,
12507                               (__vector unsigned int)__b, 8);
12508 }
12509 
12510 static inline __ATTRS_o_ai __vector unsigned int
12511 vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) {
12512   return __builtin_s390_vfaef(__a, __b, 8);
12513 }
12514 
12515 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
12516 
12517 static inline __ATTRS_o_ai __vector signed char
12518 vec_find_any_ne_idx_cc(__vector signed char __a,
12519                        __vector signed char __b, int *__cc) {
12520   return (__vector signed char)
12521     __builtin_s390_vfaebs((__vector unsigned char)__a,
12522                           (__vector unsigned char)__b, 8, __cc);
12523 }
12524 
12525 static inline __ATTRS_o_ai __vector unsigned char
12526 vec_find_any_ne_idx_cc(__vector __bool char __a,
12527                        __vector __bool char __b, int *__cc) {
12528   return __builtin_s390_vfaebs((__vector unsigned char)__a,
12529                                (__vector unsigned char)__b, 8, __cc);
12530 }
12531 
12532 static inline __ATTRS_o_ai __vector unsigned char
12533 vec_find_any_ne_idx_cc(__vector unsigned char __a,
12534                        __vector unsigned char __b,
12535                        int *__cc) {
12536   return __builtin_s390_vfaebs(__a, __b, 8, __cc);
12537 }
12538 
12539 static inline __ATTRS_o_ai __vector signed short
12540 vec_find_any_ne_idx_cc(__vector signed short __a,
12541                        __vector signed short __b, int *__cc) {
12542   return (__vector signed short)
12543     __builtin_s390_vfaehs((__vector unsigned short)__a,
12544                           (__vector unsigned short)__b, 8, __cc);
12545 }
12546 
12547 static inline __ATTRS_o_ai __vector unsigned short
12548 vec_find_any_ne_idx_cc(__vector __bool short __a,
12549                        __vector __bool short __b, int *__cc) {
12550   return __builtin_s390_vfaehs((__vector unsigned short)__a,
12551                                (__vector unsigned short)__b, 8, __cc);
12552 }
12553 
12554 static inline __ATTRS_o_ai __vector unsigned short
12555 vec_find_any_ne_idx_cc(__vector unsigned short __a,
12556                        __vector unsigned short __b, int *__cc) {
12557   return __builtin_s390_vfaehs(__a, __b, 8, __cc);
12558 }
12559 
12560 static inline __ATTRS_o_ai __vector signed int
12561 vec_find_any_ne_idx_cc(__vector signed int __a,
12562                        __vector signed int __b, int *__cc) {
12563   return (__vector signed int)
12564     __builtin_s390_vfaefs((__vector unsigned int)__a,
12565                           (__vector unsigned int)__b, 8, __cc);
12566 }
12567 
12568 static inline __ATTRS_o_ai __vector unsigned int
12569 vec_find_any_ne_idx_cc(__vector __bool int __a,
12570                        __vector __bool int __b, int *__cc) {
12571   return __builtin_s390_vfaefs((__vector unsigned int)__a,
12572                                (__vector unsigned int)__b, 8, __cc);
12573 }
12574 
12575 static inline __ATTRS_o_ai __vector unsigned int
12576 vec_find_any_ne_idx_cc(__vector unsigned int __a,
12577                        __vector unsigned int __b, int *__cc) {
12578   return __builtin_s390_vfaefs(__a, __b, 8, __cc);
12579 }
12580 
12581 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
12582 
12583 static inline __ATTRS_o_ai __vector signed char
12584 vec_find_any_ne_or_0_idx(__vector signed char __a,
12585                          __vector signed char __b) {
12586   return (__vector signed char)
12587     __builtin_s390_vfaezb((__vector unsigned char)__a,
12588                           (__vector unsigned char)__b, 8);
12589 }
12590 
12591 static inline __ATTRS_o_ai __vector unsigned char
12592 vec_find_any_ne_or_0_idx(__vector __bool char __a,
12593                          __vector __bool char __b) {
12594   return __builtin_s390_vfaezb((__vector unsigned char)__a,
12595                                (__vector unsigned char)__b, 8);
12596 }
12597 
12598 static inline __ATTRS_o_ai __vector unsigned char
12599 vec_find_any_ne_or_0_idx(__vector unsigned char __a,
12600                          __vector unsigned char __b) {
12601   return __builtin_s390_vfaezb(__a, __b, 8);
12602 }
12603 
12604 static inline __ATTRS_o_ai __vector signed short
12605 vec_find_any_ne_or_0_idx(__vector signed short __a,
12606                          __vector signed short __b) {
12607   return (__vector signed short)
12608     __builtin_s390_vfaezh((__vector unsigned short)__a,
12609                           (__vector unsigned short)__b, 8);
12610 }
12611 
12612 static inline __ATTRS_o_ai __vector unsigned short
12613 vec_find_any_ne_or_0_idx(__vector __bool short __a,
12614                          __vector __bool short __b) {
12615   return __builtin_s390_vfaezh((__vector unsigned short)__a,
12616                                (__vector unsigned short)__b, 8);
12617 }
12618 
12619 static inline __ATTRS_o_ai __vector unsigned short
12620 vec_find_any_ne_or_0_idx(__vector unsigned short __a,
12621                          __vector unsigned short __b) {
12622   return __builtin_s390_vfaezh(__a, __b, 8);
12623 }
12624 
12625 static inline __ATTRS_o_ai __vector signed int
12626 vec_find_any_ne_or_0_idx(__vector signed int __a,
12627                          __vector signed int __b) {
12628   return (__vector signed int)
12629     __builtin_s390_vfaezf((__vector unsigned int)__a,
12630                           (__vector unsigned int)__b, 8);
12631 }
12632 
12633 static inline __ATTRS_o_ai __vector unsigned int
12634 vec_find_any_ne_or_0_idx(__vector __bool int __a,
12635                          __vector __bool int __b) {
12636   return __builtin_s390_vfaezf((__vector unsigned int)__a,
12637                                (__vector unsigned int)__b, 8);
12638 }
12639 
12640 static inline __ATTRS_o_ai __vector unsigned int
12641 vec_find_any_ne_or_0_idx(__vector unsigned int __a,
12642                          __vector unsigned int __b) {
12643   return __builtin_s390_vfaezf(__a, __b, 8);
12644 }
12645 
12646 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
12647 
12648 static inline __ATTRS_o_ai __vector signed char
12649 vec_find_any_ne_or_0_idx_cc(__vector signed char __a,
12650                             __vector signed char __b, int *__cc) {
12651   return (__vector signed char)
12652     __builtin_s390_vfaezbs((__vector unsigned char)__a,
12653                            (__vector unsigned char)__b, 8, __cc);
12654 }
12655 
12656 static inline __ATTRS_o_ai __vector unsigned char
12657 vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,
12658                             __vector __bool char __b, int *__cc) {
12659   return __builtin_s390_vfaezbs((__vector unsigned char)__a,
12660                                 (__vector unsigned char)__b, 8, __cc);
12661 }
12662 
12663 static inline __ATTRS_o_ai __vector unsigned char
12664 vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,
12665                             __vector unsigned char __b, int *__cc) {
12666   return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
12667 }
12668 
12669 static inline __ATTRS_o_ai __vector signed short
12670 vec_find_any_ne_or_0_idx_cc(__vector signed short __a,
12671                             __vector signed short __b, int *__cc) {
12672   return (__vector signed short)
12673     __builtin_s390_vfaezhs((__vector unsigned short)__a,
12674                            (__vector unsigned short)__b, 8, __cc);
12675 }
12676 
12677 static inline __ATTRS_o_ai __vector unsigned short
12678 vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,
12679                             __vector __bool short __b, int *__cc) {
12680   return __builtin_s390_vfaezhs((__vector unsigned short)__a,
12681                                 (__vector unsigned short)__b, 8, __cc);
12682 }
12683 
12684 static inline __ATTRS_o_ai __vector unsigned short
12685 vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,
12686                             __vector unsigned short __b, int *__cc) {
12687   return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
12688 }
12689 
12690 static inline __ATTRS_o_ai __vector signed int
12691 vec_find_any_ne_or_0_idx_cc(__vector signed int __a,
12692                             __vector signed int __b, int *__cc) {
12693   return (__vector signed int)
12694     __builtin_s390_vfaezfs((__vector unsigned int)__a,
12695                            (__vector unsigned int)__b, 8, __cc);
12696 }
12697 
12698 static inline __ATTRS_o_ai __vector unsigned int
12699 vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,
12700                             __vector __bool int __b, int *__cc) {
12701   return __builtin_s390_vfaezfs((__vector unsigned int)__a,
12702                                 (__vector unsigned int)__b, 8, __cc);
12703 }
12704 
12705 static inline __ATTRS_o_ai __vector unsigned int
12706 vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,
12707                             __vector unsigned int __b, int *__cc) {
12708   return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
12709 }
12710 
12711 /*-- vec_search_string_cc ---------------------------------------------------*/
12712 
12713 #if __ARCH__ >= 13
12714 
12715 static inline __ATTRS_o_ai __vector unsigned char
12716 vec_search_string_cc(__vector signed char __a, __vector signed char __b,
12717                      __vector unsigned char __c, int *__cc) {
12718   return __builtin_s390_vstrsb((__vector unsigned char)__a,
12719                                (__vector unsigned char)__b, __c, __cc);
12720 }
12721 
12722 static inline __ATTRS_o_ai __vector unsigned char
12723 vec_search_string_cc(__vector __bool char __a, __vector __bool char __b,
12724                      __vector unsigned char __c, int *__cc) {
12725   return __builtin_s390_vstrsb((__vector unsigned char)__a,
12726                                (__vector unsigned char)__b, __c, __cc);
12727 }
12728 
12729 static inline __ATTRS_o_ai __vector unsigned char
12730 vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b,
12731                      __vector unsigned char __c, int *__cc) {
12732   return __builtin_s390_vstrsb(__a, __b, __c, __cc);
12733 }
12734 
12735 static inline __ATTRS_o_ai __vector unsigned char
12736 vec_search_string_cc(__vector signed short __a, __vector signed short __b,
12737                      __vector unsigned char __c, int *__cc) {
12738   return __builtin_s390_vstrsh((__vector unsigned short)__a,
12739                                (__vector unsigned short)__b, __c, __cc);
12740 }
12741 
12742 static inline __ATTRS_o_ai __vector unsigned char
12743 vec_search_string_cc(__vector __bool short __a, __vector __bool short __b,
12744                      __vector unsigned char __c, int *__cc) {
12745   return __builtin_s390_vstrsh((__vector unsigned short)__a,
12746                                (__vector unsigned short)__b, __c, __cc);
12747 }
12748 
12749 static inline __ATTRS_o_ai __vector unsigned char
12750 vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b,
12751                      __vector unsigned char __c, int *__cc) {
12752   return __builtin_s390_vstrsh(__a, __b, __c, __cc);
12753 }
12754 
12755 static inline __ATTRS_o_ai __vector unsigned char
12756 vec_search_string_cc(__vector signed int __a, __vector signed int __b,
12757                      __vector unsigned char __c, int *__cc) {
12758   return __builtin_s390_vstrsf((__vector unsigned int)__a,
12759                                (__vector unsigned int)__b, __c, __cc);
12760 }
12761 
12762 static inline __ATTRS_o_ai __vector unsigned char
12763 vec_search_string_cc(__vector __bool int __a, __vector __bool int __b,
12764                      __vector unsigned char __c, int *__cc) {
12765   return __builtin_s390_vstrsf((__vector unsigned int)__a,
12766                                (__vector unsigned int)__b, __c, __cc);
12767 }
12768 
12769 static inline __ATTRS_o_ai __vector unsigned char
12770 vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b,
12771                      __vector unsigned char __c, int *__cc) {
12772   return __builtin_s390_vstrsf(__a, __b, __c, __cc);
12773 }
12774 
12775 #endif
12776 
12777 /*-- vec_search_string_until_zero_cc ----------------------------------------*/
12778 
12779 #if __ARCH__ >= 13
12780 
12781 static inline __ATTRS_o_ai __vector unsigned char
12782 vec_search_string_until_zero_cc(__vector signed char __a,
12783                                 __vector signed char __b,
12784                                 __vector unsigned char __c, int *__cc) {
12785   return __builtin_s390_vstrszb((__vector unsigned char)__a,
12786                                 (__vector unsigned char)__b, __c, __cc);
12787 }
12788 
12789 static inline __ATTRS_o_ai __vector unsigned char
12790 vec_search_string_until_zero_cc(__vector __bool char __a,
12791                                 __vector __bool char __b,
12792                                 __vector unsigned char __c, int *__cc) {
12793   return __builtin_s390_vstrszb((__vector unsigned char)__a,
12794                                 (__vector unsigned char)__b, __c, __cc);
12795 }
12796 
12797 static inline __ATTRS_o_ai __vector unsigned char
12798 vec_search_string_until_zero_cc(__vector unsigned char __a,
12799                                 __vector unsigned char __b,
12800                                 __vector unsigned char __c, int *__cc) {
12801   return __builtin_s390_vstrszb(__a, __b, __c, __cc);
12802 }
12803 
12804 static inline __ATTRS_o_ai __vector unsigned char
12805 vec_search_string_until_zero_cc(__vector signed short __a,
12806                                 __vector signed short __b,
12807                                 __vector unsigned char __c, int *__cc) {
12808   return __builtin_s390_vstrszh((__vector unsigned short)__a,
12809                                 (__vector unsigned short)__b, __c, __cc);
12810 }
12811 
12812 static inline __ATTRS_o_ai __vector unsigned char
12813 vec_search_string_until_zero_cc(__vector __bool short __a,
12814                                 __vector __bool short __b,
12815                                 __vector unsigned char __c, int *__cc) {
12816   return __builtin_s390_vstrszh((__vector unsigned short)__a,
12817                                 (__vector unsigned short)__b, __c, __cc);
12818 }
12819 
12820 static inline __ATTRS_o_ai __vector unsigned char
12821 vec_search_string_until_zero_cc(__vector unsigned short __a,
12822                                 __vector unsigned short __b,
12823                                 __vector unsigned char __c, int *__cc) {
12824   return __builtin_s390_vstrszh(__a, __b, __c, __cc);
12825 }
12826 
12827 static inline __ATTRS_o_ai __vector unsigned char
12828 vec_search_string_until_zero_cc(__vector signed int __a,
12829                                 __vector signed int __b,
12830                                 __vector unsigned char __c, int *__cc) {
12831   return __builtin_s390_vstrszf((__vector unsigned int)__a,
12832                                 (__vector unsigned int)__b, __c, __cc);
12833 }
12834 
12835 static inline __ATTRS_o_ai __vector unsigned char
12836 vec_search_string_until_zero_cc(__vector __bool int __a,
12837                                 __vector __bool int __b,
12838                                 __vector unsigned char __c, int *__cc) {
12839   return __builtin_s390_vstrszf((__vector unsigned int)__a,
12840                                 (__vector unsigned int)__b, __c, __cc);
12841 }
12842 
12843 static inline __ATTRS_o_ai __vector unsigned char
12844 vec_search_string_until_zero_cc(__vector unsigned int __a,
12845                                 __vector unsigned int __b,
12846                                 __vector unsigned char __c, int *__cc) {
12847   return __builtin_s390_vstrszf(__a, __b, __c, __cc);
12848 }
12849 
12850 #endif
12851 
12852 #undef __constant_pow2_range
12853 #undef __constant_range
12854 #undef __constant
12855 #undef __ATTRS_o
12856 #undef __ATTRS_o_ai
12857 #undef __ATTRS_ai
12858 
12859 #else
12860 
12861 #error "Use -fzvector to enable vector extensions"
12862 
12863 #endif
12864