]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/clang/lib/Headers/vecintrin.h
MFC r355940:
[FreeBSD/FreeBSD.git] / contrib / llvm-project / clang / lib / Headers / vecintrin.h
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, int __index) {
148   vector unsigned short __newvec = (vector unsigned short)__vec;
149   __newvec[__index & 7] = (unsigned short)__scalar;
150   return __newvec;
151 }
152
153 static inline __ATTRS_o_ai vector unsigned short
154 vec_insert(unsigned short __scalar, vector unsigned short __vec, int __index) {
155   __vec[__index & 7] = __scalar;
156   return __vec;
157 }
158
159 static inline __ATTRS_o_ai vector signed int
160 vec_insert(signed int __scalar, vector signed int __vec, int __index) {
161   __vec[__index & 3] = __scalar;
162   return __vec;
163 }
164
165 // This prototype is deprecated.
166 static inline __ATTRS_o_ai vector unsigned int
167 vec_insert(unsigned int __scalar, vector bool int __vec, int __index) {
168   vector unsigned int __newvec = (vector unsigned int)__vec;
169   __newvec[__index & 3] = __scalar;
170   return __newvec;
171 }
172
173 static inline __ATTRS_o_ai vector unsigned int
174 vec_insert(unsigned int __scalar, vector unsigned int __vec, int __index) {
175   __vec[__index & 3] = __scalar;
176   return __vec;
177 }
178
179 static inline __ATTRS_o_ai vector signed long long
180 vec_insert(signed long long __scalar, vector signed long long __vec,
181            int __index) {
182   __vec[__index & 1] = __scalar;
183   return __vec;
184 }
185
186 // This prototype is deprecated.
187 static inline __ATTRS_o_ai vector unsigned long long
188 vec_insert(unsigned long long __scalar, vector bool long long __vec,
189            int __index) {
190   vector unsigned long long __newvec = (vector unsigned long long)__vec;
191   __newvec[__index & 1] = __scalar;
192   return __newvec;
193 }
194
195 static inline __ATTRS_o_ai vector unsigned long long
196 vec_insert(unsigned long long __scalar, vector unsigned long long __vec,
197            int __index) {
198   __vec[__index & 1] = __scalar;
199   return __vec;
200 }
201
202 #if __ARCH__ >= 12
203 static inline __ATTRS_o_ai vector float
204 vec_insert(float __scalar, vector float __vec, int __index) {
205   __vec[__index & 1] = __scalar;
206   return __vec;
207 }
208 #endif
209
210 static inline __ATTRS_o_ai vector double
211 vec_insert(double __scalar, vector double __vec, int __index) {
212   __vec[__index & 1] = __scalar;
213   return __vec;
214 }
215
216 /*-- vec_promote ------------------------------------------------------------*/
217
218 static inline __ATTRS_o_ai vector signed char
219 vec_promote(signed char __scalar, int __index) {
220   const vector signed char __zero = (vector signed char)0;
221   vector signed char __vec = __builtin_shufflevector(__zero, __zero,
222     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
223   __vec[__index & 15] = __scalar;
224   return __vec;
225 }
226
227 static inline __ATTRS_o_ai vector unsigned char
228 vec_promote(unsigned char __scalar, int __index) {
229   const vector unsigned char __zero = (vector unsigned char)0;
230   vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
231     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
232   __vec[__index & 15] = __scalar;
233   return __vec;
234 }
235
236 static inline __ATTRS_o_ai vector signed short
237 vec_promote(signed short __scalar, int __index) {
238   const vector signed short __zero = (vector signed short)0;
239   vector signed short __vec = __builtin_shufflevector(__zero, __zero,
240                                 -1, -1, -1, -1, -1, -1, -1, -1);
241   __vec[__index & 7] = __scalar;
242   return __vec;
243 }
244
245 static inline __ATTRS_o_ai vector unsigned short
246 vec_promote(unsigned short __scalar, int __index) {
247   const vector unsigned short __zero = (vector unsigned short)0;
248   vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
249                                   -1, -1, -1, -1, -1, -1, -1, -1);
250   __vec[__index & 7] = __scalar;
251   return __vec;
252 }
253
254 static inline __ATTRS_o_ai vector signed int
255 vec_promote(signed int __scalar, int __index) {
256   const vector signed int __zero = (vector signed int)0;
257   vector signed int __vec = __builtin_shufflevector(__zero, __zero,
258                                                     -1, -1, -1, -1);
259   __vec[__index & 3] = __scalar;
260   return __vec;
261 }
262
263 static inline __ATTRS_o_ai vector unsigned int
264 vec_promote(unsigned int __scalar, int __index) {
265   const vector unsigned int __zero = (vector unsigned int)0;
266   vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
267                                                       -1, -1, -1, -1);
268   __vec[__index & 3] = __scalar;
269   return __vec;
270 }
271
272 static inline __ATTRS_o_ai vector signed long long
273 vec_promote(signed long long __scalar, int __index) {
274   const vector signed long long __zero = (vector signed long long)0;
275   vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
276                                                           -1, -1);
277   __vec[__index & 1] = __scalar;
278   return __vec;
279 }
280
281 static inline __ATTRS_o_ai vector unsigned long long
282 vec_promote(unsigned long long __scalar, int __index) {
283   const vector unsigned long long __zero = (vector unsigned long long)0;
284   vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
285                                                             -1, -1);
286   __vec[__index & 1] = __scalar;
287   return __vec;
288 }
289
290 #if __ARCH__ >= 12
291 static inline __ATTRS_o_ai vector float
292 vec_promote(float __scalar, int __index) {
293   const vector float __zero = (vector float)0;
294   vector float __vec = __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1);
295   __vec[__index & 3] = __scalar;
296   return __vec;
297 }
298 #endif
299
300 static inline __ATTRS_o_ai vector double
301 vec_promote(double __scalar, int __index) {
302   const vector double __zero = (vector double)0;
303   vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
304   __vec[__index & 1] = __scalar;
305   return __vec;
306 }
307
308 /*-- vec_insert_and_zero ----------------------------------------------------*/
309
310 static inline __ATTRS_o_ai vector signed char
311 vec_insert_and_zero(const signed char *__ptr) {
312   vector signed char __vec = (vector signed char)0;
313   __vec[7] = *__ptr;
314   return __vec;
315 }
316
317 static inline __ATTRS_o_ai vector unsigned char
318 vec_insert_and_zero(const unsigned char *__ptr) {
319   vector unsigned char __vec = (vector unsigned char)0;
320   __vec[7] = *__ptr;
321   return __vec;
322 }
323
324 static inline __ATTRS_o_ai vector signed short
325 vec_insert_and_zero(const signed short *__ptr) {
326   vector signed short __vec = (vector signed short)0;
327   __vec[3] = *__ptr;
328   return __vec;
329 }
330
331 static inline __ATTRS_o_ai vector unsigned short
332 vec_insert_and_zero(const unsigned short *__ptr) {
333   vector unsigned short __vec = (vector unsigned short)0;
334   __vec[3] = *__ptr;
335   return __vec;
336 }
337
338 static inline __ATTRS_o_ai vector signed int
339 vec_insert_and_zero(const signed int *__ptr) {
340   vector signed int __vec = (vector signed int)0;
341   __vec[1] = *__ptr;
342   return __vec;
343 }
344
345 static inline __ATTRS_o_ai vector unsigned int
346 vec_insert_and_zero(const unsigned int *__ptr) {
347   vector unsigned int __vec = (vector unsigned int)0;
348   __vec[1] = *__ptr;
349   return __vec;
350 }
351
352 static inline __ATTRS_o_ai vector signed long long
353 vec_insert_and_zero(const signed long long *__ptr) {
354   vector signed long long __vec = (vector signed long long)0;
355   __vec[0] = *__ptr;
356   return __vec;
357 }
358
359 static inline __ATTRS_o_ai vector unsigned long long
360 vec_insert_and_zero(const unsigned long long *__ptr) {
361   vector unsigned long long __vec = (vector unsigned long long)0;
362   __vec[0] = *__ptr;
363   return __vec;
364 }
365
366 #if __ARCH__ >= 12
367 static inline __ATTRS_o_ai vector float
368 vec_insert_and_zero(const float *__ptr) {
369   vector float __vec = (vector float)0;
370   __vec[1] = *__ptr;
371   return __vec;
372 }
373 #endif
374
375 static inline __ATTRS_o_ai vector double
376 vec_insert_and_zero(const double *__ptr) {
377   vector double __vec = (vector double)0;
378   __vec[0] = *__ptr;
379   return __vec;
380 }
381
382 /*-- vec_perm ---------------------------------------------------------------*/
383
384 static inline __ATTRS_o_ai vector signed char
385 vec_perm(vector signed char __a, vector signed char __b,
386          vector unsigned char __c) {
387   return (vector signed char)__builtin_s390_vperm(
388            (vector unsigned char)__a, (vector unsigned char)__b, __c);
389 }
390
391 static inline __ATTRS_o_ai vector unsigned char
392 vec_perm(vector unsigned char __a, vector unsigned char __b,
393          vector unsigned char __c) {
394   return (vector unsigned char)__builtin_s390_vperm(
395            (vector unsigned char)__a, (vector unsigned char)__b, __c);
396 }
397
398 static inline __ATTRS_o_ai vector bool char
399 vec_perm(vector bool char __a, vector bool char __b,
400          vector unsigned char __c) {
401   return (vector bool char)__builtin_s390_vperm(
402            (vector unsigned char)__a, (vector unsigned char)__b, __c);
403 }
404
405 static inline __ATTRS_o_ai vector signed short
406 vec_perm(vector signed short __a, vector signed short __b,
407          vector unsigned char __c) {
408   return (vector signed short)__builtin_s390_vperm(
409            (vector unsigned char)__a, (vector unsigned char)__b, __c);
410 }
411
412 static inline __ATTRS_o_ai vector unsigned short
413 vec_perm(vector unsigned short __a, vector unsigned short __b,
414          vector unsigned char __c) {
415   return (vector unsigned short)__builtin_s390_vperm(
416            (vector unsigned char)__a, (vector unsigned char)__b, __c);
417 }
418
419 static inline __ATTRS_o_ai vector bool short
420 vec_perm(vector bool short __a, vector bool short __b,
421          vector unsigned char __c) {
422   return (vector bool short)__builtin_s390_vperm(
423            (vector unsigned char)__a, (vector unsigned char)__b, __c);
424 }
425
426 static inline __ATTRS_o_ai vector signed int
427 vec_perm(vector signed int __a, vector signed int __b,
428          vector unsigned char __c) {
429   return (vector signed int)__builtin_s390_vperm(
430            (vector unsigned char)__a, (vector unsigned char)__b, __c);
431 }
432
433 static inline __ATTRS_o_ai vector unsigned int
434 vec_perm(vector unsigned int __a, vector unsigned int __b,
435          vector unsigned char __c) {
436   return (vector unsigned int)__builtin_s390_vperm(
437            (vector unsigned char)__a, (vector unsigned char)__b, __c);
438 }
439
440 static inline __ATTRS_o_ai vector bool int
441 vec_perm(vector bool int __a, vector bool int __b,
442          vector unsigned char __c) {
443   return (vector bool int)__builtin_s390_vperm(
444            (vector unsigned char)__a, (vector unsigned char)__b, __c);
445 }
446
447 static inline __ATTRS_o_ai vector signed long long
448 vec_perm(vector signed long long __a, vector signed long long __b,
449          vector unsigned char __c) {
450   return (vector signed long long)__builtin_s390_vperm(
451            (vector unsigned char)__a, (vector unsigned char)__b, __c);
452 }
453
454 static inline __ATTRS_o_ai vector unsigned long long
455 vec_perm(vector unsigned long long __a, vector unsigned long long __b,
456          vector unsigned char __c) {
457   return (vector unsigned long long)__builtin_s390_vperm(
458            (vector unsigned char)__a, (vector unsigned char)__b, __c);
459 }
460
461 static inline __ATTRS_o_ai vector bool long long
462 vec_perm(vector bool long long __a, vector bool long long __b,
463          vector unsigned char __c) {
464   return (vector bool long long)__builtin_s390_vperm(
465            (vector unsigned char)__a, (vector unsigned char)__b, __c);
466 }
467
468 #if __ARCH__ >= 12
469 static inline __ATTRS_o_ai vector float
470 vec_perm(vector float __a, vector float __b,
471          vector unsigned char __c) {
472   return (vector float)__builtin_s390_vperm(
473            (vector unsigned char)__a, (vector unsigned char)__b, __c);
474 }
475 #endif
476
477 static inline __ATTRS_o_ai vector double
478 vec_perm(vector double __a, vector double __b,
479          vector unsigned char __c) {
480   return (vector double)__builtin_s390_vperm(
481            (vector unsigned char)__a, (vector unsigned char)__b, __c);
482 }
483
484 /*-- vec_permi --------------------------------------------------------------*/
485
486 // This prototype is deprecated.
487 extern __ATTRS_o vector signed long long
488 vec_permi(vector signed long long __a, vector signed long long __b, int __c)
489   __constant_range(__c, 0, 3);
490
491 // This prototype is deprecated.
492 extern __ATTRS_o vector unsigned long long
493 vec_permi(vector unsigned long long __a, vector unsigned long long __b, int __c)
494   __constant_range(__c, 0, 3);
495
496 // This prototype is deprecated.
497 extern __ATTRS_o vector bool long long
498 vec_permi(vector bool long long __a, vector bool long long __b, int __c)
499   __constant_range(__c, 0, 3);
500
501 // This prototype is deprecated.
502 extern __ATTRS_o vector double
503 vec_permi(vector double __a, vector double __b, int __c)
504   __constant_range(__c, 0, 3);
505
506 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
507   __builtin_s390_vpdi((vector unsigned long long)(X), \
508                       (vector unsigned long long)(Y), \
509                       (((Z) & 2) << 1) | ((Z) & 1)))
510
511 /*-- vec_bperm_u128 ---------------------------------------------------------*/
512
513 #if __ARCH__ >= 12
514 static inline __ATTRS_ai vector unsigned long long
515 vec_bperm_u128(vector unsigned char __a, vector unsigned char __b) {
516   return __builtin_s390_vbperm(__a, __b);
517 }
518 #endif
519
520 /*-- vec_revb ---------------------------------------------------------------*/
521
522 static inline __ATTRS_o_ai vector signed short
523 vec_revb(vector signed short __vec) {
524   return (vector signed short)
525          __builtin_s390_vlbrh((vector unsigned short)__vec);
526 }
527
528 static inline __ATTRS_o_ai vector unsigned short
529 vec_revb(vector unsigned short __vec) {
530   return __builtin_s390_vlbrh(__vec);
531 }
532
533 static inline __ATTRS_o_ai vector signed int
534 vec_revb(vector signed int __vec) {
535   return (vector signed int)
536          __builtin_s390_vlbrf((vector unsigned int)__vec);
537 }
538
539 static inline __ATTRS_o_ai vector unsigned int
540 vec_revb(vector unsigned int __vec) {
541   return __builtin_s390_vlbrf(__vec);
542 }
543
544 static inline __ATTRS_o_ai vector signed long long
545 vec_revb(vector signed long long __vec) {
546   return (vector signed long long)
547          __builtin_s390_vlbrg((vector unsigned long long)__vec);
548 }
549
550 static inline __ATTRS_o_ai vector unsigned long long
551 vec_revb(vector unsigned long long __vec) {
552   return __builtin_s390_vlbrg(__vec);
553 }
554
555 #if __ARCH__ >= 12
556 static inline __ATTRS_o_ai vector float
557 vec_revb(vector float __vec) {
558   return (vector float)
559          __builtin_s390_vlbrf((vector unsigned int)__vec);
560 }
561 #endif
562
563 static inline __ATTRS_o_ai vector double
564 vec_revb(vector double __vec) {
565   return (vector double)
566          __builtin_s390_vlbrg((vector unsigned long long)__vec);
567 }
568
569 /*-- vec_reve ---------------------------------------------------------------*/
570
571 static inline __ATTRS_o_ai vector signed char
572 vec_reve(vector signed char __vec) {
573   return (vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
574                                 __vec[11], __vec[10], __vec[9], __vec[8],
575                                 __vec[7], __vec[6], __vec[5], __vec[4],
576                                 __vec[3], __vec[2], __vec[1], __vec[0] };
577 }
578
579 static inline __ATTRS_o_ai vector unsigned char
580 vec_reve(vector unsigned char __vec) {
581   return (vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
582                                   __vec[11], __vec[10], __vec[9], __vec[8],
583                                   __vec[7], __vec[6], __vec[5], __vec[4],
584                                   __vec[3], __vec[2], __vec[1], __vec[0] };
585 }
586
587 static inline __ATTRS_o_ai vector bool char
588 vec_reve(vector bool char __vec) {
589   return (vector bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
590                               __vec[11], __vec[10], __vec[9], __vec[8],
591                               __vec[7], __vec[6], __vec[5], __vec[4],
592                               __vec[3], __vec[2], __vec[1], __vec[0] };
593 }
594
595 static inline __ATTRS_o_ai vector signed short
596 vec_reve(vector signed short __vec) {
597   return (vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
598                                  __vec[3], __vec[2], __vec[1], __vec[0] };
599 }
600
601 static inline __ATTRS_o_ai vector unsigned short
602 vec_reve(vector unsigned short __vec) {
603   return (vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
604                                    __vec[3], __vec[2], __vec[1], __vec[0] };
605 }
606
607 static inline __ATTRS_o_ai vector bool short
608 vec_reve(vector bool short __vec) {
609   return (vector bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
610                                __vec[3], __vec[2], __vec[1], __vec[0] };
611 }
612
613 static inline __ATTRS_o_ai vector signed int
614 vec_reve(vector signed int __vec) {
615   return (vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
616 }
617
618 static inline __ATTRS_o_ai vector unsigned int
619 vec_reve(vector unsigned int __vec) {
620   return (vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
621 }
622
623 static inline __ATTRS_o_ai vector bool int
624 vec_reve(vector bool int __vec) {
625   return (vector bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
626 }
627
628 static inline __ATTRS_o_ai vector signed long long
629 vec_reve(vector signed long long __vec) {
630   return (vector signed long long) { __vec[1], __vec[0] };
631 }
632
633 static inline __ATTRS_o_ai vector unsigned long long
634 vec_reve(vector unsigned long long __vec) {
635   return (vector unsigned long long) { __vec[1], __vec[0] };
636 }
637
638 static inline __ATTRS_o_ai vector bool long long
639 vec_reve(vector bool long long __vec) {
640   return (vector bool long long) { __vec[1], __vec[0] };
641 }
642
643 #if __ARCH__ >= 12
644 static inline __ATTRS_o_ai vector float
645 vec_reve(vector float __vec) {
646   return (vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
647 }
648 #endif
649
650 static inline __ATTRS_o_ai vector double
651 vec_reve(vector double __vec) {
652   return (vector double) { __vec[1], __vec[0] };
653 }
654
655 /*-- vec_sel ----------------------------------------------------------------*/
656
657 static inline __ATTRS_o_ai vector signed char
658 vec_sel(vector signed char __a, vector signed char __b,
659         vector unsigned char __c) {
660   return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
661 }
662
663 static inline __ATTRS_o_ai vector signed char
664 vec_sel(vector signed char __a, vector signed char __b, vector bool char __c) {
665   return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
666 }
667
668 static inline __ATTRS_o_ai vector bool char
669 vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c) {
670   return ((vector bool char)__c & __b) | (~(vector bool char)__c & __a);
671 }
672
673 static inline __ATTRS_o_ai vector bool char
674 vec_sel(vector bool char __a, vector bool char __b, vector bool char __c) {
675   return (__c & __b) | (~__c & __a);
676 }
677
678 static inline __ATTRS_o_ai vector unsigned char
679 vec_sel(vector unsigned char __a, vector unsigned char __b,
680         vector unsigned char __c) {
681   return (__c & __b) | (~__c & __a);
682 }
683
684 static inline __ATTRS_o_ai vector unsigned char
685 vec_sel(vector unsigned char __a, vector unsigned char __b,
686         vector bool char __c) {
687   return ((vector unsigned char)__c & __b) | (~(vector unsigned char)__c & __a);
688 }
689
690 static inline __ATTRS_o_ai vector signed short
691 vec_sel(vector signed short __a, vector signed short __b,
692         vector unsigned short __c) {
693   return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
694 }
695
696 static inline __ATTRS_o_ai vector signed short
697 vec_sel(vector signed short __a, vector signed short __b,
698         vector bool short __c) {
699   return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
700 }
701
702 static inline __ATTRS_o_ai vector bool short
703 vec_sel(vector bool short __a, vector bool short __b,
704         vector unsigned short __c) {
705   return ((vector bool short)__c & __b) | (~(vector bool short)__c & __a);
706 }
707
708 static inline __ATTRS_o_ai vector bool short
709 vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) {
710   return (__c & __b) | (~__c & __a);
711 }
712
713 static inline __ATTRS_o_ai vector unsigned short
714 vec_sel(vector unsigned short __a, vector unsigned short __b,
715         vector unsigned short __c) {
716   return (__c & __b) | (~__c & __a);
717 }
718
719 static inline __ATTRS_o_ai vector unsigned short
720 vec_sel(vector unsigned short __a, vector unsigned short __b,
721         vector bool short __c) {
722   return (((vector unsigned short)__c & __b) |
723           (~(vector unsigned short)__c & __a));
724 }
725
726 static inline __ATTRS_o_ai vector signed int
727 vec_sel(vector signed int __a, vector signed int __b,
728         vector unsigned int __c) {
729   return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
730 }
731
732 static inline __ATTRS_o_ai vector signed int
733 vec_sel(vector signed int __a, vector signed int __b, vector bool int __c) {
734   return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
735 }
736
737 static inline __ATTRS_o_ai vector bool int
738 vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c) {
739   return ((vector bool int)__c & __b) | (~(vector bool int)__c & __a);
740 }
741
742 static inline __ATTRS_o_ai vector bool int
743 vec_sel(vector bool int __a, vector bool int __b, vector bool int __c) {
744   return (__c & __b) | (~__c & __a);
745 }
746
747 static inline __ATTRS_o_ai vector unsigned int
748 vec_sel(vector unsigned int __a, vector unsigned int __b,
749         vector unsigned int __c) {
750   return (__c & __b) | (~__c & __a);
751 }
752
753 static inline __ATTRS_o_ai vector unsigned int
754 vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c) {
755   return ((vector unsigned int)__c & __b) | (~(vector unsigned int)__c & __a);
756 }
757
758 static inline __ATTRS_o_ai vector signed long long
759 vec_sel(vector signed long long __a, vector signed long long __b,
760         vector unsigned long long __c) {
761   return (((vector signed long long)__c & __b) |
762           (~(vector signed long long)__c & __a));
763 }
764
765 static inline __ATTRS_o_ai vector signed long long
766 vec_sel(vector signed long long __a, vector signed long long __b,
767         vector bool long long __c) {
768   return (((vector signed long long)__c & __b) |
769           (~(vector signed long long)__c & __a));
770 }
771
772 static inline __ATTRS_o_ai vector bool long long
773 vec_sel(vector bool long long __a, vector bool long long __b,
774         vector unsigned long long __c) {
775   return (((vector bool long long)__c & __b) |
776           (~(vector bool long long)__c & __a));
777 }
778
779 static inline __ATTRS_o_ai vector bool long long
780 vec_sel(vector bool long long __a, vector bool long long __b,
781         vector bool long long __c) {
782   return (__c & __b) | (~__c & __a);
783 }
784
785 static inline __ATTRS_o_ai vector unsigned long long
786 vec_sel(vector unsigned long long __a, vector unsigned long long __b,
787         vector unsigned long long __c) {
788   return (__c & __b) | (~__c & __a);
789 }
790
791 static inline __ATTRS_o_ai vector unsigned long long
792 vec_sel(vector unsigned long long __a, vector unsigned long long __b,
793         vector bool long long __c) {
794   return (((vector unsigned long long)__c & __b) |
795           (~(vector unsigned long long)__c & __a));
796 }
797
798 #if __ARCH__ >= 12
799 static inline __ATTRS_o_ai vector float
800 vec_sel(vector float __a, vector float __b, vector unsigned int __c) {
801   return (vector float)((__c & (vector unsigned int)__b) |
802                         (~__c & (vector unsigned int)__a));
803 }
804
805 static inline __ATTRS_o_ai vector float
806 vec_sel(vector float __a, vector float __b, vector bool int __c) {
807   vector unsigned int __ac = (vector unsigned int)__a;
808   vector unsigned int __bc = (vector unsigned int)__b;
809   vector unsigned int __cc = (vector unsigned int)__c;
810   return (vector float)((__cc & __bc) | (~__cc & __ac));
811 }
812 #endif
813
814 static inline __ATTRS_o_ai vector double
815 vec_sel(vector double __a, vector double __b, vector unsigned long long __c) {
816   return (vector double)((__c & (vector unsigned long long)__b) |
817                          (~__c & (vector unsigned long long)__a));
818 }
819
820 static inline __ATTRS_o_ai vector double
821 vec_sel(vector double __a, vector double __b, vector bool long long __c) {
822   vector unsigned long long __ac = (vector unsigned long long)__a;
823   vector unsigned long long __bc = (vector unsigned long long)__b;
824   vector unsigned long long __cc = (vector unsigned long long)__c;
825   return (vector double)((__cc & __bc) | (~__cc & __ac));
826 }
827
828 /*-- vec_gather_element -----------------------------------------------------*/
829
830 static inline __ATTRS_o_ai vector signed int
831 vec_gather_element(vector signed int __vec, vector unsigned int __offset,
832                    const signed int *__ptr, int __index)
833   __constant_range(__index, 0, 3) {
834   __vec[__index] = *(const signed int *)(
835     (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
836   return __vec;
837 }
838
839 static inline __ATTRS_o_ai vector bool int
840 vec_gather_element(vector bool int __vec, vector unsigned int __offset,
841                    const unsigned int *__ptr, int __index)
842   __constant_range(__index, 0, 3) {
843   __vec[__index] = *(const unsigned int *)(
844     (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
845   return __vec;
846 }
847
848 static inline __ATTRS_o_ai vector unsigned int
849 vec_gather_element(vector unsigned int __vec, vector unsigned int __offset,
850                    const unsigned int *__ptr, int __index)
851   __constant_range(__index, 0, 3) {
852   __vec[__index] = *(const unsigned int *)(
853     (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
854   return __vec;
855 }
856
857 static inline __ATTRS_o_ai vector signed long long
858 vec_gather_element(vector signed long long __vec,
859                    vector unsigned long long __offset,
860                    const signed long long *__ptr, int __index)
861   __constant_range(__index, 0, 1) {
862   __vec[__index] = *(const signed long long *)(
863     (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
864   return __vec;
865 }
866
867 static inline __ATTRS_o_ai vector bool long long
868 vec_gather_element(vector bool long long __vec,
869                    vector unsigned long long __offset,
870                    const unsigned long long *__ptr, int __index)
871   __constant_range(__index, 0, 1) {
872   __vec[__index] = *(const unsigned long long *)(
873     (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
874   return __vec;
875 }
876
877 static inline __ATTRS_o_ai vector unsigned long long
878 vec_gather_element(vector unsigned long long __vec,
879                    vector unsigned long long __offset,
880                    const unsigned long long *__ptr, int __index)
881   __constant_range(__index, 0, 1) {
882   __vec[__index] = *(const unsigned long long *)(
883     (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
884   return __vec;
885 }
886
887 #if __ARCH__ >= 12
888 static inline __ATTRS_o_ai vector float
889 vec_gather_element(vector float __vec, vector unsigned int __offset,
890                    const float *__ptr, int __index)
891   __constant_range(__index, 0, 3) {
892   __vec[__index] = *(const float *)(
893     (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
894   return __vec;
895 }
896 #endif
897
898 static inline __ATTRS_o_ai vector double
899 vec_gather_element(vector double __vec, vector unsigned long long __offset,
900                    const double *__ptr, int __index)
901   __constant_range(__index, 0, 1) {
902   __vec[__index] = *(const double *)(
903     (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
904   return __vec;
905 }
906
907 /*-- vec_scatter_element ----------------------------------------------------*/
908
909 static inline __ATTRS_o_ai void
910 vec_scatter_element(vector signed int __vec, vector unsigned int __offset,
911                     signed int *__ptr, int __index)
912   __constant_range(__index, 0, 3) {
913   *(signed int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
914     __vec[__index];
915 }
916
917 static inline __ATTRS_o_ai void
918 vec_scatter_element(vector bool int __vec, vector unsigned int __offset,
919                     unsigned int *__ptr, int __index)
920   __constant_range(__index, 0, 3) {
921   *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
922     __vec[__index];
923 }
924
925 static inline __ATTRS_o_ai void
926 vec_scatter_element(vector unsigned int __vec, vector unsigned int __offset,
927                     unsigned int *__ptr, int __index)
928   __constant_range(__index, 0, 3) {
929   *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
930     __vec[__index];
931 }
932
933 static inline __ATTRS_o_ai void
934 vec_scatter_element(vector signed long long __vec,
935                     vector unsigned long long __offset,
936                     signed long long *__ptr, int __index)
937   __constant_range(__index, 0, 1) {
938   *(signed long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
939     __vec[__index];
940 }
941
942 static inline __ATTRS_o_ai void
943 vec_scatter_element(vector bool long long __vec,
944                     vector unsigned long long __offset,
945                     unsigned long long *__ptr, int __index)
946   __constant_range(__index, 0, 1) {
947   *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
948     __vec[__index];
949 }
950
951 static inline __ATTRS_o_ai void
952 vec_scatter_element(vector unsigned long long __vec,
953                     vector unsigned long long __offset,
954                     unsigned long long *__ptr, int __index)
955   __constant_range(__index, 0, 1) {
956   *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
957     __vec[__index];
958 }
959
960 #if __ARCH__ >= 12
961 static inline __ATTRS_o_ai void
962 vec_scatter_element(vector float __vec, vector unsigned int __offset,
963                     float *__ptr, int __index)
964   __constant_range(__index, 0, 3) {
965   *(float *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
966     __vec[__index];
967 }
968 #endif
969
970 static inline __ATTRS_o_ai void
971 vec_scatter_element(vector double __vec, vector unsigned long long __offset,
972                     double *__ptr, int __index)
973   __constant_range(__index, 0, 1) {
974   *(double *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
975     __vec[__index];
976 }
977
978 /*-- vec_xl -----------------------------------------------------------------*/
979
980 static inline __ATTRS_o_ai vector signed char
981 vec_xl(long __offset, const signed char *__ptr) {
982   return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
983 }
984
985 static inline __ATTRS_o_ai vector unsigned char
986 vec_xl(long __offset, const unsigned char *__ptr) {
987   return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
988 }
989
990 static inline __ATTRS_o_ai vector signed short
991 vec_xl(long __offset, const signed short *__ptr) {
992   return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
993 }
994
995 static inline __ATTRS_o_ai vector unsigned short
996 vec_xl(long __offset, const unsigned short *__ptr) {
997   return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
998 }
999
1000 static inline __ATTRS_o_ai vector signed int
1001 vec_xl(long __offset, const signed int *__ptr) {
1002   return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
1003 }
1004
1005 static inline __ATTRS_o_ai vector unsigned int
1006 vec_xl(long __offset, const unsigned int *__ptr) {
1007   return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1008 }
1009
1010 static inline __ATTRS_o_ai vector signed long long
1011 vec_xl(long __offset, const signed long long *__ptr) {
1012   return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
1013 }
1014
1015 static inline __ATTRS_o_ai vector unsigned long long
1016 vec_xl(long __offset, const unsigned long long *__ptr) {
1017   return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
1018 }
1019
1020 #if __ARCH__ >= 12
1021 static inline __ATTRS_o_ai vector float
1022 vec_xl(long __offset, const float *__ptr) {
1023   return *(const vector float *)((__INTPTR_TYPE__)__ptr + __offset);
1024 }
1025 #endif
1026
1027 static inline __ATTRS_o_ai vector double
1028 vec_xl(long __offset, const double *__ptr) {
1029   return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
1030 }
1031
1032 /*-- vec_xld2 ---------------------------------------------------------------*/
1033
1034 // This prototype is deprecated.
1035 static inline __ATTRS_o_ai vector signed char
1036 vec_xld2(long __offset, const signed char *__ptr) {
1037   return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
1038 }
1039
1040 // This prototype is deprecated.
1041 static inline __ATTRS_o_ai vector unsigned char
1042 vec_xld2(long __offset, const unsigned char *__ptr) {
1043   return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
1044 }
1045
1046 // This prototype is deprecated.
1047 static inline __ATTRS_o_ai vector signed short
1048 vec_xld2(long __offset, const signed short *__ptr) {
1049   return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
1050 }
1051
1052 // This prototype is deprecated.
1053 static inline __ATTRS_o_ai vector unsigned short
1054 vec_xld2(long __offset, const unsigned short *__ptr) {
1055   return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
1056 }
1057
1058 // This prototype is deprecated.
1059 static inline __ATTRS_o_ai vector signed int
1060 vec_xld2(long __offset, const signed int *__ptr) {
1061   return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
1062 }
1063
1064 // This prototype is deprecated.
1065 static inline __ATTRS_o_ai vector unsigned int
1066 vec_xld2(long __offset, const unsigned int *__ptr) {
1067   return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1068 }
1069
1070 // This prototype is deprecated.
1071 static inline __ATTRS_o_ai vector signed long long
1072 vec_xld2(long __offset, const signed long long *__ptr) {
1073   return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
1074 }
1075
1076 // This prototype is deprecated.
1077 static inline __ATTRS_o_ai vector unsigned long long
1078 vec_xld2(long __offset, const unsigned long long *__ptr) {
1079   return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
1080 }
1081
1082 // This prototype is deprecated.
1083 static inline __ATTRS_o_ai vector double
1084 vec_xld2(long __offset, const double *__ptr) {
1085   return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
1086 }
1087
1088 /*-- vec_xlw4 ---------------------------------------------------------------*/
1089
1090 // This prototype is deprecated.
1091 static inline __ATTRS_o_ai vector signed char
1092 vec_xlw4(long __offset, const signed char *__ptr) {
1093   return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
1094 }
1095
1096 // This prototype is deprecated.
1097 static inline __ATTRS_o_ai vector unsigned char
1098 vec_xlw4(long __offset, const unsigned char *__ptr) {
1099   return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
1100 }
1101
1102 // This prototype is deprecated.
1103 static inline __ATTRS_o_ai vector signed short
1104 vec_xlw4(long __offset, const signed short *__ptr) {
1105   return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
1106 }
1107
1108 // This prototype is deprecated.
1109 static inline __ATTRS_o_ai vector unsigned short
1110 vec_xlw4(long __offset, const unsigned short *__ptr) {
1111   return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
1112 }
1113
1114 // This prototype is deprecated.
1115 static inline __ATTRS_o_ai vector signed int
1116 vec_xlw4(long __offset, const signed int *__ptr) {
1117   return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
1118 }
1119
1120 // This prototype is deprecated.
1121 static inline __ATTRS_o_ai vector unsigned int
1122 vec_xlw4(long __offset, const unsigned int *__ptr) {
1123   return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1124 }
1125
1126 /*-- vec_xst ----------------------------------------------------------------*/
1127
1128 static inline __ATTRS_o_ai void
1129 vec_xst(vector signed char __vec, long __offset, signed char *__ptr) {
1130   *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1131 }
1132
1133 static inline __ATTRS_o_ai void
1134 vec_xst(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1135   *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1136 }
1137
1138 static inline __ATTRS_o_ai void
1139 vec_xst(vector signed short __vec, long __offset, signed short *__ptr) {
1140   *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1141 }
1142
1143 static inline __ATTRS_o_ai void
1144 vec_xst(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1145   *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1146 }
1147
1148 static inline __ATTRS_o_ai void
1149 vec_xst(vector signed int __vec, long __offset, signed int *__ptr) {
1150   *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1151 }
1152
1153 static inline __ATTRS_o_ai void
1154 vec_xst(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1155   *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1156 }
1157
1158 static inline __ATTRS_o_ai void
1159 vec_xst(vector signed long long __vec, long __offset,
1160           signed long long *__ptr) {
1161   *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1162 }
1163
1164 static inline __ATTRS_o_ai void
1165 vec_xst(vector unsigned long long __vec, long __offset,
1166           unsigned long long *__ptr) {
1167   *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) =
1168     __vec;
1169 }
1170
1171 #if __ARCH__ >= 12
1172 static inline __ATTRS_o_ai void
1173 vec_xst(vector float __vec, long __offset, float *__ptr) {
1174   *(vector float *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1175 }
1176 #endif
1177
1178 static inline __ATTRS_o_ai void
1179 vec_xst(vector double __vec, long __offset, double *__ptr) {
1180   *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1181 }
1182
1183 /*-- vec_xstd2 --------------------------------------------------------------*/
1184
1185 // This prototype is deprecated.
1186 static inline __ATTRS_o_ai void
1187 vec_xstd2(vector signed char __vec, long __offset, signed char *__ptr) {
1188   *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1189 }
1190
1191 // This prototype is deprecated.
1192 static inline __ATTRS_o_ai void
1193 vec_xstd2(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1194   *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1195 }
1196
1197 // This prototype is deprecated.
1198 static inline __ATTRS_o_ai void
1199 vec_xstd2(vector signed short __vec, long __offset, signed short *__ptr) {
1200   *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1201 }
1202
1203 // This prototype is deprecated.
1204 static inline __ATTRS_o_ai void
1205 vec_xstd2(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1206   *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1207 }
1208
1209 // This prototype is deprecated.
1210 static inline __ATTRS_o_ai void
1211 vec_xstd2(vector signed int __vec, long __offset, signed int *__ptr) {
1212   *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1213 }
1214
1215 // This prototype is deprecated.
1216 static inline __ATTRS_o_ai void
1217 vec_xstd2(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1218   *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1219 }
1220
1221 // This prototype is deprecated.
1222 static inline __ATTRS_o_ai void
1223 vec_xstd2(vector signed long long __vec, long __offset,
1224           signed long long *__ptr) {
1225   *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1226 }
1227
1228 // This prototype is deprecated.
1229 static inline __ATTRS_o_ai void
1230 vec_xstd2(vector unsigned long long __vec, long __offset,
1231           unsigned long long *__ptr) {
1232   *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) =
1233     __vec;
1234 }
1235
1236 // This prototype is deprecated.
1237 static inline __ATTRS_o_ai void
1238 vec_xstd2(vector double __vec, long __offset, double *__ptr) {
1239   *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1240 }
1241
1242 /*-- vec_xstw4 --------------------------------------------------------------*/
1243
1244 // This prototype is deprecated.
1245 static inline __ATTRS_o_ai void
1246 vec_xstw4(vector signed char __vec, long __offset, signed char *__ptr) {
1247   *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1248 }
1249
1250 // This prototype is deprecated.
1251 static inline __ATTRS_o_ai void
1252 vec_xstw4(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1253   *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1254 }
1255
1256 // This prototype is deprecated.
1257 static inline __ATTRS_o_ai void
1258 vec_xstw4(vector signed short __vec, long __offset, signed short *__ptr) {
1259   *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1260 }
1261
1262 // This prototype is deprecated.
1263 static inline __ATTRS_o_ai void
1264 vec_xstw4(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1265   *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1266 }
1267
1268 // This prototype is deprecated.
1269 static inline __ATTRS_o_ai void
1270 vec_xstw4(vector signed int __vec, long __offset, signed int *__ptr) {
1271   *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1272 }
1273
1274 // This prototype is deprecated.
1275 static inline __ATTRS_o_ai void
1276 vec_xstw4(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1277   *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1278 }
1279
1280 /*-- vec_load_bndry ---------------------------------------------------------*/
1281
1282 extern __ATTRS_o vector signed char
1283 vec_load_bndry(const signed char *__ptr, unsigned short __len)
1284   __constant_pow2_range(__len, 64, 4096);
1285
1286 extern __ATTRS_o vector unsigned char
1287 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1288   __constant_pow2_range(__len, 64, 4096);
1289
1290 extern __ATTRS_o vector signed short
1291 vec_load_bndry(const signed short *__ptr, unsigned short __len)
1292   __constant_pow2_range(__len, 64, 4096);
1293
1294 extern __ATTRS_o vector unsigned short
1295 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1296   __constant_pow2_range(__len, 64, 4096);
1297
1298 extern __ATTRS_o vector signed int
1299 vec_load_bndry(const signed int *__ptr, unsigned short __len)
1300   __constant_pow2_range(__len, 64, 4096);
1301
1302 extern __ATTRS_o vector unsigned int
1303 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1304   __constant_pow2_range(__len, 64, 4096);
1305
1306 extern __ATTRS_o vector signed long long
1307 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1308   __constant_pow2_range(__len, 64, 4096);
1309
1310 extern __ATTRS_o vector unsigned long long
1311 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1312   __constant_pow2_range(__len, 64, 4096);
1313
1314 #if __ARCH__ >= 12
1315 extern __ATTRS_o vector float
1316 vec_load_bndry(const float *__ptr, unsigned short __len)
1317   __constant_pow2_range(__len, 64, 4096);
1318 #endif
1319
1320 extern __ATTRS_o vector double
1321 vec_load_bndry(const double *__ptr, unsigned short __len)
1322   __constant_pow2_range(__len, 64, 4096);
1323
1324 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1325   __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1326                             (Y) == 128 ? 1 : \
1327                             (Y) == 256 ? 2 : \
1328                             (Y) == 512 ? 3 : \
1329                             (Y) == 1024 ? 4 : \
1330                             (Y) == 2048 ? 5 : \
1331                             (Y) == 4096 ? 6 : -1)))
1332
1333 /*-- vec_load_len -----------------------------------------------------------*/
1334
1335 static inline __ATTRS_o_ai vector signed char
1336 vec_load_len(const signed char *__ptr, unsigned int __len) {
1337   return (vector signed char)__builtin_s390_vll(__len, __ptr);
1338 }
1339
1340 static inline __ATTRS_o_ai vector unsigned char
1341 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1342   return (vector unsigned char)__builtin_s390_vll(__len, __ptr);
1343 }
1344
1345 static inline __ATTRS_o_ai vector signed short
1346 vec_load_len(const signed short *__ptr, unsigned int __len) {
1347   return (vector signed short)__builtin_s390_vll(__len, __ptr);
1348 }
1349
1350 static inline __ATTRS_o_ai vector unsigned short
1351 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1352   return (vector unsigned short)__builtin_s390_vll(__len, __ptr);
1353 }
1354
1355 static inline __ATTRS_o_ai vector signed int
1356 vec_load_len(const signed int *__ptr, unsigned int __len) {
1357   return (vector signed int)__builtin_s390_vll(__len, __ptr);
1358 }
1359
1360 static inline __ATTRS_o_ai vector unsigned int
1361 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1362   return (vector unsigned int)__builtin_s390_vll(__len, __ptr);
1363 }
1364
1365 static inline __ATTRS_o_ai vector signed long long
1366 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1367   return (vector signed long long)__builtin_s390_vll(__len, __ptr);
1368 }
1369
1370 static inline __ATTRS_o_ai vector unsigned long long
1371 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1372   return (vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1373 }
1374
1375 #if __ARCH__ >= 12
1376 static inline __ATTRS_o_ai vector float
1377 vec_load_len(const float *__ptr, unsigned int __len) {
1378   return (vector float)__builtin_s390_vll(__len, __ptr);
1379 }
1380 #endif
1381
1382 static inline __ATTRS_o_ai vector double
1383 vec_load_len(const double *__ptr, unsigned int __len) {
1384   return (vector double)__builtin_s390_vll(__len, __ptr);
1385 }
1386
1387 /*-- vec_load_len_r ---------------------------------------------------------*/
1388
1389 #if __ARCH__ >= 12
1390 static inline __ATTRS_ai vector unsigned char
1391 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1392   return (vector unsigned char)__builtin_s390_vlrl(__len, __ptr);
1393 }
1394 #endif
1395
1396 /*-- vec_store_len ----------------------------------------------------------*/
1397
1398 static inline __ATTRS_o_ai void
1399 vec_store_len(vector signed char __vec, signed char *__ptr,
1400               unsigned int __len) {
1401   __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1402 }
1403
1404 static inline __ATTRS_o_ai void
1405 vec_store_len(vector unsigned char __vec, unsigned char *__ptr,
1406               unsigned int __len) {
1407   __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1408 }
1409
1410 static inline __ATTRS_o_ai void
1411 vec_store_len(vector signed short __vec, signed short *__ptr,
1412               unsigned int __len) {
1413   __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1414 }
1415
1416 static inline __ATTRS_o_ai void
1417 vec_store_len(vector unsigned short __vec, unsigned short *__ptr,
1418               unsigned int __len) {
1419   __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1420 }
1421
1422 static inline __ATTRS_o_ai void
1423 vec_store_len(vector signed int __vec, signed int *__ptr,
1424               unsigned int __len) {
1425   __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1426 }
1427
1428 static inline __ATTRS_o_ai void
1429 vec_store_len(vector unsigned int __vec, unsigned int *__ptr,
1430               unsigned int __len) {
1431   __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1432 }
1433
1434 static inline __ATTRS_o_ai void
1435 vec_store_len(vector signed long long __vec, signed long long *__ptr,
1436               unsigned int __len) {
1437   __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1438 }
1439
1440 static inline __ATTRS_o_ai void
1441 vec_store_len(vector unsigned long long __vec, unsigned long long *__ptr,
1442               unsigned int __len) {
1443   __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1444 }
1445
1446 #if __ARCH__ >= 12
1447 static inline __ATTRS_o_ai void
1448 vec_store_len(vector float __vec, float *__ptr,
1449               unsigned int __len) {
1450   __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1451 }
1452 #endif
1453
1454 static inline __ATTRS_o_ai void
1455 vec_store_len(vector double __vec, double *__ptr,
1456               unsigned int __len) {
1457   __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1458 }
1459
1460 /*-- vec_store_len_r --------------------------------------------------------*/
1461
1462 #if __ARCH__ >= 12
1463 static inline __ATTRS_ai void
1464 vec_store_len_r(vector unsigned char __vec, unsigned char *__ptr,
1465                 unsigned int __len) {
1466   __builtin_s390_vstrl((vector signed char)__vec, __len, __ptr);
1467 }
1468 #endif
1469
1470 /*-- vec_load_pair ----------------------------------------------------------*/
1471
1472 static inline __ATTRS_o_ai vector signed long long
1473 vec_load_pair(signed long long __a, signed long long __b) {
1474   return (vector signed long long)(__a, __b);
1475 }
1476
1477 static inline __ATTRS_o_ai vector unsigned long long
1478 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1479   return (vector unsigned long long)(__a, __b);
1480 }
1481
1482 /*-- vec_genmask ------------------------------------------------------------*/
1483
1484 static inline __ATTRS_o_ai vector unsigned char
1485 vec_genmask(unsigned short __mask)
1486   __constant(__mask) {
1487   return (vector unsigned char)(
1488     __mask & 0x8000 ? 0xff : 0,
1489     __mask & 0x4000 ? 0xff : 0,
1490     __mask & 0x2000 ? 0xff : 0,
1491     __mask & 0x1000 ? 0xff : 0,
1492     __mask & 0x0800 ? 0xff : 0,
1493     __mask & 0x0400 ? 0xff : 0,
1494     __mask & 0x0200 ? 0xff : 0,
1495     __mask & 0x0100 ? 0xff : 0,
1496     __mask & 0x0080 ? 0xff : 0,
1497     __mask & 0x0040 ? 0xff : 0,
1498     __mask & 0x0020 ? 0xff : 0,
1499     __mask & 0x0010 ? 0xff : 0,
1500     __mask & 0x0008 ? 0xff : 0,
1501     __mask & 0x0004 ? 0xff : 0,
1502     __mask & 0x0002 ? 0xff : 0,
1503     __mask & 0x0001 ? 0xff : 0);
1504 }
1505
1506 /*-- vec_genmasks_* ---------------------------------------------------------*/
1507
1508 static inline __ATTRS_o_ai vector unsigned char
1509 vec_genmasks_8(unsigned char __first, unsigned char __last)
1510   __constant(__first) __constant(__last) {
1511   unsigned char __bit1 = __first & 7;
1512   unsigned char __bit2 = __last & 7;
1513   unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1514   unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1515   unsigned char __value = (__bit1 <= __bit2 ?
1516                            __mask1 & ~__mask2 :
1517                            __mask1 | ~__mask2);
1518   return (vector unsigned char)__value;
1519 }
1520
1521 static inline __ATTRS_o_ai vector unsigned short
1522 vec_genmasks_16(unsigned char __first, unsigned char __last)
1523   __constant(__first) __constant(__last) {
1524   unsigned char __bit1 = __first & 15;
1525   unsigned char __bit2 = __last & 15;
1526   unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1527   unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1528   unsigned short __value = (__bit1 <= __bit2 ?
1529                             __mask1 & ~__mask2 :
1530                             __mask1 | ~__mask2);
1531   return (vector unsigned short)__value;
1532 }
1533
1534 static inline __ATTRS_o_ai vector unsigned int
1535 vec_genmasks_32(unsigned char __first, unsigned char __last)
1536   __constant(__first) __constant(__last) {
1537   unsigned char __bit1 = __first & 31;
1538   unsigned char __bit2 = __last & 31;
1539   unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1540   unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1541   unsigned int __value = (__bit1 <= __bit2 ?
1542                           __mask1 & ~__mask2 :
1543                           __mask1 | ~__mask2);
1544   return (vector unsigned int)__value;
1545 }
1546
1547 static inline __ATTRS_o_ai vector unsigned long long
1548 vec_genmasks_64(unsigned char __first, unsigned char __last)
1549   __constant(__first) __constant(__last) {
1550   unsigned char __bit1 = __first & 63;
1551   unsigned char __bit2 = __last & 63;
1552   unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1553   unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1554   unsigned long long __value = (__bit1 <= __bit2 ?
1555                                 __mask1 & ~__mask2 :
1556                                 __mask1 | ~__mask2);
1557   return (vector unsigned long long)__value;
1558 }
1559
1560 /*-- vec_splat --------------------------------------------------------------*/
1561
1562 static inline __ATTRS_o_ai vector signed char
1563 vec_splat(vector signed char __vec, int __index)
1564   __constant_range(__index, 0, 15) {
1565   return (vector signed char)__vec[__index];
1566 }
1567
1568 static inline __ATTRS_o_ai vector bool char
1569 vec_splat(vector bool char __vec, int __index)
1570   __constant_range(__index, 0, 15) {
1571   return (vector bool char)(vector unsigned char)__vec[__index];
1572 }
1573
1574 static inline __ATTRS_o_ai vector unsigned char
1575 vec_splat(vector unsigned char __vec, int __index)
1576   __constant_range(__index, 0, 15) {
1577   return (vector unsigned char)__vec[__index];
1578 }
1579
1580 static inline __ATTRS_o_ai vector signed short
1581 vec_splat(vector signed short __vec, int __index)
1582   __constant_range(__index, 0, 7) {
1583   return (vector signed short)__vec[__index];
1584 }
1585
1586 static inline __ATTRS_o_ai vector bool short
1587 vec_splat(vector bool short __vec, int __index)
1588   __constant_range(__index, 0, 7) {
1589   return (vector bool short)(vector unsigned short)__vec[__index];
1590 }
1591
1592 static inline __ATTRS_o_ai vector unsigned short
1593 vec_splat(vector unsigned short __vec, int __index)
1594   __constant_range(__index, 0, 7) {
1595   return (vector unsigned short)__vec[__index];
1596 }
1597
1598 static inline __ATTRS_o_ai vector signed int
1599 vec_splat(vector signed int __vec, int __index)
1600   __constant_range(__index, 0, 3) {
1601   return (vector signed int)__vec[__index];
1602 }
1603
1604 static inline __ATTRS_o_ai vector bool int
1605 vec_splat(vector bool int __vec, int __index)
1606   __constant_range(__index, 0, 3) {
1607   return (vector bool int)(vector unsigned int)__vec[__index];
1608 }
1609
1610 static inline __ATTRS_o_ai vector unsigned int
1611 vec_splat(vector unsigned int __vec, int __index)
1612   __constant_range(__index, 0, 3) {
1613   return (vector unsigned int)__vec[__index];
1614 }
1615
1616 static inline __ATTRS_o_ai vector signed long long
1617 vec_splat(vector signed long long __vec, int __index)
1618   __constant_range(__index, 0, 1) {
1619   return (vector signed long long)__vec[__index];
1620 }
1621
1622 static inline __ATTRS_o_ai vector bool long long
1623 vec_splat(vector bool long long __vec, int __index)
1624   __constant_range(__index, 0, 1) {
1625   return (vector bool long long)(vector unsigned long long)__vec[__index];
1626 }
1627
1628 static inline __ATTRS_o_ai vector unsigned long long
1629 vec_splat(vector unsigned long long __vec, int __index)
1630   __constant_range(__index, 0, 1) {
1631   return (vector unsigned long long)__vec[__index];
1632 }
1633
1634 #if __ARCH__ >= 12
1635 static inline __ATTRS_o_ai vector float
1636 vec_splat(vector float __vec, int __index)
1637   __constant_range(__index, 0, 3) {
1638   return (vector float)__vec[__index];
1639 }
1640 #endif
1641
1642 static inline __ATTRS_o_ai vector double
1643 vec_splat(vector double __vec, int __index)
1644   __constant_range(__index, 0, 1) {
1645   return (vector double)__vec[__index];
1646 }
1647
1648 /*-- vec_splat_s* -----------------------------------------------------------*/
1649
1650 static inline __ATTRS_ai vector signed char
1651 vec_splat_s8(signed char __scalar)
1652   __constant(__scalar) {
1653   return (vector signed char)__scalar;
1654 }
1655
1656 static inline __ATTRS_ai vector signed short
1657 vec_splat_s16(signed short __scalar)
1658   __constant(__scalar) {
1659   return (vector signed short)__scalar;
1660 }
1661
1662 static inline __ATTRS_ai vector signed int
1663 vec_splat_s32(signed short __scalar)
1664   __constant(__scalar) {
1665   return (vector signed int)(signed int)__scalar;
1666 }
1667
1668 static inline __ATTRS_ai vector signed long long
1669 vec_splat_s64(signed short __scalar)
1670   __constant(__scalar) {
1671   return (vector signed long long)(signed long)__scalar;
1672 }
1673
1674 /*-- vec_splat_u* -----------------------------------------------------------*/
1675
1676 static inline __ATTRS_ai vector unsigned char
1677 vec_splat_u8(unsigned char __scalar)
1678   __constant(__scalar) {
1679   return (vector unsigned char)__scalar;
1680 }
1681
1682 static inline __ATTRS_ai vector unsigned short
1683 vec_splat_u16(unsigned short __scalar)
1684   __constant(__scalar) {
1685   return (vector unsigned short)__scalar;
1686 }
1687
1688 static inline __ATTRS_ai vector unsigned int
1689 vec_splat_u32(signed short __scalar)
1690   __constant(__scalar) {
1691   return (vector unsigned int)(signed int)__scalar;
1692 }
1693
1694 static inline __ATTRS_ai vector unsigned long long
1695 vec_splat_u64(signed short __scalar)
1696   __constant(__scalar) {
1697   return (vector unsigned long long)(signed long long)__scalar;
1698 }
1699
1700 /*-- vec_splats -------------------------------------------------------------*/
1701
1702 static inline __ATTRS_o_ai vector signed char
1703 vec_splats(signed char __scalar) {
1704   return (vector signed char)__scalar;
1705 }
1706
1707 static inline __ATTRS_o_ai vector unsigned char
1708 vec_splats(unsigned char __scalar) {
1709   return (vector unsigned char)__scalar;
1710 }
1711
1712 static inline __ATTRS_o_ai vector signed short
1713 vec_splats(signed short __scalar) {
1714   return (vector signed short)__scalar;
1715 }
1716
1717 static inline __ATTRS_o_ai vector unsigned short
1718 vec_splats(unsigned short __scalar) {
1719   return (vector unsigned short)__scalar;
1720 }
1721
1722 static inline __ATTRS_o_ai vector signed int
1723 vec_splats(signed int __scalar) {
1724   return (vector signed int)__scalar;
1725 }
1726
1727 static inline __ATTRS_o_ai vector unsigned int
1728 vec_splats(unsigned int __scalar) {
1729   return (vector unsigned int)__scalar;
1730 }
1731
1732 static inline __ATTRS_o_ai vector signed long long
1733 vec_splats(signed long long __scalar) {
1734   return (vector signed long long)__scalar;
1735 }
1736
1737 static inline __ATTRS_o_ai vector unsigned long long
1738 vec_splats(unsigned long long __scalar) {
1739   return (vector unsigned long long)__scalar;
1740 }
1741
1742 #if __ARCH__ >= 12
1743 static inline __ATTRS_o_ai vector float
1744 vec_splats(float __scalar) {
1745   return (vector float)__scalar;
1746 }
1747 #endif
1748
1749 static inline __ATTRS_o_ai vector double
1750 vec_splats(double __scalar) {
1751   return (vector double)__scalar;
1752 }
1753
1754 /*-- vec_extend_s64 ---------------------------------------------------------*/
1755
1756 static inline __ATTRS_o_ai vector signed long long
1757 vec_extend_s64(vector signed char __a) {
1758   return (vector signed long long)(__a[7], __a[15]);
1759 }
1760
1761 static inline __ATTRS_o_ai vector signed long long
1762 vec_extend_s64(vector signed short __a) {
1763   return (vector signed long long)(__a[3], __a[7]);
1764 }
1765
1766 static inline __ATTRS_o_ai vector signed long long
1767 vec_extend_s64(vector signed int __a) {
1768   return (vector signed long long)(__a[1], __a[3]);
1769 }
1770
1771 /*-- vec_mergeh -------------------------------------------------------------*/
1772
1773 static inline __ATTRS_o_ai vector signed char
1774 vec_mergeh(vector signed char __a, vector signed char __b) {
1775   return (vector signed char)(
1776     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1777     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1778 }
1779
1780 static inline __ATTRS_o_ai vector bool char
1781 vec_mergeh(vector bool char __a, vector bool char __b) {
1782   return (vector bool char)(
1783     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1784     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1785 }
1786
1787 static inline __ATTRS_o_ai vector unsigned char
1788 vec_mergeh(vector unsigned char __a, vector unsigned char __b) {
1789   return (vector unsigned char)(
1790     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1791     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1792 }
1793
1794 static inline __ATTRS_o_ai vector signed short
1795 vec_mergeh(vector signed short __a, vector signed short __b) {
1796   return (vector signed short)(
1797     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1798 }
1799
1800 static inline __ATTRS_o_ai vector bool short
1801 vec_mergeh(vector bool short __a, vector bool short __b) {
1802   return (vector bool short)(
1803     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1804 }
1805
1806 static inline __ATTRS_o_ai vector unsigned short
1807 vec_mergeh(vector unsigned short __a, vector unsigned short __b) {
1808   return (vector unsigned short)(
1809     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1810 }
1811
1812 static inline __ATTRS_o_ai vector signed int
1813 vec_mergeh(vector signed int __a, vector signed int __b) {
1814   return (vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1815 }
1816
1817 static inline __ATTRS_o_ai vector bool int
1818 vec_mergeh(vector bool int __a, vector bool int __b) {
1819   return (vector bool int)(__a[0], __b[0], __a[1], __b[1]);
1820 }
1821
1822 static inline __ATTRS_o_ai vector unsigned int
1823 vec_mergeh(vector unsigned int __a, vector unsigned int __b) {
1824   return (vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1825 }
1826
1827 static inline __ATTRS_o_ai vector signed long long
1828 vec_mergeh(vector signed long long __a, vector signed long long __b) {
1829   return (vector signed long long)(__a[0], __b[0]);
1830 }
1831
1832 static inline __ATTRS_o_ai vector bool long long
1833 vec_mergeh(vector bool long long __a, vector bool long long __b) {
1834   return (vector bool long long)(__a[0], __b[0]);
1835 }
1836
1837 static inline __ATTRS_o_ai vector unsigned long long
1838 vec_mergeh(vector unsigned long long __a, vector unsigned long long __b) {
1839   return (vector unsigned long long)(__a[0], __b[0]);
1840 }
1841
1842 #if __ARCH__ >= 12
1843 static inline __ATTRS_o_ai vector float
1844 vec_mergeh(vector float __a, vector float __b) {
1845   return (vector float)(__a[0], __b[0], __a[1], __b[1]);
1846 }
1847 #endif
1848
1849 static inline __ATTRS_o_ai vector double
1850 vec_mergeh(vector double __a, vector double __b) {
1851   return (vector double)(__a[0], __b[0]);
1852 }
1853
1854 /*-- vec_mergel -------------------------------------------------------------*/
1855
1856 static inline __ATTRS_o_ai vector signed char
1857 vec_mergel(vector signed char __a, vector signed char __b) {
1858   return (vector signed char)(
1859     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1860     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1861 }
1862
1863 static inline __ATTRS_o_ai vector bool char
1864 vec_mergel(vector bool char __a, vector bool char __b) {
1865   return (vector bool char)(
1866     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1867     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1868 }
1869
1870 static inline __ATTRS_o_ai vector unsigned char
1871 vec_mergel(vector unsigned char __a, vector unsigned char __b) {
1872   return (vector unsigned char)(
1873     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1874     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1875 }
1876
1877 static inline __ATTRS_o_ai vector signed short
1878 vec_mergel(vector signed short __a, vector signed short __b) {
1879   return (vector signed short)(
1880     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1881 }
1882
1883 static inline __ATTRS_o_ai vector bool short
1884 vec_mergel(vector bool short __a, vector bool short __b) {
1885   return (vector bool short)(
1886     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1887 }
1888
1889 static inline __ATTRS_o_ai vector unsigned short
1890 vec_mergel(vector unsigned short __a, vector unsigned short __b) {
1891   return (vector unsigned short)(
1892     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1893 }
1894
1895 static inline __ATTRS_o_ai vector signed int
1896 vec_mergel(vector signed int __a, vector signed int __b) {
1897   return (vector signed int)(__a[2], __b[2], __a[3], __b[3]);
1898 }
1899
1900 static inline __ATTRS_o_ai vector bool int
1901 vec_mergel(vector bool int __a, vector bool int __b) {
1902   return (vector bool int)(__a[2], __b[2], __a[3], __b[3]);
1903 }
1904
1905 static inline __ATTRS_o_ai vector unsigned int
1906 vec_mergel(vector unsigned int __a, vector unsigned int __b) {
1907   return (vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
1908 }
1909
1910 static inline __ATTRS_o_ai vector signed long long
1911 vec_mergel(vector signed long long __a, vector signed long long __b) {
1912   return (vector signed long long)(__a[1], __b[1]);
1913 }
1914
1915 static inline __ATTRS_o_ai vector bool long long
1916 vec_mergel(vector bool long long __a, vector bool long long __b) {
1917   return (vector bool long long)(__a[1], __b[1]);
1918 }
1919
1920 static inline __ATTRS_o_ai vector unsigned long long
1921 vec_mergel(vector unsigned long long __a, vector unsigned long long __b) {
1922   return (vector unsigned long long)(__a[1], __b[1]);
1923 }
1924
1925 #if __ARCH__ >= 12
1926 static inline __ATTRS_o_ai vector float
1927 vec_mergel(vector float __a, vector float __b) {
1928   return (vector float)(__a[2], __b[2], __a[3], __b[3]);
1929 }
1930 #endif
1931
1932 static inline __ATTRS_o_ai vector double
1933 vec_mergel(vector double __a, vector double __b) {
1934   return (vector double)(__a[1], __b[1]);
1935 }
1936
1937 /*-- vec_pack ---------------------------------------------------------------*/
1938
1939 static inline __ATTRS_o_ai vector signed char
1940 vec_pack(vector signed short __a, vector signed short __b) {
1941   vector signed char __ac = (vector signed char)__a;
1942   vector signed char __bc = (vector signed char)__b;
1943   return (vector signed char)(
1944     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1945     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1946 }
1947
1948 static inline __ATTRS_o_ai vector bool char
1949 vec_pack(vector bool short __a, vector bool short __b) {
1950   vector bool char __ac = (vector bool char)__a;
1951   vector bool char __bc = (vector bool char)__b;
1952   return (vector bool char)(
1953     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1954     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1955 }
1956
1957 static inline __ATTRS_o_ai vector unsigned char
1958 vec_pack(vector unsigned short __a, vector unsigned short __b) {
1959   vector unsigned char __ac = (vector unsigned char)__a;
1960   vector unsigned char __bc = (vector unsigned char)__b;
1961   return (vector unsigned char)(
1962     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1963     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1964 }
1965
1966 static inline __ATTRS_o_ai vector signed short
1967 vec_pack(vector signed int __a, vector signed int __b) {
1968   vector signed short __ac = (vector signed short)__a;
1969   vector signed short __bc = (vector signed short)__b;
1970   return (vector signed short)(
1971     __ac[1], __ac[3], __ac[5], __ac[7],
1972     __bc[1], __bc[3], __bc[5], __bc[7]);
1973 }
1974
1975 static inline __ATTRS_o_ai vector bool short
1976 vec_pack(vector bool int __a, vector bool int __b) {
1977   vector bool short __ac = (vector bool short)__a;
1978   vector bool short __bc = (vector bool short)__b;
1979   return (vector bool short)(
1980     __ac[1], __ac[3], __ac[5], __ac[7],
1981     __bc[1], __bc[3], __bc[5], __bc[7]);
1982 }
1983
1984 static inline __ATTRS_o_ai vector unsigned short
1985 vec_pack(vector unsigned int __a, vector unsigned int __b) {
1986   vector unsigned short __ac = (vector unsigned short)__a;
1987   vector unsigned short __bc = (vector unsigned short)__b;
1988   return (vector unsigned short)(
1989     __ac[1], __ac[3], __ac[5], __ac[7],
1990     __bc[1], __bc[3], __bc[5], __bc[7]);
1991 }
1992
1993 static inline __ATTRS_o_ai vector signed int
1994 vec_pack(vector signed long long __a, vector signed long long __b) {
1995   vector signed int __ac = (vector signed int)__a;
1996   vector signed int __bc = (vector signed int)__b;
1997   return (vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1998 }
1999
2000 static inline __ATTRS_o_ai vector bool int
2001 vec_pack(vector bool long long __a, vector bool long long __b) {
2002   vector bool int __ac = (vector bool int)__a;
2003   vector bool int __bc = (vector bool int)__b;
2004   return (vector bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2005 }
2006
2007 static inline __ATTRS_o_ai vector unsigned int
2008 vec_pack(vector unsigned long long __a, vector unsigned long long __b) {
2009   vector unsigned int __ac = (vector unsigned int)__a;
2010   vector unsigned int __bc = (vector unsigned int)__b;
2011   return (vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2012 }
2013
2014 /*-- vec_packs --------------------------------------------------------------*/
2015
2016 static inline __ATTRS_o_ai vector signed char
2017 vec_packs(vector signed short __a, vector signed short __b) {
2018   return __builtin_s390_vpksh(__a, __b);
2019 }
2020
2021 static inline __ATTRS_o_ai vector unsigned char
2022 vec_packs(vector unsigned short __a, vector unsigned short __b) {
2023   return __builtin_s390_vpklsh(__a, __b);
2024 }
2025
2026 static inline __ATTRS_o_ai vector signed short
2027 vec_packs(vector signed int __a, vector signed int __b) {
2028   return __builtin_s390_vpksf(__a, __b);
2029 }
2030
2031 static inline __ATTRS_o_ai vector unsigned short
2032 vec_packs(vector unsigned int __a, vector unsigned int __b) {
2033   return __builtin_s390_vpklsf(__a, __b);
2034 }
2035
2036 static inline __ATTRS_o_ai vector signed int
2037 vec_packs(vector signed long long __a, vector signed long long __b) {
2038   return __builtin_s390_vpksg(__a, __b);
2039 }
2040
2041 static inline __ATTRS_o_ai vector unsigned int
2042 vec_packs(vector unsigned long long __a, vector unsigned long long __b) {
2043   return __builtin_s390_vpklsg(__a, __b);
2044 }
2045
2046 /*-- vec_packs_cc -----------------------------------------------------------*/
2047
2048 static inline __ATTRS_o_ai vector signed char
2049 vec_packs_cc(vector signed short __a, vector signed short __b, int *__cc) {
2050   return __builtin_s390_vpkshs(__a, __b, __cc);
2051 }
2052
2053 static inline __ATTRS_o_ai vector unsigned char
2054 vec_packs_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
2055   return __builtin_s390_vpklshs(__a, __b, __cc);
2056 }
2057
2058 static inline __ATTRS_o_ai vector signed short
2059 vec_packs_cc(vector signed int __a, vector signed int __b, int *__cc) {
2060   return __builtin_s390_vpksfs(__a, __b, __cc);
2061 }
2062
2063 static inline __ATTRS_o_ai vector unsigned short
2064 vec_packs_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
2065   return __builtin_s390_vpklsfs(__a, __b, __cc);
2066 }
2067
2068 static inline __ATTRS_o_ai vector signed int
2069 vec_packs_cc(vector signed long long __a, vector signed long long __b,
2070              int *__cc) {
2071   return __builtin_s390_vpksgs(__a, __b, __cc);
2072 }
2073
2074 static inline __ATTRS_o_ai vector unsigned int
2075 vec_packs_cc(vector unsigned long long __a, vector unsigned long long __b,
2076              int *__cc) {
2077   return __builtin_s390_vpklsgs(__a, __b, __cc);
2078 }
2079
2080 /*-- vec_packsu -------------------------------------------------------------*/
2081
2082 static inline __ATTRS_o_ai vector unsigned char
2083 vec_packsu(vector signed short __a, vector signed short __b) {
2084   const vector signed short __zero = (vector signed short)0;
2085   return __builtin_s390_vpklsh(
2086     (vector unsigned short)(__a >= __zero) & (vector unsigned short)__a,
2087     (vector unsigned short)(__b >= __zero) & (vector unsigned short)__b);
2088 }
2089
2090 static inline __ATTRS_o_ai vector unsigned char
2091 vec_packsu(vector unsigned short __a, vector unsigned short __b) {
2092   return __builtin_s390_vpklsh(__a, __b);
2093 }
2094
2095 static inline __ATTRS_o_ai vector unsigned short
2096 vec_packsu(vector signed int __a, vector signed int __b) {
2097   const vector signed int __zero = (vector signed int)0;
2098   return __builtin_s390_vpklsf(
2099     (vector unsigned int)(__a >= __zero) & (vector unsigned int)__a,
2100     (vector unsigned int)(__b >= __zero) & (vector unsigned int)__b);
2101 }
2102
2103 static inline __ATTRS_o_ai vector unsigned short
2104 vec_packsu(vector unsigned int __a, vector unsigned int __b) {
2105   return __builtin_s390_vpklsf(__a, __b);
2106 }
2107
2108 static inline __ATTRS_o_ai vector unsigned int
2109 vec_packsu(vector signed long long __a, vector signed long long __b) {
2110   const vector signed long long __zero = (vector signed long long)0;
2111   return __builtin_s390_vpklsg(
2112     (vector unsigned long long)(__a >= __zero) &
2113     (vector unsigned long long)__a,
2114     (vector unsigned long long)(__b >= __zero) &
2115     (vector unsigned long long)__b);
2116 }
2117
2118 static inline __ATTRS_o_ai vector unsigned int
2119 vec_packsu(vector unsigned long long __a, vector unsigned long long __b) {
2120   return __builtin_s390_vpklsg(__a, __b);
2121 }
2122
2123 /*-- vec_packsu_cc ----------------------------------------------------------*/
2124
2125 static inline __ATTRS_o_ai vector unsigned char
2126 vec_packsu_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
2127   return __builtin_s390_vpklshs(__a, __b, __cc);
2128 }
2129
2130 static inline __ATTRS_o_ai vector unsigned short
2131 vec_packsu_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
2132   return __builtin_s390_vpklsfs(__a, __b, __cc);
2133 }
2134
2135 static inline __ATTRS_o_ai vector unsigned int
2136 vec_packsu_cc(vector unsigned long long __a, vector unsigned long long __b,
2137               int *__cc) {
2138   return __builtin_s390_vpklsgs(__a, __b, __cc);
2139 }
2140
2141 /*-- vec_unpackh ------------------------------------------------------------*/
2142
2143 static inline __ATTRS_o_ai vector signed short
2144 vec_unpackh(vector signed char __a) {
2145   return __builtin_s390_vuphb(__a);
2146 }
2147
2148 static inline __ATTRS_o_ai vector bool short
2149 vec_unpackh(vector bool char __a) {
2150   return (vector bool short)__builtin_s390_vuphb((vector signed char)__a);
2151 }
2152
2153 static inline __ATTRS_o_ai vector unsigned short
2154 vec_unpackh(vector unsigned char __a) {
2155   return __builtin_s390_vuplhb(__a);
2156 }
2157
2158 static inline __ATTRS_o_ai vector signed int
2159 vec_unpackh(vector signed short __a) {
2160   return __builtin_s390_vuphh(__a);
2161 }
2162
2163 static inline __ATTRS_o_ai vector bool int
2164 vec_unpackh(vector bool short __a) {
2165   return (vector bool int)__builtin_s390_vuphh((vector signed short)__a);
2166 }
2167
2168 static inline __ATTRS_o_ai vector unsigned int
2169 vec_unpackh(vector unsigned short __a) {
2170   return __builtin_s390_vuplhh(__a);
2171 }
2172
2173 static inline __ATTRS_o_ai vector signed long long
2174 vec_unpackh(vector signed int __a) {
2175   return __builtin_s390_vuphf(__a);
2176 }
2177
2178 static inline __ATTRS_o_ai vector bool long long
2179 vec_unpackh(vector bool int __a) {
2180   return (vector bool long long)__builtin_s390_vuphf((vector signed int)__a);
2181 }
2182
2183 static inline __ATTRS_o_ai vector unsigned long long
2184 vec_unpackh(vector unsigned int __a) {
2185   return __builtin_s390_vuplhf(__a);
2186 }
2187
2188 /*-- vec_unpackl ------------------------------------------------------------*/
2189
2190 static inline __ATTRS_o_ai vector signed short
2191 vec_unpackl(vector signed char __a) {
2192   return __builtin_s390_vuplb(__a);
2193 }
2194
2195 static inline __ATTRS_o_ai vector bool short
2196 vec_unpackl(vector bool char __a) {
2197   return (vector bool short)__builtin_s390_vuplb((vector signed char)__a);
2198 }
2199
2200 static inline __ATTRS_o_ai vector unsigned short
2201 vec_unpackl(vector unsigned char __a) {
2202   return __builtin_s390_vupllb(__a);
2203 }
2204
2205 static inline __ATTRS_o_ai vector signed int
2206 vec_unpackl(vector signed short __a) {
2207   return __builtin_s390_vuplhw(__a);
2208 }
2209
2210 static inline __ATTRS_o_ai vector bool int
2211 vec_unpackl(vector bool short __a) {
2212   return (vector bool int)__builtin_s390_vuplhw((vector signed short)__a);
2213 }
2214
2215 static inline __ATTRS_o_ai vector unsigned int
2216 vec_unpackl(vector unsigned short __a) {
2217   return __builtin_s390_vupllh(__a);
2218 }
2219
2220 static inline __ATTRS_o_ai vector signed long long
2221 vec_unpackl(vector signed int __a) {
2222   return __builtin_s390_vuplf(__a);
2223 }
2224
2225 static inline __ATTRS_o_ai vector bool long long
2226 vec_unpackl(vector bool int __a) {
2227   return (vector bool long long)__builtin_s390_vuplf((vector signed int)__a);
2228 }
2229
2230 static inline __ATTRS_o_ai vector unsigned long long
2231 vec_unpackl(vector unsigned int __a) {
2232   return __builtin_s390_vupllf(__a);
2233 }
2234
2235 /*-- vec_cmpeq --------------------------------------------------------------*/
2236
2237 static inline __ATTRS_o_ai vector bool char
2238 vec_cmpeq(vector bool char __a, vector bool char __b) {
2239   return (vector bool char)(__a == __b);
2240 }
2241
2242 static inline __ATTRS_o_ai vector bool char
2243 vec_cmpeq(vector signed char __a, vector signed char __b) {
2244   return (vector bool char)(__a == __b);
2245 }
2246
2247 static inline __ATTRS_o_ai vector bool char
2248 vec_cmpeq(vector unsigned char __a, vector unsigned char __b) {
2249   return (vector bool char)(__a == __b);
2250 }
2251
2252 static inline __ATTRS_o_ai vector bool short
2253 vec_cmpeq(vector bool short __a, vector bool short __b) {
2254   return (vector bool short)(__a == __b);
2255 }
2256
2257 static inline __ATTRS_o_ai vector bool short
2258 vec_cmpeq(vector signed short __a, vector signed short __b) {
2259   return (vector bool short)(__a == __b);
2260 }
2261
2262 static inline __ATTRS_o_ai vector bool short
2263 vec_cmpeq(vector unsigned short __a, vector unsigned short __b) {
2264   return (vector bool short)(__a == __b);
2265 }
2266
2267 static inline __ATTRS_o_ai vector bool int
2268 vec_cmpeq(vector bool int __a, vector bool int __b) {
2269   return (vector bool int)(__a == __b);
2270 }
2271
2272 static inline __ATTRS_o_ai vector bool int
2273 vec_cmpeq(vector signed int __a, vector signed int __b) {
2274   return (vector bool int)(__a == __b);
2275 }
2276
2277 static inline __ATTRS_o_ai vector bool int
2278 vec_cmpeq(vector unsigned int __a, vector unsigned int __b) {
2279   return (vector bool int)(__a == __b);
2280 }
2281
2282 static inline __ATTRS_o_ai vector bool long long
2283 vec_cmpeq(vector bool long long __a, vector bool long long __b) {
2284   return (vector bool long long)(__a == __b);
2285 }
2286
2287 static inline __ATTRS_o_ai vector bool long long
2288 vec_cmpeq(vector signed long long __a, vector signed long long __b) {
2289   return (vector bool long long)(__a == __b);
2290 }
2291
2292 static inline __ATTRS_o_ai vector bool long long
2293 vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) {
2294   return (vector bool long long)(__a == __b);
2295 }
2296
2297 #if __ARCH__ >= 12
2298 static inline __ATTRS_o_ai vector bool int
2299 vec_cmpeq(vector float __a, vector float __b) {
2300   return (vector bool int)(__a == __b);
2301 }
2302 #endif
2303
2304 static inline __ATTRS_o_ai vector bool long long
2305 vec_cmpeq(vector double __a, vector double __b) {
2306   return (vector bool long long)(__a == __b);
2307 }
2308
2309 /*-- vec_cmpge --------------------------------------------------------------*/
2310
2311 static inline __ATTRS_o_ai vector bool char
2312 vec_cmpge(vector signed char __a, vector signed char __b) {
2313   return (vector bool char)(__a >= __b);
2314 }
2315
2316 static inline __ATTRS_o_ai vector bool char
2317 vec_cmpge(vector unsigned char __a, vector unsigned char __b) {
2318   return (vector bool char)(__a >= __b);
2319 }
2320
2321 static inline __ATTRS_o_ai vector bool short
2322 vec_cmpge(vector signed short __a, vector signed short __b) {
2323   return (vector bool short)(__a >= __b);
2324 }
2325
2326 static inline __ATTRS_o_ai vector bool short
2327 vec_cmpge(vector unsigned short __a, vector unsigned short __b) {
2328   return (vector bool short)(__a >= __b);
2329 }
2330
2331 static inline __ATTRS_o_ai vector bool int
2332 vec_cmpge(vector signed int __a, vector signed int __b) {
2333   return (vector bool int)(__a >= __b);
2334 }
2335
2336 static inline __ATTRS_o_ai vector bool int
2337 vec_cmpge(vector unsigned int __a, vector unsigned int __b) {
2338   return (vector bool int)(__a >= __b);
2339 }
2340
2341 static inline __ATTRS_o_ai vector bool long long
2342 vec_cmpge(vector signed long long __a, vector signed long long __b) {
2343   return (vector bool long long)(__a >= __b);
2344 }
2345
2346 static inline __ATTRS_o_ai vector bool long long
2347 vec_cmpge(vector unsigned long long __a, vector unsigned long long __b) {
2348   return (vector bool long long)(__a >= __b);
2349 }
2350
2351 #if __ARCH__ >= 12
2352 static inline __ATTRS_o_ai vector bool int
2353 vec_cmpge(vector float __a, vector float __b) {
2354   return (vector bool int)(__a >= __b);
2355 }
2356 #endif
2357
2358 static inline __ATTRS_o_ai vector bool long long
2359 vec_cmpge(vector double __a, vector double __b) {
2360   return (vector bool long long)(__a >= __b);
2361 }
2362
2363 /*-- vec_cmpgt --------------------------------------------------------------*/
2364
2365 static inline __ATTRS_o_ai vector bool char
2366 vec_cmpgt(vector signed char __a, vector signed char __b) {
2367   return (vector bool char)(__a > __b);
2368 }
2369
2370 static inline __ATTRS_o_ai vector bool char
2371 vec_cmpgt(vector unsigned char __a, vector unsigned char __b) {
2372   return (vector bool char)(__a > __b);
2373 }
2374
2375 static inline __ATTRS_o_ai vector bool short
2376 vec_cmpgt(vector signed short __a, vector signed short __b) {
2377   return (vector bool short)(__a > __b);
2378 }
2379
2380 static inline __ATTRS_o_ai vector bool short
2381 vec_cmpgt(vector unsigned short __a, vector unsigned short __b) {
2382   return (vector bool short)(__a > __b);
2383 }
2384
2385 static inline __ATTRS_o_ai vector bool int
2386 vec_cmpgt(vector signed int __a, vector signed int __b) {
2387   return (vector bool int)(__a > __b);
2388 }
2389
2390 static inline __ATTRS_o_ai vector bool int
2391 vec_cmpgt(vector unsigned int __a, vector unsigned int __b) {
2392   return (vector bool int)(__a > __b);
2393 }
2394
2395 static inline __ATTRS_o_ai vector bool long long
2396 vec_cmpgt(vector signed long long __a, vector signed long long __b) {
2397   return (vector bool long long)(__a > __b);
2398 }
2399
2400 static inline __ATTRS_o_ai vector bool long long
2401 vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) {
2402   return (vector bool long long)(__a > __b);
2403 }
2404
2405 #if __ARCH__ >= 12
2406 static inline __ATTRS_o_ai vector bool int
2407 vec_cmpgt(vector float __a, vector float __b) {
2408   return (vector bool int)(__a > __b);
2409 }
2410 #endif
2411
2412 static inline __ATTRS_o_ai vector bool long long
2413 vec_cmpgt(vector double __a, vector double __b) {
2414   return (vector bool long long)(__a > __b);
2415 }
2416
2417 /*-- vec_cmple --------------------------------------------------------------*/
2418
2419 static inline __ATTRS_o_ai vector bool char
2420 vec_cmple(vector signed char __a, vector signed char __b) {
2421   return (vector bool char)(__a <= __b);
2422 }
2423
2424 static inline __ATTRS_o_ai vector bool char
2425 vec_cmple(vector unsigned char __a, vector unsigned char __b) {
2426   return (vector bool char)(__a <= __b);
2427 }
2428
2429 static inline __ATTRS_o_ai vector bool short
2430 vec_cmple(vector signed short __a, vector signed short __b) {
2431   return (vector bool short)(__a <= __b);
2432 }
2433
2434 static inline __ATTRS_o_ai vector bool short
2435 vec_cmple(vector unsigned short __a, vector unsigned short __b) {
2436   return (vector bool short)(__a <= __b);
2437 }
2438
2439 static inline __ATTRS_o_ai vector bool int
2440 vec_cmple(vector signed int __a, vector signed int __b) {
2441   return (vector bool int)(__a <= __b);
2442 }
2443
2444 static inline __ATTRS_o_ai vector bool int
2445 vec_cmple(vector unsigned int __a, vector unsigned int __b) {
2446   return (vector bool int)(__a <= __b);
2447 }
2448
2449 static inline __ATTRS_o_ai vector bool long long
2450 vec_cmple(vector signed long long __a, vector signed long long __b) {
2451   return (vector bool long long)(__a <= __b);
2452 }
2453
2454 static inline __ATTRS_o_ai vector bool long long
2455 vec_cmple(vector unsigned long long __a, vector unsigned long long __b) {
2456   return (vector bool long long)(__a <= __b);
2457 }
2458
2459 #if __ARCH__ >= 12
2460 static inline __ATTRS_o_ai vector bool int
2461 vec_cmple(vector float __a, vector float __b) {
2462   return (vector bool int)(__a <= __b);
2463 }
2464 #endif
2465
2466 static inline __ATTRS_o_ai vector bool long long
2467 vec_cmple(vector double __a, vector double __b) {
2468   return (vector bool long long)(__a <= __b);
2469 }
2470
2471 /*-- vec_cmplt --------------------------------------------------------------*/
2472
2473 static inline __ATTRS_o_ai vector bool char
2474 vec_cmplt(vector signed char __a, vector signed char __b) {
2475   return (vector bool char)(__a < __b);
2476 }
2477
2478 static inline __ATTRS_o_ai vector bool char
2479 vec_cmplt(vector unsigned char __a, vector unsigned char __b) {
2480   return (vector bool char)(__a < __b);
2481 }
2482
2483 static inline __ATTRS_o_ai vector bool short
2484 vec_cmplt(vector signed short __a, vector signed short __b) {
2485   return (vector bool short)(__a < __b);
2486 }
2487
2488 static inline __ATTRS_o_ai vector bool short
2489 vec_cmplt(vector unsigned short __a, vector unsigned short __b) {
2490   return (vector bool short)(__a < __b);
2491 }
2492
2493 static inline __ATTRS_o_ai vector bool int
2494 vec_cmplt(vector signed int __a, vector signed int __b) {
2495   return (vector bool int)(__a < __b);
2496 }
2497
2498 static inline __ATTRS_o_ai vector bool int
2499 vec_cmplt(vector unsigned int __a, vector unsigned int __b) {
2500   return (vector bool int)(__a < __b);
2501 }
2502
2503 static inline __ATTRS_o_ai vector bool long long
2504 vec_cmplt(vector signed long long __a, vector signed long long __b) {
2505   return (vector bool long long)(__a < __b);
2506 }
2507
2508 static inline __ATTRS_o_ai vector bool long long
2509 vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) {
2510   return (vector bool long long)(__a < __b);
2511 }
2512
2513 #if __ARCH__ >= 12
2514 static inline __ATTRS_o_ai vector bool int
2515 vec_cmplt(vector float __a, vector float __b) {
2516   return (vector bool int)(__a < __b);
2517 }
2518 #endif
2519
2520 static inline __ATTRS_o_ai vector bool long long
2521 vec_cmplt(vector double __a, vector double __b) {
2522   return (vector bool long long)(__a < __b);
2523 }
2524
2525 /*-- vec_all_eq -------------------------------------------------------------*/
2526
2527 static inline __ATTRS_o_ai int
2528 vec_all_eq(vector signed char __a, vector signed char __b) {
2529   int __cc;
2530   __builtin_s390_vceqbs(__a, __b, &__cc);
2531   return __cc == 0;
2532 }
2533
2534 // This prototype is deprecated.
2535 static inline __ATTRS_o_ai int
2536 vec_all_eq(vector signed char __a, vector bool char __b) {
2537   int __cc;
2538   __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2539   return __cc == 0;
2540 }
2541
2542 // This prototype is deprecated.
2543 static inline __ATTRS_o_ai int
2544 vec_all_eq(vector bool char __a, vector signed char __b) {
2545   int __cc;
2546   __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2547   return __cc == 0;
2548 }
2549
2550 static inline __ATTRS_o_ai int
2551 vec_all_eq(vector unsigned char __a, vector unsigned char __b) {
2552   int __cc;
2553   __builtin_s390_vceqbs((vector signed char)__a,
2554                         (vector signed char)__b, &__cc);
2555   return __cc == 0;
2556 }
2557
2558 // This prototype is deprecated.
2559 static inline __ATTRS_o_ai int
2560 vec_all_eq(vector unsigned char __a, vector bool char __b) {
2561   int __cc;
2562   __builtin_s390_vceqbs((vector signed char)__a,
2563                         (vector signed char)__b, &__cc);
2564   return __cc == 0;
2565 }
2566
2567 // This prototype is deprecated.
2568 static inline __ATTRS_o_ai int
2569 vec_all_eq(vector bool char __a, vector unsigned char __b) {
2570   int __cc;
2571   __builtin_s390_vceqbs((vector signed char)__a,
2572                         (vector signed char)__b, &__cc);
2573   return __cc == 0;
2574 }
2575
2576 static inline __ATTRS_o_ai int
2577 vec_all_eq(vector bool char __a, vector bool char __b) {
2578   int __cc;
2579   __builtin_s390_vceqbs((vector signed char)__a,
2580                         (vector signed char)__b, &__cc);
2581   return __cc == 0;
2582 }
2583
2584 static inline __ATTRS_o_ai int
2585 vec_all_eq(vector signed short __a, vector signed short __b) {
2586   int __cc;
2587   __builtin_s390_vceqhs(__a, __b, &__cc);
2588   return __cc == 0;
2589 }
2590
2591 // This prototype is deprecated.
2592 static inline __ATTRS_o_ai int
2593 vec_all_eq(vector signed short __a, vector bool short __b) {
2594   int __cc;
2595   __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2596   return __cc == 0;
2597 }
2598
2599 // This prototype is deprecated.
2600 static inline __ATTRS_o_ai int
2601 vec_all_eq(vector bool short __a, vector signed short __b) {
2602   int __cc;
2603   __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2604   return __cc == 0;
2605 }
2606
2607 static inline __ATTRS_o_ai int
2608 vec_all_eq(vector unsigned short __a, vector unsigned short __b) {
2609   int __cc;
2610   __builtin_s390_vceqhs((vector signed short)__a,
2611                         (vector signed short)__b, &__cc);
2612   return __cc == 0;
2613 }
2614
2615 // This prototype is deprecated.
2616 static inline __ATTRS_o_ai int
2617 vec_all_eq(vector unsigned short __a, vector bool short __b) {
2618   int __cc;
2619   __builtin_s390_vceqhs((vector signed short)__a,
2620                         (vector signed short)__b, &__cc);
2621   return __cc == 0;
2622 }
2623
2624 // This prototype is deprecated.
2625 static inline __ATTRS_o_ai int
2626 vec_all_eq(vector bool short __a, vector unsigned short __b) {
2627   int __cc;
2628   __builtin_s390_vceqhs((vector signed short)__a,
2629                         (vector signed short)__b, &__cc);
2630   return __cc == 0;
2631 }
2632
2633 static inline __ATTRS_o_ai int
2634 vec_all_eq(vector bool short __a, vector bool short __b) {
2635   int __cc;
2636   __builtin_s390_vceqhs((vector signed short)__a,
2637                         (vector signed short)__b, &__cc);
2638   return __cc == 0;
2639 }
2640
2641 static inline __ATTRS_o_ai int
2642 vec_all_eq(vector signed int __a, vector signed int __b) {
2643   int __cc;
2644   __builtin_s390_vceqfs(__a, __b, &__cc);
2645   return __cc == 0;
2646 }
2647
2648 // This prototype is deprecated.
2649 static inline __ATTRS_o_ai int
2650 vec_all_eq(vector signed int __a, vector bool int __b) {
2651   int __cc;
2652   __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2653   return __cc == 0;
2654 }
2655
2656 // This prototype is deprecated.
2657 static inline __ATTRS_o_ai int
2658 vec_all_eq(vector bool int __a, vector signed int __b) {
2659   int __cc;
2660   __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2661   return __cc == 0;
2662 }
2663
2664 static inline __ATTRS_o_ai int
2665 vec_all_eq(vector unsigned int __a, vector unsigned int __b) {
2666   int __cc;
2667   __builtin_s390_vceqfs((vector signed int)__a,
2668                         (vector signed int)__b, &__cc);
2669   return __cc == 0;
2670 }
2671
2672 // This prototype is deprecated.
2673 static inline __ATTRS_o_ai int
2674 vec_all_eq(vector unsigned int __a, vector bool int __b) {
2675   int __cc;
2676   __builtin_s390_vceqfs((vector signed int)__a,
2677                         (vector signed int)__b, &__cc);
2678   return __cc == 0;
2679 }
2680
2681 // This prototype is deprecated.
2682 static inline __ATTRS_o_ai int
2683 vec_all_eq(vector bool int __a, vector unsigned int __b) {
2684   int __cc;
2685   __builtin_s390_vceqfs((vector signed int)__a,
2686                         (vector signed int)__b, &__cc);
2687   return __cc == 0;
2688 }
2689
2690 static inline __ATTRS_o_ai int
2691 vec_all_eq(vector bool int __a, vector bool int __b) {
2692   int __cc;
2693   __builtin_s390_vceqfs((vector signed int)__a,
2694                         (vector signed int)__b, &__cc);
2695   return __cc == 0;
2696 }
2697
2698 static inline __ATTRS_o_ai int
2699 vec_all_eq(vector signed long long __a, vector signed long long __b) {
2700   int __cc;
2701   __builtin_s390_vceqgs(__a, __b, &__cc);
2702   return __cc == 0;
2703 }
2704
2705 // This prototype is deprecated.
2706 static inline __ATTRS_o_ai int
2707 vec_all_eq(vector signed long long __a, vector bool long long __b) {
2708   int __cc;
2709   __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2710   return __cc == 0;
2711 }
2712
2713 // This prototype is deprecated.
2714 static inline __ATTRS_o_ai int
2715 vec_all_eq(vector bool long long __a, vector signed long long __b) {
2716   int __cc;
2717   __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2718   return __cc == 0;
2719 }
2720
2721 static inline __ATTRS_o_ai int
2722 vec_all_eq(vector unsigned long long __a, vector unsigned long long __b) {
2723   int __cc;
2724   __builtin_s390_vceqgs((vector signed long long)__a,
2725                         (vector signed long long)__b, &__cc);
2726   return __cc == 0;
2727 }
2728
2729 // This prototype is deprecated.
2730 static inline __ATTRS_o_ai int
2731 vec_all_eq(vector unsigned long long __a, vector bool long long __b) {
2732   int __cc;
2733   __builtin_s390_vceqgs((vector signed long long)__a,
2734                         (vector signed long long)__b, &__cc);
2735   return __cc == 0;
2736 }
2737
2738 // This prototype is deprecated.
2739 static inline __ATTRS_o_ai int
2740 vec_all_eq(vector bool long long __a, vector unsigned long long __b) {
2741   int __cc;
2742   __builtin_s390_vceqgs((vector signed long long)__a,
2743                         (vector signed long long)__b, &__cc);
2744   return __cc == 0;
2745 }
2746
2747 static inline __ATTRS_o_ai int
2748 vec_all_eq(vector bool long long __a, vector bool long long __b) {
2749   int __cc;
2750   __builtin_s390_vceqgs((vector signed long long)__a,
2751                         (vector signed long long)__b, &__cc);
2752   return __cc == 0;
2753 }
2754
2755 #if __ARCH__ >= 12
2756 static inline __ATTRS_o_ai int
2757 vec_all_eq(vector float __a, vector float __b) {
2758   int __cc;
2759   __builtin_s390_vfcesbs(__a, __b, &__cc);
2760   return __cc == 0;
2761 }
2762 #endif
2763
2764 static inline __ATTRS_o_ai int
2765 vec_all_eq(vector double __a, vector double __b) {
2766   int __cc;
2767   __builtin_s390_vfcedbs(__a, __b, &__cc);
2768   return __cc == 0;
2769 }
2770
2771 /*-- vec_all_ne -------------------------------------------------------------*/
2772
2773 static inline __ATTRS_o_ai int
2774 vec_all_ne(vector signed char __a, vector signed char __b) {
2775   int __cc;
2776   __builtin_s390_vceqbs(__a, __b, &__cc);
2777   return __cc == 3;
2778 }
2779
2780 // This prototype is deprecated.
2781 static inline __ATTRS_o_ai int
2782 vec_all_ne(vector signed char __a, vector bool char __b) {
2783   int __cc;
2784   __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2785   return __cc == 3;
2786 }
2787
2788 // This prototype is deprecated.
2789 static inline __ATTRS_o_ai int
2790 vec_all_ne(vector bool char __a, vector signed char __b) {
2791   int __cc;
2792   __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2793   return __cc == 3;
2794 }
2795
2796 static inline __ATTRS_o_ai int
2797 vec_all_ne(vector unsigned char __a, vector unsigned char __b) {
2798   int __cc;
2799   __builtin_s390_vceqbs((vector signed char)__a,
2800                         (vector signed char)__b, &__cc);
2801   return __cc == 3;
2802 }
2803
2804 // This prototype is deprecated.
2805 static inline __ATTRS_o_ai int
2806 vec_all_ne(vector unsigned char __a, vector bool char __b) {
2807   int __cc;
2808   __builtin_s390_vceqbs((vector signed char)__a,
2809                         (vector signed char)__b, &__cc);
2810   return __cc == 3;
2811 }
2812
2813 // This prototype is deprecated.
2814 static inline __ATTRS_o_ai int
2815 vec_all_ne(vector bool char __a, vector unsigned char __b) {
2816   int __cc;
2817   __builtin_s390_vceqbs((vector signed char)__a,
2818                         (vector signed char)__b, &__cc);
2819   return __cc == 3;
2820 }
2821
2822 static inline __ATTRS_o_ai int
2823 vec_all_ne(vector bool char __a, vector bool char __b) {
2824   int __cc;
2825   __builtin_s390_vceqbs((vector signed char)__a,
2826                         (vector signed char)__b, &__cc);
2827   return __cc == 3;
2828 }
2829
2830 static inline __ATTRS_o_ai int
2831 vec_all_ne(vector signed short __a, vector signed short __b) {
2832   int __cc;
2833   __builtin_s390_vceqhs(__a, __b, &__cc);
2834   return __cc == 3;
2835 }
2836
2837 // This prototype is deprecated.
2838 static inline __ATTRS_o_ai int
2839 vec_all_ne(vector signed short __a, vector bool short __b) {
2840   int __cc;
2841   __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2842   return __cc == 3;
2843 }
2844
2845 // This prototype is deprecated.
2846 static inline __ATTRS_o_ai int
2847 vec_all_ne(vector bool short __a, vector signed short __b) {
2848   int __cc;
2849   __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2850   return __cc == 3;
2851 }
2852
2853 static inline __ATTRS_o_ai int
2854 vec_all_ne(vector unsigned short __a, vector unsigned short __b) {
2855   int __cc;
2856   __builtin_s390_vceqhs((vector signed short)__a,
2857                         (vector signed short)__b, &__cc);
2858   return __cc == 3;
2859 }
2860
2861 // This prototype is deprecated.
2862 static inline __ATTRS_o_ai int
2863 vec_all_ne(vector unsigned short __a, vector bool short __b) {
2864   int __cc;
2865   __builtin_s390_vceqhs((vector signed short)__a,
2866                         (vector signed short)__b, &__cc);
2867   return __cc == 3;
2868 }
2869
2870 // This prototype is deprecated.
2871 static inline __ATTRS_o_ai int
2872 vec_all_ne(vector bool short __a, vector unsigned short __b) {
2873   int __cc;
2874   __builtin_s390_vceqhs((vector signed short)__a,
2875                         (vector signed short)__b, &__cc);
2876   return __cc == 3;
2877 }
2878
2879 static inline __ATTRS_o_ai int
2880 vec_all_ne(vector bool short __a, vector bool short __b) {
2881   int __cc;
2882   __builtin_s390_vceqhs((vector signed short)__a,
2883                         (vector signed short)__b, &__cc);
2884   return __cc == 3;
2885 }
2886
2887 static inline __ATTRS_o_ai int
2888 vec_all_ne(vector signed int __a, vector signed int __b) {
2889   int __cc;
2890   __builtin_s390_vceqfs(__a, __b, &__cc);
2891   return __cc == 3;
2892 }
2893
2894 // This prototype is deprecated.
2895 static inline __ATTRS_o_ai int
2896 vec_all_ne(vector signed int __a, vector bool int __b) {
2897   int __cc;
2898   __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2899   return __cc == 3;
2900 }
2901
2902 // This prototype is deprecated.
2903 static inline __ATTRS_o_ai int
2904 vec_all_ne(vector bool int __a, vector signed int __b) {
2905   int __cc;
2906   __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2907   return __cc == 3;
2908 }
2909
2910 static inline __ATTRS_o_ai int
2911 vec_all_ne(vector unsigned int __a, vector unsigned int __b) {
2912   int __cc;
2913   __builtin_s390_vceqfs((vector signed int)__a,
2914                         (vector signed int)__b, &__cc);
2915   return __cc == 3;
2916 }
2917
2918 // This prototype is deprecated.
2919 static inline __ATTRS_o_ai int
2920 vec_all_ne(vector unsigned int __a, vector bool int __b) {
2921   int __cc;
2922   __builtin_s390_vceqfs((vector signed int)__a,
2923                         (vector signed int)__b, &__cc);
2924   return __cc == 3;
2925 }
2926
2927 // This prototype is deprecated.
2928 static inline __ATTRS_o_ai int
2929 vec_all_ne(vector bool int __a, vector unsigned int __b) {
2930   int __cc;
2931   __builtin_s390_vceqfs((vector signed int)__a,
2932                         (vector signed int)__b, &__cc);
2933   return __cc == 3;
2934 }
2935
2936 static inline __ATTRS_o_ai int
2937 vec_all_ne(vector bool int __a, vector bool int __b) {
2938   int __cc;
2939   __builtin_s390_vceqfs((vector signed int)__a,
2940                         (vector signed int)__b, &__cc);
2941   return __cc == 3;
2942 }
2943
2944 static inline __ATTRS_o_ai int
2945 vec_all_ne(vector signed long long __a, vector signed long long __b) {
2946   int __cc;
2947   __builtin_s390_vceqgs(__a, __b, &__cc);
2948   return __cc == 3;
2949 }
2950
2951 // This prototype is deprecated.
2952 static inline __ATTRS_o_ai int
2953 vec_all_ne(vector signed long long __a, vector bool long long __b) {
2954   int __cc;
2955   __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2956   return __cc == 3;
2957 }
2958
2959 // This prototype is deprecated.
2960 static inline __ATTRS_o_ai int
2961 vec_all_ne(vector bool long long __a, vector signed long long __b) {
2962   int __cc;
2963   __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2964   return __cc == 3;
2965 }
2966
2967 static inline __ATTRS_o_ai int
2968 vec_all_ne(vector unsigned long long __a, vector unsigned long long __b) {
2969   int __cc;
2970   __builtin_s390_vceqgs((vector signed long long)__a,
2971                         (vector signed long long)__b, &__cc);
2972   return __cc == 3;
2973 }
2974
2975 // This prototype is deprecated.
2976 static inline __ATTRS_o_ai int
2977 vec_all_ne(vector unsigned long long __a, vector bool long long __b) {
2978   int __cc;
2979   __builtin_s390_vceqgs((vector signed long long)__a,
2980                         (vector signed long long)__b, &__cc);
2981   return __cc == 3;
2982 }
2983
2984 // This prototype is deprecated.
2985 static inline __ATTRS_o_ai int
2986 vec_all_ne(vector bool long long __a, vector unsigned long long __b) {
2987   int __cc;
2988   __builtin_s390_vceqgs((vector signed long long)__a,
2989                         (vector signed long long)__b, &__cc);
2990   return __cc == 3;
2991 }
2992
2993 static inline __ATTRS_o_ai int
2994 vec_all_ne(vector bool long long __a, vector bool long long __b) {
2995   int __cc;
2996   __builtin_s390_vceqgs((vector signed long long)__a,
2997                         (vector signed long long)__b, &__cc);
2998   return __cc == 3;
2999 }
3000
3001 #if __ARCH__ >= 12
3002 static inline __ATTRS_o_ai int
3003 vec_all_ne(vector float __a, vector float __b) {
3004   int __cc;
3005   __builtin_s390_vfcesbs(__a, __b, &__cc);
3006   return __cc == 3;
3007 }
3008 #endif
3009
3010 static inline __ATTRS_o_ai int
3011 vec_all_ne(vector double __a, vector double __b) {
3012   int __cc;
3013   __builtin_s390_vfcedbs(__a, __b, &__cc);
3014   return __cc == 3;
3015 }
3016
3017 /*-- vec_all_ge -------------------------------------------------------------*/
3018
3019 static inline __ATTRS_o_ai int
3020 vec_all_ge(vector signed char __a, vector signed char __b) {
3021   int __cc;
3022   __builtin_s390_vchbs(__b, __a, &__cc);
3023   return __cc == 3;
3024 }
3025
3026 // This prototype is deprecated.
3027 static inline __ATTRS_o_ai int
3028 vec_all_ge(vector signed char __a, vector bool char __b) {
3029   int __cc;
3030   __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
3031   return __cc == 3;
3032 }
3033
3034 // This prototype is deprecated.
3035 static inline __ATTRS_o_ai int
3036 vec_all_ge(vector bool char __a, vector signed char __b) {
3037   int __cc;
3038   __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
3039   return __cc == 3;
3040 }
3041
3042 static inline __ATTRS_o_ai int
3043 vec_all_ge(vector unsigned char __a, vector unsigned char __b) {
3044   int __cc;
3045   __builtin_s390_vchlbs(__b, __a, &__cc);
3046   return __cc == 3;
3047 }
3048
3049 // This prototype is deprecated.
3050 static inline __ATTRS_o_ai int
3051 vec_all_ge(vector unsigned char __a, vector bool char __b) {
3052   int __cc;
3053   __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
3054   return __cc == 3;
3055 }
3056
3057 // This prototype is deprecated.
3058 static inline __ATTRS_o_ai int
3059 vec_all_ge(vector bool char __a, vector unsigned char __b) {
3060   int __cc;
3061   __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
3062   return __cc == 3;
3063 }
3064
3065 // This prototype is deprecated.
3066 static inline __ATTRS_o_ai int
3067 vec_all_ge(vector bool char __a, vector bool char __b) {
3068   int __cc;
3069   __builtin_s390_vchlbs((vector unsigned char)__b,
3070                         (vector unsigned char)__a, &__cc);
3071   return __cc == 3;
3072 }
3073
3074 static inline __ATTRS_o_ai int
3075 vec_all_ge(vector signed short __a, vector signed short __b) {
3076   int __cc;
3077   __builtin_s390_vchhs(__b, __a, &__cc);
3078   return __cc == 3;
3079 }
3080
3081 // This prototype is deprecated.
3082 static inline __ATTRS_o_ai int
3083 vec_all_ge(vector signed short __a, vector bool short __b) {
3084   int __cc;
3085   __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
3086   return __cc == 3;
3087 }
3088
3089 // This prototype is deprecated.
3090 static inline __ATTRS_o_ai int
3091 vec_all_ge(vector bool short __a, vector signed short __b) {
3092   int __cc;
3093   __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
3094   return __cc == 3;
3095 }
3096
3097 static inline __ATTRS_o_ai int
3098 vec_all_ge(vector unsigned short __a, vector unsigned short __b) {
3099   int __cc;
3100   __builtin_s390_vchlhs(__b, __a, &__cc);
3101   return __cc == 3;
3102 }
3103
3104 // This prototype is deprecated.
3105 static inline __ATTRS_o_ai int
3106 vec_all_ge(vector unsigned short __a, vector bool short __b) {
3107   int __cc;
3108   __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
3109   return __cc == 3;
3110 }
3111
3112 // This prototype is deprecated.
3113 static inline __ATTRS_o_ai int
3114 vec_all_ge(vector bool short __a, vector unsigned short __b) {
3115   int __cc;
3116   __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
3117   return __cc == 3;
3118 }
3119
3120 // This prototype is deprecated.
3121 static inline __ATTRS_o_ai int
3122 vec_all_ge(vector bool short __a, vector bool short __b) {
3123   int __cc;
3124   __builtin_s390_vchlhs((vector unsigned short)__b,
3125                         (vector unsigned short)__a, &__cc);
3126   return __cc == 3;
3127 }
3128
3129 static inline __ATTRS_o_ai int
3130 vec_all_ge(vector signed int __a, vector signed int __b) {
3131   int __cc;
3132   __builtin_s390_vchfs(__b, __a, &__cc);
3133   return __cc == 3;
3134 }
3135
3136 // This prototype is deprecated.
3137 static inline __ATTRS_o_ai int
3138 vec_all_ge(vector signed int __a, vector bool int __b) {
3139   int __cc;
3140   __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3141   return __cc == 3;
3142 }
3143
3144 // This prototype is deprecated.
3145 static inline __ATTRS_o_ai int
3146 vec_all_ge(vector bool int __a, vector signed int __b) {
3147   int __cc;
3148   __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3149   return __cc == 3;
3150 }
3151
3152 static inline __ATTRS_o_ai int
3153 vec_all_ge(vector unsigned int __a, vector unsigned int __b) {
3154   int __cc;
3155   __builtin_s390_vchlfs(__b, __a, &__cc);
3156   return __cc == 3;
3157 }
3158
3159 // This prototype is deprecated.
3160 static inline __ATTRS_o_ai int
3161 vec_all_ge(vector unsigned int __a, vector bool int __b) {
3162   int __cc;
3163   __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3164   return __cc == 3;
3165 }
3166
3167 // This prototype is deprecated.
3168 static inline __ATTRS_o_ai int
3169 vec_all_ge(vector bool int __a, vector unsigned int __b) {
3170   int __cc;
3171   __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3172   return __cc == 3;
3173 }
3174
3175 // This prototype is deprecated.
3176 static inline __ATTRS_o_ai int
3177 vec_all_ge(vector bool int __a, vector bool int __b) {
3178   int __cc;
3179   __builtin_s390_vchlfs((vector unsigned int)__b,
3180                         (vector unsigned int)__a, &__cc);
3181   return __cc == 3;
3182 }
3183
3184 static inline __ATTRS_o_ai int
3185 vec_all_ge(vector signed long long __a, vector signed long long __b) {
3186   int __cc;
3187   __builtin_s390_vchgs(__b, __a, &__cc);
3188   return __cc == 3;
3189 }
3190
3191 // This prototype is deprecated.
3192 static inline __ATTRS_o_ai int
3193 vec_all_ge(vector signed long long __a, vector bool long long __b) {
3194   int __cc;
3195   __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3196   return __cc == 3;
3197 }
3198
3199 // This prototype is deprecated.
3200 static inline __ATTRS_o_ai int
3201 vec_all_ge(vector bool long long __a, vector signed long long __b) {
3202   int __cc;
3203   __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
3204   return __cc == 3;
3205 }
3206
3207 static inline __ATTRS_o_ai int
3208 vec_all_ge(vector unsigned long long __a, vector unsigned long long __b) {
3209   int __cc;
3210   __builtin_s390_vchlgs(__b, __a, &__cc);
3211   return __cc == 3;
3212 }
3213
3214 // This prototype is deprecated.
3215 static inline __ATTRS_o_ai int
3216 vec_all_ge(vector unsigned long long __a, vector bool long long __b) {
3217   int __cc;
3218   __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
3219   return __cc == 3;
3220 }
3221
3222 // This prototype is deprecated.
3223 static inline __ATTRS_o_ai int
3224 vec_all_ge(vector bool long long __a, vector unsigned long long __b) {
3225   int __cc;
3226   __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
3227   return __cc == 3;
3228 }
3229
3230 // This prototype is deprecated.
3231 static inline __ATTRS_o_ai int
3232 vec_all_ge(vector bool long long __a, vector bool long long __b) {
3233   int __cc;
3234   __builtin_s390_vchlgs((vector unsigned long long)__b,
3235                         (vector unsigned long long)__a, &__cc);
3236   return __cc == 3;
3237 }
3238
3239 #if __ARCH__ >= 12
3240 static inline __ATTRS_o_ai int
3241 vec_all_ge(vector float __a, vector float __b) {
3242   int __cc;
3243   __builtin_s390_vfchesbs(__a, __b, &__cc);
3244   return __cc == 0;
3245 }
3246 #endif
3247
3248 static inline __ATTRS_o_ai int
3249 vec_all_ge(vector double __a, vector double __b) {
3250   int __cc;
3251   __builtin_s390_vfchedbs(__a, __b, &__cc);
3252   return __cc == 0;
3253 }
3254
3255 /*-- vec_all_gt -------------------------------------------------------------*/
3256
3257 static inline __ATTRS_o_ai int
3258 vec_all_gt(vector signed char __a, vector signed char __b) {
3259   int __cc;
3260   __builtin_s390_vchbs(__a, __b, &__cc);
3261   return __cc == 0;
3262 }
3263
3264 // This prototype is deprecated.
3265 static inline __ATTRS_o_ai int
3266 vec_all_gt(vector signed char __a, vector bool char __b) {
3267   int __cc;
3268   __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
3269   return __cc == 0;
3270 }
3271
3272 // This prototype is deprecated.
3273 static inline __ATTRS_o_ai int
3274 vec_all_gt(vector bool char __a, vector signed char __b) {
3275   int __cc;
3276   __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
3277   return __cc == 0;
3278 }
3279
3280 static inline __ATTRS_o_ai int
3281 vec_all_gt(vector unsigned char __a, vector unsigned char __b) {
3282   int __cc;
3283   __builtin_s390_vchlbs(__a, __b, &__cc);
3284   return __cc == 0;
3285 }
3286
3287 // This prototype is deprecated.
3288 static inline __ATTRS_o_ai int
3289 vec_all_gt(vector unsigned char __a, vector bool char __b) {
3290   int __cc;
3291   __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
3292   return __cc == 0;
3293 }
3294
3295 // This prototype is deprecated.
3296 static inline __ATTRS_o_ai int
3297 vec_all_gt(vector bool char __a, vector unsigned char __b) {
3298   int __cc;
3299   __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
3300   return __cc == 0;
3301 }
3302
3303 // This prototype is deprecated.
3304 static inline __ATTRS_o_ai int
3305 vec_all_gt(vector bool char __a, vector bool char __b) {
3306   int __cc;
3307   __builtin_s390_vchlbs((vector unsigned char)__a,
3308                         (vector unsigned char)__b, &__cc);
3309   return __cc == 0;
3310 }
3311
3312 static inline __ATTRS_o_ai int
3313 vec_all_gt(vector signed short __a, vector signed short __b) {
3314   int __cc;
3315   __builtin_s390_vchhs(__a, __b, &__cc);
3316   return __cc == 0;
3317 }
3318
3319 // This prototype is deprecated.
3320 static inline __ATTRS_o_ai int
3321 vec_all_gt(vector signed short __a, vector bool short __b) {
3322   int __cc;
3323   __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
3324   return __cc == 0;
3325 }
3326
3327 // This prototype is deprecated.
3328 static inline __ATTRS_o_ai int
3329 vec_all_gt(vector bool short __a, vector signed short __b) {
3330   int __cc;
3331   __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
3332   return __cc == 0;
3333 }
3334
3335 static inline __ATTRS_o_ai int
3336 vec_all_gt(vector unsigned short __a, vector unsigned short __b) {
3337   int __cc;
3338   __builtin_s390_vchlhs(__a, __b, &__cc);
3339   return __cc == 0;
3340 }
3341
3342 // This prototype is deprecated.
3343 static inline __ATTRS_o_ai int
3344 vec_all_gt(vector unsigned short __a, vector bool short __b) {
3345   int __cc;
3346   __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
3347   return __cc == 0;
3348 }
3349
3350 // This prototype is deprecated.
3351 static inline __ATTRS_o_ai int
3352 vec_all_gt(vector bool short __a, vector unsigned short __b) {
3353   int __cc;
3354   __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
3355   return __cc == 0;
3356 }
3357
3358 // This prototype is deprecated.
3359 static inline __ATTRS_o_ai int
3360 vec_all_gt(vector bool short __a, vector bool short __b) {
3361   int __cc;
3362   __builtin_s390_vchlhs((vector unsigned short)__a,
3363                         (vector unsigned short)__b, &__cc);
3364   return __cc == 0;
3365 }
3366
3367 static inline __ATTRS_o_ai int
3368 vec_all_gt(vector signed int __a, vector signed int __b) {
3369   int __cc;
3370   __builtin_s390_vchfs(__a, __b, &__cc);
3371   return __cc == 0;
3372 }
3373
3374 // This prototype is deprecated.
3375 static inline __ATTRS_o_ai int
3376 vec_all_gt(vector signed int __a, vector bool int __b) {
3377   int __cc;
3378   __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
3379   return __cc == 0;
3380 }
3381
3382 // This prototype is deprecated.
3383 static inline __ATTRS_o_ai int
3384 vec_all_gt(vector bool int __a, vector signed int __b) {
3385   int __cc;
3386   __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
3387   return __cc == 0;
3388 }
3389
3390 static inline __ATTRS_o_ai int
3391 vec_all_gt(vector unsigned int __a, vector unsigned int __b) {
3392   int __cc;
3393   __builtin_s390_vchlfs(__a, __b, &__cc);
3394   return __cc == 0;
3395 }
3396
3397 // This prototype is deprecated.
3398 static inline __ATTRS_o_ai int
3399 vec_all_gt(vector unsigned int __a, vector bool int __b) {
3400   int __cc;
3401   __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
3402   return __cc == 0;
3403 }
3404
3405 // This prototype is deprecated.
3406 static inline __ATTRS_o_ai int
3407 vec_all_gt(vector bool int __a, vector unsigned int __b) {
3408   int __cc;
3409   __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
3410   return __cc == 0;
3411 }
3412
3413 // This prototype is deprecated.
3414 static inline __ATTRS_o_ai int
3415 vec_all_gt(vector bool int __a, vector bool int __b) {
3416   int __cc;
3417   __builtin_s390_vchlfs((vector unsigned int)__a,
3418                         (vector unsigned int)__b, &__cc);
3419   return __cc == 0;
3420 }
3421
3422 static inline __ATTRS_o_ai int
3423 vec_all_gt(vector signed long long __a, vector signed long long __b) {
3424   int __cc;
3425   __builtin_s390_vchgs(__a, __b, &__cc);
3426   return __cc == 0;
3427 }
3428
3429 // This prototype is deprecated.
3430 static inline __ATTRS_o_ai int
3431 vec_all_gt(vector signed long long __a, vector bool long long __b) {
3432   int __cc;
3433   __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
3434   return __cc == 0;
3435 }
3436
3437 // This prototype is deprecated.
3438 static inline __ATTRS_o_ai int
3439 vec_all_gt(vector bool long long __a, vector signed long long __b) {
3440   int __cc;
3441   __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
3442   return __cc == 0;
3443 }
3444
3445 static inline __ATTRS_o_ai int
3446 vec_all_gt(vector unsigned long long __a, vector unsigned long long __b) {
3447   int __cc;
3448   __builtin_s390_vchlgs(__a, __b, &__cc);
3449   return __cc == 0;
3450 }
3451
3452 // This prototype is deprecated.
3453 static inline __ATTRS_o_ai int
3454 vec_all_gt(vector unsigned long long __a, vector bool long long __b) {
3455   int __cc;
3456   __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
3457   return __cc == 0;
3458 }
3459
3460 // This prototype is deprecated.
3461 static inline __ATTRS_o_ai int
3462 vec_all_gt(vector bool long long __a, vector unsigned long long __b) {
3463   int __cc;
3464   __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
3465   return __cc == 0;
3466 }
3467
3468 // This prototype is deprecated.
3469 static inline __ATTRS_o_ai int
3470 vec_all_gt(vector bool long long __a, vector bool long long __b) {
3471   int __cc;
3472   __builtin_s390_vchlgs((vector unsigned long long)__a,
3473                         (vector unsigned long long)__b, &__cc);
3474   return __cc == 0;
3475 }
3476
3477 #if __ARCH__ >= 12
3478 static inline __ATTRS_o_ai int
3479 vec_all_gt(vector float __a, vector float __b) {
3480   int __cc;
3481   __builtin_s390_vfchsbs(__a, __b, &__cc);
3482   return __cc == 0;
3483 }
3484 #endif
3485
3486 static inline __ATTRS_o_ai int
3487 vec_all_gt(vector double __a, vector double __b) {
3488   int __cc;
3489   __builtin_s390_vfchdbs(__a, __b, &__cc);
3490   return __cc == 0;
3491 }
3492
3493 /*-- vec_all_le -------------------------------------------------------------*/
3494
3495 static inline __ATTRS_o_ai int
3496 vec_all_le(vector signed char __a, vector signed char __b) {
3497   int __cc;
3498   __builtin_s390_vchbs(__a, __b, &__cc);
3499   return __cc == 3;
3500 }
3501
3502 // This prototype is deprecated.
3503 static inline __ATTRS_o_ai int
3504 vec_all_le(vector signed char __a, vector bool char __b) {
3505   int __cc;
3506   __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
3507   return __cc == 3;
3508 }
3509
3510 // This prototype is deprecated.
3511 static inline __ATTRS_o_ai int
3512 vec_all_le(vector bool char __a, vector signed char __b) {
3513   int __cc;
3514   __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
3515   return __cc == 3;
3516 }
3517
3518 static inline __ATTRS_o_ai int
3519 vec_all_le(vector unsigned char __a, vector unsigned char __b) {
3520   int __cc;
3521   __builtin_s390_vchlbs(__a, __b, &__cc);
3522   return __cc == 3;
3523 }
3524
3525 // This prototype is deprecated.
3526 static inline __ATTRS_o_ai int
3527 vec_all_le(vector unsigned char __a, vector bool char __b) {
3528   int __cc;
3529   __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
3530   return __cc == 3;
3531 }
3532
3533 // This prototype is deprecated.
3534 static inline __ATTRS_o_ai int
3535 vec_all_le(vector bool char __a, vector unsigned char __b) {
3536   int __cc;
3537   __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
3538   return __cc == 3;
3539 }
3540
3541 // This prototype is deprecated.
3542 static inline __ATTRS_o_ai int
3543 vec_all_le(vector bool char __a, vector bool char __b) {
3544   int __cc;
3545   __builtin_s390_vchlbs((vector unsigned char)__a,
3546                         (vector unsigned char)__b, &__cc);
3547   return __cc == 3;
3548 }
3549
3550 static inline __ATTRS_o_ai int
3551 vec_all_le(vector signed short __a, vector signed short __b) {
3552   int __cc;
3553   __builtin_s390_vchhs(__a, __b, &__cc);
3554   return __cc == 3;
3555 }
3556
3557 // This prototype is deprecated.
3558 static inline __ATTRS_o_ai int
3559 vec_all_le(vector signed short __a, vector bool short __b) {
3560   int __cc;
3561   __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
3562   return __cc == 3;
3563 }
3564
3565 // This prototype is deprecated.
3566 static inline __ATTRS_o_ai int
3567 vec_all_le(vector bool short __a, vector signed short __b) {
3568   int __cc;
3569   __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
3570   return __cc == 3;
3571 }
3572
3573 static inline __ATTRS_o_ai int
3574 vec_all_le(vector unsigned short __a, vector unsigned short __b) {
3575   int __cc;
3576   __builtin_s390_vchlhs(__a, __b, &__cc);
3577   return __cc == 3;
3578 }
3579
3580 // This prototype is deprecated.
3581 static inline __ATTRS_o_ai int
3582 vec_all_le(vector unsigned short __a, vector bool short __b) {
3583   int __cc;
3584   __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
3585   return __cc == 3;
3586 }
3587
3588 // This prototype is deprecated.
3589 static inline __ATTRS_o_ai int
3590 vec_all_le(vector bool short __a, vector unsigned short __b) {
3591   int __cc;
3592   __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
3593   return __cc == 3;
3594 }
3595
3596 // This prototype is deprecated.
3597 static inline __ATTRS_o_ai int
3598 vec_all_le(vector bool short __a, vector bool short __b) {
3599   int __cc;
3600   __builtin_s390_vchlhs((vector unsigned short)__a,
3601                         (vector unsigned short)__b, &__cc);
3602   return __cc == 3;
3603 }
3604
3605 static inline __ATTRS_o_ai int
3606 vec_all_le(vector signed int __a, vector signed int __b) {
3607   int __cc;
3608   __builtin_s390_vchfs(__a, __b, &__cc);
3609   return __cc == 3;
3610 }
3611
3612 // This prototype is deprecated.
3613 static inline __ATTRS_o_ai int
3614 vec_all_le(vector signed int __a, vector bool int __b) {
3615   int __cc;
3616   __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
3617   return __cc == 3;
3618 }
3619
3620 // This prototype is deprecated.
3621 static inline __ATTRS_o_ai int
3622 vec_all_le(vector bool int __a, vector signed int __b) {
3623   int __cc;
3624   __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
3625   return __cc == 3;
3626 }
3627
3628 static inline __ATTRS_o_ai int
3629 vec_all_le(vector unsigned int __a, vector unsigned int __b) {
3630   int __cc;
3631   __builtin_s390_vchlfs(__a, __b, &__cc);
3632   return __cc == 3;
3633 }
3634
3635 // This prototype is deprecated.
3636 static inline __ATTRS_o_ai int
3637 vec_all_le(vector unsigned int __a, vector bool int __b) {
3638   int __cc;
3639   __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
3640   return __cc == 3;
3641 }
3642
3643 // This prototype is deprecated.
3644 static inline __ATTRS_o_ai int
3645 vec_all_le(vector bool int __a, vector unsigned int __b) {
3646   int __cc;
3647   __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
3648   return __cc == 3;
3649 }
3650
3651 // This prototype is deprecated.
3652 static inline __ATTRS_o_ai int
3653 vec_all_le(vector bool int __a, vector bool int __b) {
3654   int __cc;
3655   __builtin_s390_vchlfs((vector unsigned int)__a,
3656                         (vector unsigned int)__b, &__cc);
3657   return __cc == 3;
3658 }
3659
3660 static inline __ATTRS_o_ai int
3661 vec_all_le(vector signed long long __a, vector signed long long __b) {
3662   int __cc;
3663   __builtin_s390_vchgs(__a, __b, &__cc);
3664   return __cc == 3;
3665 }
3666
3667 // This prototype is deprecated.
3668 static inline __ATTRS_o_ai int
3669 vec_all_le(vector signed long long __a, vector bool long long __b) {
3670   int __cc;
3671   __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
3672   return __cc == 3;
3673 }
3674
3675 // This prototype is deprecated.
3676 static inline __ATTRS_o_ai int
3677 vec_all_le(vector bool long long __a, vector signed long long __b) {
3678   int __cc;
3679   __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
3680   return __cc == 3;
3681 }
3682
3683 static inline __ATTRS_o_ai int
3684 vec_all_le(vector unsigned long long __a, vector unsigned long long __b) {
3685   int __cc;
3686   __builtin_s390_vchlgs(__a, __b, &__cc);
3687   return __cc == 3;
3688 }
3689
3690 // This prototype is deprecated.
3691 static inline __ATTRS_o_ai int
3692 vec_all_le(vector unsigned long long __a, vector bool long long __b) {
3693   int __cc;
3694   __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
3695   return __cc == 3;
3696 }
3697
3698 // This prototype is deprecated.
3699 static inline __ATTRS_o_ai int
3700 vec_all_le(vector bool long long __a, vector unsigned long long __b) {
3701   int __cc;
3702   __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
3703   return __cc == 3;
3704 }
3705
3706 // This prototype is deprecated.
3707 static inline __ATTRS_o_ai int
3708 vec_all_le(vector bool long long __a, vector bool long long __b) {
3709   int __cc;
3710   __builtin_s390_vchlgs((vector unsigned long long)__a,
3711                         (vector unsigned long long)__b, &__cc);
3712   return __cc == 3;
3713 }
3714
3715 #if __ARCH__ >= 12
3716 static inline __ATTRS_o_ai int
3717 vec_all_le(vector float __a, vector float __b) {
3718   int __cc;
3719   __builtin_s390_vfchesbs(__b, __a, &__cc);
3720   return __cc == 0;
3721 }
3722 #endif
3723
3724 static inline __ATTRS_o_ai int
3725 vec_all_le(vector double __a, vector double __b) {
3726   int __cc;
3727   __builtin_s390_vfchedbs(__b, __a, &__cc);
3728   return __cc == 0;
3729 }
3730
3731 /*-- vec_all_lt -------------------------------------------------------------*/
3732
3733 static inline __ATTRS_o_ai int
3734 vec_all_lt(vector signed char __a, vector signed char __b) {
3735   int __cc;
3736   __builtin_s390_vchbs(__b, __a, &__cc);
3737   return __cc == 0;
3738 }
3739
3740 // This prototype is deprecated.
3741 static inline __ATTRS_o_ai int
3742 vec_all_lt(vector signed char __a, vector bool char __b) {
3743   int __cc;
3744   __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
3745   return __cc == 0;
3746 }
3747
3748 // This prototype is deprecated.
3749 static inline __ATTRS_o_ai int
3750 vec_all_lt(vector bool char __a, vector signed char __b) {
3751   int __cc;
3752   __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
3753   return __cc == 0;
3754 }
3755
3756 static inline __ATTRS_o_ai int
3757 vec_all_lt(vector unsigned char __a, vector unsigned char __b) {
3758   int __cc;
3759   __builtin_s390_vchlbs(__b, __a, &__cc);
3760   return __cc == 0;
3761 }
3762
3763 // This prototype is deprecated.
3764 static inline __ATTRS_o_ai int
3765 vec_all_lt(vector unsigned char __a, vector bool char __b) {
3766   int __cc;
3767   __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
3768   return __cc == 0;
3769 }
3770
3771 // This prototype is deprecated.
3772 static inline __ATTRS_o_ai int
3773 vec_all_lt(vector bool char __a, vector unsigned char __b) {
3774   int __cc;
3775   __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
3776   return __cc == 0;
3777 }
3778
3779 // This prototype is deprecated.
3780 static inline __ATTRS_o_ai int
3781 vec_all_lt(vector bool char __a, vector bool char __b) {
3782   int __cc;
3783   __builtin_s390_vchlbs((vector unsigned char)__b,
3784                         (vector unsigned char)__a, &__cc);
3785   return __cc == 0;
3786 }
3787
3788 static inline __ATTRS_o_ai int
3789 vec_all_lt(vector signed short __a, vector signed short __b) {
3790   int __cc;
3791   __builtin_s390_vchhs(__b, __a, &__cc);
3792   return __cc == 0;
3793 }
3794
3795 // This prototype is deprecated.
3796 static inline __ATTRS_o_ai int
3797 vec_all_lt(vector signed short __a, vector bool short __b) {
3798   int __cc;
3799   __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
3800   return __cc == 0;
3801 }
3802
3803 // This prototype is deprecated.
3804 static inline __ATTRS_o_ai int
3805 vec_all_lt(vector bool short __a, vector signed short __b) {
3806   int __cc;
3807   __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
3808   return __cc == 0;
3809 }
3810
3811 static inline __ATTRS_o_ai int
3812 vec_all_lt(vector unsigned short __a, vector unsigned short __b) {
3813   int __cc;
3814   __builtin_s390_vchlhs(__b, __a, &__cc);
3815   return __cc == 0;
3816 }
3817
3818 // This prototype is deprecated.
3819 static inline __ATTRS_o_ai int
3820 vec_all_lt(vector unsigned short __a, vector bool short __b) {
3821   int __cc;
3822   __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
3823   return __cc == 0;
3824 }
3825
3826 // This prototype is deprecated.
3827 static inline __ATTRS_o_ai int
3828 vec_all_lt(vector bool short __a, vector unsigned short __b) {
3829   int __cc;
3830   __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
3831   return __cc == 0;
3832 }
3833
3834 // This prototype is deprecated.
3835 static inline __ATTRS_o_ai int
3836 vec_all_lt(vector bool short __a, vector bool short __b) {
3837   int __cc;
3838   __builtin_s390_vchlhs((vector unsigned short)__b,
3839                         (vector unsigned short)__a, &__cc);
3840   return __cc == 0;
3841 }
3842
3843 static inline __ATTRS_o_ai int
3844 vec_all_lt(vector signed int __a, vector signed int __b) {
3845   int __cc;
3846   __builtin_s390_vchfs(__b, __a, &__cc);
3847   return __cc == 0;
3848 }
3849
3850 // This prototype is deprecated.
3851 static inline __ATTRS_o_ai int
3852 vec_all_lt(vector signed int __a, vector bool int __b) {
3853   int __cc;
3854   __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3855   return __cc == 0;
3856 }
3857
3858 // This prototype is deprecated.
3859 static inline __ATTRS_o_ai int
3860 vec_all_lt(vector bool int __a, vector signed int __b) {
3861   int __cc;
3862   __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3863   return __cc == 0;
3864 }
3865
3866 static inline __ATTRS_o_ai int
3867 vec_all_lt(vector unsigned int __a, vector unsigned int __b) {
3868   int __cc;
3869   __builtin_s390_vchlfs(__b, __a, &__cc);
3870   return __cc == 0;
3871 }
3872
3873 // This prototype is deprecated.
3874 static inline __ATTRS_o_ai int
3875 vec_all_lt(vector unsigned int __a, vector bool int __b) {
3876   int __cc;
3877   __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3878   return __cc == 0;
3879 }
3880
3881 // This prototype is deprecated.
3882 static inline __ATTRS_o_ai int
3883 vec_all_lt(vector bool int __a, vector unsigned int __b) {
3884   int __cc;
3885   __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3886   return __cc == 0;
3887 }
3888
3889 // This prototype is deprecated.
3890 static inline __ATTRS_o_ai int
3891 vec_all_lt(vector bool int __a, vector bool int __b) {
3892   int __cc;
3893   __builtin_s390_vchlfs((vector unsigned int)__b,
3894                         (vector unsigned int)__a, &__cc);
3895   return __cc == 0;
3896 }
3897
3898 static inline __ATTRS_o_ai int
3899 vec_all_lt(vector signed long long __a, vector signed long long __b) {
3900   int __cc;
3901   __builtin_s390_vchgs(__b, __a, &__cc);
3902   return __cc == 0;
3903 }
3904
3905 // This prototype is deprecated.
3906 static inline __ATTRS_o_ai int
3907 vec_all_lt(vector signed long long __a, vector bool long long __b) {
3908   int __cc;
3909   __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3910   return __cc == 0;
3911 }
3912
3913 // This prototype is deprecated.
3914 static inline __ATTRS_o_ai int
3915 vec_all_lt(vector bool long long __a, vector signed long long __b) {
3916   int __cc;
3917   __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
3918   return __cc == 0;
3919 }
3920
3921 static inline __ATTRS_o_ai int
3922 vec_all_lt(vector unsigned long long __a, vector unsigned long long __b) {
3923   int __cc;
3924   __builtin_s390_vchlgs(__b, __a, &__cc);
3925   return __cc == 0;
3926 }
3927
3928 // This prototype is deprecated.
3929 static inline __ATTRS_o_ai int
3930 vec_all_lt(vector unsigned long long __a, vector bool long long __b) {
3931   int __cc;
3932   __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
3933   return __cc == 0;
3934 }
3935
3936 // This prototype is deprecated.
3937 static inline __ATTRS_o_ai int
3938 vec_all_lt(vector bool long long __a, vector unsigned long long __b) {
3939   int __cc;
3940   __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
3941   return __cc == 0;
3942 }
3943
3944 // This prototype is deprecated.
3945 static inline __ATTRS_o_ai int
3946 vec_all_lt(vector bool long long __a, vector bool long long __b) {
3947   int __cc;
3948   __builtin_s390_vchlgs((vector unsigned long long)__b,
3949                         (vector unsigned long long)__a, &__cc);
3950   return __cc == 0;
3951 }
3952
3953 #if __ARCH__ >= 12
3954 static inline __ATTRS_o_ai int
3955 vec_all_lt(vector float __a, vector float __b) {
3956   int __cc;
3957   __builtin_s390_vfchsbs(__b, __a, &__cc);
3958   return __cc == 0;
3959 }
3960 #endif
3961
3962 static inline __ATTRS_o_ai int
3963 vec_all_lt(vector double __a, vector double __b) {
3964   int __cc;
3965   __builtin_s390_vfchdbs(__b, __a, &__cc);
3966   return __cc == 0;
3967 }
3968
3969 /*-- vec_all_nge ------------------------------------------------------------*/
3970
3971 #if __ARCH__ >= 12
3972 static inline __ATTRS_o_ai int
3973 vec_all_nge(vector float __a, vector float __b) {
3974   int __cc;
3975   __builtin_s390_vfchesbs(__a, __b, &__cc);
3976   return __cc == 3;
3977 }
3978 #endif
3979
3980 static inline __ATTRS_o_ai int
3981 vec_all_nge(vector double __a, vector double __b) {
3982   int __cc;
3983   __builtin_s390_vfchedbs(__a, __b, &__cc);
3984   return __cc == 3;
3985 }
3986
3987 /*-- vec_all_ngt ------------------------------------------------------------*/
3988
3989 #if __ARCH__ >= 12
3990 static inline __ATTRS_o_ai int
3991 vec_all_ngt(vector float __a, vector float __b) {
3992   int __cc;
3993   __builtin_s390_vfchsbs(__a, __b, &__cc);
3994   return __cc == 3;
3995 }
3996 #endif
3997
3998 static inline __ATTRS_o_ai int
3999 vec_all_ngt(vector double __a, vector double __b) {
4000   int __cc;
4001   __builtin_s390_vfchdbs(__a, __b, &__cc);
4002   return __cc == 3;
4003 }
4004
4005 /*-- vec_all_nle ------------------------------------------------------------*/
4006
4007 #if __ARCH__ >= 12
4008 static inline __ATTRS_o_ai int
4009 vec_all_nle(vector float __a, vector float __b) {
4010   int __cc;
4011   __builtin_s390_vfchesbs(__b, __a, &__cc);
4012   return __cc == 3;
4013 }
4014 #endif
4015
4016 static inline __ATTRS_o_ai int
4017 vec_all_nle(vector double __a, vector double __b) {
4018   int __cc;
4019   __builtin_s390_vfchedbs(__b, __a, &__cc);
4020   return __cc == 3;
4021 }
4022
4023 /*-- vec_all_nlt ------------------------------------------------------------*/
4024
4025 #if __ARCH__ >= 12
4026 static inline __ATTRS_o_ai int
4027 vec_all_nlt(vector float __a, vector float __b) {
4028   int __cc;
4029   __builtin_s390_vfchsbs(__b, __a, &__cc);
4030   return __cc == 3;
4031 }
4032 #endif
4033
4034 static inline __ATTRS_o_ai int
4035 vec_all_nlt(vector double __a, vector double __b) {
4036   int __cc;
4037   __builtin_s390_vfchdbs(__b, __a, &__cc);
4038   return __cc == 3;
4039 }
4040
4041 /*-- vec_all_nan ------------------------------------------------------------*/
4042
4043 #if __ARCH__ >= 12
4044 static inline __ATTRS_o_ai int
4045 vec_all_nan(vector float __a) {
4046   int __cc;
4047   __builtin_s390_vftcisb(__a, 15, &__cc);
4048   return __cc == 0;
4049 }
4050 #endif
4051
4052 static inline __ATTRS_o_ai int
4053 vec_all_nan(vector double __a) {
4054   int __cc;
4055   __builtin_s390_vftcidb(__a, 15, &__cc);
4056   return __cc == 0;
4057 }
4058
4059 /*-- vec_all_numeric --------------------------------------------------------*/
4060
4061 #if __ARCH__ >= 12
4062 static inline __ATTRS_o_ai int
4063 vec_all_numeric(vector float __a) {
4064   int __cc;
4065   __builtin_s390_vftcisb(__a, 15, &__cc);
4066   return __cc == 3;
4067 }
4068 #endif
4069
4070 static inline __ATTRS_o_ai int
4071 vec_all_numeric(vector double __a) {
4072   int __cc;
4073   __builtin_s390_vftcidb(__a, 15, &__cc);
4074   return __cc == 3;
4075 }
4076
4077 /*-- vec_any_eq -------------------------------------------------------------*/
4078
4079 static inline __ATTRS_o_ai int
4080 vec_any_eq(vector signed char __a, vector signed char __b) {
4081   int __cc;
4082   __builtin_s390_vceqbs(__a, __b, &__cc);
4083   return __cc <= 1;
4084 }
4085
4086 // This prototype is deprecated.
4087 static inline __ATTRS_o_ai int
4088 vec_any_eq(vector signed char __a, vector bool char __b) {
4089   int __cc;
4090   __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
4091   return __cc <= 1;
4092 }
4093
4094 // This prototype is deprecated.
4095 static inline __ATTRS_o_ai int
4096 vec_any_eq(vector bool char __a, vector signed char __b) {
4097   int __cc;
4098   __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
4099   return __cc <= 1;
4100 }
4101
4102 static inline __ATTRS_o_ai int
4103 vec_any_eq(vector unsigned char __a, vector unsigned char __b) {
4104   int __cc;
4105   __builtin_s390_vceqbs((vector signed char)__a,
4106                         (vector signed char)__b, &__cc);
4107   return __cc <= 1;
4108 }
4109
4110 // This prototype is deprecated.
4111 static inline __ATTRS_o_ai int
4112 vec_any_eq(vector unsigned char __a, vector bool char __b) {
4113   int __cc;
4114   __builtin_s390_vceqbs((vector signed char)__a,
4115                         (vector signed char)__b, &__cc);
4116   return __cc <= 1;
4117 }
4118
4119 // This prototype is deprecated.
4120 static inline __ATTRS_o_ai int
4121 vec_any_eq(vector bool char __a, vector unsigned char __b) {
4122   int __cc;
4123   __builtin_s390_vceqbs((vector signed char)__a,
4124                         (vector signed char)__b, &__cc);
4125   return __cc <= 1;
4126 }
4127
4128 static inline __ATTRS_o_ai int
4129 vec_any_eq(vector bool char __a, vector bool char __b) {
4130   int __cc;
4131   __builtin_s390_vceqbs((vector signed char)__a,
4132                         (vector signed char)__b, &__cc);
4133   return __cc <= 1;
4134 }
4135
4136 static inline __ATTRS_o_ai int
4137 vec_any_eq(vector signed short __a, vector signed short __b) {
4138   int __cc;
4139   __builtin_s390_vceqhs(__a, __b, &__cc);
4140   return __cc <= 1;
4141 }
4142
4143 // This prototype is deprecated.
4144 static inline __ATTRS_o_ai int
4145 vec_any_eq(vector signed short __a, vector bool short __b) {
4146   int __cc;
4147   __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
4148   return __cc <= 1;
4149 }
4150
4151 // This prototype is deprecated.
4152 static inline __ATTRS_o_ai int
4153 vec_any_eq(vector bool short __a, vector signed short __b) {
4154   int __cc;
4155   __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
4156   return __cc <= 1;
4157 }
4158
4159 static inline __ATTRS_o_ai int
4160 vec_any_eq(vector unsigned short __a, vector unsigned short __b) {
4161   int __cc;
4162   __builtin_s390_vceqhs((vector signed short)__a,
4163                         (vector signed short)__b, &__cc);
4164   return __cc <= 1;
4165 }
4166
4167 // This prototype is deprecated.
4168 static inline __ATTRS_o_ai int
4169 vec_any_eq(vector unsigned short __a, vector bool short __b) {
4170   int __cc;
4171   __builtin_s390_vceqhs((vector signed short)__a,
4172                         (vector signed short)__b, &__cc);
4173   return __cc <= 1;
4174 }
4175
4176 // This prototype is deprecated.
4177 static inline __ATTRS_o_ai int
4178 vec_any_eq(vector bool short __a, vector unsigned short __b) {
4179   int __cc;
4180   __builtin_s390_vceqhs((vector signed short)__a,
4181                         (vector signed short)__b, &__cc);
4182   return __cc <= 1;
4183 }
4184
4185 static inline __ATTRS_o_ai int
4186 vec_any_eq(vector bool short __a, vector bool short __b) {
4187   int __cc;
4188   __builtin_s390_vceqhs((vector signed short)__a,
4189                         (vector signed short)__b, &__cc);
4190   return __cc <= 1;
4191 }
4192
4193 static inline __ATTRS_o_ai int
4194 vec_any_eq(vector signed int __a, vector signed int __b) {
4195   int __cc;
4196   __builtin_s390_vceqfs(__a, __b, &__cc);
4197   return __cc <= 1;
4198 }
4199
4200 // This prototype is deprecated.
4201 static inline __ATTRS_o_ai int
4202 vec_any_eq(vector signed int __a, vector bool int __b) {
4203   int __cc;
4204   __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
4205   return __cc <= 1;
4206 }
4207
4208 // This prototype is deprecated.
4209 static inline __ATTRS_o_ai int
4210 vec_any_eq(vector bool int __a, vector signed int __b) {
4211   int __cc;
4212   __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
4213   return __cc <= 1;
4214 }
4215
4216 static inline __ATTRS_o_ai int
4217 vec_any_eq(vector unsigned int __a, vector unsigned int __b) {
4218   int __cc;
4219   __builtin_s390_vceqfs((vector signed int)__a,
4220                         (vector signed int)__b, &__cc);
4221   return __cc <= 1;
4222 }
4223
4224 // This prototype is deprecated.
4225 static inline __ATTRS_o_ai int
4226 vec_any_eq(vector unsigned int __a, vector bool int __b) {
4227   int __cc;
4228   __builtin_s390_vceqfs((vector signed int)__a,
4229                         (vector signed int)__b, &__cc);
4230   return __cc <= 1;
4231 }
4232
4233 // This prototype is deprecated.
4234 static inline __ATTRS_o_ai int
4235 vec_any_eq(vector bool int __a, vector unsigned int __b) {
4236   int __cc;
4237   __builtin_s390_vceqfs((vector signed int)__a,
4238                         (vector signed int)__b, &__cc);
4239   return __cc <= 1;
4240 }
4241
4242 static inline __ATTRS_o_ai int
4243 vec_any_eq(vector bool int __a, vector bool int __b) {
4244   int __cc;
4245   __builtin_s390_vceqfs((vector signed int)__a,
4246                         (vector signed int)__b, &__cc);
4247   return __cc <= 1;
4248 }
4249
4250 static inline __ATTRS_o_ai int
4251 vec_any_eq(vector signed long long __a, vector signed long long __b) {
4252   int __cc;
4253   __builtin_s390_vceqgs(__a, __b, &__cc);
4254   return __cc <= 1;
4255 }
4256
4257 // This prototype is deprecated.
4258 static inline __ATTRS_o_ai int
4259 vec_any_eq(vector signed long long __a, vector bool long long __b) {
4260   int __cc;
4261   __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
4262   return __cc <= 1;
4263 }
4264
4265 // This prototype is deprecated.
4266 static inline __ATTRS_o_ai int
4267 vec_any_eq(vector bool long long __a, vector signed long long __b) {
4268   int __cc;
4269   __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
4270   return __cc <= 1;
4271 }
4272
4273 static inline __ATTRS_o_ai int
4274 vec_any_eq(vector unsigned long long __a, vector unsigned long long __b) {
4275   int __cc;
4276   __builtin_s390_vceqgs((vector signed long long)__a,
4277                         (vector signed long long)__b, &__cc);
4278   return __cc <= 1;
4279 }
4280
4281 // This prototype is deprecated.
4282 static inline __ATTRS_o_ai int
4283 vec_any_eq(vector unsigned long long __a, vector bool long long __b) {
4284   int __cc;
4285   __builtin_s390_vceqgs((vector signed long long)__a,
4286                         (vector signed long long)__b, &__cc);
4287   return __cc <= 1;
4288 }
4289
4290 // This prototype is deprecated.
4291 static inline __ATTRS_o_ai int
4292 vec_any_eq(vector bool long long __a, vector unsigned long long __b) {
4293   int __cc;
4294   __builtin_s390_vceqgs((vector signed long long)__a,
4295                         (vector signed long long)__b, &__cc);
4296   return __cc <= 1;
4297 }
4298
4299 static inline __ATTRS_o_ai int
4300 vec_any_eq(vector bool long long __a, vector bool long long __b) {
4301   int __cc;
4302   __builtin_s390_vceqgs((vector signed long long)__a,
4303                         (vector signed long long)__b, &__cc);
4304   return __cc <= 1;
4305 }
4306
4307 #if __ARCH__ >= 12
4308 static inline __ATTRS_o_ai int
4309 vec_any_eq(vector float __a, vector float __b) {
4310   int __cc;
4311   __builtin_s390_vfcesbs(__a, __b, &__cc);
4312   return __cc <= 1;
4313 }
4314 #endif
4315
4316 static inline __ATTRS_o_ai int
4317 vec_any_eq(vector double __a, vector double __b) {
4318   int __cc;
4319   __builtin_s390_vfcedbs(__a, __b, &__cc);
4320   return __cc <= 1;
4321 }
4322
4323 /*-- vec_any_ne -------------------------------------------------------------*/
4324
4325 static inline __ATTRS_o_ai int
4326 vec_any_ne(vector signed char __a, vector signed char __b) {
4327   int __cc;
4328   __builtin_s390_vceqbs(__a, __b, &__cc);
4329   return __cc != 0;
4330 }
4331
4332 // This prototype is deprecated.
4333 static inline __ATTRS_o_ai int
4334 vec_any_ne(vector signed char __a, vector bool char __b) {
4335   int __cc;
4336   __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
4337   return __cc != 0;
4338 }
4339
4340 // This prototype is deprecated.
4341 static inline __ATTRS_o_ai int
4342 vec_any_ne(vector bool char __a, vector signed char __b) {
4343   int __cc;
4344   __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
4345   return __cc != 0;
4346 }
4347
4348 static inline __ATTRS_o_ai int
4349 vec_any_ne(vector unsigned char __a, vector unsigned char __b) {
4350   int __cc;
4351   __builtin_s390_vceqbs((vector signed char)__a,
4352                         (vector signed char)__b, &__cc);
4353   return __cc != 0;
4354 }
4355
4356 // This prototype is deprecated.
4357 static inline __ATTRS_o_ai int
4358 vec_any_ne(vector unsigned char __a, vector bool char __b) {
4359   int __cc;
4360   __builtin_s390_vceqbs((vector signed char)__a,
4361                         (vector signed char)__b, &__cc);
4362   return __cc != 0;
4363 }
4364
4365 // This prototype is deprecated.
4366 static inline __ATTRS_o_ai int
4367 vec_any_ne(vector bool char __a, vector unsigned char __b) {
4368   int __cc;
4369   __builtin_s390_vceqbs((vector signed char)__a,
4370                         (vector signed char)__b, &__cc);
4371   return __cc != 0;
4372 }
4373
4374 static inline __ATTRS_o_ai int
4375 vec_any_ne(vector bool char __a, vector bool char __b) {
4376   int __cc;
4377   __builtin_s390_vceqbs((vector signed char)__a,
4378                         (vector signed char)__b, &__cc);
4379   return __cc != 0;
4380 }
4381
4382 static inline __ATTRS_o_ai int
4383 vec_any_ne(vector signed short __a, vector signed short __b) {
4384   int __cc;
4385   __builtin_s390_vceqhs(__a, __b, &__cc);
4386   return __cc != 0;
4387 }
4388
4389 // This prototype is deprecated.
4390 static inline __ATTRS_o_ai int
4391 vec_any_ne(vector signed short __a, vector bool short __b) {
4392   int __cc;
4393   __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
4394   return __cc != 0;
4395 }
4396
4397 // This prototype is deprecated.
4398 static inline __ATTRS_o_ai int
4399 vec_any_ne(vector bool short __a, vector signed short __b) {
4400   int __cc;
4401   __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
4402   return __cc != 0;
4403 }
4404
4405 static inline __ATTRS_o_ai int
4406 vec_any_ne(vector unsigned short __a, vector unsigned short __b) {
4407   int __cc;
4408   __builtin_s390_vceqhs((vector signed short)__a,
4409                         (vector signed short)__b, &__cc);
4410   return __cc != 0;
4411 }
4412
4413 // This prototype is deprecated.
4414 static inline __ATTRS_o_ai int
4415 vec_any_ne(vector unsigned short __a, vector bool short __b) {
4416   int __cc;
4417   __builtin_s390_vceqhs((vector signed short)__a,
4418                         (vector signed short)__b, &__cc);
4419   return __cc != 0;
4420 }
4421
4422 // This prototype is deprecated.
4423 static inline __ATTRS_o_ai int
4424 vec_any_ne(vector bool short __a, vector unsigned short __b) {
4425   int __cc;
4426   __builtin_s390_vceqhs((vector signed short)__a,
4427                         (vector signed short)__b, &__cc);
4428   return __cc != 0;
4429 }
4430
4431 static inline __ATTRS_o_ai int
4432 vec_any_ne(vector bool short __a, vector bool short __b) {
4433   int __cc;
4434   __builtin_s390_vceqhs((vector signed short)__a,
4435                         (vector signed short)__b, &__cc);
4436   return __cc != 0;
4437 }
4438
4439 static inline __ATTRS_o_ai int
4440 vec_any_ne(vector signed int __a, vector signed int __b) {
4441   int __cc;
4442   __builtin_s390_vceqfs(__a, __b, &__cc);
4443   return __cc != 0;
4444 }
4445
4446 // This prototype is deprecated.
4447 static inline __ATTRS_o_ai int
4448 vec_any_ne(vector signed int __a, vector bool int __b) {
4449   int __cc;
4450   __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
4451   return __cc != 0;
4452 }
4453
4454 // This prototype is deprecated.
4455 static inline __ATTRS_o_ai int
4456 vec_any_ne(vector bool int __a, vector signed int __b) {
4457   int __cc;
4458   __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
4459   return __cc != 0;
4460 }
4461
4462 static inline __ATTRS_o_ai int
4463 vec_any_ne(vector unsigned int __a, vector unsigned int __b) {
4464   int __cc;
4465   __builtin_s390_vceqfs((vector signed int)__a,
4466                         (vector signed int)__b, &__cc);
4467   return __cc != 0;
4468 }
4469
4470 // This prototype is deprecated.
4471 static inline __ATTRS_o_ai int
4472 vec_any_ne(vector unsigned int __a, vector bool int __b) {
4473   int __cc;
4474   __builtin_s390_vceqfs((vector signed int)__a,
4475                         (vector signed int)__b, &__cc);
4476   return __cc != 0;
4477 }
4478
4479 // This prototype is deprecated.
4480 static inline __ATTRS_o_ai int
4481 vec_any_ne(vector bool int __a, vector unsigned int __b) {
4482   int __cc;
4483   __builtin_s390_vceqfs((vector signed int)__a,
4484                         (vector signed int)__b, &__cc);
4485   return __cc != 0;
4486 }
4487
4488 static inline __ATTRS_o_ai int
4489 vec_any_ne(vector bool int __a, vector bool int __b) {
4490   int __cc;
4491   __builtin_s390_vceqfs((vector signed int)__a,
4492                         (vector signed int)__b, &__cc);
4493   return __cc != 0;
4494 }
4495
4496 static inline __ATTRS_o_ai int
4497 vec_any_ne(vector signed long long __a, vector signed long long __b) {
4498   int __cc;
4499   __builtin_s390_vceqgs(__a, __b, &__cc);
4500   return __cc != 0;
4501 }
4502
4503 // This prototype is deprecated.
4504 static inline __ATTRS_o_ai int
4505 vec_any_ne(vector signed long long __a, vector bool long long __b) {
4506   int __cc;
4507   __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
4508   return __cc != 0;
4509 }
4510
4511 // This prototype is deprecated.
4512 static inline __ATTRS_o_ai int
4513 vec_any_ne(vector bool long long __a, vector signed long long __b) {
4514   int __cc;
4515   __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
4516   return __cc != 0;
4517 }
4518
4519 static inline __ATTRS_o_ai int
4520 vec_any_ne(vector unsigned long long __a, vector unsigned long long __b) {
4521   int __cc;
4522   __builtin_s390_vceqgs((vector signed long long)__a,
4523                         (vector signed long long)__b, &__cc);
4524   return __cc != 0;
4525 }
4526
4527 // This prototype is deprecated.
4528 static inline __ATTRS_o_ai int
4529 vec_any_ne(vector unsigned long long __a, vector bool long long __b) {
4530   int __cc;
4531   __builtin_s390_vceqgs((vector signed long long)__a,
4532                         (vector signed long long)__b, &__cc);
4533   return __cc != 0;
4534 }
4535
4536 // This prototype is deprecated.
4537 static inline __ATTRS_o_ai int
4538 vec_any_ne(vector bool long long __a, vector unsigned long long __b) {
4539   int __cc;
4540   __builtin_s390_vceqgs((vector signed long long)__a,
4541                         (vector signed long long)__b, &__cc);
4542   return __cc != 0;
4543 }
4544
4545 static inline __ATTRS_o_ai int
4546 vec_any_ne(vector bool long long __a, vector bool long long __b) {
4547   int __cc;
4548   __builtin_s390_vceqgs((vector signed long long)__a,
4549                         (vector signed long long)__b, &__cc);
4550   return __cc != 0;
4551 }
4552
4553 #if __ARCH__ >= 12
4554 static inline __ATTRS_o_ai int
4555 vec_any_ne(vector float __a, vector float __b) {
4556   int __cc;
4557   __builtin_s390_vfcesbs(__a, __b, &__cc);
4558   return __cc != 0;
4559 }
4560 #endif
4561
4562 static inline __ATTRS_o_ai int
4563 vec_any_ne(vector double __a, vector double __b) {
4564   int __cc;
4565   __builtin_s390_vfcedbs(__a, __b, &__cc);
4566   return __cc != 0;
4567 }
4568
4569 /*-- vec_any_ge -------------------------------------------------------------*/
4570
4571 static inline __ATTRS_o_ai int
4572 vec_any_ge(vector signed char __a, vector signed char __b) {
4573   int __cc;
4574   __builtin_s390_vchbs(__b, __a, &__cc);
4575   return __cc != 0;
4576 }
4577
4578 // This prototype is deprecated.
4579 static inline __ATTRS_o_ai int
4580 vec_any_ge(vector signed char __a, vector bool char __b) {
4581   int __cc;
4582   __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
4583   return __cc != 0;
4584 }
4585
4586 // This prototype is deprecated.
4587 static inline __ATTRS_o_ai int
4588 vec_any_ge(vector bool char __a, vector signed char __b) {
4589   int __cc;
4590   __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
4591   return __cc != 0;
4592 }
4593
4594 static inline __ATTRS_o_ai int
4595 vec_any_ge(vector unsigned char __a, vector unsigned char __b) {
4596   int __cc;
4597   __builtin_s390_vchlbs(__b, __a, &__cc);
4598   return __cc != 0;
4599 }
4600
4601 // This prototype is deprecated.
4602 static inline __ATTRS_o_ai int
4603 vec_any_ge(vector unsigned char __a, vector bool char __b) {
4604   int __cc;
4605   __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
4606   return __cc != 0;
4607 }
4608
4609 // This prototype is deprecated.
4610 static inline __ATTRS_o_ai int
4611 vec_any_ge(vector bool char __a, vector unsigned char __b) {
4612   int __cc;
4613   __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
4614   return __cc != 0;
4615 }
4616
4617 // This prototype is deprecated.
4618 static inline __ATTRS_o_ai int
4619 vec_any_ge(vector bool char __a, vector bool char __b) {
4620   int __cc;
4621   __builtin_s390_vchlbs((vector unsigned char)__b,
4622                         (vector unsigned char)__a, &__cc);
4623   return __cc != 0;
4624 }
4625
4626 static inline __ATTRS_o_ai int
4627 vec_any_ge(vector signed short __a, vector signed short __b) {
4628   int __cc;
4629   __builtin_s390_vchhs(__b, __a, &__cc);
4630   return __cc != 0;
4631 }
4632
4633 // This prototype is deprecated.
4634 static inline __ATTRS_o_ai int
4635 vec_any_ge(vector signed short __a, vector bool short __b) {
4636   int __cc;
4637   __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
4638   return __cc != 0;
4639 }
4640
4641 // This prototype is deprecated.
4642 static inline __ATTRS_o_ai int
4643 vec_any_ge(vector bool short __a, vector signed short __b) {
4644   int __cc;
4645   __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
4646   return __cc != 0;
4647 }
4648
4649 static inline __ATTRS_o_ai int
4650 vec_any_ge(vector unsigned short __a, vector unsigned short __b) {
4651   int __cc;
4652   __builtin_s390_vchlhs(__b, __a, &__cc);
4653   return __cc != 0;
4654 }
4655
4656 // This prototype is deprecated.
4657 static inline __ATTRS_o_ai int
4658 vec_any_ge(vector unsigned short __a, vector bool short __b) {
4659   int __cc;
4660   __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
4661   return __cc != 0;
4662 }
4663
4664 // This prototype is deprecated.
4665 static inline __ATTRS_o_ai int
4666 vec_any_ge(vector bool short __a, vector unsigned short __b) {
4667   int __cc;
4668   __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
4669   return __cc != 0;
4670 }
4671
4672 // This prototype is deprecated.
4673 static inline __ATTRS_o_ai int
4674 vec_any_ge(vector bool short __a, vector bool short __b) {
4675   int __cc;
4676   __builtin_s390_vchlhs((vector unsigned short)__b,
4677                         (vector unsigned short)__a, &__cc);
4678   return __cc != 0;
4679 }
4680
4681 static inline __ATTRS_o_ai int
4682 vec_any_ge(vector signed int __a, vector signed int __b) {
4683   int __cc;
4684   __builtin_s390_vchfs(__b, __a, &__cc);
4685   return __cc != 0;
4686 }
4687
4688 // This prototype is deprecated.
4689 static inline __ATTRS_o_ai int
4690 vec_any_ge(vector signed int __a, vector bool int __b) {
4691   int __cc;
4692   __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
4693   return __cc != 0;
4694 }
4695
4696 // This prototype is deprecated.
4697 static inline __ATTRS_o_ai int
4698 vec_any_ge(vector bool int __a, vector signed int __b) {
4699   int __cc;
4700   __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
4701   return __cc != 0;
4702 }
4703
4704 static inline __ATTRS_o_ai int
4705 vec_any_ge(vector unsigned int __a, vector unsigned int __b) {
4706   int __cc;
4707   __builtin_s390_vchlfs(__b, __a, &__cc);
4708   return __cc != 0;
4709 }
4710
4711 // This prototype is deprecated.
4712 static inline __ATTRS_o_ai int
4713 vec_any_ge(vector unsigned int __a, vector bool int __b) {
4714   int __cc;
4715   __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
4716   return __cc != 0;
4717 }
4718
4719 // This prototype is deprecated.
4720 static inline __ATTRS_o_ai int
4721 vec_any_ge(vector bool int __a, vector unsigned int __b) {
4722   int __cc;
4723   __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
4724   return __cc != 0;
4725 }
4726
4727 // This prototype is deprecated.
4728 static inline __ATTRS_o_ai int
4729 vec_any_ge(vector bool int __a, vector bool int __b) {
4730   int __cc;
4731   __builtin_s390_vchlfs((vector unsigned int)__b,
4732                         (vector unsigned int)__a, &__cc);
4733   return __cc != 0;
4734 }
4735
4736 static inline __ATTRS_o_ai int
4737 vec_any_ge(vector signed long long __a, vector signed long long __b) {
4738   int __cc;
4739   __builtin_s390_vchgs(__b, __a, &__cc);
4740   return __cc != 0;
4741 }
4742
4743 // This prototype is deprecated.
4744 static inline __ATTRS_o_ai int
4745 vec_any_ge(vector signed long long __a, vector bool long long __b) {
4746   int __cc;
4747   __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
4748   return __cc != 0;
4749 }
4750
4751 // This prototype is deprecated.
4752 static inline __ATTRS_o_ai int
4753 vec_any_ge(vector bool long long __a, vector signed long long __b) {
4754   int __cc;
4755   __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
4756   return __cc != 0;
4757 }
4758
4759 static inline __ATTRS_o_ai int
4760 vec_any_ge(vector unsigned long long __a, vector unsigned long long __b) {
4761   int __cc;
4762   __builtin_s390_vchlgs(__b, __a, &__cc);
4763   return __cc != 0;
4764 }
4765
4766 // This prototype is deprecated.
4767 static inline __ATTRS_o_ai int
4768 vec_any_ge(vector unsigned long long __a, vector bool long long __b) {
4769   int __cc;
4770   __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
4771   return __cc != 0;
4772 }
4773
4774 // This prototype is deprecated.
4775 static inline __ATTRS_o_ai int
4776 vec_any_ge(vector bool long long __a, vector unsigned long long __b) {
4777   int __cc;
4778   __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
4779   return __cc != 0;
4780 }
4781
4782 // This prototype is deprecated.
4783 static inline __ATTRS_o_ai int
4784 vec_any_ge(vector bool long long __a, vector bool long long __b) {
4785   int __cc;
4786   __builtin_s390_vchlgs((vector unsigned long long)__b,
4787                         (vector unsigned long long)__a, &__cc);
4788   return __cc != 0;
4789 }
4790
4791 #if __ARCH__ >= 12
4792 static inline __ATTRS_o_ai int
4793 vec_any_ge(vector float __a, vector float __b) {
4794   int __cc;
4795   __builtin_s390_vfchesbs(__a, __b, &__cc);
4796   return __cc <= 1;
4797 }
4798 #endif
4799
4800 static inline __ATTRS_o_ai int
4801 vec_any_ge(vector double __a, vector double __b) {
4802   int __cc;
4803   __builtin_s390_vfchedbs(__a, __b, &__cc);
4804   return __cc <= 1;
4805 }
4806
4807 /*-- vec_any_gt -------------------------------------------------------------*/
4808
4809 static inline __ATTRS_o_ai int
4810 vec_any_gt(vector signed char __a, vector signed char __b) {
4811   int __cc;
4812   __builtin_s390_vchbs(__a, __b, &__cc);
4813   return __cc <= 1;
4814 }
4815
4816 // This prototype is deprecated.
4817 static inline __ATTRS_o_ai int
4818 vec_any_gt(vector signed char __a, vector bool char __b) {
4819   int __cc;
4820   __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
4821   return __cc <= 1;
4822 }
4823
4824 // This prototype is deprecated.
4825 static inline __ATTRS_o_ai int
4826 vec_any_gt(vector bool char __a, vector signed char __b) {
4827   int __cc;
4828   __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
4829   return __cc <= 1;
4830 }
4831
4832 static inline __ATTRS_o_ai int
4833 vec_any_gt(vector unsigned char __a, vector unsigned char __b) {
4834   int __cc;
4835   __builtin_s390_vchlbs(__a, __b, &__cc);
4836   return __cc <= 1;
4837 }
4838
4839 // This prototype is deprecated.
4840 static inline __ATTRS_o_ai int
4841 vec_any_gt(vector unsigned char __a, vector bool char __b) {
4842   int __cc;
4843   __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
4844   return __cc <= 1;
4845 }
4846
4847 // This prototype is deprecated.
4848 static inline __ATTRS_o_ai int
4849 vec_any_gt(vector bool char __a, vector unsigned char __b) {
4850   int __cc;
4851   __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
4852   return __cc <= 1;
4853 }
4854
4855 // This prototype is deprecated.
4856 static inline __ATTRS_o_ai int
4857 vec_any_gt(vector bool char __a, vector bool char __b) {
4858   int __cc;
4859   __builtin_s390_vchlbs((vector unsigned char)__a,
4860                         (vector unsigned char)__b, &__cc);
4861   return __cc <= 1;
4862 }
4863
4864 static inline __ATTRS_o_ai int
4865 vec_any_gt(vector signed short __a, vector signed short __b) {
4866   int __cc;
4867   __builtin_s390_vchhs(__a, __b, &__cc);
4868   return __cc <= 1;
4869 }
4870
4871 // This prototype is deprecated.
4872 static inline __ATTRS_o_ai int
4873 vec_any_gt(vector signed short __a, vector bool short __b) {
4874   int __cc;
4875   __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
4876   return __cc <= 1;
4877 }
4878
4879 // This prototype is deprecated.
4880 static inline __ATTRS_o_ai int
4881 vec_any_gt(vector bool short __a, vector signed short __b) {
4882   int __cc;
4883   __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
4884   return __cc <= 1;
4885 }
4886
4887 static inline __ATTRS_o_ai int
4888 vec_any_gt(vector unsigned short __a, vector unsigned short __b) {
4889   int __cc;
4890   __builtin_s390_vchlhs(__a, __b, &__cc);
4891   return __cc <= 1;
4892 }
4893
4894 // This prototype is deprecated.
4895 static inline __ATTRS_o_ai int
4896 vec_any_gt(vector unsigned short __a, vector bool short __b) {
4897   int __cc;
4898   __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
4899   return __cc <= 1;
4900 }
4901
4902 // This prototype is deprecated.
4903 static inline __ATTRS_o_ai int
4904 vec_any_gt(vector bool short __a, vector unsigned short __b) {
4905   int __cc;
4906   __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
4907   return __cc <= 1;
4908 }
4909
4910 // This prototype is deprecated.
4911 static inline __ATTRS_o_ai int
4912 vec_any_gt(vector bool short __a, vector bool short __b) {
4913   int __cc;
4914   __builtin_s390_vchlhs((vector unsigned short)__a,
4915                         (vector unsigned short)__b, &__cc);
4916   return __cc <= 1;
4917 }
4918
4919 static inline __ATTRS_o_ai int
4920 vec_any_gt(vector signed int __a, vector signed int __b) {
4921   int __cc;
4922   __builtin_s390_vchfs(__a, __b, &__cc);
4923   return __cc <= 1;
4924 }
4925
4926 // This prototype is deprecated.
4927 static inline __ATTRS_o_ai int
4928 vec_any_gt(vector signed int __a, vector bool int __b) {
4929   int __cc;
4930   __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
4931   return __cc <= 1;
4932 }
4933
4934 // This prototype is deprecated.
4935 static inline __ATTRS_o_ai int
4936 vec_any_gt(vector bool int __a, vector signed int __b) {
4937   int __cc;
4938   __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
4939   return __cc <= 1;
4940 }
4941
4942 static inline __ATTRS_o_ai int
4943 vec_any_gt(vector unsigned int __a, vector unsigned int __b) {
4944   int __cc;
4945   __builtin_s390_vchlfs(__a, __b, &__cc);
4946   return __cc <= 1;
4947 }
4948
4949 // This prototype is deprecated.
4950 static inline __ATTRS_o_ai int
4951 vec_any_gt(vector unsigned int __a, vector bool int __b) {
4952   int __cc;
4953   __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
4954   return __cc <= 1;
4955 }
4956
4957 // This prototype is deprecated.
4958 static inline __ATTRS_o_ai int
4959 vec_any_gt(vector bool int __a, vector unsigned int __b) {
4960   int __cc;
4961   __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
4962   return __cc <= 1;
4963 }
4964
4965 // This prototype is deprecated.
4966 static inline __ATTRS_o_ai int
4967 vec_any_gt(vector bool int __a, vector bool int __b) {
4968   int __cc;
4969   __builtin_s390_vchlfs((vector unsigned int)__a,
4970                         (vector unsigned int)__b, &__cc);
4971   return __cc <= 1;
4972 }
4973
4974 static inline __ATTRS_o_ai int
4975 vec_any_gt(vector signed long long __a, vector signed long long __b) {
4976   int __cc;
4977   __builtin_s390_vchgs(__a, __b, &__cc);
4978   return __cc <= 1;
4979 }
4980
4981 // This prototype is deprecated.
4982 static inline __ATTRS_o_ai int
4983 vec_any_gt(vector signed long long __a, vector bool long long __b) {
4984   int __cc;
4985   __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
4986   return __cc <= 1;
4987 }
4988
4989 // This prototype is deprecated.
4990 static inline __ATTRS_o_ai int
4991 vec_any_gt(vector bool long long __a, vector signed long long __b) {
4992   int __cc;
4993   __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
4994   return __cc <= 1;
4995 }
4996
4997 static inline __ATTRS_o_ai int
4998 vec_any_gt(vector unsigned long long __a, vector unsigned long long __b) {
4999   int __cc;
5000   __builtin_s390_vchlgs(__a, __b, &__cc);
5001   return __cc <= 1;
5002 }
5003
5004 // This prototype is deprecated.
5005 static inline __ATTRS_o_ai int
5006 vec_any_gt(vector unsigned long long __a, vector bool long long __b) {
5007   int __cc;
5008   __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
5009   return __cc <= 1;
5010 }
5011
5012 // This prototype is deprecated.
5013 static inline __ATTRS_o_ai int
5014 vec_any_gt(vector bool long long __a, vector unsigned long long __b) {
5015   int __cc;
5016   __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
5017   return __cc <= 1;
5018 }
5019
5020 // This prototype is deprecated.
5021 static inline __ATTRS_o_ai int
5022 vec_any_gt(vector bool long long __a, vector bool long long __b) {
5023   int __cc;
5024   __builtin_s390_vchlgs((vector unsigned long long)__a,
5025                         (vector unsigned long long)__b, &__cc);
5026   return __cc <= 1;
5027 }
5028
5029 #if __ARCH__ >= 12
5030 static inline __ATTRS_o_ai int
5031 vec_any_gt(vector float __a, vector float __b) {
5032   int __cc;
5033   __builtin_s390_vfchsbs(__a, __b, &__cc);
5034   return __cc <= 1;
5035 }
5036 #endif
5037
5038 static inline __ATTRS_o_ai int
5039 vec_any_gt(vector double __a, vector double __b) {
5040   int __cc;
5041   __builtin_s390_vfchdbs(__a, __b, &__cc);
5042   return __cc <= 1;
5043 }
5044
5045 /*-- vec_any_le -------------------------------------------------------------*/
5046
5047 static inline __ATTRS_o_ai int
5048 vec_any_le(vector signed char __a, vector signed char __b) {
5049   int __cc;
5050   __builtin_s390_vchbs(__a, __b, &__cc);
5051   return __cc != 0;
5052 }
5053
5054 // This prototype is deprecated.
5055 static inline __ATTRS_o_ai int
5056 vec_any_le(vector signed char __a, vector bool char __b) {
5057   int __cc;
5058   __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
5059   return __cc != 0;
5060 }
5061
5062 // This prototype is deprecated.
5063 static inline __ATTRS_o_ai int
5064 vec_any_le(vector bool char __a, vector signed char __b) {
5065   int __cc;
5066   __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
5067   return __cc != 0;
5068 }
5069
5070 static inline __ATTRS_o_ai int
5071 vec_any_le(vector unsigned char __a, vector unsigned char __b) {
5072   int __cc;
5073   __builtin_s390_vchlbs(__a, __b, &__cc);
5074   return __cc != 0;
5075 }
5076
5077 // This prototype is deprecated.
5078 static inline __ATTRS_o_ai int
5079 vec_any_le(vector unsigned char __a, vector bool char __b) {
5080   int __cc;
5081   __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
5082   return __cc != 0;
5083 }
5084
5085 // This prototype is deprecated.
5086 static inline __ATTRS_o_ai int
5087 vec_any_le(vector bool char __a, vector unsigned char __b) {
5088   int __cc;
5089   __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
5090   return __cc != 0;
5091 }
5092
5093 // This prototype is deprecated.
5094 static inline __ATTRS_o_ai int
5095 vec_any_le(vector bool char __a, vector bool char __b) {
5096   int __cc;
5097   __builtin_s390_vchlbs((vector unsigned char)__a,
5098                         (vector unsigned char)__b, &__cc);
5099   return __cc != 0;
5100 }
5101
5102 static inline __ATTRS_o_ai int
5103 vec_any_le(vector signed short __a, vector signed short __b) {
5104   int __cc;
5105   __builtin_s390_vchhs(__a, __b, &__cc);
5106   return __cc != 0;
5107 }
5108
5109 // This prototype is deprecated.
5110 static inline __ATTRS_o_ai int
5111 vec_any_le(vector signed short __a, vector bool short __b) {
5112   int __cc;
5113   __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
5114   return __cc != 0;
5115 }
5116
5117 // This prototype is deprecated.
5118 static inline __ATTRS_o_ai int
5119 vec_any_le(vector bool short __a, vector signed short __b) {
5120   int __cc;
5121   __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
5122   return __cc != 0;
5123 }
5124
5125 static inline __ATTRS_o_ai int
5126 vec_any_le(vector unsigned short __a, vector unsigned short __b) {
5127   int __cc;
5128   __builtin_s390_vchlhs(__a, __b, &__cc);
5129   return __cc != 0;
5130 }
5131
5132 // This prototype is deprecated.
5133 static inline __ATTRS_o_ai int
5134 vec_any_le(vector unsigned short __a, vector bool short __b) {
5135   int __cc;
5136   __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
5137   return __cc != 0;
5138 }
5139
5140 // This prototype is deprecated.
5141 static inline __ATTRS_o_ai int
5142 vec_any_le(vector bool short __a, vector unsigned short __b) {
5143   int __cc;
5144   __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
5145   return __cc != 0;
5146 }
5147
5148 // This prototype is deprecated.
5149 static inline __ATTRS_o_ai int
5150 vec_any_le(vector bool short __a, vector bool short __b) {
5151   int __cc;
5152   __builtin_s390_vchlhs((vector unsigned short)__a,
5153                         (vector unsigned short)__b, &__cc);
5154   return __cc != 0;
5155 }
5156
5157 static inline __ATTRS_o_ai int
5158 vec_any_le(vector signed int __a, vector signed int __b) {
5159   int __cc;
5160   __builtin_s390_vchfs(__a, __b, &__cc);
5161   return __cc != 0;
5162 }
5163
5164 // This prototype is deprecated.
5165 static inline __ATTRS_o_ai int
5166 vec_any_le(vector signed int __a, vector bool int __b) {
5167   int __cc;
5168   __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
5169   return __cc != 0;
5170 }
5171
5172 // This prototype is deprecated.
5173 static inline __ATTRS_o_ai int
5174 vec_any_le(vector bool int __a, vector signed int __b) {
5175   int __cc;
5176   __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
5177   return __cc != 0;
5178 }
5179
5180 static inline __ATTRS_o_ai int
5181 vec_any_le(vector unsigned int __a, vector unsigned int __b) {
5182   int __cc;
5183   __builtin_s390_vchlfs(__a, __b, &__cc);
5184   return __cc != 0;
5185 }
5186
5187 // This prototype is deprecated.
5188 static inline __ATTRS_o_ai int
5189 vec_any_le(vector unsigned int __a, vector bool int __b) {
5190   int __cc;
5191   __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
5192   return __cc != 0;
5193 }
5194
5195 // This prototype is deprecated.
5196 static inline __ATTRS_o_ai int
5197 vec_any_le(vector bool int __a, vector unsigned int __b) {
5198   int __cc;
5199   __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
5200   return __cc != 0;
5201 }
5202
5203 // This prototype is deprecated.
5204 static inline __ATTRS_o_ai int
5205 vec_any_le(vector bool int __a, vector bool int __b) {
5206   int __cc;
5207   __builtin_s390_vchlfs((vector unsigned int)__a,
5208                         (vector unsigned int)__b, &__cc);
5209   return __cc != 0;
5210 }
5211
5212 static inline __ATTRS_o_ai int
5213 vec_any_le(vector signed long long __a, vector signed long long __b) {
5214   int __cc;
5215   __builtin_s390_vchgs(__a, __b, &__cc);
5216   return __cc != 0;
5217 }
5218
5219 // This prototype is deprecated.
5220 static inline __ATTRS_o_ai int
5221 vec_any_le(vector signed long long __a, vector bool long long __b) {
5222   int __cc;
5223   __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
5224   return __cc != 0;
5225 }
5226
5227 // This prototype is deprecated.
5228 static inline __ATTRS_o_ai int
5229 vec_any_le(vector bool long long __a, vector signed long long __b) {
5230   int __cc;
5231   __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
5232   return __cc != 0;
5233 }
5234
5235 static inline __ATTRS_o_ai int
5236 vec_any_le(vector unsigned long long __a, vector unsigned long long __b) {
5237   int __cc;
5238   __builtin_s390_vchlgs(__a, __b, &__cc);
5239   return __cc != 0;
5240 }
5241
5242 // This prototype is deprecated.
5243 static inline __ATTRS_o_ai int
5244 vec_any_le(vector unsigned long long __a, vector bool long long __b) {
5245   int __cc;
5246   __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
5247   return __cc != 0;
5248 }
5249
5250 // This prototype is deprecated.
5251 static inline __ATTRS_o_ai int
5252 vec_any_le(vector bool long long __a, vector unsigned long long __b) {
5253   int __cc;
5254   __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
5255   return __cc != 0;
5256 }
5257
5258 // This prototype is deprecated.
5259 static inline __ATTRS_o_ai int
5260 vec_any_le(vector bool long long __a, vector bool long long __b) {
5261   int __cc;
5262   __builtin_s390_vchlgs((vector unsigned long long)__a,
5263                         (vector unsigned long long)__b, &__cc);
5264   return __cc != 0;
5265 }
5266
5267 #if __ARCH__ >= 12
5268 static inline __ATTRS_o_ai int
5269 vec_any_le(vector float __a, vector float __b) {
5270   int __cc;
5271   __builtin_s390_vfchesbs(__b, __a, &__cc);
5272   return __cc <= 1;
5273 }
5274 #endif
5275
5276 static inline __ATTRS_o_ai int
5277 vec_any_le(vector double __a, vector double __b) {
5278   int __cc;
5279   __builtin_s390_vfchedbs(__b, __a, &__cc);
5280   return __cc <= 1;
5281 }
5282
5283 /*-- vec_any_lt -------------------------------------------------------------*/
5284
5285 static inline __ATTRS_o_ai int
5286 vec_any_lt(vector signed char __a, vector signed char __b) {
5287   int __cc;
5288   __builtin_s390_vchbs(__b, __a, &__cc);
5289   return __cc <= 1;
5290 }
5291
5292 // This prototype is deprecated.
5293 static inline __ATTRS_o_ai int
5294 vec_any_lt(vector signed char __a, vector bool char __b) {
5295   int __cc;
5296   __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
5297   return __cc <= 1;
5298 }
5299
5300 // This prototype is deprecated.
5301 static inline __ATTRS_o_ai int
5302 vec_any_lt(vector bool char __a, vector signed char __b) {
5303   int __cc;
5304   __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
5305   return __cc <= 1;
5306 }
5307
5308 static inline __ATTRS_o_ai int
5309 vec_any_lt(vector unsigned char __a, vector unsigned char __b) {
5310   int __cc;
5311   __builtin_s390_vchlbs(__b, __a, &__cc);
5312   return __cc <= 1;
5313 }
5314
5315 // This prototype is deprecated.
5316 static inline __ATTRS_o_ai int
5317 vec_any_lt(vector unsigned char __a, vector bool char __b) {
5318   int __cc;
5319   __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
5320   return __cc <= 1;
5321 }
5322
5323 // This prototype is deprecated.
5324 static inline __ATTRS_o_ai int
5325 vec_any_lt(vector bool char __a, vector unsigned char __b) {
5326   int __cc;
5327   __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
5328   return __cc <= 1;
5329 }
5330
5331 // This prototype is deprecated.
5332 static inline __ATTRS_o_ai int
5333 vec_any_lt(vector bool char __a, vector bool char __b) {
5334   int __cc;
5335   __builtin_s390_vchlbs((vector unsigned char)__b,
5336                         (vector unsigned char)__a, &__cc);
5337   return __cc <= 1;
5338 }
5339
5340 static inline __ATTRS_o_ai int
5341 vec_any_lt(vector signed short __a, vector signed short __b) {
5342   int __cc;
5343   __builtin_s390_vchhs(__b, __a, &__cc);
5344   return __cc <= 1;
5345 }
5346
5347 // This prototype is deprecated.
5348 static inline __ATTRS_o_ai int
5349 vec_any_lt(vector signed short __a, vector bool short __b) {
5350   int __cc;
5351   __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
5352   return __cc <= 1;
5353 }
5354
5355 // This prototype is deprecated.
5356 static inline __ATTRS_o_ai int
5357 vec_any_lt(vector bool short __a, vector signed short __b) {
5358   int __cc;
5359   __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
5360   return __cc <= 1;
5361 }
5362
5363 static inline __ATTRS_o_ai int
5364 vec_any_lt(vector unsigned short __a, vector unsigned short __b) {
5365   int __cc;
5366   __builtin_s390_vchlhs(__b, __a, &__cc);
5367   return __cc <= 1;
5368 }
5369
5370 // This prototype is deprecated.
5371 static inline __ATTRS_o_ai int
5372 vec_any_lt(vector unsigned short __a, vector bool short __b) {
5373   int __cc;
5374   __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
5375   return __cc <= 1;
5376 }
5377
5378 // This prototype is deprecated.
5379 static inline __ATTRS_o_ai int
5380 vec_any_lt(vector bool short __a, vector unsigned short __b) {
5381   int __cc;
5382   __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
5383   return __cc <= 1;
5384 }
5385
5386 // This prototype is deprecated.
5387 static inline __ATTRS_o_ai int
5388 vec_any_lt(vector bool short __a, vector bool short __b) {
5389   int __cc;
5390   __builtin_s390_vchlhs((vector unsigned short)__b,
5391                         (vector unsigned short)__a, &__cc);
5392   return __cc <= 1;
5393 }
5394
5395 static inline __ATTRS_o_ai int
5396 vec_any_lt(vector signed int __a, vector signed int __b) {
5397   int __cc;
5398   __builtin_s390_vchfs(__b, __a, &__cc);
5399   return __cc <= 1;
5400 }
5401
5402 // This prototype is deprecated.
5403 static inline __ATTRS_o_ai int
5404 vec_any_lt(vector signed int __a, vector bool int __b) {
5405   int __cc;
5406   __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
5407   return __cc <= 1;
5408 }
5409
5410 // This prototype is deprecated.
5411 static inline __ATTRS_o_ai int
5412 vec_any_lt(vector bool int __a, vector signed int __b) {
5413   int __cc;
5414   __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
5415   return __cc <= 1;
5416 }
5417
5418 static inline __ATTRS_o_ai int
5419 vec_any_lt(vector unsigned int __a, vector unsigned int __b) {
5420   int __cc;
5421   __builtin_s390_vchlfs(__b, __a, &__cc);
5422   return __cc <= 1;
5423 }
5424
5425 // This prototype is deprecated.
5426 static inline __ATTRS_o_ai int
5427 vec_any_lt(vector unsigned int __a, vector bool int __b) {
5428   int __cc;
5429   __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
5430   return __cc <= 1;
5431 }
5432
5433 // This prototype is deprecated.
5434 static inline __ATTRS_o_ai int
5435 vec_any_lt(vector bool int __a, vector unsigned int __b) {
5436   int __cc;
5437   __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
5438   return __cc <= 1;
5439 }
5440
5441 // This prototype is deprecated.
5442 static inline __ATTRS_o_ai int
5443 vec_any_lt(vector bool int __a, vector bool int __b) {
5444   int __cc;
5445   __builtin_s390_vchlfs((vector unsigned int)__b,
5446                         (vector unsigned int)__a, &__cc);
5447   return __cc <= 1;
5448 }
5449
5450 static inline __ATTRS_o_ai int
5451 vec_any_lt(vector signed long long __a, vector signed long long __b) {
5452   int __cc;
5453   __builtin_s390_vchgs(__b, __a, &__cc);
5454   return __cc <= 1;
5455 }
5456
5457 // This prototype is deprecated.
5458 static inline __ATTRS_o_ai int
5459 vec_any_lt(vector signed long long __a, vector bool long long __b) {
5460   int __cc;
5461   __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
5462   return __cc <= 1;
5463 }
5464
5465 // This prototype is deprecated.
5466 static inline __ATTRS_o_ai int
5467 vec_any_lt(vector bool long long __a, vector signed long long __b) {
5468   int __cc;
5469   __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
5470   return __cc <= 1;
5471 }
5472
5473 static inline __ATTRS_o_ai int
5474 vec_any_lt(vector unsigned long long __a, vector unsigned long long __b) {
5475   int __cc;
5476   __builtin_s390_vchlgs(__b, __a, &__cc);
5477   return __cc <= 1;
5478 }
5479
5480 // This prototype is deprecated.
5481 static inline __ATTRS_o_ai int
5482 vec_any_lt(vector unsigned long long __a, vector bool long long __b) {
5483   int __cc;
5484   __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
5485   return __cc <= 1;
5486 }
5487
5488 // This prototype is deprecated.
5489 static inline __ATTRS_o_ai int
5490 vec_any_lt(vector bool long long __a, vector unsigned long long __b) {
5491   int __cc;
5492   __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
5493   return __cc <= 1;
5494 }
5495
5496 // This prototype is deprecated.
5497 static inline __ATTRS_o_ai int
5498 vec_any_lt(vector bool long long __a, vector bool long long __b) {
5499   int __cc;
5500   __builtin_s390_vchlgs((vector unsigned long long)__b,
5501                         (vector unsigned long long)__a, &__cc);
5502   return __cc <= 1;
5503 }
5504
5505 #if __ARCH__ >= 12
5506 static inline __ATTRS_o_ai int
5507 vec_any_lt(vector float __a, vector float __b) {
5508   int __cc;
5509   __builtin_s390_vfchsbs(__b, __a, &__cc);
5510   return __cc <= 1;
5511 }
5512 #endif
5513
5514 static inline __ATTRS_o_ai int
5515 vec_any_lt(vector double __a, vector double __b) {
5516   int __cc;
5517   __builtin_s390_vfchdbs(__b, __a, &__cc);
5518   return __cc <= 1;
5519 }
5520
5521 /*-- vec_any_nge ------------------------------------------------------------*/
5522
5523 #if __ARCH__ >= 12
5524 static inline __ATTRS_o_ai int
5525 vec_any_nge(vector float __a, vector float __b) {
5526   int __cc;
5527   __builtin_s390_vfchesbs(__a, __b, &__cc);
5528   return __cc != 0;
5529 }
5530 #endif
5531
5532 static inline __ATTRS_o_ai int
5533 vec_any_nge(vector double __a, vector double __b) {
5534   int __cc;
5535   __builtin_s390_vfchedbs(__a, __b, &__cc);
5536   return __cc != 0;
5537 }
5538
5539 /*-- vec_any_ngt ------------------------------------------------------------*/
5540
5541 #if __ARCH__ >= 12
5542 static inline __ATTRS_o_ai int
5543 vec_any_ngt(vector float __a, vector float __b) {
5544   int __cc;
5545   __builtin_s390_vfchsbs(__a, __b, &__cc);
5546   return __cc != 0;
5547 }
5548 #endif
5549
5550 static inline __ATTRS_o_ai int
5551 vec_any_ngt(vector double __a, vector double __b) {
5552   int __cc;
5553   __builtin_s390_vfchdbs(__a, __b, &__cc);
5554   return __cc != 0;
5555 }
5556
5557 /*-- vec_any_nle ------------------------------------------------------------*/
5558
5559 #if __ARCH__ >= 12
5560 static inline __ATTRS_o_ai int
5561 vec_any_nle(vector float __a, vector float __b) {
5562   int __cc;
5563   __builtin_s390_vfchesbs(__b, __a, &__cc);
5564   return __cc != 0;
5565 }
5566 #endif
5567
5568 static inline __ATTRS_o_ai int
5569 vec_any_nle(vector double __a, vector double __b) {
5570   int __cc;
5571   __builtin_s390_vfchedbs(__b, __a, &__cc);
5572   return __cc != 0;
5573 }
5574
5575 /*-- vec_any_nlt ------------------------------------------------------------*/
5576
5577 #if __ARCH__ >= 12
5578 static inline __ATTRS_o_ai int
5579 vec_any_nlt(vector float __a, vector float __b) {
5580   int __cc;
5581   __builtin_s390_vfchsbs(__b, __a, &__cc);
5582   return __cc != 0;
5583 }
5584 #endif
5585
5586 static inline __ATTRS_o_ai int
5587 vec_any_nlt(vector double __a, vector double __b) {
5588   int __cc;
5589   __builtin_s390_vfchdbs(__b, __a, &__cc);
5590   return __cc != 0;
5591 }
5592
5593 /*-- vec_any_nan ------------------------------------------------------------*/
5594
5595 #if __ARCH__ >= 12
5596 static inline __ATTRS_o_ai int
5597 vec_any_nan(vector float __a) {
5598   int __cc;
5599   __builtin_s390_vftcisb(__a, 15, &__cc);
5600   return __cc != 3;
5601 }
5602 #endif
5603
5604 static inline __ATTRS_o_ai int
5605 vec_any_nan(vector double __a) {
5606   int __cc;
5607   __builtin_s390_vftcidb(__a, 15, &__cc);
5608   return __cc != 3;
5609 }
5610
5611 /*-- vec_any_numeric --------------------------------------------------------*/
5612
5613 #if __ARCH__ >= 12
5614 static inline __ATTRS_o_ai int
5615 vec_any_numeric(vector float __a) {
5616   int __cc;
5617   __builtin_s390_vftcisb(__a, 15, &__cc);
5618   return __cc != 0;
5619 }
5620 #endif
5621
5622 static inline __ATTRS_o_ai int
5623 vec_any_numeric(vector double __a) {
5624   int __cc;
5625   __builtin_s390_vftcidb(__a, 15, &__cc);
5626   return __cc != 0;
5627 }
5628
5629 /*-- vec_andc ---------------------------------------------------------------*/
5630
5631 static inline __ATTRS_o_ai vector bool char
5632 vec_andc(vector bool char __a, vector bool char __b) {
5633   return __a & ~__b;
5634 }
5635
5636 static inline __ATTRS_o_ai vector signed char
5637 vec_andc(vector signed char __a, vector signed char __b) {
5638   return __a & ~__b;
5639 }
5640
5641 // This prototype is deprecated.
5642 static inline __ATTRS_o_ai vector signed char
5643 vec_andc(vector bool char __a, vector signed char __b) {
5644   return __a & ~__b;
5645 }
5646
5647 // This prototype is deprecated.
5648 static inline __ATTRS_o_ai vector signed char
5649 vec_andc(vector signed char __a, vector bool char __b) {
5650   return __a & ~__b;
5651 }
5652
5653 static inline __ATTRS_o_ai vector unsigned char
5654 vec_andc(vector unsigned char __a, vector unsigned char __b) {
5655   return __a & ~__b;
5656 }
5657
5658 // This prototype is deprecated.
5659 static inline __ATTRS_o_ai vector unsigned char
5660 vec_andc(vector bool char __a, vector unsigned char __b) {
5661   return __a & ~__b;
5662 }
5663
5664 // This prototype is deprecated.
5665 static inline __ATTRS_o_ai vector unsigned char
5666 vec_andc(vector unsigned char __a, vector bool char __b) {
5667   return __a & ~__b;
5668 }
5669
5670 static inline __ATTRS_o_ai vector bool short
5671 vec_andc(vector bool short __a, vector bool short __b) {
5672   return __a & ~__b;
5673 }
5674
5675 static inline __ATTRS_o_ai vector signed short
5676 vec_andc(vector signed short __a, vector signed short __b) {
5677   return __a & ~__b;
5678 }
5679
5680 // This prototype is deprecated.
5681 static inline __ATTRS_o_ai vector signed short
5682 vec_andc(vector bool short __a, vector signed short __b) {
5683   return __a & ~__b;
5684 }
5685
5686 // This prototype is deprecated.
5687 static inline __ATTRS_o_ai vector signed short
5688 vec_andc(vector signed short __a, vector bool short __b) {
5689   return __a & ~__b;
5690 }
5691
5692 static inline __ATTRS_o_ai vector unsigned short
5693 vec_andc(vector unsigned short __a, vector unsigned short __b) {
5694   return __a & ~__b;
5695 }
5696
5697 // This prototype is deprecated.
5698 static inline __ATTRS_o_ai vector unsigned short
5699 vec_andc(vector bool short __a, vector unsigned short __b) {
5700   return __a & ~__b;
5701 }
5702
5703 // This prototype is deprecated.
5704 static inline __ATTRS_o_ai vector unsigned short
5705 vec_andc(vector unsigned short __a, vector bool short __b) {
5706   return __a & ~__b;
5707 }
5708
5709 static inline __ATTRS_o_ai vector bool int
5710 vec_andc(vector bool int __a, vector bool int __b) {
5711   return __a & ~__b;
5712 }
5713
5714 static inline __ATTRS_o_ai vector signed int
5715 vec_andc(vector signed int __a, vector signed int __b) {
5716   return __a & ~__b;
5717 }
5718
5719 // This prototype is deprecated.
5720 static inline __ATTRS_o_ai vector signed int
5721 vec_andc(vector bool int __a, vector signed int __b) {
5722   return __a & ~__b;
5723 }
5724
5725 // This prototype is deprecated.
5726 static inline __ATTRS_o_ai vector signed int
5727 vec_andc(vector signed int __a, vector bool int __b) {
5728   return __a & ~__b;
5729 }
5730
5731 static inline __ATTRS_o_ai vector unsigned int
5732 vec_andc(vector unsigned int __a, vector unsigned int __b) {
5733   return __a & ~__b;
5734 }
5735
5736 // This prototype is deprecated.
5737 static inline __ATTRS_o_ai vector unsigned int
5738 vec_andc(vector bool int __a, vector unsigned int __b) {
5739   return __a & ~__b;
5740 }
5741
5742 // This prototype is deprecated.
5743 static inline __ATTRS_o_ai vector unsigned int
5744 vec_andc(vector unsigned int __a, vector bool int __b) {
5745   return __a & ~__b;
5746 }
5747
5748 static inline __ATTRS_o_ai vector bool long long
5749 vec_andc(vector bool long long __a, vector bool long long __b) {
5750   return __a & ~__b;
5751 }
5752
5753 static inline __ATTRS_o_ai vector signed long long
5754 vec_andc(vector signed long long __a, vector signed long long __b) {
5755   return __a & ~__b;
5756 }
5757
5758 // This prototype is deprecated.
5759 static inline __ATTRS_o_ai vector signed long long
5760 vec_andc(vector bool long long __a, vector signed long long __b) {
5761   return __a & ~__b;
5762 }
5763
5764 // This prototype is deprecated.
5765 static inline __ATTRS_o_ai vector signed long long
5766 vec_andc(vector signed long long __a, vector bool long long __b) {
5767   return __a & ~__b;
5768 }
5769
5770 static inline __ATTRS_o_ai vector unsigned long long
5771 vec_andc(vector unsigned long long __a, vector unsigned long long __b) {
5772   return __a & ~__b;
5773 }
5774
5775 // This prototype is deprecated.
5776 static inline __ATTRS_o_ai vector unsigned long long
5777 vec_andc(vector bool long long __a, vector unsigned long long __b) {
5778   return __a & ~__b;
5779 }
5780
5781 // This prototype is deprecated.
5782 static inline __ATTRS_o_ai vector unsigned long long
5783 vec_andc(vector unsigned long long __a, vector bool long long __b) {
5784   return __a & ~__b;
5785 }
5786
5787 #if __ARCH__ >= 12
5788 static inline __ATTRS_o_ai vector float
5789 vec_andc(vector float __a, vector float __b) {
5790   return (vector float)((vector unsigned int)__a &
5791                          ~(vector unsigned int)__b);
5792 }
5793 #endif
5794
5795 static inline __ATTRS_o_ai vector double
5796 vec_andc(vector double __a, vector double __b) {
5797   return (vector double)((vector unsigned long long)__a &
5798                          ~(vector unsigned long long)__b);
5799 }
5800
5801 // This prototype is deprecated.
5802 static inline __ATTRS_o_ai vector double
5803 vec_andc(vector bool long long __a, vector double __b) {
5804   return (vector double)((vector unsigned long long)__a &
5805                          ~(vector unsigned long long)__b);
5806 }
5807
5808 // This prototype is deprecated.
5809 static inline __ATTRS_o_ai vector double
5810 vec_andc(vector double __a, vector bool long long __b) {
5811   return (vector double)((vector unsigned long long)__a &
5812                          ~(vector unsigned long long)__b);
5813 }
5814
5815 /*-- vec_nor ----------------------------------------------------------------*/
5816
5817 static inline __ATTRS_o_ai vector bool char
5818 vec_nor(vector bool char __a, vector bool char __b) {
5819   return ~(__a | __b);
5820 }
5821
5822 static inline __ATTRS_o_ai vector signed char
5823 vec_nor(vector signed char __a, vector signed char __b) {
5824   return ~(__a | __b);
5825 }
5826
5827 // This prototype is deprecated.
5828 static inline __ATTRS_o_ai vector signed char
5829 vec_nor(vector bool char __a, vector signed char __b) {
5830   return ~(__a | __b);
5831 }
5832
5833 // This prototype is deprecated.
5834 static inline __ATTRS_o_ai vector signed char
5835 vec_nor(vector signed char __a, vector bool char __b) {
5836   return ~(__a | __b);
5837 }
5838
5839 static inline __ATTRS_o_ai vector unsigned char
5840 vec_nor(vector unsigned char __a, vector unsigned char __b) {
5841   return ~(__a | __b);
5842 }
5843
5844 // This prototype is deprecated.
5845 static inline __ATTRS_o_ai vector unsigned char
5846 vec_nor(vector bool char __a, vector unsigned char __b) {
5847   return ~(__a | __b);
5848 }
5849
5850 // This prototype is deprecated.
5851 static inline __ATTRS_o_ai vector unsigned char
5852 vec_nor(vector unsigned char __a, vector bool char __b) {
5853   return ~(__a | __b);
5854 }
5855
5856 static inline __ATTRS_o_ai vector bool short
5857 vec_nor(vector bool short __a, vector bool short __b) {
5858   return ~(__a | __b);
5859 }
5860
5861 static inline __ATTRS_o_ai vector signed short
5862 vec_nor(vector signed short __a, vector signed short __b) {
5863   return ~(__a | __b);
5864 }
5865
5866 // This prototype is deprecated.
5867 static inline __ATTRS_o_ai vector signed short
5868 vec_nor(vector bool short __a, vector signed short __b) {
5869   return ~(__a | __b);
5870 }
5871
5872 // This prototype is deprecated.
5873 static inline __ATTRS_o_ai vector signed short
5874 vec_nor(vector signed short __a, vector bool short __b) {
5875   return ~(__a | __b);
5876 }
5877
5878 static inline __ATTRS_o_ai vector unsigned short
5879 vec_nor(vector unsigned short __a, vector unsigned short __b) {
5880   return ~(__a | __b);
5881 }
5882
5883 // This prototype is deprecated.
5884 static inline __ATTRS_o_ai vector unsigned short
5885 vec_nor(vector bool short __a, vector unsigned short __b) {
5886   return ~(__a | __b);
5887 }
5888
5889 // This prototype is deprecated.
5890 static inline __ATTRS_o_ai vector unsigned short
5891 vec_nor(vector unsigned short __a, vector bool short __b) {
5892   return ~(__a | __b);
5893 }
5894
5895 static inline __ATTRS_o_ai vector bool int
5896 vec_nor(vector bool int __a, vector bool int __b) {
5897   return ~(__a | __b);
5898 }
5899
5900 static inline __ATTRS_o_ai vector signed int
5901 vec_nor(vector signed int __a, vector signed int __b) {
5902   return ~(__a | __b);
5903 }
5904
5905 // This prototype is deprecated.
5906 static inline __ATTRS_o_ai vector signed int
5907 vec_nor(vector bool int __a, vector signed int __b) {
5908   return ~(__a | __b);
5909 }
5910
5911 // This prototype is deprecated.
5912 static inline __ATTRS_o_ai vector signed int
5913 vec_nor(vector signed int __a, vector bool int __b) {
5914   return ~(__a | __b);
5915 }
5916
5917 static inline __ATTRS_o_ai vector unsigned int
5918 vec_nor(vector unsigned int __a, vector unsigned int __b) {
5919   return ~(__a | __b);
5920 }
5921
5922 // This prototype is deprecated.
5923 static inline __ATTRS_o_ai vector unsigned int
5924 vec_nor(vector bool int __a, vector unsigned int __b) {
5925   return ~(__a | __b);
5926 }
5927
5928 // This prototype is deprecated.
5929 static inline __ATTRS_o_ai vector unsigned int
5930 vec_nor(vector unsigned int __a, vector bool int __b) {
5931   return ~(__a | __b);
5932 }
5933
5934 static inline __ATTRS_o_ai vector bool long long
5935 vec_nor(vector bool long long __a, vector bool long long __b) {
5936   return ~(__a | __b);
5937 }
5938
5939 static inline __ATTRS_o_ai vector signed long long
5940 vec_nor(vector signed long long __a, vector signed long long __b) {
5941   return ~(__a | __b);
5942 }
5943
5944 // This prototype is deprecated.
5945 static inline __ATTRS_o_ai vector signed long long
5946 vec_nor(vector bool long long __a, vector signed long long __b) {
5947   return ~(__a | __b);
5948 }
5949
5950 // This prototype is deprecated.
5951 static inline __ATTRS_o_ai vector signed long long
5952 vec_nor(vector signed long long __a, vector bool long long __b) {
5953   return ~(__a | __b);
5954 }
5955
5956 static inline __ATTRS_o_ai vector unsigned long long
5957 vec_nor(vector unsigned long long __a, vector unsigned long long __b) {
5958   return ~(__a | __b);
5959 }
5960
5961 // This prototype is deprecated.
5962 static inline __ATTRS_o_ai vector unsigned long long
5963 vec_nor(vector bool long long __a, vector unsigned long long __b) {
5964   return ~(__a | __b);
5965 }
5966
5967 // This prototype is deprecated.
5968 static inline __ATTRS_o_ai vector unsigned long long
5969 vec_nor(vector unsigned long long __a, vector bool long long __b) {
5970   return ~(__a | __b);
5971 }
5972
5973 #if __ARCH__ >= 12
5974 static inline __ATTRS_o_ai vector float
5975 vec_nor(vector float __a, vector float __b) {
5976   return (vector float)~((vector unsigned int)__a |
5977                          (vector unsigned int)__b);
5978 }
5979 #endif
5980
5981 static inline __ATTRS_o_ai vector double
5982 vec_nor(vector double __a, vector double __b) {
5983   return (vector double)~((vector unsigned long long)__a |
5984                           (vector unsigned long long)__b);
5985 }
5986
5987 // This prototype is deprecated.
5988 static inline __ATTRS_o_ai vector double
5989 vec_nor(vector bool long long __a, vector double __b) {
5990   return (vector double)~((vector unsigned long long)__a |
5991                           (vector unsigned long long)__b);
5992 }
5993
5994 // This prototype is deprecated.
5995 static inline __ATTRS_o_ai vector double
5996 vec_nor(vector double __a, vector bool long long __b) {
5997   return (vector double)~((vector unsigned long long)__a |
5998                           (vector unsigned long long)__b);
5999 }
6000
6001 /*-- vec_orc ----------------------------------------------------------------*/
6002
6003 #if __ARCH__ >= 12
6004 static inline __ATTRS_o_ai vector bool char
6005 vec_orc(vector bool char __a, vector bool char __b) {
6006   return __a | ~__b;
6007 }
6008
6009 static inline __ATTRS_o_ai vector signed char
6010 vec_orc(vector signed char __a, vector signed char __b) {
6011   return __a | ~__b;
6012 }
6013
6014 static inline __ATTRS_o_ai vector unsigned char
6015 vec_orc(vector unsigned char __a, vector unsigned char __b) {
6016   return __a | ~__b;
6017 }
6018
6019 static inline __ATTRS_o_ai vector bool short
6020 vec_orc(vector bool short __a, vector bool short __b) {
6021   return __a | ~__b;
6022 }
6023
6024 static inline __ATTRS_o_ai vector signed short
6025 vec_orc(vector signed short __a, vector signed short __b) {
6026   return __a | ~__b;
6027 }
6028
6029 static inline __ATTRS_o_ai vector unsigned short
6030 vec_orc(vector unsigned short __a, vector unsigned short __b) {
6031   return __a | ~__b;
6032 }
6033
6034 static inline __ATTRS_o_ai vector bool int
6035 vec_orc(vector bool int __a, vector bool int __b) {
6036   return __a | ~__b;
6037 }
6038
6039 static inline __ATTRS_o_ai vector signed int
6040 vec_orc(vector signed int __a, vector signed int __b) {
6041   return __a | ~__b;
6042 }
6043
6044 static inline __ATTRS_o_ai vector unsigned int
6045 vec_orc(vector unsigned int __a, vector unsigned int __b) {
6046   return __a | ~__b;
6047 }
6048
6049 static inline __ATTRS_o_ai vector bool long long
6050 vec_orc(vector bool long long __a, vector bool long long __b) {
6051   return __a | ~__b;
6052 }
6053
6054 static inline __ATTRS_o_ai vector signed long long
6055 vec_orc(vector signed long long __a, vector signed long long __b) {
6056   return __a | ~__b;
6057 }
6058
6059 static inline __ATTRS_o_ai vector unsigned long long
6060 vec_orc(vector unsigned long long __a, vector unsigned long long __b) {
6061   return __a | ~__b;
6062 }
6063
6064 static inline __ATTRS_o_ai vector float
6065 vec_orc(vector float __a, vector float __b) {
6066   return (vector float)((vector unsigned int)__a |
6067                         ~(vector unsigned int)__b);
6068 }
6069
6070 static inline __ATTRS_o_ai vector double
6071 vec_orc(vector double __a, vector double __b) {
6072   return (vector double)((vector unsigned long long)__a |
6073                          ~(vector unsigned long long)__b);
6074 }
6075 #endif
6076
6077 /*-- vec_nand ---------------------------------------------------------------*/
6078
6079 #if __ARCH__ >= 12
6080 static inline __ATTRS_o_ai vector bool char
6081 vec_nand(vector bool char __a, vector bool char __b) {
6082   return ~(__a & __b);
6083 }
6084
6085 static inline __ATTRS_o_ai vector signed char
6086 vec_nand(vector signed char __a, vector signed char __b) {
6087   return ~(__a & __b);
6088 }
6089
6090 static inline __ATTRS_o_ai vector unsigned char
6091 vec_nand(vector unsigned char __a, vector unsigned char __b) {
6092   return ~(__a & __b);
6093 }
6094
6095 static inline __ATTRS_o_ai vector bool short
6096 vec_nand(vector bool short __a, vector bool short __b) {
6097   return ~(__a & __b);
6098 }
6099
6100 static inline __ATTRS_o_ai vector signed short
6101 vec_nand(vector signed short __a, vector signed short __b) {
6102   return ~(__a & __b);
6103 }
6104
6105 static inline __ATTRS_o_ai vector unsigned short
6106 vec_nand(vector unsigned short __a, vector unsigned short __b) {
6107   return ~(__a & __b);
6108 }
6109
6110 static inline __ATTRS_o_ai vector bool int
6111 vec_nand(vector bool int __a, vector bool int __b) {
6112   return ~(__a & __b);
6113 }
6114
6115 static inline __ATTRS_o_ai vector signed int
6116 vec_nand(vector signed int __a, vector signed int __b) {
6117   return ~(__a & __b);
6118 }
6119
6120 static inline __ATTRS_o_ai vector unsigned int
6121 vec_nand(vector unsigned int __a, vector unsigned int __b) {
6122   return ~(__a & __b);
6123 }
6124
6125 static inline __ATTRS_o_ai vector bool long long
6126 vec_nand(vector bool long long __a, vector bool long long __b) {
6127   return ~(__a & __b);
6128 }
6129
6130 static inline __ATTRS_o_ai vector signed long long
6131 vec_nand(vector signed long long __a, vector signed long long __b) {
6132   return ~(__a & __b);
6133 }
6134
6135 static inline __ATTRS_o_ai vector unsigned long long
6136 vec_nand(vector unsigned long long __a, vector unsigned long long __b) {
6137   return ~(__a & __b);
6138 }
6139
6140 static inline __ATTRS_o_ai vector float
6141 vec_nand(vector float __a, vector float __b) {
6142   return (vector float)~((vector unsigned int)__a &
6143                          (vector unsigned int)__b);
6144 }
6145
6146 static inline __ATTRS_o_ai vector double
6147 vec_nand(vector double __a, vector double __b) {
6148   return (vector double)~((vector unsigned long long)__a &
6149                           (vector unsigned long long)__b);
6150 }
6151 #endif
6152
6153 /*-- vec_eqv ----------------------------------------------------------------*/
6154
6155 #if __ARCH__ >= 12
6156 static inline __ATTRS_o_ai vector bool char
6157 vec_eqv(vector bool char __a, vector bool char __b) {
6158   return ~(__a ^ __b);
6159 }
6160
6161 static inline __ATTRS_o_ai vector signed char
6162 vec_eqv(vector signed char __a, vector signed char __b) {
6163   return ~(__a ^ __b);
6164 }
6165
6166 static inline __ATTRS_o_ai vector unsigned char
6167 vec_eqv(vector unsigned char __a, vector unsigned char __b) {
6168   return ~(__a ^ __b);
6169 }
6170
6171 static inline __ATTRS_o_ai vector bool short
6172 vec_eqv(vector bool short __a, vector bool short __b) {
6173   return ~(__a ^ __b);
6174 }
6175
6176 static inline __ATTRS_o_ai vector signed short
6177 vec_eqv(vector signed short __a, vector signed short __b) {
6178   return ~(__a ^ __b);
6179 }
6180
6181 static inline __ATTRS_o_ai vector unsigned short
6182 vec_eqv(vector unsigned short __a, vector unsigned short __b) {
6183   return ~(__a ^ __b);
6184 }
6185
6186 static inline __ATTRS_o_ai vector bool int
6187 vec_eqv(vector bool int __a, vector bool int __b) {
6188   return ~(__a ^ __b);
6189 }
6190
6191 static inline __ATTRS_o_ai vector signed int
6192 vec_eqv(vector signed int __a, vector signed int __b) {
6193   return ~(__a ^ __b);
6194 }
6195
6196 static inline __ATTRS_o_ai vector unsigned int
6197 vec_eqv(vector unsigned int __a, vector unsigned int __b) {
6198   return ~(__a ^ __b);
6199 }
6200
6201 static inline __ATTRS_o_ai vector bool long long
6202 vec_eqv(vector bool long long __a, vector bool long long __b) {
6203   return ~(__a ^ __b);
6204 }
6205
6206 static inline __ATTRS_o_ai vector signed long long
6207 vec_eqv(vector signed long long __a, vector signed long long __b) {
6208   return ~(__a ^ __b);
6209 }
6210
6211 static inline __ATTRS_o_ai vector unsigned long long
6212 vec_eqv(vector unsigned long long __a, vector unsigned long long __b) {
6213   return ~(__a ^ __b);
6214 }
6215
6216 static inline __ATTRS_o_ai vector float
6217 vec_eqv(vector float __a, vector float __b) {
6218   return (vector float)~((vector unsigned int)__a ^
6219                          (vector unsigned int)__b);
6220 }
6221
6222 static inline __ATTRS_o_ai vector double
6223 vec_eqv(vector double __a, vector double __b) {
6224   return (vector double)~((vector unsigned long long)__a ^
6225                           (vector unsigned long long)__b);
6226 }
6227 #endif
6228
6229 /*-- vec_cntlz --------------------------------------------------------------*/
6230
6231 static inline __ATTRS_o_ai vector unsigned char
6232 vec_cntlz(vector signed char __a) {
6233   return __builtin_s390_vclzb((vector unsigned char)__a);
6234 }
6235
6236 static inline __ATTRS_o_ai vector unsigned char
6237 vec_cntlz(vector unsigned char __a) {
6238   return __builtin_s390_vclzb(__a);
6239 }
6240
6241 static inline __ATTRS_o_ai vector unsigned short
6242 vec_cntlz(vector signed short __a) {
6243   return __builtin_s390_vclzh((vector unsigned short)__a);
6244 }
6245
6246 static inline __ATTRS_o_ai vector unsigned short
6247 vec_cntlz(vector unsigned short __a) {
6248   return __builtin_s390_vclzh(__a);
6249 }
6250
6251 static inline __ATTRS_o_ai vector unsigned int
6252 vec_cntlz(vector signed int __a) {
6253   return __builtin_s390_vclzf((vector unsigned int)__a);
6254 }
6255
6256 static inline __ATTRS_o_ai vector unsigned int
6257 vec_cntlz(vector unsigned int __a) {
6258   return __builtin_s390_vclzf(__a);
6259 }
6260
6261 static inline __ATTRS_o_ai vector unsigned long long
6262 vec_cntlz(vector signed long long __a) {
6263   return __builtin_s390_vclzg((vector unsigned long long)__a);
6264 }
6265
6266 static inline __ATTRS_o_ai vector unsigned long long
6267 vec_cntlz(vector unsigned long long __a) {
6268   return __builtin_s390_vclzg(__a);
6269 }
6270
6271 /*-- vec_cnttz --------------------------------------------------------------*/
6272
6273 static inline __ATTRS_o_ai vector unsigned char
6274 vec_cnttz(vector signed char __a) {
6275   return __builtin_s390_vctzb((vector unsigned char)__a);
6276 }
6277
6278 static inline __ATTRS_o_ai vector unsigned char
6279 vec_cnttz(vector unsigned char __a) {
6280   return __builtin_s390_vctzb(__a);
6281 }
6282
6283 static inline __ATTRS_o_ai vector unsigned short
6284 vec_cnttz(vector signed short __a) {
6285   return __builtin_s390_vctzh((vector unsigned short)__a);
6286 }
6287
6288 static inline __ATTRS_o_ai vector unsigned short
6289 vec_cnttz(vector unsigned short __a) {
6290   return __builtin_s390_vctzh(__a);
6291 }
6292
6293 static inline __ATTRS_o_ai vector unsigned int
6294 vec_cnttz(vector signed int __a) {
6295   return __builtin_s390_vctzf((vector unsigned int)__a);
6296 }
6297
6298 static inline __ATTRS_o_ai vector unsigned int
6299 vec_cnttz(vector unsigned int __a) {
6300   return __builtin_s390_vctzf(__a);
6301 }
6302
6303 static inline __ATTRS_o_ai vector unsigned long long
6304 vec_cnttz(vector signed long long __a) {
6305   return __builtin_s390_vctzg((vector unsigned long long)__a);
6306 }
6307
6308 static inline __ATTRS_o_ai vector unsigned long long
6309 vec_cnttz(vector unsigned long long __a) {
6310   return __builtin_s390_vctzg(__a);
6311 }
6312
6313 /*-- vec_popcnt -------------------------------------------------------------*/
6314
6315 static inline __ATTRS_o_ai vector unsigned char
6316 vec_popcnt(vector signed char __a) {
6317   return __builtin_s390_vpopctb((vector unsigned char)__a);
6318 }
6319
6320 static inline __ATTRS_o_ai vector unsigned char
6321 vec_popcnt(vector unsigned char __a) {
6322   return __builtin_s390_vpopctb(__a);
6323 }
6324
6325 static inline __ATTRS_o_ai vector unsigned short
6326 vec_popcnt(vector signed short __a) {
6327   return __builtin_s390_vpopcth((vector unsigned short)__a);
6328 }
6329
6330 static inline __ATTRS_o_ai vector unsigned short
6331 vec_popcnt(vector unsigned short __a) {
6332   return __builtin_s390_vpopcth(__a);
6333 }
6334
6335 static inline __ATTRS_o_ai vector unsigned int
6336 vec_popcnt(vector signed int __a) {
6337   return __builtin_s390_vpopctf((vector unsigned int)__a);
6338 }
6339
6340 static inline __ATTRS_o_ai vector unsigned int
6341 vec_popcnt(vector unsigned int __a) {
6342   return __builtin_s390_vpopctf(__a);
6343 }
6344
6345 static inline __ATTRS_o_ai vector unsigned long long
6346 vec_popcnt(vector signed long long __a) {
6347   return __builtin_s390_vpopctg((vector unsigned long long)__a);
6348 }
6349
6350 static inline __ATTRS_o_ai vector unsigned long long
6351 vec_popcnt(vector unsigned long long __a) {
6352   return __builtin_s390_vpopctg(__a);
6353 }
6354
6355 /*-- vec_rl -----------------------------------------------------------------*/
6356
6357 static inline __ATTRS_o_ai vector signed char
6358 vec_rl(vector signed char __a, vector unsigned char __b) {
6359   return (vector signed char)__builtin_s390_verllvb(
6360     (vector unsigned char)__a, __b);
6361 }
6362
6363 static inline __ATTRS_o_ai vector unsigned char
6364 vec_rl(vector unsigned char __a, vector unsigned char __b) {
6365   return __builtin_s390_verllvb(__a, __b);
6366 }
6367
6368 static inline __ATTRS_o_ai vector signed short
6369 vec_rl(vector signed short __a, vector unsigned short __b) {
6370   return (vector signed short)__builtin_s390_verllvh(
6371     (vector unsigned short)__a, __b);
6372 }
6373
6374 static inline __ATTRS_o_ai vector unsigned short
6375 vec_rl(vector unsigned short __a, vector unsigned short __b) {
6376   return __builtin_s390_verllvh(__a, __b);
6377 }
6378
6379 static inline __ATTRS_o_ai vector signed int
6380 vec_rl(vector signed int __a, vector unsigned int __b) {
6381   return (vector signed int)__builtin_s390_verllvf(
6382     (vector unsigned int)__a, __b);
6383 }
6384
6385 static inline __ATTRS_o_ai vector unsigned int
6386 vec_rl(vector unsigned int __a, vector unsigned int __b) {
6387   return __builtin_s390_verllvf(__a, __b);
6388 }
6389
6390 static inline __ATTRS_o_ai vector signed long long
6391 vec_rl(vector signed long long __a, vector unsigned long long __b) {
6392   return (vector signed long long)__builtin_s390_verllvg(
6393     (vector unsigned long long)__a, __b);
6394 }
6395
6396 static inline __ATTRS_o_ai vector unsigned long long
6397 vec_rl(vector unsigned long long __a, vector unsigned long long __b) {
6398   return __builtin_s390_verllvg(__a, __b);
6399 }
6400
6401 /*-- vec_rli ----------------------------------------------------------------*/
6402
6403 static inline __ATTRS_o_ai vector signed char
6404 vec_rli(vector signed char __a, unsigned long __b) {
6405   return (vector signed char)__builtin_s390_verllb(
6406     (vector unsigned char)__a, (int)__b);
6407 }
6408
6409 static inline __ATTRS_o_ai vector unsigned char
6410 vec_rli(vector unsigned char __a, unsigned long __b) {
6411   return __builtin_s390_verllb(__a, (int)__b);
6412 }
6413
6414 static inline __ATTRS_o_ai vector signed short
6415 vec_rli(vector signed short __a, unsigned long __b) {
6416   return (vector signed short)__builtin_s390_verllh(
6417     (vector unsigned short)__a, (int)__b);
6418 }
6419
6420 static inline __ATTRS_o_ai vector unsigned short
6421 vec_rli(vector unsigned short __a, unsigned long __b) {
6422   return __builtin_s390_verllh(__a, (int)__b);
6423 }
6424
6425 static inline __ATTRS_o_ai vector signed int
6426 vec_rli(vector signed int __a, unsigned long __b) {
6427   return (vector signed int)__builtin_s390_verllf(
6428     (vector unsigned int)__a, (int)__b);
6429 }
6430
6431 static inline __ATTRS_o_ai vector unsigned int
6432 vec_rli(vector unsigned int __a, unsigned long __b) {
6433   return __builtin_s390_verllf(__a, (int)__b);
6434 }
6435
6436 static inline __ATTRS_o_ai vector signed long long
6437 vec_rli(vector signed long long __a, unsigned long __b) {
6438   return (vector signed long long)__builtin_s390_verllg(
6439     (vector unsigned long long)__a, (int)__b);
6440 }
6441
6442 static inline __ATTRS_o_ai vector unsigned long long
6443 vec_rli(vector unsigned long long __a, unsigned long __b) {
6444   return __builtin_s390_verllg(__a, (int)__b);
6445 }
6446
6447 /*-- vec_rl_mask ------------------------------------------------------------*/
6448
6449 extern __ATTRS_o vector signed char
6450 vec_rl_mask(vector signed char __a, vector unsigned char __b,
6451             unsigned char __c) __constant(__c);
6452
6453 extern __ATTRS_o vector unsigned char
6454 vec_rl_mask(vector unsigned char __a, vector unsigned char __b,
6455             unsigned char __c) __constant(__c);
6456
6457 extern __ATTRS_o vector signed short
6458 vec_rl_mask(vector signed short __a, vector unsigned short __b,
6459             unsigned char __c) __constant(__c);
6460
6461 extern __ATTRS_o vector unsigned short
6462 vec_rl_mask(vector unsigned short __a, vector unsigned short __b,
6463             unsigned char __c) __constant(__c);
6464
6465 extern __ATTRS_o vector signed int
6466 vec_rl_mask(vector signed int __a, vector unsigned int __b,
6467             unsigned char __c) __constant(__c);
6468
6469 extern __ATTRS_o vector unsigned int
6470 vec_rl_mask(vector unsigned int __a, vector unsigned int __b,
6471             unsigned char __c) __constant(__c);
6472
6473 extern __ATTRS_o vector signed long long
6474 vec_rl_mask(vector signed long long __a, vector unsigned long long __b,
6475             unsigned char __c) __constant(__c);
6476
6477 extern __ATTRS_o vector unsigned long long
6478 vec_rl_mask(vector unsigned long long __a, vector unsigned long long __b,
6479             unsigned char __c) __constant(__c);
6480
6481 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
6482   __extension__ ({ \
6483     vector unsigned char __res; \
6484     vector unsigned char __x = (vector unsigned char)(X); \
6485     vector unsigned char __y = (vector unsigned char)(Y); \
6486     switch (sizeof ((X)[0])) { \
6487     case 1: __res = (vector unsigned char) __builtin_s390_verimb( \
6488              (vector unsigned char)__x, (vector unsigned char)__x, \
6489              (vector unsigned char)__y, (Z)); break; \
6490     case 2: __res = (vector unsigned char) __builtin_s390_verimh( \
6491              (vector unsigned short)__x, (vector unsigned short)__x, \
6492              (vector unsigned short)__y, (Z)); break; \
6493     case 4: __res = (vector unsigned char) __builtin_s390_verimf( \
6494              (vector unsigned int)__x, (vector unsigned int)__x, \
6495              (vector unsigned int)__y, (Z)); break; \
6496     default: __res = (vector unsigned char) __builtin_s390_verimg( \
6497              (vector unsigned long long)__x, (vector unsigned long long)__x, \
6498              (vector unsigned long long)__y, (Z)); break; \
6499     } __res; }))
6500
6501 /*-- vec_sll ----------------------------------------------------------------*/
6502
6503 static inline __ATTRS_o_ai vector signed char
6504 vec_sll(vector signed char __a, vector unsigned char __b) {
6505   return (vector signed char)__builtin_s390_vsl(
6506     (vector unsigned char)__a, __b);
6507 }
6508
6509 // This prototype is deprecated.
6510 static inline __ATTRS_o_ai vector signed char
6511 vec_sll(vector signed char __a, vector unsigned short __b) {
6512   return (vector signed char)__builtin_s390_vsl(
6513     (vector unsigned char)__a, (vector unsigned char)__b);
6514 }
6515
6516 // This prototype is deprecated.
6517 static inline __ATTRS_o_ai vector signed char
6518 vec_sll(vector signed char __a, vector unsigned int __b) {
6519   return (vector signed char)__builtin_s390_vsl(
6520     (vector unsigned char)__a, (vector unsigned char)__b);
6521 }
6522
6523 // This prototype is deprecated.
6524 static inline __ATTRS_o_ai vector bool char
6525 vec_sll(vector bool char __a, vector unsigned char __b) {
6526   return (vector bool char)__builtin_s390_vsl(
6527     (vector unsigned char)__a, __b);
6528 }
6529
6530 // This prototype is deprecated.
6531 static inline __ATTRS_o_ai vector bool char
6532 vec_sll(vector bool char __a, vector unsigned short __b) {
6533   return (vector bool char)__builtin_s390_vsl(
6534     (vector unsigned char)__a, (vector unsigned char)__b);
6535 }
6536
6537 // This prototype is deprecated.
6538 static inline __ATTRS_o_ai vector bool char
6539 vec_sll(vector bool char __a, vector unsigned int __b) {
6540   return (vector bool char)__builtin_s390_vsl(
6541     (vector unsigned char)__a, (vector unsigned char)__b);
6542 }
6543
6544 static inline __ATTRS_o_ai vector unsigned char
6545 vec_sll(vector unsigned char __a, vector unsigned char __b) {
6546   return __builtin_s390_vsl(__a, __b);
6547 }
6548
6549 // This prototype is deprecated.
6550 static inline __ATTRS_o_ai vector unsigned char
6551 vec_sll(vector unsigned char __a, vector unsigned short __b) {
6552   return __builtin_s390_vsl(__a, (vector unsigned char)__b);
6553 }
6554
6555 // This prototype is deprecated.
6556 static inline __ATTRS_o_ai vector unsigned char
6557 vec_sll(vector unsigned char __a, vector unsigned int __b) {
6558   return __builtin_s390_vsl(__a, (vector unsigned char)__b);
6559 }
6560
6561 static inline __ATTRS_o_ai vector signed short
6562 vec_sll(vector signed short __a, vector unsigned char __b) {
6563   return (vector signed short)__builtin_s390_vsl(
6564     (vector unsigned char)__a, __b);
6565 }
6566
6567 // This prototype is deprecated.
6568 static inline __ATTRS_o_ai vector signed short
6569 vec_sll(vector signed short __a, vector unsigned short __b) {
6570   return (vector signed short)__builtin_s390_vsl(
6571     (vector unsigned char)__a, (vector unsigned char)__b);
6572 }
6573
6574 // This prototype is deprecated.
6575 static inline __ATTRS_o_ai vector signed short
6576 vec_sll(vector signed short __a, vector unsigned int __b) {
6577   return (vector signed short)__builtin_s390_vsl(
6578     (vector unsigned char)__a, (vector unsigned char)__b);
6579 }
6580
6581 // This prototype is deprecated.
6582 static inline __ATTRS_o_ai vector bool short
6583 vec_sll(vector bool short __a, vector unsigned char __b) {
6584   return (vector bool short)__builtin_s390_vsl(
6585     (vector unsigned char)__a, __b);
6586 }
6587
6588 // This prototype is deprecated.
6589 static inline __ATTRS_o_ai vector bool short
6590 vec_sll(vector bool short __a, vector unsigned short __b) {
6591   return (vector bool short)__builtin_s390_vsl(
6592     (vector unsigned char)__a, (vector unsigned char)__b);
6593 }
6594
6595 // This prototype is deprecated.
6596 static inline __ATTRS_o_ai vector bool short
6597 vec_sll(vector bool short __a, vector unsigned int __b) {
6598   return (vector bool short)__builtin_s390_vsl(
6599     (vector unsigned char)__a, (vector unsigned char)__b);
6600 }
6601
6602 static inline __ATTRS_o_ai vector unsigned short
6603 vec_sll(vector unsigned short __a, vector unsigned char __b) {
6604   return (vector unsigned short)__builtin_s390_vsl(
6605     (vector unsigned char)__a, __b);
6606 }
6607
6608 // This prototype is deprecated.
6609 static inline __ATTRS_o_ai vector unsigned short
6610 vec_sll(vector unsigned short __a, vector unsigned short __b) {
6611   return (vector unsigned short)__builtin_s390_vsl(
6612     (vector unsigned char)__a, (vector unsigned char)__b);
6613 }
6614
6615 // This prototype is deprecated.
6616 static inline __ATTRS_o_ai vector unsigned short
6617 vec_sll(vector unsigned short __a, vector unsigned int __b) {
6618   return (vector unsigned short)__builtin_s390_vsl(
6619     (vector unsigned char)__a, (vector unsigned char)__b);
6620 }
6621
6622 static inline __ATTRS_o_ai vector signed int
6623 vec_sll(vector signed int __a, vector unsigned char __b) {
6624   return (vector signed int)__builtin_s390_vsl(
6625     (vector unsigned char)__a, __b);
6626 }
6627
6628 // This prototype is deprecated.
6629 static inline __ATTRS_o_ai vector signed int
6630 vec_sll(vector signed int __a, vector unsigned short __b) {
6631   return (vector signed int)__builtin_s390_vsl(
6632     (vector unsigned char)__a, (vector unsigned char)__b);
6633 }
6634
6635 // This prototype is deprecated.
6636 static inline __ATTRS_o_ai vector signed int
6637 vec_sll(vector signed int __a, vector unsigned int __b) {
6638   return (vector signed int)__builtin_s390_vsl(
6639     (vector unsigned char)__a, (vector unsigned char)__b);
6640 }
6641
6642 // This prototype is deprecated.
6643 static inline __ATTRS_o_ai vector bool int
6644 vec_sll(vector bool int __a, vector unsigned char __b) {
6645   return (vector bool int)__builtin_s390_vsl(
6646     (vector unsigned char)__a, __b);
6647 }
6648
6649 // This prototype is deprecated.
6650 static inline __ATTRS_o_ai vector bool int
6651 vec_sll(vector bool int __a, vector unsigned short __b) {
6652   return (vector bool int)__builtin_s390_vsl(
6653     (vector unsigned char)__a, (vector unsigned char)__b);
6654 }
6655
6656 // This prototype is deprecated.
6657 static inline __ATTRS_o_ai vector bool int
6658 vec_sll(vector bool int __a, vector unsigned int __b) {
6659   return (vector bool int)__builtin_s390_vsl(
6660     (vector unsigned char)__a, (vector unsigned char)__b);
6661 }
6662
6663 static inline __ATTRS_o_ai vector unsigned int
6664 vec_sll(vector unsigned int __a, vector unsigned char __b) {
6665   return (vector unsigned int)__builtin_s390_vsl(
6666     (vector unsigned char)__a, __b);
6667 }
6668
6669 // This prototype is deprecated.
6670 static inline __ATTRS_o_ai vector unsigned int
6671 vec_sll(vector unsigned int __a, vector unsigned short __b) {
6672   return (vector unsigned int)__builtin_s390_vsl(
6673     (vector unsigned char)__a, (vector unsigned char)__b);
6674 }
6675
6676 // This prototype is deprecated.
6677 static inline __ATTRS_o_ai vector unsigned int
6678 vec_sll(vector unsigned int __a, vector unsigned int __b) {
6679   return (vector unsigned int)__builtin_s390_vsl(
6680     (vector unsigned char)__a, (vector unsigned char)__b);
6681 }
6682
6683 static inline __ATTRS_o_ai vector signed long long
6684 vec_sll(vector signed long long __a, vector unsigned char __b) {
6685   return (vector signed long long)__builtin_s390_vsl(
6686     (vector unsigned char)__a, __b);
6687 }
6688
6689 // This prototype is deprecated.
6690 static inline __ATTRS_o_ai vector signed long long
6691 vec_sll(vector signed long long __a, vector unsigned short __b) {
6692   return (vector signed long long)__builtin_s390_vsl(
6693     (vector unsigned char)__a, (vector unsigned char)__b);
6694 }
6695
6696 // This prototype is deprecated.
6697 static inline __ATTRS_o_ai vector signed long long
6698 vec_sll(vector signed long long __a, vector unsigned int __b) {
6699   return (vector signed long long)__builtin_s390_vsl(
6700     (vector unsigned char)__a, (vector unsigned char)__b);
6701 }
6702
6703 // This prototype is deprecated.
6704 static inline __ATTRS_o_ai vector bool long long
6705 vec_sll(vector bool long long __a, vector unsigned char __b) {
6706   return (vector bool long long)__builtin_s390_vsl(
6707     (vector unsigned char)__a, __b);
6708 }
6709
6710 // This prototype is deprecated.
6711 static inline __ATTRS_o_ai vector bool long long
6712 vec_sll(vector bool long long __a, vector unsigned short __b) {
6713   return (vector bool long long)__builtin_s390_vsl(
6714     (vector unsigned char)__a, (vector unsigned char)__b);
6715 }
6716
6717 // This prototype is deprecated.
6718 static inline __ATTRS_o_ai vector bool long long
6719 vec_sll(vector bool long long __a, vector unsigned int __b) {
6720   return (vector bool long long)__builtin_s390_vsl(
6721     (vector unsigned char)__a, (vector unsigned char)__b);
6722 }
6723
6724 static inline __ATTRS_o_ai vector unsigned long long
6725 vec_sll(vector unsigned long long __a, vector unsigned char __b) {
6726   return (vector unsigned long long)__builtin_s390_vsl(
6727     (vector unsigned char)__a, __b);
6728 }
6729
6730 // This prototype is deprecated.
6731 static inline __ATTRS_o_ai vector unsigned long long
6732 vec_sll(vector unsigned long long __a, vector unsigned short __b) {
6733   return (vector unsigned long long)__builtin_s390_vsl(
6734     (vector unsigned char)__a, (vector unsigned char)__b);
6735 }
6736
6737 // This prototype is deprecated.
6738 static inline __ATTRS_o_ai vector unsigned long long
6739 vec_sll(vector unsigned long long __a, vector unsigned int __b) {
6740   return (vector unsigned long long)__builtin_s390_vsl(
6741     (vector unsigned char)__a, (vector unsigned char)__b);
6742 }
6743
6744 /*-- vec_slb ----------------------------------------------------------------*/
6745
6746 static inline __ATTRS_o_ai vector signed char
6747 vec_slb(vector signed char __a, vector signed char __b) {
6748   return (vector signed char)__builtin_s390_vslb(
6749     (vector unsigned char)__a, (vector unsigned char)__b);
6750 }
6751
6752 static inline __ATTRS_o_ai vector signed char
6753 vec_slb(vector signed char __a, vector unsigned char __b) {
6754   return (vector signed char)__builtin_s390_vslb(
6755     (vector unsigned char)__a, __b);
6756 }
6757
6758 static inline __ATTRS_o_ai vector unsigned char
6759 vec_slb(vector unsigned char __a, vector signed char __b) {
6760   return __builtin_s390_vslb(__a, (vector unsigned char)__b);
6761 }
6762
6763 static inline __ATTRS_o_ai vector unsigned char
6764 vec_slb(vector unsigned char __a, vector unsigned char __b) {
6765   return __builtin_s390_vslb(__a, __b);
6766 }
6767
6768 static inline __ATTRS_o_ai vector signed short
6769 vec_slb(vector signed short __a, vector signed short __b) {
6770   return (vector signed short)__builtin_s390_vslb(
6771     (vector unsigned char)__a, (vector unsigned char)__b);
6772 }
6773
6774 static inline __ATTRS_o_ai vector signed short
6775 vec_slb(vector signed short __a, vector unsigned short __b) {
6776   return (vector signed short)__builtin_s390_vslb(
6777     (vector unsigned char)__a, (vector unsigned char)__b);
6778 }
6779
6780 static inline __ATTRS_o_ai vector unsigned short
6781 vec_slb(vector unsigned short __a, vector signed short __b) {
6782   return (vector unsigned short)__builtin_s390_vslb(
6783     (vector unsigned char)__a, (vector unsigned char)__b);
6784 }
6785
6786 static inline __ATTRS_o_ai vector unsigned short
6787 vec_slb(vector unsigned short __a, vector unsigned short __b) {
6788   return (vector unsigned short)__builtin_s390_vslb(
6789     (vector unsigned char)__a, (vector unsigned char)__b);
6790 }
6791
6792 static inline __ATTRS_o_ai vector signed int
6793 vec_slb(vector signed int __a, vector signed int __b) {
6794   return (vector signed int)__builtin_s390_vslb(
6795     (vector unsigned char)__a, (vector unsigned char)__b);
6796 }
6797
6798 static inline __ATTRS_o_ai vector signed int
6799 vec_slb(vector signed int __a, vector unsigned int __b) {
6800   return (vector signed int)__builtin_s390_vslb(
6801     (vector unsigned char)__a, (vector unsigned char)__b);
6802 }
6803
6804 static inline __ATTRS_o_ai vector unsigned int
6805 vec_slb(vector unsigned int __a, vector signed int __b) {
6806   return (vector unsigned int)__builtin_s390_vslb(
6807     (vector unsigned char)__a, (vector unsigned char)__b);
6808 }
6809
6810 static inline __ATTRS_o_ai vector unsigned int
6811 vec_slb(vector unsigned int __a, vector unsigned int __b) {
6812   return (vector unsigned int)__builtin_s390_vslb(
6813     (vector unsigned char)__a, (vector unsigned char)__b);
6814 }
6815
6816 static inline __ATTRS_o_ai vector signed long long
6817 vec_slb(vector signed long long __a, vector signed long long __b) {
6818   return (vector signed long long)__builtin_s390_vslb(
6819     (vector unsigned char)__a, (vector unsigned char)__b);
6820 }
6821
6822 static inline __ATTRS_o_ai vector signed long long
6823 vec_slb(vector signed long long __a, vector unsigned long long __b) {
6824   return (vector signed long long)__builtin_s390_vslb(
6825     (vector unsigned char)__a, (vector unsigned char)__b);
6826 }
6827
6828 static inline __ATTRS_o_ai vector unsigned long long
6829 vec_slb(vector unsigned long long __a, vector signed long long __b) {
6830   return (vector unsigned long long)__builtin_s390_vslb(
6831     (vector unsigned char)__a, (vector unsigned char)__b);
6832 }
6833
6834 static inline __ATTRS_o_ai vector unsigned long long
6835 vec_slb(vector unsigned long long __a, vector unsigned long long __b) {
6836   return (vector unsigned long long)__builtin_s390_vslb(
6837     (vector unsigned char)__a, (vector unsigned char)__b);
6838 }
6839
6840 #if __ARCH__ >= 12
6841 static inline __ATTRS_o_ai vector float
6842 vec_slb(vector float __a, vector signed int __b) {
6843   return (vector float)__builtin_s390_vslb(
6844     (vector unsigned char)__a, (vector unsigned char)__b);
6845 }
6846
6847 static inline __ATTRS_o_ai vector float
6848 vec_slb(vector float __a, vector unsigned int __b) {
6849   return (vector float)__builtin_s390_vslb(
6850     (vector unsigned char)__a, (vector unsigned char)__b);
6851 }
6852 #endif
6853
6854 static inline __ATTRS_o_ai vector double
6855 vec_slb(vector double __a, vector signed long long __b) {
6856   return (vector double)__builtin_s390_vslb(
6857     (vector unsigned char)__a, (vector unsigned char)__b);
6858 }
6859
6860 static inline __ATTRS_o_ai vector double
6861 vec_slb(vector double __a, vector unsigned long long __b) {
6862   return (vector double)__builtin_s390_vslb(
6863     (vector unsigned char)__a, (vector unsigned char)__b);
6864 }
6865
6866 /*-- vec_sld ----------------------------------------------------------------*/
6867
6868 extern __ATTRS_o vector signed char
6869 vec_sld(vector signed char __a, vector signed char __b, int __c)
6870   __constant_range(__c, 0, 15);
6871
6872 extern __ATTRS_o vector bool char
6873 vec_sld(vector bool char __a, vector bool char __b, int __c)
6874   __constant_range(__c, 0, 15);
6875
6876 extern __ATTRS_o vector unsigned char
6877 vec_sld(vector unsigned char __a, vector unsigned char __b, int __c)
6878   __constant_range(__c, 0, 15);
6879
6880 extern __ATTRS_o vector signed short
6881 vec_sld(vector signed short __a, vector signed short __b, int __c)
6882   __constant_range(__c, 0, 15);
6883
6884 extern __ATTRS_o vector bool short
6885 vec_sld(vector bool short __a, vector bool short __b, int __c)
6886   __constant_range(__c, 0, 15);
6887
6888 extern __ATTRS_o vector unsigned short
6889 vec_sld(vector unsigned short __a, vector unsigned short __b, int __c)
6890   __constant_range(__c, 0, 15);
6891
6892 extern __ATTRS_o vector signed int
6893 vec_sld(vector signed int __a, vector signed int __b, int __c)
6894   __constant_range(__c, 0, 15);
6895
6896 extern __ATTRS_o vector bool int
6897 vec_sld(vector bool int __a, vector bool int __b, int __c)
6898   __constant_range(__c, 0, 15);
6899
6900 extern __ATTRS_o vector unsigned int
6901 vec_sld(vector unsigned int __a, vector unsigned int __b, int __c)
6902   __constant_range(__c, 0, 15);
6903
6904 extern __ATTRS_o vector signed long long
6905 vec_sld(vector signed long long __a, vector signed long long __b, int __c)
6906   __constant_range(__c, 0, 15);
6907
6908 extern __ATTRS_o vector bool long long
6909 vec_sld(vector bool long long __a, vector bool long long __b, int __c)
6910   __constant_range(__c, 0, 15);
6911
6912 extern __ATTRS_o vector unsigned long long
6913 vec_sld(vector unsigned long long __a, vector unsigned long long __b, int __c)
6914   __constant_range(__c, 0, 15);
6915
6916 #if __ARCH__ >= 12
6917 extern __ATTRS_o vector float
6918 vec_sld(vector float __a, vector float __b, int __c)
6919   __constant_range(__c, 0, 15);
6920 #endif
6921
6922 extern __ATTRS_o vector double
6923 vec_sld(vector double __a, vector double __b, int __c)
6924   __constant_range(__c, 0, 15);
6925
6926 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
6927   __builtin_s390_vsldb((vector unsigned char)(X), \
6928                        (vector unsigned char)(Y), (Z)))
6929
6930 /*-- vec_sldw ---------------------------------------------------------------*/
6931
6932 extern __ATTRS_o vector signed char
6933 vec_sldw(vector signed char __a, vector signed char __b, int __c)
6934   __constant_range(__c, 0, 3);
6935
6936 extern __ATTRS_o vector unsigned char
6937 vec_sldw(vector unsigned char __a, vector unsigned char __b, int __c)
6938   __constant_range(__c, 0, 3);
6939
6940 extern __ATTRS_o vector signed short
6941 vec_sldw(vector signed short __a, vector signed short __b, int __c)
6942   __constant_range(__c, 0, 3);
6943
6944 extern __ATTRS_o vector unsigned short
6945 vec_sldw(vector unsigned short __a, vector unsigned short __b, int __c)
6946   __constant_range(__c, 0, 3);
6947
6948 extern __ATTRS_o vector signed int
6949 vec_sldw(vector signed int __a, vector signed int __b, int __c)
6950   __constant_range(__c, 0, 3);
6951
6952 extern __ATTRS_o vector unsigned int
6953 vec_sldw(vector unsigned int __a, vector unsigned int __b, int __c)
6954   __constant_range(__c, 0, 3);
6955
6956 extern __ATTRS_o vector signed long long
6957 vec_sldw(vector signed long long __a, vector signed long long __b, int __c)
6958   __constant_range(__c, 0, 3);
6959
6960 extern __ATTRS_o vector unsigned long long
6961 vec_sldw(vector unsigned long long __a, vector unsigned long long __b, int __c)
6962   __constant_range(__c, 0, 3);
6963
6964 // This prototype is deprecated.
6965 extern __ATTRS_o vector double
6966 vec_sldw(vector double __a, vector double __b, int __c)
6967   __constant_range(__c, 0, 3);
6968
6969 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
6970   __builtin_s390_vsldb((vector unsigned char)(X), \
6971                        (vector unsigned char)(Y), (Z) * 4))
6972
6973 /*-- vec_sldb ---------------------------------------------------------------*/
6974
6975 #if __ARCH__ >= 13
6976
6977 extern __ATTRS_o vector signed char
6978 vec_sldb(vector signed char __a, vector signed char __b, int __c)
6979   __constant_range(__c, 0, 7);
6980
6981 extern __ATTRS_o vector unsigned char
6982 vec_sldb(vector unsigned char __a, vector unsigned char __b, int __c)
6983   __constant_range(__c, 0, 7);
6984
6985 extern __ATTRS_o vector signed short
6986 vec_sldb(vector signed short __a, vector signed short __b, int __c)
6987   __constant_range(__c, 0, 7);
6988
6989 extern __ATTRS_o vector unsigned short
6990 vec_sldb(vector unsigned short __a, vector unsigned short __b, int __c)
6991   __constant_range(__c, 0, 7);
6992
6993 extern __ATTRS_o vector signed int
6994 vec_sldb(vector signed int __a, vector signed int __b, int __c)
6995   __constant_range(__c, 0, 7);
6996
6997 extern __ATTRS_o vector unsigned int
6998 vec_sldb(vector unsigned int __a, vector unsigned int __b, int __c)
6999   __constant_range(__c, 0, 7);
7000
7001 extern __ATTRS_o vector signed long long
7002 vec_sldb(vector signed long long __a, vector signed long long __b, int __c)
7003   __constant_range(__c, 0, 7);
7004
7005 extern __ATTRS_o vector unsigned long long
7006 vec_sldb(vector unsigned long long __a, vector unsigned long long __b, int __c)
7007   __constant_range(__c, 0, 7);
7008
7009 extern __ATTRS_o vector float
7010 vec_sldb(vector float __a, vector float __b, int __c)
7011   __constant_range(__c, 0, 7);
7012
7013 extern __ATTRS_o vector double
7014 vec_sldb(vector double __a, vector double __b, int __c)
7015   __constant_range(__c, 0, 7);
7016
7017 #define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
7018   __builtin_s390_vsld((vector unsigned char)(X), \
7019                       (vector unsigned char)(Y), (Z)))
7020
7021 #endif
7022
7023 /*-- vec_sral ---------------------------------------------------------------*/
7024
7025 static inline __ATTRS_o_ai vector signed char
7026 vec_sral(vector signed char __a, vector unsigned char __b) {
7027   return (vector signed char)__builtin_s390_vsra(
7028     (vector unsigned char)__a, __b);
7029 }
7030
7031 // This prototype is deprecated.
7032 static inline __ATTRS_o_ai vector signed char
7033 vec_sral(vector signed char __a, vector unsigned short __b) {
7034   return (vector signed char)__builtin_s390_vsra(
7035     (vector unsigned char)__a, (vector unsigned char)__b);
7036 }
7037
7038 // This prototype is deprecated.
7039 static inline __ATTRS_o_ai vector signed char
7040 vec_sral(vector signed char __a, vector unsigned int __b) {
7041   return (vector signed char)__builtin_s390_vsra(
7042     (vector unsigned char)__a, (vector unsigned char)__b);
7043 }
7044
7045 // This prototype is deprecated.
7046 static inline __ATTRS_o_ai vector bool char
7047 vec_sral(vector bool char __a, vector unsigned char __b) {
7048   return (vector bool char)__builtin_s390_vsra(
7049     (vector unsigned char)__a, __b);
7050 }
7051
7052 // This prototype is deprecated.
7053 static inline __ATTRS_o_ai vector bool char
7054 vec_sral(vector bool char __a, vector unsigned short __b) {
7055   return (vector bool char)__builtin_s390_vsra(
7056     (vector unsigned char)__a, (vector unsigned char)__b);
7057 }
7058
7059 // This prototype is deprecated.
7060 static inline __ATTRS_o_ai vector bool char
7061 vec_sral(vector bool char __a, vector unsigned int __b) {
7062   return (vector bool char)__builtin_s390_vsra(
7063     (vector unsigned char)__a, (vector unsigned char)__b);
7064 }
7065
7066 static inline __ATTRS_o_ai vector unsigned char
7067 vec_sral(vector unsigned char __a, vector unsigned char __b) {
7068   return __builtin_s390_vsra(__a, __b);
7069 }
7070
7071 // This prototype is deprecated.
7072 static inline __ATTRS_o_ai vector unsigned char
7073 vec_sral(vector unsigned char __a, vector unsigned short __b) {
7074   return __builtin_s390_vsra(__a, (vector unsigned char)__b);
7075 }
7076
7077 // This prototype is deprecated.
7078 static inline __ATTRS_o_ai vector unsigned char
7079 vec_sral(vector unsigned char __a, vector unsigned int __b) {
7080   return __builtin_s390_vsra(__a, (vector unsigned char)__b);
7081 }
7082
7083 static inline __ATTRS_o_ai vector signed short
7084 vec_sral(vector signed short __a, vector unsigned char __b) {
7085   return (vector signed short)__builtin_s390_vsra(
7086     (vector unsigned char)__a, __b);
7087 }
7088
7089 // This prototype is deprecated.
7090 static inline __ATTRS_o_ai vector signed short
7091 vec_sral(vector signed short __a, vector unsigned short __b) {
7092   return (vector signed short)__builtin_s390_vsra(
7093     (vector unsigned char)__a, (vector unsigned char)__b);
7094 }
7095
7096 // This prototype is deprecated.
7097 static inline __ATTRS_o_ai vector signed short
7098 vec_sral(vector signed short __a, vector unsigned int __b) {
7099   return (vector signed short)__builtin_s390_vsra(
7100     (vector unsigned char)__a, (vector unsigned char)__b);
7101 }
7102
7103 // This prototype is deprecated.
7104 static inline __ATTRS_o_ai vector bool short
7105 vec_sral(vector bool short __a, vector unsigned char __b) {
7106   return (vector bool short)__builtin_s390_vsra(
7107     (vector unsigned char)__a, __b);
7108 }
7109
7110 // This prototype is deprecated.
7111 static inline __ATTRS_o_ai vector bool short
7112 vec_sral(vector bool short __a, vector unsigned short __b) {
7113   return (vector bool short)__builtin_s390_vsra(
7114     (vector unsigned char)__a, (vector unsigned char)__b);
7115 }
7116
7117 // This prototype is deprecated.
7118 static inline __ATTRS_o_ai vector bool short
7119 vec_sral(vector bool short __a, vector unsigned int __b) {
7120   return (vector bool short)__builtin_s390_vsra(
7121     (vector unsigned char)__a, (vector unsigned char)__b);
7122 }
7123
7124 static inline __ATTRS_o_ai vector unsigned short
7125 vec_sral(vector unsigned short __a, vector unsigned char __b) {
7126   return (vector unsigned short)__builtin_s390_vsra(
7127     (vector unsigned char)__a, __b);
7128 }
7129
7130 // This prototype is deprecated.
7131 static inline __ATTRS_o_ai vector unsigned short
7132 vec_sral(vector unsigned short __a, vector unsigned short __b) {
7133   return (vector unsigned short)__builtin_s390_vsra(
7134     (vector unsigned char)__a, (vector unsigned char)__b);
7135 }
7136
7137 // This prototype is deprecated.
7138 static inline __ATTRS_o_ai vector unsigned short
7139 vec_sral(vector unsigned short __a, vector unsigned int __b) {
7140   return (vector unsigned short)__builtin_s390_vsra(
7141     (vector unsigned char)__a, (vector unsigned char)__b);
7142 }
7143
7144 static inline __ATTRS_o_ai vector signed int
7145 vec_sral(vector signed int __a, vector unsigned char __b) {
7146   return (vector signed int)__builtin_s390_vsra(
7147     (vector unsigned char)__a, __b);
7148 }
7149
7150 // This prototype is deprecated.
7151 static inline __ATTRS_o_ai vector signed int
7152 vec_sral(vector signed int __a, vector unsigned short __b) {
7153   return (vector signed int)__builtin_s390_vsra(
7154     (vector unsigned char)__a, (vector unsigned char)__b);
7155 }
7156
7157 // This prototype is deprecated.
7158 static inline __ATTRS_o_ai vector signed int
7159 vec_sral(vector signed int __a, vector unsigned int __b) {
7160   return (vector signed int)__builtin_s390_vsra(
7161     (vector unsigned char)__a, (vector unsigned char)__b);
7162 }
7163
7164 // This prototype is deprecated.
7165 static inline __ATTRS_o_ai vector bool int
7166 vec_sral(vector bool int __a, vector unsigned char __b) {
7167   return (vector bool int)__builtin_s390_vsra(
7168     (vector unsigned char)__a, __b);
7169 }
7170
7171 // This prototype is deprecated.
7172 static inline __ATTRS_o_ai vector bool int
7173 vec_sral(vector bool int __a, vector unsigned short __b) {
7174   return (vector bool int)__builtin_s390_vsra(
7175     (vector unsigned char)__a, (vector unsigned char)__b);
7176 }
7177
7178 // This prototype is deprecated.
7179 static inline __ATTRS_o_ai vector bool int
7180 vec_sral(vector bool int __a, vector unsigned int __b) {
7181   return (vector bool int)__builtin_s390_vsra(
7182     (vector unsigned char)__a, (vector unsigned char)__b);
7183 }
7184
7185 static inline __ATTRS_o_ai vector unsigned int
7186 vec_sral(vector unsigned int __a, vector unsigned char __b) {
7187   return (vector unsigned int)__builtin_s390_vsra(
7188     (vector unsigned char)__a, __b);
7189 }
7190
7191 // This prototype is deprecated.
7192 static inline __ATTRS_o_ai vector unsigned int
7193 vec_sral(vector unsigned int __a, vector unsigned short __b) {
7194   return (vector unsigned int)__builtin_s390_vsra(
7195     (vector unsigned char)__a, (vector unsigned char)__b);
7196 }
7197
7198 // This prototype is deprecated.
7199 static inline __ATTRS_o_ai vector unsigned int
7200 vec_sral(vector unsigned int __a, vector unsigned int __b) {
7201   return (vector unsigned int)__builtin_s390_vsra(
7202     (vector unsigned char)__a, (vector unsigned char)__b);
7203 }
7204
7205 static inline __ATTRS_o_ai vector signed long long
7206 vec_sral(vector signed long long __a, vector unsigned char __b) {
7207   return (vector signed long long)__builtin_s390_vsra(
7208     (vector unsigned char)__a, __b);
7209 }
7210
7211 // This prototype is deprecated.
7212 static inline __ATTRS_o_ai vector signed long long
7213 vec_sral(vector signed long long __a, vector unsigned short __b) {
7214   return (vector signed long long)__builtin_s390_vsra(
7215     (vector unsigned char)__a, (vector unsigned char)__b);
7216 }
7217
7218 // This prototype is deprecated.
7219 static inline __ATTRS_o_ai vector signed long long
7220 vec_sral(vector signed long long __a, vector unsigned int __b) {
7221   return (vector signed long long)__builtin_s390_vsra(
7222     (vector unsigned char)__a, (vector unsigned char)__b);
7223 }
7224
7225 // This prototype is deprecated.
7226 static inline __ATTRS_o_ai vector bool long long
7227 vec_sral(vector bool long long __a, vector unsigned char __b) {
7228   return (vector bool long long)__builtin_s390_vsra(
7229     (vector unsigned char)__a, __b);
7230 }
7231
7232 // This prototype is deprecated.
7233 static inline __ATTRS_o_ai vector bool long long
7234 vec_sral(vector bool long long __a, vector unsigned short __b) {
7235   return (vector bool long long)__builtin_s390_vsra(
7236     (vector unsigned char)__a, (vector unsigned char)__b);
7237 }
7238
7239 // This prototype is deprecated.
7240 static inline __ATTRS_o_ai vector bool long long
7241 vec_sral(vector bool long long __a, vector unsigned int __b) {
7242   return (vector bool long long)__builtin_s390_vsra(
7243     (vector unsigned char)__a, (vector unsigned char)__b);
7244 }
7245
7246 static inline __ATTRS_o_ai vector unsigned long long
7247 vec_sral(vector unsigned long long __a, vector unsigned char __b) {
7248   return (vector unsigned long long)__builtin_s390_vsra(
7249     (vector unsigned char)__a, __b);
7250 }
7251
7252 // This prototype is deprecated.
7253 static inline __ATTRS_o_ai vector unsigned long long
7254 vec_sral(vector unsigned long long __a, vector unsigned short __b) {
7255   return (vector unsigned long long)__builtin_s390_vsra(
7256     (vector unsigned char)__a, (vector unsigned char)__b);
7257 }
7258
7259 // This prototype is deprecated.
7260 static inline __ATTRS_o_ai vector unsigned long long
7261 vec_sral(vector unsigned long long __a, vector unsigned int __b) {
7262   return (vector unsigned long long)__builtin_s390_vsra(
7263     (vector unsigned char)__a, (vector unsigned char)__b);
7264 }
7265
7266 /*-- vec_srab ---------------------------------------------------------------*/
7267
7268 static inline __ATTRS_o_ai vector signed char
7269 vec_srab(vector signed char __a, vector signed char __b) {
7270   return (vector signed char)__builtin_s390_vsrab(
7271     (vector unsigned char)__a, (vector unsigned char)__b);
7272 }
7273
7274 static inline __ATTRS_o_ai vector signed char
7275 vec_srab(vector signed char __a, vector unsigned char __b) {
7276   return (vector signed char)__builtin_s390_vsrab(
7277     (vector unsigned char)__a, __b);
7278 }
7279
7280 static inline __ATTRS_o_ai vector unsigned char
7281 vec_srab(vector unsigned char __a, vector signed char __b) {
7282   return __builtin_s390_vsrab(__a, (vector unsigned char)__b);
7283 }
7284
7285 static inline __ATTRS_o_ai vector unsigned char
7286 vec_srab(vector unsigned char __a, vector unsigned char __b) {
7287   return __builtin_s390_vsrab(__a, __b);
7288 }
7289
7290 static inline __ATTRS_o_ai vector signed short
7291 vec_srab(vector signed short __a, vector signed short __b) {
7292   return (vector signed short)__builtin_s390_vsrab(
7293     (vector unsigned char)__a, (vector unsigned char)__b);
7294 }
7295
7296 static inline __ATTRS_o_ai vector signed short
7297 vec_srab(vector signed short __a, vector unsigned short __b) {
7298   return (vector signed short)__builtin_s390_vsrab(
7299     (vector unsigned char)__a, (vector unsigned char)__b);
7300 }
7301
7302 static inline __ATTRS_o_ai vector unsigned short
7303 vec_srab(vector unsigned short __a, vector signed short __b) {
7304   return (vector unsigned short)__builtin_s390_vsrab(
7305     (vector unsigned char)__a, (vector unsigned char)__b);
7306 }
7307
7308 static inline __ATTRS_o_ai vector unsigned short
7309 vec_srab(vector unsigned short __a, vector unsigned short __b) {
7310   return (vector unsigned short)__builtin_s390_vsrab(
7311     (vector unsigned char)__a, (vector unsigned char)__b);
7312 }
7313
7314 static inline __ATTRS_o_ai vector signed int
7315 vec_srab(vector signed int __a, vector signed int __b) {
7316   return (vector signed int)__builtin_s390_vsrab(
7317     (vector unsigned char)__a, (vector unsigned char)__b);
7318 }
7319
7320 static inline __ATTRS_o_ai vector signed int
7321 vec_srab(vector signed int __a, vector unsigned int __b) {
7322   return (vector signed int)__builtin_s390_vsrab(
7323     (vector unsigned char)__a, (vector unsigned char)__b);
7324 }
7325
7326 static inline __ATTRS_o_ai vector unsigned int
7327 vec_srab(vector unsigned int __a, vector signed int __b) {
7328   return (vector unsigned int)__builtin_s390_vsrab(
7329     (vector unsigned char)__a, (vector unsigned char)__b);
7330 }
7331
7332 static inline __ATTRS_o_ai vector unsigned int
7333 vec_srab(vector unsigned int __a, vector unsigned int __b) {
7334   return (vector unsigned int)__builtin_s390_vsrab(
7335     (vector unsigned char)__a, (vector unsigned char)__b);
7336 }
7337
7338 static inline __ATTRS_o_ai vector signed long long
7339 vec_srab(vector signed long long __a, vector signed long long __b) {
7340   return (vector signed long long)__builtin_s390_vsrab(
7341     (vector unsigned char)__a, (vector unsigned char)__b);
7342 }
7343
7344 static inline __ATTRS_o_ai vector signed long long
7345 vec_srab(vector signed long long __a, vector unsigned long long __b) {
7346   return (vector signed long long)__builtin_s390_vsrab(
7347     (vector unsigned char)__a, (vector unsigned char)__b);
7348 }
7349
7350 static inline __ATTRS_o_ai vector unsigned long long
7351 vec_srab(vector unsigned long long __a, vector signed long long __b) {
7352   return (vector unsigned long long)__builtin_s390_vsrab(
7353     (vector unsigned char)__a, (vector unsigned char)__b);
7354 }
7355
7356 static inline __ATTRS_o_ai vector unsigned long long
7357 vec_srab(vector unsigned long long __a, vector unsigned long long __b) {
7358   return (vector unsigned long long)__builtin_s390_vsrab(
7359     (vector unsigned char)__a, (vector unsigned char)__b);
7360 }
7361
7362 #if __ARCH__ >= 12
7363 static inline __ATTRS_o_ai vector float
7364 vec_srab(vector float __a, vector signed int __b) {
7365   return (vector float)__builtin_s390_vsrab(
7366     (vector unsigned char)__a, (vector unsigned char)__b);
7367 }
7368
7369 static inline __ATTRS_o_ai vector float
7370 vec_srab(vector float __a, vector unsigned int __b) {
7371   return (vector float)__builtin_s390_vsrab(
7372     (vector unsigned char)__a, (vector unsigned char)__b);
7373 }
7374 #endif
7375
7376 static inline __ATTRS_o_ai vector double
7377 vec_srab(vector double __a, vector signed long long __b) {
7378   return (vector double)__builtin_s390_vsrab(
7379     (vector unsigned char)__a, (vector unsigned char)__b);
7380 }
7381
7382 static inline __ATTRS_o_ai vector double
7383 vec_srab(vector double __a, vector unsigned long long __b) {
7384   return (vector double)__builtin_s390_vsrab(
7385     (vector unsigned char)__a, (vector unsigned char)__b);
7386 }
7387
7388 /*-- vec_srl ----------------------------------------------------------------*/
7389
7390 static inline __ATTRS_o_ai vector signed char
7391 vec_srl(vector signed char __a, vector unsigned char __b) {
7392   return (vector signed char)__builtin_s390_vsrl(
7393     (vector unsigned char)__a, __b);
7394 }
7395
7396 // This prototype is deprecated.
7397 static inline __ATTRS_o_ai vector signed char
7398 vec_srl(vector signed char __a, vector unsigned short __b) {
7399   return (vector signed char)__builtin_s390_vsrl(
7400     (vector unsigned char)__a, (vector unsigned char)__b);
7401 }
7402
7403 // This prototype is deprecated.
7404 static inline __ATTRS_o_ai vector signed char
7405 vec_srl(vector signed char __a, vector unsigned int __b) {
7406   return (vector signed char)__builtin_s390_vsrl(
7407     (vector unsigned char)__a, (vector unsigned char)__b);
7408 }
7409
7410 // This prototype is deprecated.
7411 static inline __ATTRS_o_ai vector bool char
7412 vec_srl(vector bool char __a, vector unsigned char __b) {
7413   return (vector bool char)__builtin_s390_vsrl(
7414     (vector unsigned char)__a, __b);
7415 }
7416
7417 // This prototype is deprecated.
7418 static inline __ATTRS_o_ai vector bool char
7419 vec_srl(vector bool char __a, vector unsigned short __b) {
7420   return (vector bool char)__builtin_s390_vsrl(
7421     (vector unsigned char)__a, (vector unsigned char)__b);
7422 }
7423
7424 // This prototype is deprecated.
7425 static inline __ATTRS_o_ai vector bool char
7426 vec_srl(vector bool char __a, vector unsigned int __b) {
7427   return (vector bool char)__builtin_s390_vsrl(
7428     (vector unsigned char)__a, (vector unsigned char)__b);
7429 }
7430
7431 static inline __ATTRS_o_ai vector unsigned char
7432 vec_srl(vector unsigned char __a, vector unsigned char __b) {
7433   return __builtin_s390_vsrl(__a, __b);
7434 }
7435
7436 // This prototype is deprecated.
7437 static inline __ATTRS_o_ai vector unsigned char
7438 vec_srl(vector unsigned char __a, vector unsigned short __b) {
7439   return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
7440 }
7441
7442 // This prototype is deprecated.
7443 static inline __ATTRS_o_ai vector unsigned char
7444 vec_srl(vector unsigned char __a, vector unsigned int __b) {
7445   return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
7446 }
7447
7448 static inline __ATTRS_o_ai vector signed short
7449 vec_srl(vector signed short __a, vector unsigned char __b) {
7450   return (vector signed short)__builtin_s390_vsrl(
7451     (vector unsigned char)__a, __b);
7452 }
7453
7454 // This prototype is deprecated.
7455 static inline __ATTRS_o_ai vector signed short
7456 vec_srl(vector signed short __a, vector unsigned short __b) {
7457   return (vector signed short)__builtin_s390_vsrl(
7458     (vector unsigned char)__a, (vector unsigned char)__b);
7459 }
7460
7461 // This prototype is deprecated.
7462 static inline __ATTRS_o_ai vector signed short
7463 vec_srl(vector signed short __a, vector unsigned int __b) {
7464   return (vector signed short)__builtin_s390_vsrl(
7465     (vector unsigned char)__a, (vector unsigned char)__b);
7466 }
7467
7468 // This prototype is deprecated.
7469 static inline __ATTRS_o_ai vector bool short
7470 vec_srl(vector bool short __a, vector unsigned char __b) {
7471   return (vector bool short)__builtin_s390_vsrl(
7472     (vector unsigned char)__a, __b);
7473 }
7474
7475 // This prototype is deprecated.
7476 static inline __ATTRS_o_ai vector bool short
7477 vec_srl(vector bool short __a, vector unsigned short __b) {
7478   return (vector bool short)__builtin_s390_vsrl(
7479     (vector unsigned char)__a, (vector unsigned char)__b);
7480 }
7481
7482 // This prototype is deprecated.
7483 static inline __ATTRS_o_ai vector bool short
7484 vec_srl(vector bool short __a, vector unsigned int __b) {
7485   return (vector bool short)__builtin_s390_vsrl(
7486     (vector unsigned char)__a, (vector unsigned char)__b);
7487 }
7488
7489 static inline __ATTRS_o_ai vector unsigned short
7490 vec_srl(vector unsigned short __a, vector unsigned char __b) {
7491   return (vector unsigned short)__builtin_s390_vsrl(
7492     (vector unsigned char)__a, __b);
7493 }
7494
7495 // This prototype is deprecated.
7496 static inline __ATTRS_o_ai vector unsigned short
7497 vec_srl(vector unsigned short __a, vector unsigned short __b) {
7498   return (vector unsigned short)__builtin_s390_vsrl(
7499     (vector unsigned char)__a, (vector unsigned char)__b);
7500 }
7501
7502 // This prototype is deprecated.
7503 static inline __ATTRS_o_ai vector unsigned short
7504 vec_srl(vector unsigned short __a, vector unsigned int __b) {
7505   return (vector unsigned short)__builtin_s390_vsrl(
7506     (vector unsigned char)__a, (vector unsigned char)__b);
7507 }
7508
7509 static inline __ATTRS_o_ai vector signed int
7510 vec_srl(vector signed int __a, vector unsigned char __b) {
7511   return (vector signed int)__builtin_s390_vsrl(
7512     (vector unsigned char)__a, __b);
7513 }
7514
7515 // This prototype is deprecated.
7516 static inline __ATTRS_o_ai vector signed int
7517 vec_srl(vector signed int __a, vector unsigned short __b) {
7518   return (vector signed int)__builtin_s390_vsrl(
7519     (vector unsigned char)__a, (vector unsigned char)__b);
7520 }
7521
7522 // This prototype is deprecated.
7523 static inline __ATTRS_o_ai vector signed int
7524 vec_srl(vector signed int __a, vector unsigned int __b) {
7525   return (vector signed int)__builtin_s390_vsrl(
7526     (vector unsigned char)__a, (vector unsigned char)__b);
7527 }
7528
7529 // This prototype is deprecated.
7530 static inline __ATTRS_o_ai vector bool int
7531 vec_srl(vector bool int __a, vector unsigned char __b) {
7532   return (vector bool int)__builtin_s390_vsrl(
7533     (vector unsigned char)__a, __b);
7534 }
7535
7536 // This prototype is deprecated.
7537 static inline __ATTRS_o_ai vector bool int
7538 vec_srl(vector bool int __a, vector unsigned short __b) {
7539   return (vector bool int)__builtin_s390_vsrl(
7540     (vector unsigned char)__a, (vector unsigned char)__b);
7541 }
7542
7543 // This prototype is deprecated.
7544 static inline __ATTRS_o_ai vector bool int
7545 vec_srl(vector bool int __a, vector unsigned int __b) {
7546   return (vector bool int)__builtin_s390_vsrl(
7547     (vector unsigned char)__a, (vector unsigned char)__b);
7548 }
7549
7550 static inline __ATTRS_o_ai vector unsigned int
7551 vec_srl(vector unsigned int __a, vector unsigned char __b) {
7552   return (vector unsigned int)__builtin_s390_vsrl(
7553     (vector unsigned char)__a, __b);
7554 }
7555
7556 // This prototype is deprecated.
7557 static inline __ATTRS_o_ai vector unsigned int
7558 vec_srl(vector unsigned int __a, vector unsigned short __b) {
7559   return (vector unsigned int)__builtin_s390_vsrl(
7560     (vector unsigned char)__a, (vector unsigned char)__b);
7561 }
7562
7563 // This prototype is deprecated.
7564 static inline __ATTRS_o_ai vector unsigned int
7565 vec_srl(vector unsigned int __a, vector unsigned int __b) {
7566   return (vector unsigned int)__builtin_s390_vsrl(
7567     (vector unsigned char)__a, (vector unsigned char)__b);
7568 }
7569
7570 static inline __ATTRS_o_ai vector signed long long
7571 vec_srl(vector signed long long __a, vector unsigned char __b) {
7572   return (vector signed long long)__builtin_s390_vsrl(
7573     (vector unsigned char)__a, __b);
7574 }
7575
7576 // This prototype is deprecated.
7577 static inline __ATTRS_o_ai vector signed long long
7578 vec_srl(vector signed long long __a, vector unsigned short __b) {
7579   return (vector signed long long)__builtin_s390_vsrl(
7580     (vector unsigned char)__a, (vector unsigned char)__b);
7581 }
7582
7583 // This prototype is deprecated.
7584 static inline __ATTRS_o_ai vector signed long long
7585 vec_srl(vector signed long long __a, vector unsigned int __b) {
7586   return (vector signed long long)__builtin_s390_vsrl(
7587     (vector unsigned char)__a, (vector unsigned char)__b);
7588 }
7589
7590 // This prototype is deprecated.
7591 static inline __ATTRS_o_ai vector bool long long
7592 vec_srl(vector bool long long __a, vector unsigned char __b) {
7593   return (vector bool long long)__builtin_s390_vsrl(
7594     (vector unsigned char)__a, __b);
7595 }
7596
7597 // This prototype is deprecated.
7598 static inline __ATTRS_o_ai vector bool long long
7599 vec_srl(vector bool long long __a, vector unsigned short __b) {
7600   return (vector bool long long)__builtin_s390_vsrl(
7601     (vector unsigned char)__a, (vector unsigned char)__b);
7602 }
7603
7604 // This prototype is deprecated.
7605 static inline __ATTRS_o_ai vector bool long long
7606 vec_srl(vector bool long long __a, vector unsigned int __b) {
7607   return (vector bool long long)__builtin_s390_vsrl(
7608     (vector unsigned char)__a, (vector unsigned char)__b);
7609 }
7610
7611 static inline __ATTRS_o_ai vector unsigned long long
7612 vec_srl(vector unsigned long long __a, vector unsigned char __b) {
7613   return (vector unsigned long long)__builtin_s390_vsrl(
7614     (vector unsigned char)__a, __b);
7615 }
7616
7617 // This prototype is deprecated.
7618 static inline __ATTRS_o_ai vector unsigned long long
7619 vec_srl(vector unsigned long long __a, vector unsigned short __b) {
7620   return (vector unsigned long long)__builtin_s390_vsrl(
7621     (vector unsigned char)__a, (vector unsigned char)__b);
7622 }
7623
7624 // This prototype is deprecated.
7625 static inline __ATTRS_o_ai vector unsigned long long
7626 vec_srl(vector unsigned long long __a, vector unsigned int __b) {
7627   return (vector unsigned long long)__builtin_s390_vsrl(
7628     (vector unsigned char)__a, (vector unsigned char)__b);
7629 }
7630
7631 /*-- vec_srb ----------------------------------------------------------------*/
7632
7633 static inline __ATTRS_o_ai vector signed char
7634 vec_srb(vector signed char __a, vector signed char __b) {
7635   return (vector signed char)__builtin_s390_vsrlb(
7636     (vector unsigned char)__a, (vector unsigned char)__b);
7637 }
7638
7639 static inline __ATTRS_o_ai vector signed char
7640 vec_srb(vector signed char __a, vector unsigned char __b) {
7641   return (vector signed char)__builtin_s390_vsrlb(
7642     (vector unsigned char)__a, __b);
7643 }
7644
7645 static inline __ATTRS_o_ai vector unsigned char
7646 vec_srb(vector unsigned char __a, vector signed char __b) {
7647   return __builtin_s390_vsrlb(__a, (vector unsigned char)__b);
7648 }
7649
7650 static inline __ATTRS_o_ai vector unsigned char
7651 vec_srb(vector unsigned char __a, vector unsigned char __b) {
7652   return __builtin_s390_vsrlb(__a, __b);
7653 }
7654
7655 static inline __ATTRS_o_ai vector signed short
7656 vec_srb(vector signed short __a, vector signed short __b) {
7657   return (vector signed short)__builtin_s390_vsrlb(
7658     (vector unsigned char)__a, (vector unsigned char)__b);
7659 }
7660
7661 static inline __ATTRS_o_ai vector signed short
7662 vec_srb(vector signed short __a, vector unsigned short __b) {
7663   return (vector signed short)__builtin_s390_vsrlb(
7664     (vector unsigned char)__a, (vector unsigned char)__b);
7665 }
7666
7667 static inline __ATTRS_o_ai vector unsigned short
7668 vec_srb(vector unsigned short __a, vector signed short __b) {
7669   return (vector unsigned short)__builtin_s390_vsrlb(
7670     (vector unsigned char)__a, (vector unsigned char)__b);
7671 }
7672
7673 static inline __ATTRS_o_ai vector unsigned short
7674 vec_srb(vector unsigned short __a, vector unsigned short __b) {
7675   return (vector unsigned short)__builtin_s390_vsrlb(
7676     (vector unsigned char)__a, (vector unsigned char)__b);
7677 }
7678
7679 static inline __ATTRS_o_ai vector signed int
7680 vec_srb(vector signed int __a, vector signed int __b) {
7681   return (vector signed int)__builtin_s390_vsrlb(
7682     (vector unsigned char)__a, (vector unsigned char)__b);
7683 }
7684
7685 static inline __ATTRS_o_ai vector signed int
7686 vec_srb(vector signed int __a, vector unsigned int __b) {
7687   return (vector signed int)__builtin_s390_vsrlb(
7688     (vector unsigned char)__a, (vector unsigned char)__b);
7689 }
7690
7691 static inline __ATTRS_o_ai vector unsigned int
7692 vec_srb(vector unsigned int __a, vector signed int __b) {
7693   return (vector unsigned int)__builtin_s390_vsrlb(
7694     (vector unsigned char)__a, (vector unsigned char)__b);
7695 }
7696
7697 static inline __ATTRS_o_ai vector unsigned int
7698 vec_srb(vector unsigned int __a, vector unsigned int __b) {
7699   return (vector unsigned int)__builtin_s390_vsrlb(
7700     (vector unsigned char)__a, (vector unsigned char)__b);
7701 }
7702
7703 static inline __ATTRS_o_ai vector signed long long
7704 vec_srb(vector signed long long __a, vector signed long long __b) {
7705   return (vector signed long long)__builtin_s390_vsrlb(
7706     (vector unsigned char)__a, (vector unsigned char)__b);
7707 }
7708
7709 static inline __ATTRS_o_ai vector signed long long
7710 vec_srb(vector signed long long __a, vector unsigned long long __b) {
7711   return (vector signed long long)__builtin_s390_vsrlb(
7712     (vector unsigned char)__a, (vector unsigned char)__b);
7713 }
7714
7715 static inline __ATTRS_o_ai vector unsigned long long
7716 vec_srb(vector unsigned long long __a, vector signed long long __b) {
7717   return (vector unsigned long long)__builtin_s390_vsrlb(
7718     (vector unsigned char)__a, (vector unsigned char)__b);
7719 }
7720
7721 static inline __ATTRS_o_ai vector unsigned long long
7722 vec_srb(vector unsigned long long __a, vector unsigned long long __b) {
7723   return (vector unsigned long long)__builtin_s390_vsrlb(
7724     (vector unsigned char)__a, (vector unsigned char)__b);
7725 }
7726
7727 #if __ARCH__ >= 12
7728 static inline __ATTRS_o_ai vector float
7729 vec_srb(vector float __a, vector signed int __b) {
7730   return (vector float)__builtin_s390_vsrlb(
7731     (vector unsigned char)__a, (vector unsigned char)__b);
7732 }
7733
7734 static inline __ATTRS_o_ai vector float
7735 vec_srb(vector float __a, vector unsigned int __b) {
7736   return (vector float)__builtin_s390_vsrlb(
7737     (vector unsigned char)__a, (vector unsigned char)__b);
7738 }
7739 #endif
7740
7741 static inline __ATTRS_o_ai vector double
7742 vec_srb(vector double __a, vector signed long long __b) {
7743   return (vector double)__builtin_s390_vsrlb(
7744     (vector unsigned char)__a, (vector unsigned char)__b);
7745 }
7746
7747 static inline __ATTRS_o_ai vector double
7748 vec_srb(vector double __a, vector unsigned long long __b) {
7749   return (vector double)__builtin_s390_vsrlb(
7750     (vector unsigned char)__a, (vector unsigned char)__b);
7751 }
7752
7753 /*-- vec_srdb ---------------------------------------------------------------*/
7754
7755 #if __ARCH__ >= 13
7756
7757 extern __ATTRS_o vector signed char
7758 vec_srdb(vector signed char __a, vector signed char __b, int __c)
7759   __constant_range(__c, 0, 7);
7760
7761 extern __ATTRS_o vector unsigned char
7762 vec_srdb(vector unsigned char __a, vector unsigned char __b, int __c)
7763   __constant_range(__c, 0, 7);
7764
7765 extern __ATTRS_o vector signed short
7766 vec_srdb(vector signed short __a, vector signed short __b, int __c)
7767   __constant_range(__c, 0, 7);
7768
7769 extern __ATTRS_o vector unsigned short
7770 vec_srdb(vector unsigned short __a, vector unsigned short __b, int __c)
7771   __constant_range(__c, 0, 7);
7772
7773 extern __ATTRS_o vector signed int
7774 vec_srdb(vector signed int __a, vector signed int __b, int __c)
7775   __constant_range(__c, 0, 7);
7776
7777 extern __ATTRS_o vector unsigned int
7778 vec_srdb(vector unsigned int __a, vector unsigned int __b, int __c)
7779   __constant_range(__c, 0, 7);
7780
7781 extern __ATTRS_o vector signed long long
7782 vec_srdb(vector signed long long __a, vector signed long long __b, int __c)
7783   __constant_range(__c, 0, 7);
7784
7785 extern __ATTRS_o vector unsigned long long
7786 vec_srdb(vector unsigned long long __a, vector unsigned long long __b, int __c)
7787   __constant_range(__c, 0, 7);
7788
7789 extern __ATTRS_o vector float
7790 vec_srdb(vector float __a, vector float __b, int __c)
7791   __constant_range(__c, 0, 7);
7792
7793 extern __ATTRS_o vector double
7794 vec_srdb(vector double __a, vector double __b, int __c)
7795   __constant_range(__c, 0, 7);
7796
7797 #define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
7798   __builtin_s390_vsrd((vector unsigned char)(X), \
7799                       (vector unsigned char)(Y), (Z)))
7800
7801 #endif
7802
7803 /*-- vec_abs ----------------------------------------------------------------*/
7804
7805 static inline __ATTRS_o_ai vector signed char
7806 vec_abs(vector signed char __a) {
7807   return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed char)0));
7808 }
7809
7810 static inline __ATTRS_o_ai vector signed short
7811 vec_abs(vector signed short __a) {
7812   return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed short)0));
7813 }
7814
7815 static inline __ATTRS_o_ai vector signed int
7816 vec_abs(vector signed int __a) {
7817   return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed int)0));
7818 }
7819
7820 static inline __ATTRS_o_ai vector signed long long
7821 vec_abs(vector signed long long __a) {
7822   return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed long long)0));
7823 }
7824
7825 #if __ARCH__ >= 12
7826 static inline __ATTRS_o_ai vector float
7827 vec_abs(vector float __a) {
7828   return __builtin_s390_vflpsb(__a);
7829 }
7830 #endif
7831
7832 static inline __ATTRS_o_ai vector double
7833 vec_abs(vector double __a) {
7834   return __builtin_s390_vflpdb(__a);
7835 }
7836
7837 /*-- vec_nabs ---------------------------------------------------------------*/
7838
7839 #if __ARCH__ >= 12
7840 static inline __ATTRS_o_ai vector float
7841 vec_nabs(vector float __a) {
7842   return __builtin_s390_vflnsb(__a);
7843 }
7844 #endif
7845
7846 static inline __ATTRS_o_ai vector double
7847 vec_nabs(vector double __a) {
7848   return __builtin_s390_vflndb(__a);
7849 }
7850
7851 /*-- vec_max ----------------------------------------------------------------*/
7852
7853 static inline __ATTRS_o_ai vector signed char
7854 vec_max(vector signed char __a, vector signed char __b) {
7855   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7856 }
7857
7858 // This prototype is deprecated.
7859 static inline __ATTRS_o_ai vector signed char
7860 vec_max(vector signed char __a, vector bool char __b) {
7861   vector signed char __bc = (vector signed char)__b;
7862   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7863 }
7864
7865 // This prototype is deprecated.
7866 static inline __ATTRS_o_ai vector signed char
7867 vec_max(vector bool char __a, vector signed char __b) {
7868   vector signed char __ac = (vector signed char)__a;
7869   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7870 }
7871
7872 static inline __ATTRS_o_ai vector unsigned char
7873 vec_max(vector unsigned char __a, vector unsigned char __b) {
7874   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7875 }
7876
7877 // This prototype is deprecated.
7878 static inline __ATTRS_o_ai vector unsigned char
7879 vec_max(vector unsigned char __a, vector bool char __b) {
7880   vector unsigned char __bc = (vector unsigned char)__b;
7881   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7882 }
7883
7884 // This prototype is deprecated.
7885 static inline __ATTRS_o_ai vector unsigned char
7886 vec_max(vector bool char __a, vector unsigned char __b) {
7887   vector unsigned char __ac = (vector unsigned char)__a;
7888   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7889 }
7890
7891 static inline __ATTRS_o_ai vector signed short
7892 vec_max(vector signed short __a, vector signed short __b) {
7893   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7894 }
7895
7896 // This prototype is deprecated.
7897 static inline __ATTRS_o_ai vector signed short
7898 vec_max(vector signed short __a, vector bool short __b) {
7899   vector signed short __bc = (vector signed short)__b;
7900   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7901 }
7902
7903 // This prototype is deprecated.
7904 static inline __ATTRS_o_ai vector signed short
7905 vec_max(vector bool short __a, vector signed short __b) {
7906   vector signed short __ac = (vector signed short)__a;
7907   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7908 }
7909
7910 static inline __ATTRS_o_ai vector unsigned short
7911 vec_max(vector unsigned short __a, vector unsigned short __b) {
7912   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7913 }
7914
7915 // This prototype is deprecated.
7916 static inline __ATTRS_o_ai vector unsigned short
7917 vec_max(vector unsigned short __a, vector bool short __b) {
7918   vector unsigned short __bc = (vector unsigned short)__b;
7919   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7920 }
7921
7922 // This prototype is deprecated.
7923 static inline __ATTRS_o_ai vector unsigned short
7924 vec_max(vector bool short __a, vector unsigned short __b) {
7925   vector unsigned short __ac = (vector unsigned short)__a;
7926   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7927 }
7928
7929 static inline __ATTRS_o_ai vector signed int
7930 vec_max(vector signed int __a, vector signed int __b) {
7931   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7932 }
7933
7934 // This prototype is deprecated.
7935 static inline __ATTRS_o_ai vector signed int
7936 vec_max(vector signed int __a, vector bool int __b) {
7937   vector signed int __bc = (vector signed int)__b;
7938   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7939 }
7940
7941 // This prototype is deprecated.
7942 static inline __ATTRS_o_ai vector signed int
7943 vec_max(vector bool int __a, vector signed int __b) {
7944   vector signed int __ac = (vector signed int)__a;
7945   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7946 }
7947
7948 static inline __ATTRS_o_ai vector unsigned int
7949 vec_max(vector unsigned int __a, vector unsigned int __b) {
7950   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7951 }
7952
7953 // This prototype is deprecated.
7954 static inline __ATTRS_o_ai vector unsigned int
7955 vec_max(vector unsigned int __a, vector bool int __b) {
7956   vector unsigned int __bc = (vector unsigned int)__b;
7957   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7958 }
7959
7960 // This prototype is deprecated.
7961 static inline __ATTRS_o_ai vector unsigned int
7962 vec_max(vector bool int __a, vector unsigned int __b) {
7963   vector unsigned int __ac = (vector unsigned int)__a;
7964   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7965 }
7966
7967 static inline __ATTRS_o_ai vector signed long long
7968 vec_max(vector signed long long __a, vector signed long long __b) {
7969   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7970 }
7971
7972 // This prototype is deprecated.
7973 static inline __ATTRS_o_ai vector signed long long
7974 vec_max(vector signed long long __a, vector bool long long __b) {
7975   vector signed long long __bc = (vector signed long long)__b;
7976   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7977 }
7978
7979 // This prototype is deprecated.
7980 static inline __ATTRS_o_ai vector signed long long
7981 vec_max(vector bool long long __a, vector signed long long __b) {
7982   vector signed long long __ac = (vector signed long long)__a;
7983   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7984 }
7985
7986 static inline __ATTRS_o_ai vector unsigned long long
7987 vec_max(vector unsigned long long __a, vector unsigned long long __b) {
7988   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7989 }
7990
7991 // This prototype is deprecated.
7992 static inline __ATTRS_o_ai vector unsigned long long
7993 vec_max(vector unsigned long long __a, vector bool long long __b) {
7994   vector unsigned long long __bc = (vector unsigned long long)__b;
7995   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7996 }
7997
7998 // This prototype is deprecated.
7999 static inline __ATTRS_o_ai vector unsigned long long
8000 vec_max(vector bool long long __a, vector unsigned long long __b) {
8001   vector unsigned long long __ac = (vector unsigned long long)__a;
8002   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8003 }
8004
8005 #if __ARCH__ >= 12
8006 static inline __ATTRS_o_ai vector float
8007 vec_max(vector float __a, vector float __b) {
8008   return __builtin_s390_vfmaxsb(__a, __b, 0);
8009 }
8010 #endif
8011
8012 static inline __ATTRS_o_ai vector double
8013 vec_max(vector double __a, vector double __b) {
8014 #if __ARCH__ >= 12
8015   return __builtin_s390_vfmaxdb(__a, __b, 0);
8016 #else
8017   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8018 #endif
8019 }
8020
8021 /*-- vec_min ----------------------------------------------------------------*/
8022
8023 static inline __ATTRS_o_ai vector signed char
8024 vec_min(vector signed char __a, vector signed char __b) {
8025   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8026 }
8027
8028 // This prototype is deprecated.
8029 static inline __ATTRS_o_ai vector signed char
8030 vec_min(vector signed char __a, vector bool char __b) {
8031   vector signed char __bc = (vector signed char)__b;
8032   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8033 }
8034
8035 // This prototype is deprecated.
8036 static inline __ATTRS_o_ai vector signed char
8037 vec_min(vector bool char __a, vector signed char __b) {
8038   vector signed char __ac = (vector signed char)__a;
8039   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8040 }
8041
8042 static inline __ATTRS_o_ai vector unsigned char
8043 vec_min(vector unsigned char __a, vector unsigned char __b) {
8044   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8045 }
8046
8047 // This prototype is deprecated.
8048 static inline __ATTRS_o_ai vector unsigned char
8049 vec_min(vector unsigned char __a, vector bool char __b) {
8050   vector unsigned char __bc = (vector unsigned char)__b;
8051   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8052 }
8053
8054 // This prototype is deprecated.
8055 static inline __ATTRS_o_ai vector unsigned char
8056 vec_min(vector bool char __a, vector unsigned char __b) {
8057   vector unsigned char __ac = (vector unsigned char)__a;
8058   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8059 }
8060
8061 static inline __ATTRS_o_ai vector signed short
8062 vec_min(vector signed short __a, vector signed short __b) {
8063   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8064 }
8065
8066 // This prototype is deprecated.
8067 static inline __ATTRS_o_ai vector signed short
8068 vec_min(vector signed short __a, vector bool short __b) {
8069   vector signed short __bc = (vector signed short)__b;
8070   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8071 }
8072
8073 // This prototype is deprecated.
8074 static inline __ATTRS_o_ai vector signed short
8075 vec_min(vector bool short __a, vector signed short __b) {
8076   vector signed short __ac = (vector signed short)__a;
8077   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8078 }
8079
8080 static inline __ATTRS_o_ai vector unsigned short
8081 vec_min(vector unsigned short __a, vector unsigned short __b) {
8082   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8083 }
8084
8085 // This prototype is deprecated.
8086 static inline __ATTRS_o_ai vector unsigned short
8087 vec_min(vector unsigned short __a, vector bool short __b) {
8088   vector unsigned short __bc = (vector unsigned short)__b;
8089   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8090 }
8091
8092 // This prototype is deprecated.
8093 static inline __ATTRS_o_ai vector unsigned short
8094 vec_min(vector bool short __a, vector unsigned short __b) {
8095   vector unsigned short __ac = (vector unsigned short)__a;
8096   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8097 }
8098
8099 static inline __ATTRS_o_ai vector signed int
8100 vec_min(vector signed int __a, vector signed int __b) {
8101   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8102 }
8103
8104 // This prototype is deprecated.
8105 static inline __ATTRS_o_ai vector signed int
8106 vec_min(vector signed int __a, vector bool int __b) {
8107   vector signed int __bc = (vector signed int)__b;
8108   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8109 }
8110
8111 // This prototype is deprecated.
8112 static inline __ATTRS_o_ai vector signed int
8113 vec_min(vector bool int __a, vector signed int __b) {
8114   vector signed int __ac = (vector signed int)__a;
8115   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8116 }
8117
8118 static inline __ATTRS_o_ai vector unsigned int
8119 vec_min(vector unsigned int __a, vector unsigned int __b) {
8120   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8121 }
8122
8123 // This prototype is deprecated.
8124 static inline __ATTRS_o_ai vector unsigned int
8125 vec_min(vector unsigned int __a, vector bool int __b) {
8126   vector unsigned int __bc = (vector unsigned int)__b;
8127   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8128 }
8129
8130 // This prototype is deprecated.
8131 static inline __ATTRS_o_ai vector unsigned int
8132 vec_min(vector bool int __a, vector unsigned int __b) {
8133   vector unsigned int __ac = (vector unsigned int)__a;
8134   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8135 }
8136
8137 static inline __ATTRS_o_ai vector signed long long
8138 vec_min(vector signed long long __a, vector signed long long __b) {
8139   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8140 }
8141
8142 // This prototype is deprecated.
8143 static inline __ATTRS_o_ai vector signed long long
8144 vec_min(vector signed long long __a, vector bool long long __b) {
8145   vector signed long long __bc = (vector signed long long)__b;
8146   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8147 }
8148
8149 // This prototype is deprecated.
8150 static inline __ATTRS_o_ai vector signed long long
8151 vec_min(vector bool long long __a, vector signed long long __b) {
8152   vector signed long long __ac = (vector signed long long)__a;
8153   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8154 }
8155
8156 static inline __ATTRS_o_ai vector unsigned long long
8157 vec_min(vector unsigned long long __a, vector unsigned long long __b) {
8158   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8159 }
8160
8161 // This prototype is deprecated.
8162 static inline __ATTRS_o_ai vector unsigned long long
8163 vec_min(vector unsigned long long __a, vector bool long long __b) {
8164   vector unsigned long long __bc = (vector unsigned long long)__b;
8165   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8166 }
8167
8168 // This prototype is deprecated.
8169 static inline __ATTRS_o_ai vector unsigned long long
8170 vec_min(vector bool long long __a, vector unsigned long long __b) {
8171   vector unsigned long long __ac = (vector unsigned long long)__a;
8172   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8173 }
8174
8175 #if __ARCH__ >= 12
8176 static inline __ATTRS_o_ai vector float
8177 vec_min(vector float __a, vector float __b) {
8178   return __builtin_s390_vfminsb(__a, __b, 0);
8179 }
8180 #endif
8181
8182 static inline __ATTRS_o_ai vector double
8183 vec_min(vector double __a, vector double __b) {
8184 #if __ARCH__ >= 12
8185   return __builtin_s390_vfmindb(__a, __b, 0);
8186 #else
8187   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8188 #endif
8189 }
8190
8191 /*-- vec_add_u128 -----------------------------------------------------------*/
8192
8193 static inline __ATTRS_ai vector unsigned char
8194 vec_add_u128(vector unsigned char __a, vector unsigned char __b) {
8195   return __builtin_s390_vaq(__a, __b);
8196 }
8197
8198 /*-- vec_addc ---------------------------------------------------------------*/
8199
8200 static inline __ATTRS_o_ai vector unsigned char
8201 vec_addc(vector unsigned char __a, vector unsigned char __b) {
8202   return __builtin_s390_vaccb(__a, __b);
8203 }
8204
8205 static inline __ATTRS_o_ai vector unsigned short
8206 vec_addc(vector unsigned short __a, vector unsigned short __b) {
8207   return __builtin_s390_vacch(__a, __b);
8208 }
8209
8210 static inline __ATTRS_o_ai vector unsigned int
8211 vec_addc(vector unsigned int __a, vector unsigned int __b) {
8212   return __builtin_s390_vaccf(__a, __b);
8213 }
8214
8215 static inline __ATTRS_o_ai vector unsigned long long
8216 vec_addc(vector unsigned long long __a, vector unsigned long long __b) {
8217   return __builtin_s390_vaccg(__a, __b);
8218 }
8219
8220 /*-- vec_addc_u128 ----------------------------------------------------------*/
8221
8222 static inline __ATTRS_ai vector unsigned char
8223 vec_addc_u128(vector unsigned char __a, vector unsigned char __b) {
8224   return __builtin_s390_vaccq(__a, __b);
8225 }
8226
8227 /*-- vec_adde_u128 ----------------------------------------------------------*/
8228
8229 static inline __ATTRS_ai vector unsigned char
8230 vec_adde_u128(vector unsigned char __a, vector unsigned char __b,
8231               vector unsigned char __c) {
8232   return __builtin_s390_vacq(__a, __b, __c);
8233 }
8234
8235 /*-- vec_addec_u128 ---------------------------------------------------------*/
8236
8237 static inline __ATTRS_ai vector unsigned char
8238 vec_addec_u128(vector unsigned char __a, vector unsigned char __b,
8239                vector unsigned char __c) {
8240   return __builtin_s390_vacccq(__a, __b, __c);
8241 }
8242
8243 /*-- vec_avg ----------------------------------------------------------------*/
8244
8245 static inline __ATTRS_o_ai vector signed char
8246 vec_avg(vector signed char __a, vector signed char __b) {
8247   return __builtin_s390_vavgb(__a, __b);
8248 }
8249
8250 static inline __ATTRS_o_ai vector signed short
8251 vec_avg(vector signed short __a, vector signed short __b) {
8252   return __builtin_s390_vavgh(__a, __b);
8253 }
8254
8255 static inline __ATTRS_o_ai vector signed int
8256 vec_avg(vector signed int __a, vector signed int __b) {
8257   return __builtin_s390_vavgf(__a, __b);
8258 }
8259
8260 static inline __ATTRS_o_ai vector signed long long
8261 vec_avg(vector signed long long __a, vector signed long long __b) {
8262   return __builtin_s390_vavgg(__a, __b);
8263 }
8264
8265 static inline __ATTRS_o_ai vector unsigned char
8266 vec_avg(vector unsigned char __a, vector unsigned char __b) {
8267   return __builtin_s390_vavglb(__a, __b);
8268 }
8269
8270 static inline __ATTRS_o_ai vector unsigned short
8271 vec_avg(vector unsigned short __a, vector unsigned short __b) {
8272   return __builtin_s390_vavglh(__a, __b);
8273 }
8274
8275 static inline __ATTRS_o_ai vector unsigned int
8276 vec_avg(vector unsigned int __a, vector unsigned int __b) {
8277   return __builtin_s390_vavglf(__a, __b);
8278 }
8279
8280 static inline __ATTRS_o_ai vector unsigned long long
8281 vec_avg(vector unsigned long long __a, vector unsigned long long __b) {
8282   return __builtin_s390_vavglg(__a, __b);
8283 }
8284
8285 /*-- vec_checksum -----------------------------------------------------------*/
8286
8287 static inline __ATTRS_ai vector unsigned int
8288 vec_checksum(vector unsigned int __a, vector unsigned int __b) {
8289   return __builtin_s390_vcksm(__a, __b);
8290 }
8291
8292 /*-- vec_gfmsum -------------------------------------------------------------*/
8293
8294 static inline __ATTRS_o_ai vector unsigned short
8295 vec_gfmsum(vector unsigned char __a, vector unsigned char __b) {
8296   return __builtin_s390_vgfmb(__a, __b);
8297 }
8298
8299 static inline __ATTRS_o_ai vector unsigned int
8300 vec_gfmsum(vector unsigned short __a, vector unsigned short __b) {
8301   return __builtin_s390_vgfmh(__a, __b);
8302 }
8303
8304 static inline __ATTRS_o_ai vector unsigned long long
8305 vec_gfmsum(vector unsigned int __a, vector unsigned int __b) {
8306   return __builtin_s390_vgfmf(__a, __b);
8307 }
8308
8309 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
8310
8311 static inline __ATTRS_o_ai vector unsigned char
8312 vec_gfmsum_128(vector unsigned long long __a, vector unsigned long long __b) {
8313   return __builtin_s390_vgfmg(__a, __b);
8314 }
8315
8316 /*-- vec_gfmsum_accum -------------------------------------------------------*/
8317
8318 static inline __ATTRS_o_ai vector unsigned short
8319 vec_gfmsum_accum(vector unsigned char __a, vector unsigned char __b,
8320                  vector unsigned short __c) {
8321   return __builtin_s390_vgfmab(__a, __b, __c);
8322 }
8323
8324 static inline __ATTRS_o_ai vector unsigned int
8325 vec_gfmsum_accum(vector unsigned short __a, vector unsigned short __b,
8326                  vector unsigned int __c) {
8327   return __builtin_s390_vgfmah(__a, __b, __c);
8328 }
8329
8330 static inline __ATTRS_o_ai vector unsigned long long
8331 vec_gfmsum_accum(vector unsigned int __a, vector unsigned int __b,
8332                  vector unsigned long long __c) {
8333   return __builtin_s390_vgfmaf(__a, __b, __c);
8334 }
8335
8336 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
8337
8338 static inline __ATTRS_o_ai vector unsigned char
8339 vec_gfmsum_accum_128(vector unsigned long long __a,
8340                      vector unsigned long long __b,
8341                      vector unsigned char __c) {
8342   return __builtin_s390_vgfmag(__a, __b, __c);
8343 }
8344
8345 /*-- vec_mladd --------------------------------------------------------------*/
8346
8347 static inline __ATTRS_o_ai vector signed char
8348 vec_mladd(vector signed char __a, vector signed char __b,
8349           vector signed char __c) {
8350   return __a * __b + __c;
8351 }
8352
8353 static inline __ATTRS_o_ai vector signed char
8354 vec_mladd(vector unsigned char __a, vector signed char __b,
8355           vector signed char __c) {
8356   return (vector signed char)__a * __b + __c;
8357 }
8358
8359 static inline __ATTRS_o_ai vector signed char
8360 vec_mladd(vector signed char __a, vector unsigned char __b,
8361           vector unsigned char __c) {
8362   return __a * (vector signed char)__b + (vector signed char)__c;
8363 }
8364
8365 static inline __ATTRS_o_ai vector unsigned char
8366 vec_mladd(vector unsigned char __a, vector unsigned char __b,
8367           vector unsigned char __c) {
8368   return __a * __b + __c;
8369 }
8370
8371 static inline __ATTRS_o_ai vector signed short
8372 vec_mladd(vector signed short __a, vector signed short __b,
8373           vector signed short __c) {
8374   return __a * __b + __c;
8375 }
8376
8377 static inline __ATTRS_o_ai vector signed short
8378 vec_mladd(vector unsigned short __a, vector signed short __b,
8379           vector signed short __c) {
8380   return (vector signed short)__a * __b + __c;
8381 }
8382
8383 static inline __ATTRS_o_ai vector signed short
8384 vec_mladd(vector signed short __a, vector unsigned short __b,
8385           vector unsigned short __c) {
8386   return __a * (vector signed short)__b + (vector signed short)__c;
8387 }
8388
8389 static inline __ATTRS_o_ai vector unsigned short
8390 vec_mladd(vector unsigned short __a, vector unsigned short __b,
8391           vector unsigned short __c) {
8392   return __a * __b + __c;
8393 }
8394
8395 static inline __ATTRS_o_ai vector signed int
8396 vec_mladd(vector signed int __a, vector signed int __b,
8397           vector signed int __c) {
8398   return __a * __b + __c;
8399 }
8400
8401 static inline __ATTRS_o_ai vector signed int
8402 vec_mladd(vector unsigned int __a, vector signed int __b,
8403           vector signed int __c) {
8404   return (vector signed int)__a * __b + __c;
8405 }
8406
8407 static inline __ATTRS_o_ai vector signed int
8408 vec_mladd(vector signed int __a, vector unsigned int __b,
8409           vector unsigned int __c) {
8410   return __a * (vector signed int)__b + (vector signed int)__c;
8411 }
8412
8413 static inline __ATTRS_o_ai vector unsigned int
8414 vec_mladd(vector unsigned int __a, vector unsigned int __b,
8415           vector unsigned int __c) {
8416   return __a * __b + __c;
8417 }
8418
8419 /*-- vec_mhadd --------------------------------------------------------------*/
8420
8421 static inline __ATTRS_o_ai vector signed char
8422 vec_mhadd(vector signed char __a, vector signed char __b,
8423           vector signed char __c) {
8424   return __builtin_s390_vmahb(__a, __b, __c);
8425 }
8426
8427 static inline __ATTRS_o_ai vector unsigned char
8428 vec_mhadd(vector unsigned char __a, vector unsigned char __b,
8429           vector unsigned char __c) {
8430   return __builtin_s390_vmalhb(__a, __b, __c);
8431 }
8432
8433 static inline __ATTRS_o_ai vector signed short
8434 vec_mhadd(vector signed short __a, vector signed short __b,
8435           vector signed short __c) {
8436   return __builtin_s390_vmahh(__a, __b, __c);
8437 }
8438
8439 static inline __ATTRS_o_ai vector unsigned short
8440 vec_mhadd(vector unsigned short __a, vector unsigned short __b,
8441           vector unsigned short __c) {
8442   return __builtin_s390_vmalhh(__a, __b, __c);
8443 }
8444
8445 static inline __ATTRS_o_ai vector signed int
8446 vec_mhadd(vector signed int __a, vector signed int __b,
8447           vector signed int __c) {
8448   return __builtin_s390_vmahf(__a, __b, __c);
8449 }
8450
8451 static inline __ATTRS_o_ai vector unsigned int
8452 vec_mhadd(vector unsigned int __a, vector unsigned int __b,
8453           vector unsigned int __c) {
8454   return __builtin_s390_vmalhf(__a, __b, __c);
8455 }
8456
8457 /*-- vec_meadd --------------------------------------------------------------*/
8458
8459 static inline __ATTRS_o_ai vector signed short
8460 vec_meadd(vector signed char __a, vector signed char __b,
8461           vector signed short __c) {
8462   return __builtin_s390_vmaeb(__a, __b, __c);
8463 }
8464
8465 static inline __ATTRS_o_ai vector unsigned short
8466 vec_meadd(vector unsigned char __a, vector unsigned char __b,
8467           vector unsigned short __c) {
8468   return __builtin_s390_vmaleb(__a, __b, __c);
8469 }
8470
8471 static inline __ATTRS_o_ai vector signed int
8472 vec_meadd(vector signed short __a, vector signed short __b,
8473           vector signed int __c) {
8474   return __builtin_s390_vmaeh(__a, __b, __c);
8475 }
8476
8477 static inline __ATTRS_o_ai vector unsigned int
8478 vec_meadd(vector unsigned short __a, vector unsigned short __b,
8479           vector unsigned int __c) {
8480   return __builtin_s390_vmaleh(__a, __b, __c);
8481 }
8482
8483 static inline __ATTRS_o_ai vector signed long long
8484 vec_meadd(vector signed int __a, vector signed int __b,
8485           vector signed long long __c) {
8486   return __builtin_s390_vmaef(__a, __b, __c);
8487 }
8488
8489 static inline __ATTRS_o_ai vector unsigned long long
8490 vec_meadd(vector unsigned int __a, vector unsigned int __b,
8491           vector unsigned long long __c) {
8492   return __builtin_s390_vmalef(__a, __b, __c);
8493 }
8494
8495 /*-- vec_moadd --------------------------------------------------------------*/
8496
8497 static inline __ATTRS_o_ai vector signed short
8498 vec_moadd(vector signed char __a, vector signed char __b,
8499           vector signed short __c) {
8500   return __builtin_s390_vmaob(__a, __b, __c);
8501 }
8502
8503 static inline __ATTRS_o_ai vector unsigned short
8504 vec_moadd(vector unsigned char __a, vector unsigned char __b,
8505           vector unsigned short __c) {
8506   return __builtin_s390_vmalob(__a, __b, __c);
8507 }
8508
8509 static inline __ATTRS_o_ai vector signed int
8510 vec_moadd(vector signed short __a, vector signed short __b,
8511           vector signed int __c) {
8512   return __builtin_s390_vmaoh(__a, __b, __c);
8513 }
8514
8515 static inline __ATTRS_o_ai vector unsigned int
8516 vec_moadd(vector unsigned short __a, vector unsigned short __b,
8517           vector unsigned int __c) {
8518   return __builtin_s390_vmaloh(__a, __b, __c);
8519 }
8520
8521 static inline __ATTRS_o_ai vector signed long long
8522 vec_moadd(vector signed int __a, vector signed int __b,
8523           vector signed long long __c) {
8524   return __builtin_s390_vmaof(__a, __b, __c);
8525 }
8526
8527 static inline __ATTRS_o_ai vector unsigned long long
8528 vec_moadd(vector unsigned int __a, vector unsigned int __b,
8529           vector unsigned long long __c) {
8530   return __builtin_s390_vmalof(__a, __b, __c);
8531 }
8532
8533 /*-- vec_mulh ---------------------------------------------------------------*/
8534
8535 static inline __ATTRS_o_ai vector signed char
8536 vec_mulh(vector signed char __a, vector signed char __b) {
8537   return __builtin_s390_vmhb(__a, __b);
8538 }
8539
8540 static inline __ATTRS_o_ai vector unsigned char
8541 vec_mulh(vector unsigned char __a, vector unsigned char __b) {
8542   return __builtin_s390_vmlhb(__a, __b);
8543 }
8544
8545 static inline __ATTRS_o_ai vector signed short
8546 vec_mulh(vector signed short __a, vector signed short __b) {
8547   return __builtin_s390_vmhh(__a, __b);
8548 }
8549
8550 static inline __ATTRS_o_ai vector unsigned short
8551 vec_mulh(vector unsigned short __a, vector unsigned short __b) {
8552   return __builtin_s390_vmlhh(__a, __b);
8553 }
8554
8555 static inline __ATTRS_o_ai vector signed int
8556 vec_mulh(vector signed int __a, vector signed int __b) {
8557   return __builtin_s390_vmhf(__a, __b);
8558 }
8559
8560 static inline __ATTRS_o_ai vector unsigned int
8561 vec_mulh(vector unsigned int __a, vector unsigned int __b) {
8562   return __builtin_s390_vmlhf(__a, __b);
8563 }
8564
8565 /*-- vec_mule ---------------------------------------------------------------*/
8566
8567 static inline __ATTRS_o_ai vector signed short
8568 vec_mule(vector signed char __a, vector signed char __b) {
8569   return __builtin_s390_vmeb(__a, __b);
8570 }
8571
8572 static inline __ATTRS_o_ai vector unsigned short
8573 vec_mule(vector unsigned char __a, vector unsigned char __b) {
8574   return __builtin_s390_vmleb(__a, __b);
8575 }
8576
8577 static inline __ATTRS_o_ai vector signed int
8578 vec_mule(vector signed short __a, vector signed short __b) {
8579   return __builtin_s390_vmeh(__a, __b);
8580 }
8581
8582 static inline __ATTRS_o_ai vector unsigned int
8583 vec_mule(vector unsigned short __a, vector unsigned short __b) {
8584   return __builtin_s390_vmleh(__a, __b);
8585 }
8586
8587 static inline __ATTRS_o_ai vector signed long long
8588 vec_mule(vector signed int __a, vector signed int __b) {
8589   return __builtin_s390_vmef(__a, __b);
8590 }
8591
8592 static inline __ATTRS_o_ai vector unsigned long long
8593 vec_mule(vector unsigned int __a, vector unsigned int __b) {
8594   return __builtin_s390_vmlef(__a, __b);
8595 }
8596
8597 /*-- vec_mulo ---------------------------------------------------------------*/
8598
8599 static inline __ATTRS_o_ai vector signed short
8600 vec_mulo(vector signed char __a, vector signed char __b) {
8601   return __builtin_s390_vmob(__a, __b);
8602 }
8603
8604 static inline __ATTRS_o_ai vector unsigned short
8605 vec_mulo(vector unsigned char __a, vector unsigned char __b) {
8606   return __builtin_s390_vmlob(__a, __b);
8607 }
8608
8609 static inline __ATTRS_o_ai vector signed int
8610 vec_mulo(vector signed short __a, vector signed short __b) {
8611   return __builtin_s390_vmoh(__a, __b);
8612 }
8613
8614 static inline __ATTRS_o_ai vector unsigned int
8615 vec_mulo(vector unsigned short __a, vector unsigned short __b) {
8616   return __builtin_s390_vmloh(__a, __b);
8617 }
8618
8619 static inline __ATTRS_o_ai vector signed long long
8620 vec_mulo(vector signed int __a, vector signed int __b) {
8621   return __builtin_s390_vmof(__a, __b);
8622 }
8623
8624 static inline __ATTRS_o_ai vector unsigned long long
8625 vec_mulo(vector unsigned int __a, vector unsigned int __b) {
8626   return __builtin_s390_vmlof(__a, __b);
8627 }
8628
8629 /*-- vec_msum_u128 ----------------------------------------------------------*/
8630
8631 #if __ARCH__ >= 12
8632 #define vec_msum_u128(X, Y, Z, W) \
8633   ((vector unsigned char)__builtin_s390_vmslg((X), (Y), (Z), (W)));
8634 #endif
8635
8636 /*-- vec_sub_u128 -----------------------------------------------------------*/
8637
8638 static inline __ATTRS_ai vector unsigned char
8639 vec_sub_u128(vector unsigned char __a, vector unsigned char __b) {
8640   return __builtin_s390_vsq(__a, __b);
8641 }
8642
8643 /*-- vec_subc ---------------------------------------------------------------*/
8644
8645 static inline __ATTRS_o_ai vector unsigned char
8646 vec_subc(vector unsigned char __a, vector unsigned char __b) {
8647   return __builtin_s390_vscbib(__a, __b);
8648 }
8649
8650 static inline __ATTRS_o_ai vector unsigned short
8651 vec_subc(vector unsigned short __a, vector unsigned short __b) {
8652   return __builtin_s390_vscbih(__a, __b);
8653 }
8654
8655 static inline __ATTRS_o_ai vector unsigned int
8656 vec_subc(vector unsigned int __a, vector unsigned int __b) {
8657   return __builtin_s390_vscbif(__a, __b);
8658 }
8659
8660 static inline __ATTRS_o_ai vector unsigned long long
8661 vec_subc(vector unsigned long long __a, vector unsigned long long __b) {
8662   return __builtin_s390_vscbig(__a, __b);
8663 }
8664
8665 /*-- vec_subc_u128 ----------------------------------------------------------*/
8666
8667 static inline __ATTRS_ai vector unsigned char
8668 vec_subc_u128(vector unsigned char __a, vector unsigned char __b) {
8669   return __builtin_s390_vscbiq(__a, __b);
8670 }
8671
8672 /*-- vec_sube_u128 ----------------------------------------------------------*/
8673
8674 static inline __ATTRS_ai vector unsigned char
8675 vec_sube_u128(vector unsigned char __a, vector unsigned char __b,
8676               vector unsigned char __c) {
8677   return __builtin_s390_vsbiq(__a, __b, __c);
8678 }
8679
8680 /*-- vec_subec_u128 ---------------------------------------------------------*/
8681
8682 static inline __ATTRS_ai vector unsigned char
8683 vec_subec_u128(vector unsigned char __a, vector unsigned char __b,
8684                vector unsigned char __c) {
8685   return __builtin_s390_vsbcbiq(__a, __b, __c);
8686 }
8687
8688 /*-- vec_sum2 ---------------------------------------------------------------*/
8689
8690 static inline __ATTRS_o_ai vector unsigned long long
8691 vec_sum2(vector unsigned short __a, vector unsigned short __b) {
8692   return __builtin_s390_vsumgh(__a, __b);
8693 }
8694
8695 static inline __ATTRS_o_ai vector unsigned long long
8696 vec_sum2(vector unsigned int __a, vector unsigned int __b) {
8697   return __builtin_s390_vsumgf(__a, __b);
8698 }
8699
8700 /*-- vec_sum_u128 -----------------------------------------------------------*/
8701
8702 static inline __ATTRS_o_ai vector unsigned char
8703 vec_sum_u128(vector unsigned int __a, vector unsigned int __b) {
8704   return __builtin_s390_vsumqf(__a, __b);
8705 }
8706
8707 static inline __ATTRS_o_ai vector unsigned char
8708 vec_sum_u128(vector unsigned long long __a, vector unsigned long long __b) {
8709   return __builtin_s390_vsumqg(__a, __b);
8710 }
8711
8712 /*-- vec_sum4 ---------------------------------------------------------------*/
8713
8714 static inline __ATTRS_o_ai vector unsigned int
8715 vec_sum4(vector unsigned char __a, vector unsigned char __b) {
8716   return __builtin_s390_vsumb(__a, __b);
8717 }
8718
8719 static inline __ATTRS_o_ai vector unsigned int
8720 vec_sum4(vector unsigned short __a, vector unsigned short __b) {
8721   return __builtin_s390_vsumh(__a, __b);
8722 }
8723
8724 /*-- vec_test_mask ----------------------------------------------------------*/
8725
8726 static inline __ATTRS_o_ai int
8727 vec_test_mask(vector signed char __a, vector unsigned char __b) {
8728   return __builtin_s390_vtm((vector unsigned char)__a,
8729                             (vector unsigned char)__b);
8730 }
8731
8732 static inline __ATTRS_o_ai int
8733 vec_test_mask(vector unsigned char __a, vector unsigned char __b) {
8734   return __builtin_s390_vtm(__a, __b);
8735 }
8736
8737 static inline __ATTRS_o_ai int
8738 vec_test_mask(vector signed short __a, vector unsigned short __b) {
8739   return __builtin_s390_vtm((vector unsigned char)__a,
8740                             (vector unsigned char)__b);
8741 }
8742
8743 static inline __ATTRS_o_ai int
8744 vec_test_mask(vector unsigned short __a, vector unsigned short __b) {
8745   return __builtin_s390_vtm((vector unsigned char)__a,
8746                             (vector unsigned char)__b);
8747 }
8748
8749 static inline __ATTRS_o_ai int
8750 vec_test_mask(vector signed int __a, vector unsigned int __b) {
8751   return __builtin_s390_vtm((vector unsigned char)__a,
8752                             (vector unsigned char)__b);
8753 }
8754
8755 static inline __ATTRS_o_ai int
8756 vec_test_mask(vector unsigned int __a, vector unsigned int __b) {
8757   return __builtin_s390_vtm((vector unsigned char)__a,
8758                             (vector unsigned char)__b);
8759 }
8760
8761 static inline __ATTRS_o_ai int
8762 vec_test_mask(vector signed long long __a, vector unsigned long long __b) {
8763   return __builtin_s390_vtm((vector unsigned char)__a,
8764                             (vector unsigned char)__b);
8765 }
8766
8767 static inline __ATTRS_o_ai int
8768 vec_test_mask(vector unsigned long long __a, vector unsigned long long __b) {
8769   return __builtin_s390_vtm((vector unsigned char)__a,
8770                             (vector unsigned char)__b);
8771 }
8772
8773 #if __ARCH__ >= 12
8774 static inline __ATTRS_o_ai int
8775 vec_test_mask(vector float __a, vector unsigned int __b) {
8776   return __builtin_s390_vtm((vector unsigned char)__a,
8777                             (vector unsigned char)__b);
8778 }
8779 #endif
8780
8781 static inline __ATTRS_o_ai int
8782 vec_test_mask(vector double __a, vector unsigned long long __b) {
8783   return __builtin_s390_vtm((vector unsigned char)__a,
8784                             (vector unsigned char)__b);
8785 }
8786
8787 /*-- vec_madd ---------------------------------------------------------------*/
8788
8789 #if __ARCH__ >= 12
8790 static inline __ATTRS_o_ai vector float
8791 vec_madd(vector float __a, vector float __b, vector float __c) {
8792   return __builtin_s390_vfmasb(__a, __b, __c);
8793 }
8794 #endif
8795
8796 static inline __ATTRS_o_ai vector double
8797 vec_madd(vector double __a, vector double __b, vector double __c) {
8798   return __builtin_s390_vfmadb(__a, __b, __c);
8799 }
8800
8801 /*-- vec_msub ---------------------------------------------------------------*/
8802
8803 #if __ARCH__ >= 12
8804 static inline __ATTRS_o_ai vector float
8805 vec_msub(vector float __a, vector float __b, vector float __c) {
8806   return __builtin_s390_vfmssb(__a, __b, __c);
8807 }
8808 #endif
8809
8810 static inline __ATTRS_o_ai vector double
8811 vec_msub(vector double __a, vector double __b, vector double __c) {
8812   return __builtin_s390_vfmsdb(__a, __b, __c);
8813 }
8814
8815 /*-- vec_nmadd ---------------------------------------------------------------*/
8816
8817 #if __ARCH__ >= 12
8818 static inline __ATTRS_o_ai vector float
8819 vec_nmadd(vector float __a, vector float __b, vector float __c) {
8820   return __builtin_s390_vfnmasb(__a, __b, __c);
8821 }
8822
8823 static inline __ATTRS_o_ai vector double
8824 vec_nmadd(vector double __a, vector double __b, vector double __c) {
8825   return __builtin_s390_vfnmadb(__a, __b, __c);
8826 }
8827 #endif
8828
8829 /*-- vec_nmsub ---------------------------------------------------------------*/
8830
8831 #if __ARCH__ >= 12
8832 static inline __ATTRS_o_ai vector float
8833 vec_nmsub(vector float __a, vector float __b, vector float __c) {
8834   return __builtin_s390_vfnmssb(__a, __b, __c);
8835 }
8836
8837 static inline __ATTRS_o_ai vector double
8838 vec_nmsub(vector double __a, vector double __b, vector double __c) {
8839   return __builtin_s390_vfnmsdb(__a, __b, __c);
8840 }
8841 #endif
8842
8843 /*-- vec_sqrt ---------------------------------------------------------------*/
8844
8845 #if __ARCH__ >= 12
8846 static inline __ATTRS_o_ai vector float
8847 vec_sqrt(vector float __a) {
8848   return __builtin_s390_vfsqsb(__a);
8849 }
8850 #endif
8851
8852 static inline __ATTRS_o_ai vector double
8853 vec_sqrt(vector double __a) {
8854   return __builtin_s390_vfsqdb(__a);
8855 }
8856
8857 /*-- vec_ld2f ---------------------------------------------------------------*/
8858
8859 // This prototype is deprecated.
8860 static inline __ATTRS_ai vector double
8861 vec_ld2f(const float *__ptr) {
8862   typedef float __v2f32 __attribute__((__vector_size__(8)));
8863   return __builtin_convertvector(*(const __v2f32 *)__ptr, vector double);
8864 }
8865
8866 /*-- vec_st2f ---------------------------------------------------------------*/
8867
8868 // This prototype is deprecated.
8869 static inline __ATTRS_ai void
8870 vec_st2f(vector double __a, float *__ptr) {
8871   typedef float __v2f32 __attribute__((__vector_size__(8)));
8872   *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
8873 }
8874
8875 /*-- vec_ctd ----------------------------------------------------------------*/
8876
8877 // This prototype is deprecated.
8878 static inline __ATTRS_o_ai vector double
8879 vec_ctd(vector signed long long __a, int __b)
8880   __constant_range(__b, 0, 31) {
8881   vector double __conv = __builtin_convertvector(__a, vector double);
8882   __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
8883   return __conv;
8884 }
8885
8886 // This prototype is deprecated.
8887 static inline __ATTRS_o_ai vector double
8888 vec_ctd(vector unsigned long long __a, int __b)
8889   __constant_range(__b, 0, 31) {
8890   vector double __conv = __builtin_convertvector(__a, vector double);
8891   __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
8892   return __conv;
8893 }
8894
8895 /*-- vec_ctsl ---------------------------------------------------------------*/
8896
8897 // This prototype is deprecated.
8898 static inline __ATTRS_o_ai vector signed long long
8899 vec_ctsl(vector double __a, int __b)
8900   __constant_range(__b, 0, 31) {
8901   __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
8902   return __builtin_convertvector(__a, vector signed long long);
8903 }
8904
8905 /*-- vec_ctul ---------------------------------------------------------------*/
8906
8907 // This prototype is deprecated.
8908 static inline __ATTRS_o_ai vector unsigned long long
8909 vec_ctul(vector double __a, int __b)
8910   __constant_range(__b, 0, 31) {
8911   __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
8912   return __builtin_convertvector(__a, vector unsigned long long);
8913 }
8914
8915 /*-- vec_doublee ------------------------------------------------------------*/
8916
8917 #if __ARCH__ >= 12
8918 static inline __ATTRS_ai vector double
8919 vec_doublee(vector float __a) {
8920   typedef float __v2f32 __attribute__((__vector_size__(8)));
8921   __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
8922   return __builtin_convertvector(__pack, vector double);
8923 }
8924 #endif
8925
8926 /*-- vec_floate -------------------------------------------------------------*/
8927
8928 #if __ARCH__ >= 12
8929 static inline __ATTRS_ai vector float
8930 vec_floate(vector double __a) {
8931   typedef float __v2f32 __attribute__((__vector_size__(8)));
8932   __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
8933   return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
8934 }
8935 #endif
8936
8937 /*-- vec_double -------------------------------------------------------------*/
8938
8939 static inline __ATTRS_o_ai vector double
8940 vec_double(vector signed long long __a) {
8941   return __builtin_convertvector(__a, vector double);
8942 }
8943
8944 static inline __ATTRS_o_ai vector double
8945 vec_double(vector unsigned long long __a) {
8946   return __builtin_convertvector(__a, vector double);
8947 }
8948
8949 /*-- vec_float --------------------------------------------------------------*/
8950
8951 #if __ARCH__ >= 13
8952
8953 static inline __ATTRS_o_ai vector float
8954 vec_float(vector signed int __a) {
8955   return __builtin_convertvector(__a, vector float);
8956 }
8957
8958 static inline __ATTRS_o_ai vector float
8959 vec_float(vector unsigned int __a) {
8960   return __builtin_convertvector(__a, vector float);
8961 }
8962
8963 #endif
8964
8965 /*-- vec_signed -------------------------------------------------------------*/
8966
8967 static inline __ATTRS_o_ai vector signed long long
8968 vec_signed(vector double __a) {
8969   return __builtin_convertvector(__a, vector signed long long);
8970 }
8971
8972 #if __ARCH__ >= 13
8973 static inline __ATTRS_o_ai vector signed int
8974 vec_signed(vector float __a) {
8975   return __builtin_convertvector(__a, vector signed int);
8976 }
8977 #endif
8978
8979 /*-- vec_unsigned -----------------------------------------------------------*/
8980
8981 static inline __ATTRS_o_ai vector unsigned long long
8982 vec_unsigned(vector double __a) {
8983   return __builtin_convertvector(__a, vector unsigned long long);
8984 }
8985
8986 #if __ARCH__ >= 13
8987 static inline __ATTRS_o_ai vector unsigned int
8988 vec_unsigned(vector float __a) {
8989   return __builtin_convertvector(__a, vector unsigned int);
8990 }
8991 #endif
8992
8993 /*-- vec_roundp -------------------------------------------------------------*/
8994
8995 #if __ARCH__ >= 12
8996 static inline __ATTRS_o_ai vector float
8997 vec_roundp(vector float __a) {
8998   return __builtin_s390_vfisb(__a, 4, 6);
8999 }
9000 #endif
9001
9002 static inline __ATTRS_o_ai vector double
9003 vec_roundp(vector double __a) {
9004   return __builtin_s390_vfidb(__a, 4, 6);
9005 }
9006
9007 /*-- vec_ceil ---------------------------------------------------------------*/
9008
9009 #if __ARCH__ >= 12
9010 static inline __ATTRS_o_ai vector float
9011 vec_ceil(vector float __a) {
9012   // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9013   return __builtin_s390_vfisb(__a, 4, 6);
9014 }
9015 #endif
9016
9017 static inline __ATTRS_o_ai vector double
9018 vec_ceil(vector double __a) {
9019   // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9020   return __builtin_s390_vfidb(__a, 4, 6);
9021 }
9022
9023 /*-- vec_roundm -------------------------------------------------------------*/
9024
9025 #if __ARCH__ >= 12
9026 static inline __ATTRS_o_ai vector float
9027 vec_roundm(vector float __a) {
9028   return __builtin_s390_vfisb(__a, 4, 7);
9029 }
9030 #endif
9031
9032 static inline __ATTRS_o_ai vector double
9033 vec_roundm(vector double __a) {
9034   return __builtin_s390_vfidb(__a, 4, 7);
9035 }
9036
9037 /*-- vec_floor --------------------------------------------------------------*/
9038
9039 #if __ARCH__ >= 12
9040 static inline __ATTRS_o_ai vector float
9041 vec_floor(vector float __a) {
9042   // On this platform, vec_floor never triggers the IEEE-inexact exception.
9043   return __builtin_s390_vfisb(__a, 4, 7);
9044 }
9045 #endif
9046
9047 static inline __ATTRS_o_ai vector double
9048 vec_floor(vector double __a) {
9049   // On this platform, vec_floor never triggers the IEEE-inexact exception.
9050   return __builtin_s390_vfidb(__a, 4, 7);
9051 }
9052
9053 /*-- vec_roundz -------------------------------------------------------------*/
9054
9055 #if __ARCH__ >= 12
9056 static inline __ATTRS_o_ai vector float
9057 vec_roundz(vector float __a) {
9058   return __builtin_s390_vfisb(__a, 4, 5);
9059 }
9060 #endif
9061
9062 static inline __ATTRS_o_ai vector double
9063 vec_roundz(vector double __a) {
9064   return __builtin_s390_vfidb(__a, 4, 5);
9065 }
9066
9067 /*-- vec_trunc --------------------------------------------------------------*/
9068
9069 #if __ARCH__ >= 12
9070 static inline __ATTRS_o_ai vector float
9071 vec_trunc(vector float __a) {
9072   // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9073   return __builtin_s390_vfisb(__a, 4, 5);
9074 }
9075 #endif
9076
9077 static inline __ATTRS_o_ai vector double
9078 vec_trunc(vector double __a) {
9079   // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9080   return __builtin_s390_vfidb(__a, 4, 5);
9081 }
9082
9083 /*-- vec_roundc -------------------------------------------------------------*/
9084
9085 #if __ARCH__ >= 12
9086 static inline __ATTRS_o_ai vector float
9087 vec_roundc(vector float __a) {
9088   return __builtin_s390_vfisb(__a, 4, 0);
9089 }
9090 #endif
9091
9092 static inline __ATTRS_o_ai vector double
9093 vec_roundc(vector double __a) {
9094   return __builtin_s390_vfidb(__a, 4, 0);
9095 }
9096
9097 /*-- vec_rint ---------------------------------------------------------------*/
9098
9099 #if __ARCH__ >= 12
9100 static inline __ATTRS_o_ai vector float
9101 vec_rint(vector float __a) {
9102   // vec_rint may trigger the IEEE-inexact exception.
9103   return __builtin_s390_vfisb(__a, 0, 0);
9104 }
9105 #endif
9106
9107 static inline __ATTRS_o_ai vector double
9108 vec_rint(vector double __a) {
9109   // vec_rint may trigger the IEEE-inexact exception.
9110   return __builtin_s390_vfidb(__a, 0, 0);
9111 }
9112
9113 /*-- vec_round --------------------------------------------------------------*/
9114
9115 #if __ARCH__ >= 12
9116 static inline __ATTRS_o_ai vector float
9117 vec_round(vector float __a) {
9118   return __builtin_s390_vfisb(__a, 4, 4);
9119 }
9120 #endif
9121
9122 static inline __ATTRS_o_ai vector double
9123 vec_round(vector double __a) {
9124   return __builtin_s390_vfidb(__a, 4, 4);
9125 }
9126
9127 /*-- vec_fp_test_data_class -------------------------------------------------*/
9128
9129 #if __ARCH__ >= 12
9130 extern __ATTRS_o vector bool int
9131 vec_fp_test_data_class(vector float __a, int __b, int *__c)
9132   __constant_range(__b, 0, 4095);
9133
9134 extern __ATTRS_o vector bool long long
9135 vec_fp_test_data_class(vector double __a, int __b, int *__c)
9136   __constant_range(__b, 0, 4095);
9137
9138 #define vec_fp_test_data_class(X, Y, Z) \
9139   ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
9140    __extension__ ({ \
9141      vector unsigned char __res; \
9142      vector unsigned char __x = (vector unsigned char)(X); \
9143      int *__z = (Z); \
9144      switch (sizeof ((X)[0])) { \
9145      case 4:  __res = (vector unsigned char) \
9146                       __builtin_s390_vftcisb((vector float)__x, (Y), __z); \
9147               break; \
9148      default: __res = (vector unsigned char) \
9149                       __builtin_s390_vftcidb((vector double)__x, (Y), __z); \
9150               break; \
9151      } __res; }))
9152 #else
9153 #define vec_fp_test_data_class(X, Y, Z) \
9154   ((vector bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
9155 #endif
9156
9157 #define __VEC_CLASS_FP_ZERO_P (1 << 11)
9158 #define __VEC_CLASS_FP_ZERO_N (1 << 10)
9159 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
9160 #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
9161 #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
9162 #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
9163                                __VEC_CLASS_FP_NORMAL_N)
9164 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
9165 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
9166 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
9167                                   __VEC_CLASS_FP_SUBNORMAL_N)
9168 #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
9169 #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
9170 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
9171                                  __VEC_CLASS_FP_INFINITY_N)
9172 #define __VEC_CLASS_FP_QNAN_P (1 << 3)
9173 #define __VEC_CLASS_FP_QNAN_N (1 << 2)
9174 #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
9175 #define __VEC_CLASS_FP_SNAN_P (1 << 1)
9176 #define __VEC_CLASS_FP_SNAN_N (1 << 0)
9177 #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
9178 #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
9179 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
9180                                    __VEC_CLASS_FP_SUBNORMAL | \
9181                                    __VEC_CLASS_FP_ZERO | \
9182                                    __VEC_CLASS_FP_INFINITY)
9183
9184 /*-- vec_cp_until_zero ------------------------------------------------------*/
9185
9186 static inline __ATTRS_o_ai vector signed char
9187 vec_cp_until_zero(vector signed char __a) {
9188   return (vector signed char)__builtin_s390_vistrb((vector unsigned char)__a);
9189 }
9190
9191 static inline __ATTRS_o_ai vector bool char
9192 vec_cp_until_zero(vector bool char __a) {
9193   return (vector bool char)__builtin_s390_vistrb((vector unsigned char)__a);
9194 }
9195
9196 static inline __ATTRS_o_ai vector unsigned char
9197 vec_cp_until_zero(vector unsigned char __a) {
9198   return __builtin_s390_vistrb(__a);
9199 }
9200
9201 static inline __ATTRS_o_ai vector signed short
9202 vec_cp_until_zero(vector signed short __a) {
9203   return (vector signed short)__builtin_s390_vistrh((vector unsigned short)__a);
9204 }
9205
9206 static inline __ATTRS_o_ai vector bool short
9207 vec_cp_until_zero(vector bool short __a) {
9208   return (vector bool short)__builtin_s390_vistrh((vector unsigned short)__a);
9209 }
9210
9211 static inline __ATTRS_o_ai vector unsigned short
9212 vec_cp_until_zero(vector unsigned short __a) {
9213   return __builtin_s390_vistrh(__a);
9214 }
9215
9216 static inline __ATTRS_o_ai vector signed int
9217 vec_cp_until_zero(vector signed int __a) {
9218   return (vector signed int)__builtin_s390_vistrf((vector unsigned int)__a);
9219 }
9220
9221 static inline __ATTRS_o_ai vector bool int
9222 vec_cp_until_zero(vector bool int __a) {
9223   return (vector bool int)__builtin_s390_vistrf((vector unsigned int)__a);
9224 }
9225
9226 static inline __ATTRS_o_ai vector unsigned int
9227 vec_cp_until_zero(vector unsigned int __a) {
9228   return __builtin_s390_vistrf(__a);
9229 }
9230
9231 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
9232
9233 static inline __ATTRS_o_ai vector signed char
9234 vec_cp_until_zero_cc(vector signed char __a, int *__cc) {
9235   return (vector signed char)
9236     __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
9237 }
9238
9239 static inline __ATTRS_o_ai vector bool char
9240 vec_cp_until_zero_cc(vector bool char __a, int *__cc) {
9241   return (vector bool char)
9242     __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
9243 }
9244
9245 static inline __ATTRS_o_ai vector unsigned char
9246 vec_cp_until_zero_cc(vector unsigned char __a, int *__cc) {
9247   return __builtin_s390_vistrbs(__a, __cc);
9248 }
9249
9250 static inline __ATTRS_o_ai vector signed short
9251 vec_cp_until_zero_cc(vector signed short __a, int *__cc) {
9252   return (vector signed short)
9253     __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
9254 }
9255
9256 static inline __ATTRS_o_ai vector bool short
9257 vec_cp_until_zero_cc(vector bool short __a, int *__cc) {
9258   return (vector bool short)
9259     __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
9260 }
9261
9262 static inline __ATTRS_o_ai vector unsigned short
9263 vec_cp_until_zero_cc(vector unsigned short __a, int *__cc) {
9264   return __builtin_s390_vistrhs(__a, __cc);
9265 }
9266
9267 static inline __ATTRS_o_ai vector signed int
9268 vec_cp_until_zero_cc(vector signed int __a, int *__cc) {
9269   return (vector signed int)
9270     __builtin_s390_vistrfs((vector unsigned int)__a, __cc);
9271 }
9272
9273 static inline __ATTRS_o_ai vector bool int
9274 vec_cp_until_zero_cc(vector bool int __a, int *__cc) {
9275   return (vector bool int)__builtin_s390_vistrfs((vector unsigned int)__a,
9276                                                  __cc);
9277 }
9278
9279 static inline __ATTRS_o_ai vector unsigned int
9280 vec_cp_until_zero_cc(vector unsigned int __a, int *__cc) {
9281   return __builtin_s390_vistrfs(__a, __cc);
9282 }
9283
9284 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
9285
9286 static inline __ATTRS_o_ai vector signed char
9287 vec_cmpeq_idx(vector signed char __a, vector signed char __b) {
9288   return (vector signed char)
9289     __builtin_s390_vfeeb((vector unsigned char)__a,
9290                          (vector unsigned char)__b);
9291 }
9292
9293 static inline __ATTRS_o_ai vector unsigned char
9294 vec_cmpeq_idx(vector bool char __a, vector bool char __b) {
9295   return __builtin_s390_vfeeb((vector unsigned char)__a,
9296                               (vector unsigned char)__b);
9297 }
9298
9299 static inline __ATTRS_o_ai vector unsigned char
9300 vec_cmpeq_idx(vector unsigned char __a, vector unsigned char __b) {
9301   return __builtin_s390_vfeeb(__a, __b);
9302 }
9303
9304 static inline __ATTRS_o_ai vector signed short
9305 vec_cmpeq_idx(vector signed short __a, vector signed short __b) {
9306   return (vector signed short)
9307     __builtin_s390_vfeeh((vector unsigned short)__a,
9308                          (vector unsigned short)__b);
9309 }
9310
9311 static inline __ATTRS_o_ai vector unsigned short
9312 vec_cmpeq_idx(vector bool short __a, vector bool short __b) {
9313   return __builtin_s390_vfeeh((vector unsigned short)__a,
9314                               (vector unsigned short)__b);
9315 }
9316
9317 static inline __ATTRS_o_ai vector unsigned short
9318 vec_cmpeq_idx(vector unsigned short __a, vector unsigned short __b) {
9319   return __builtin_s390_vfeeh(__a, __b);
9320 }
9321
9322 static inline __ATTRS_o_ai vector signed int
9323 vec_cmpeq_idx(vector signed int __a, vector signed int __b) {
9324   return (vector signed int)
9325     __builtin_s390_vfeef((vector unsigned int)__a,
9326                          (vector unsigned int)__b);
9327 }
9328
9329 static inline __ATTRS_o_ai vector unsigned int
9330 vec_cmpeq_idx(vector bool int __a, vector bool int __b) {
9331   return __builtin_s390_vfeef((vector unsigned int)__a,
9332                               (vector unsigned int)__b);
9333 }
9334
9335 static inline __ATTRS_o_ai vector unsigned int
9336 vec_cmpeq_idx(vector unsigned int __a, vector unsigned int __b) {
9337   return __builtin_s390_vfeef(__a, __b);
9338 }
9339
9340 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
9341
9342 static inline __ATTRS_o_ai vector signed char
9343 vec_cmpeq_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
9344   return (vector signed char)
9345     __builtin_s390_vfeebs((vector unsigned char)__a,
9346                           (vector unsigned char)__b, __cc);
9347 }
9348
9349 static inline __ATTRS_o_ai vector unsigned char
9350 vec_cmpeq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9351   return __builtin_s390_vfeebs((vector unsigned char)__a,
9352                                (vector unsigned char)__b, __cc);
9353 }
9354
9355 static inline __ATTRS_o_ai vector unsigned char
9356 vec_cmpeq_idx_cc(vector unsigned char __a, vector unsigned char __b,
9357                  int *__cc) {
9358   return __builtin_s390_vfeebs(__a, __b, __cc);
9359 }
9360
9361 static inline __ATTRS_o_ai vector signed short
9362 vec_cmpeq_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
9363   return (vector signed short)
9364     __builtin_s390_vfeehs((vector unsigned short)__a,
9365                           (vector unsigned short)__b, __cc);
9366 }
9367
9368 static inline __ATTRS_o_ai vector unsigned short
9369 vec_cmpeq_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9370   return __builtin_s390_vfeehs((vector unsigned short)__a,
9371                                (vector unsigned short)__b, __cc);
9372 }
9373
9374 static inline __ATTRS_o_ai vector unsigned short
9375 vec_cmpeq_idx_cc(vector unsigned short __a, vector unsigned short __b,
9376                  int *__cc) {
9377   return __builtin_s390_vfeehs(__a, __b, __cc);
9378 }
9379
9380 static inline __ATTRS_o_ai vector signed int
9381 vec_cmpeq_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9382   return (vector signed int)
9383     __builtin_s390_vfeefs((vector unsigned int)__a,
9384                           (vector unsigned int)__b, __cc);
9385 }
9386
9387 static inline __ATTRS_o_ai vector unsigned int
9388 vec_cmpeq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9389   return __builtin_s390_vfeefs((vector unsigned int)__a,
9390                                (vector unsigned int)__b, __cc);
9391 }
9392
9393 static inline __ATTRS_o_ai vector unsigned int
9394 vec_cmpeq_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
9395   return __builtin_s390_vfeefs(__a, __b, __cc);
9396 }
9397
9398 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
9399
9400 static inline __ATTRS_o_ai vector signed char
9401 vec_cmpeq_or_0_idx(vector signed char __a, vector signed char __b) {
9402   return (vector signed char)
9403     __builtin_s390_vfeezb((vector unsigned char)__a,
9404                           (vector unsigned char)__b);
9405 }
9406
9407 static inline __ATTRS_o_ai vector unsigned char
9408 vec_cmpeq_or_0_idx(vector bool char __a, vector bool char __b) {
9409   return __builtin_s390_vfeezb((vector unsigned char)__a,
9410                                (vector unsigned char)__b);
9411 }
9412
9413 static inline __ATTRS_o_ai vector unsigned char
9414 vec_cmpeq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9415   return __builtin_s390_vfeezb(__a, __b);
9416 }
9417
9418 static inline __ATTRS_o_ai vector signed short
9419 vec_cmpeq_or_0_idx(vector signed short __a, vector signed short __b) {
9420   return (vector signed short)
9421     __builtin_s390_vfeezh((vector unsigned short)__a,
9422                           (vector unsigned short)__b);
9423 }
9424
9425 static inline __ATTRS_o_ai vector unsigned short
9426 vec_cmpeq_or_0_idx(vector bool short __a, vector bool short __b) {
9427   return __builtin_s390_vfeezh((vector unsigned short)__a,
9428                                (vector unsigned short)__b);
9429 }
9430
9431 static inline __ATTRS_o_ai vector unsigned short
9432 vec_cmpeq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
9433   return __builtin_s390_vfeezh(__a, __b);
9434 }
9435
9436 static inline __ATTRS_o_ai vector signed int
9437 vec_cmpeq_or_0_idx(vector signed int __a, vector signed int __b) {
9438   return (vector signed int)
9439     __builtin_s390_vfeezf((vector unsigned int)__a,
9440                           (vector unsigned int)__b);
9441 }
9442
9443 static inline __ATTRS_o_ai vector unsigned int
9444 vec_cmpeq_or_0_idx(vector bool int __a, vector bool int __b) {
9445   return __builtin_s390_vfeezf((vector unsigned int)__a,
9446                                (vector unsigned int)__b);
9447 }
9448
9449 static inline __ATTRS_o_ai vector unsigned int
9450 vec_cmpeq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
9451   return __builtin_s390_vfeezf(__a, __b);
9452 }
9453
9454 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
9455
9456 static inline __ATTRS_o_ai vector signed char
9457 vec_cmpeq_or_0_idx_cc(vector signed char __a, vector signed char __b,
9458                       int *__cc) {
9459   return (vector signed char)
9460     __builtin_s390_vfeezbs((vector unsigned char)__a,
9461                            (vector unsigned char)__b, __cc);
9462 }
9463
9464 static inline __ATTRS_o_ai vector unsigned char
9465 vec_cmpeq_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9466   return __builtin_s390_vfeezbs((vector unsigned char)__a,
9467                                 (vector unsigned char)__b, __cc);
9468 }
9469
9470 static inline __ATTRS_o_ai vector unsigned char
9471 vec_cmpeq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9472                       int *__cc) {
9473   return __builtin_s390_vfeezbs(__a, __b, __cc);
9474 }
9475
9476 static inline __ATTRS_o_ai vector signed short
9477 vec_cmpeq_or_0_idx_cc(vector signed short __a, vector signed short __b,
9478                       int *__cc) {
9479   return (vector signed short)
9480     __builtin_s390_vfeezhs((vector unsigned short)__a,
9481                            (vector unsigned short)__b, __cc);
9482 }
9483
9484 static inline __ATTRS_o_ai vector unsigned short
9485 vec_cmpeq_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9486   return __builtin_s390_vfeezhs((vector unsigned short)__a,
9487                                 (vector unsigned short)__b, __cc);
9488 }
9489
9490 static inline __ATTRS_o_ai vector unsigned short
9491 vec_cmpeq_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9492                       int *__cc) {
9493   return __builtin_s390_vfeezhs(__a, __b, __cc);
9494 }
9495
9496 static inline __ATTRS_o_ai vector signed int
9497 vec_cmpeq_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9498   return (vector signed int)
9499     __builtin_s390_vfeezfs((vector unsigned int)__a,
9500                            (vector unsigned int)__b, __cc);
9501 }
9502
9503 static inline __ATTRS_o_ai vector unsigned int
9504 vec_cmpeq_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9505   return __builtin_s390_vfeezfs((vector unsigned int)__a,
9506                                 (vector unsigned int)__b, __cc);
9507 }
9508
9509 static inline __ATTRS_o_ai vector unsigned int
9510 vec_cmpeq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9511                       int *__cc) {
9512   return __builtin_s390_vfeezfs(__a, __b, __cc);
9513 }
9514
9515 /*-- vec_cmpne_idx ----------------------------------------------------------*/
9516
9517 static inline __ATTRS_o_ai vector signed char
9518 vec_cmpne_idx(vector signed char __a, vector signed char __b) {
9519   return (vector signed char)
9520     __builtin_s390_vfeneb((vector unsigned char)__a,
9521                           (vector unsigned char)__b);
9522 }
9523
9524 static inline __ATTRS_o_ai vector unsigned char
9525 vec_cmpne_idx(vector bool char __a, vector bool char __b) {
9526   return __builtin_s390_vfeneb((vector unsigned char)__a,
9527                                (vector unsigned char)__b);
9528 }
9529
9530 static inline __ATTRS_o_ai vector unsigned char
9531 vec_cmpne_idx(vector unsigned char __a, vector unsigned char __b) {
9532   return __builtin_s390_vfeneb(__a, __b);
9533 }
9534
9535 static inline __ATTRS_o_ai vector signed short
9536 vec_cmpne_idx(vector signed short __a, vector signed short __b) {
9537   return (vector signed short)
9538     __builtin_s390_vfeneh((vector unsigned short)__a,
9539                           (vector unsigned short)__b);
9540 }
9541
9542 static inline __ATTRS_o_ai vector unsigned short
9543 vec_cmpne_idx(vector bool short __a, vector bool short __b) {
9544   return __builtin_s390_vfeneh((vector unsigned short)__a,
9545                                (vector unsigned short)__b);
9546 }
9547
9548 static inline __ATTRS_o_ai vector unsigned short
9549 vec_cmpne_idx(vector unsigned short __a, vector unsigned short __b) {
9550   return __builtin_s390_vfeneh(__a, __b);
9551 }
9552
9553 static inline __ATTRS_o_ai vector signed int
9554 vec_cmpne_idx(vector signed int __a, vector signed int __b) {
9555   return (vector signed int)
9556     __builtin_s390_vfenef((vector unsigned int)__a,
9557                           (vector unsigned int)__b);
9558 }
9559
9560 static inline __ATTRS_o_ai vector unsigned int
9561 vec_cmpne_idx(vector bool int __a, vector bool int __b) {
9562   return __builtin_s390_vfenef((vector unsigned int)__a,
9563                                (vector unsigned int)__b);
9564 }
9565
9566 static inline __ATTRS_o_ai vector unsigned int
9567 vec_cmpne_idx(vector unsigned int __a, vector unsigned int __b) {
9568   return __builtin_s390_vfenef(__a, __b);
9569 }
9570
9571 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
9572
9573 static inline __ATTRS_o_ai vector signed char
9574 vec_cmpne_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
9575   return (vector signed char)
9576     __builtin_s390_vfenebs((vector unsigned char)__a,
9577                            (vector unsigned char)__b, __cc);
9578 }
9579
9580 static inline __ATTRS_o_ai vector unsigned char
9581 vec_cmpne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9582   return __builtin_s390_vfenebs((vector unsigned char)__a,
9583                                 (vector unsigned char)__b, __cc);
9584 }
9585
9586 static inline __ATTRS_o_ai vector unsigned char
9587 vec_cmpne_idx_cc(vector unsigned char __a, vector unsigned char __b,
9588                  int *__cc) {
9589   return __builtin_s390_vfenebs(__a, __b, __cc);
9590 }
9591
9592 static inline __ATTRS_o_ai vector signed short
9593 vec_cmpne_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
9594   return (vector signed short)
9595     __builtin_s390_vfenehs((vector unsigned short)__a,
9596                            (vector unsigned short)__b, __cc);
9597 }
9598
9599 static inline __ATTRS_o_ai vector unsigned short
9600 vec_cmpne_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9601   return __builtin_s390_vfenehs((vector unsigned short)__a,
9602                                 (vector unsigned short)__b, __cc);
9603 }
9604
9605 static inline __ATTRS_o_ai vector unsigned short
9606 vec_cmpne_idx_cc(vector unsigned short __a, vector unsigned short __b,
9607                  int *__cc) {
9608   return __builtin_s390_vfenehs(__a, __b, __cc);
9609 }
9610
9611 static inline __ATTRS_o_ai vector signed int
9612 vec_cmpne_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9613   return (vector signed int)
9614     __builtin_s390_vfenefs((vector unsigned int)__a,
9615                            (vector unsigned int)__b, __cc);
9616 }
9617
9618 static inline __ATTRS_o_ai vector unsigned int
9619 vec_cmpne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9620   return __builtin_s390_vfenefs((vector unsigned int)__a,
9621                                 (vector unsigned int)__b, __cc);
9622 }
9623
9624 static inline __ATTRS_o_ai vector unsigned int
9625 vec_cmpne_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
9626   return __builtin_s390_vfenefs(__a, __b, __cc);
9627 }
9628
9629 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
9630
9631 static inline __ATTRS_o_ai vector signed char
9632 vec_cmpne_or_0_idx(vector signed char __a, vector signed char __b) {
9633   return (vector signed char)
9634     __builtin_s390_vfenezb((vector unsigned char)__a,
9635                            (vector unsigned char)__b);
9636 }
9637
9638 static inline __ATTRS_o_ai vector unsigned char
9639 vec_cmpne_or_0_idx(vector bool char __a, vector bool char __b) {
9640   return __builtin_s390_vfenezb((vector unsigned char)__a,
9641                                 (vector unsigned char)__b);
9642 }
9643
9644 static inline __ATTRS_o_ai vector unsigned char
9645 vec_cmpne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9646   return __builtin_s390_vfenezb(__a, __b);
9647 }
9648
9649 static inline __ATTRS_o_ai vector signed short
9650 vec_cmpne_or_0_idx(vector signed short __a, vector signed short __b) {
9651   return (vector signed short)
9652     __builtin_s390_vfenezh((vector unsigned short)__a,
9653                            (vector unsigned short)__b);
9654 }
9655
9656 static inline __ATTRS_o_ai vector unsigned short
9657 vec_cmpne_or_0_idx(vector bool short __a, vector bool short __b) {
9658   return __builtin_s390_vfenezh((vector unsigned short)__a,
9659                                 (vector unsigned short)__b);
9660 }
9661
9662 static inline __ATTRS_o_ai vector unsigned short
9663 vec_cmpne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
9664   return __builtin_s390_vfenezh(__a, __b);
9665 }
9666
9667 static inline __ATTRS_o_ai vector signed int
9668 vec_cmpne_or_0_idx(vector signed int __a, vector signed int __b) {
9669   return (vector signed int)
9670     __builtin_s390_vfenezf((vector unsigned int)__a,
9671                            (vector unsigned int)__b);
9672 }
9673
9674 static inline __ATTRS_o_ai vector unsigned int
9675 vec_cmpne_or_0_idx(vector bool int __a, vector bool int __b) {
9676   return __builtin_s390_vfenezf((vector unsigned int)__a,
9677                                 (vector unsigned int)__b);
9678 }
9679
9680 static inline __ATTRS_o_ai vector unsigned int
9681 vec_cmpne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
9682   return __builtin_s390_vfenezf(__a, __b);
9683 }
9684
9685 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
9686
9687 static inline __ATTRS_o_ai vector signed char
9688 vec_cmpne_or_0_idx_cc(vector signed char __a, vector signed char __b,
9689                       int *__cc) {
9690   return (vector signed char)
9691     __builtin_s390_vfenezbs((vector unsigned char)__a,
9692                             (vector unsigned char)__b, __cc);
9693 }
9694
9695 static inline __ATTRS_o_ai vector unsigned char
9696 vec_cmpne_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9697   return __builtin_s390_vfenezbs((vector unsigned char)__a,
9698                                  (vector unsigned char)__b, __cc);
9699 }
9700
9701 static inline __ATTRS_o_ai vector unsigned char
9702 vec_cmpne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9703                       int *__cc) {
9704   return __builtin_s390_vfenezbs(__a, __b, __cc);
9705 }
9706
9707 static inline __ATTRS_o_ai vector signed short
9708 vec_cmpne_or_0_idx_cc(vector signed short __a, vector signed short __b,
9709                       int *__cc) {
9710   return (vector signed short)
9711     __builtin_s390_vfenezhs((vector unsigned short)__a,
9712                             (vector unsigned short)__b, __cc);
9713 }
9714
9715 static inline __ATTRS_o_ai vector unsigned short
9716 vec_cmpne_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9717   return __builtin_s390_vfenezhs((vector unsigned short)__a,
9718                                  (vector unsigned short)__b, __cc);
9719 }
9720
9721 static inline __ATTRS_o_ai vector unsigned short
9722 vec_cmpne_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9723                       int *__cc) {
9724   return __builtin_s390_vfenezhs(__a, __b, __cc);
9725 }
9726
9727 static inline __ATTRS_o_ai vector signed int
9728 vec_cmpne_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9729   return (vector signed int)
9730     __builtin_s390_vfenezfs((vector unsigned int)__a,
9731                             (vector unsigned int)__b, __cc);
9732 }
9733
9734 static inline __ATTRS_o_ai vector unsigned int
9735 vec_cmpne_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9736   return __builtin_s390_vfenezfs((vector unsigned int)__a,
9737                                  (vector unsigned int)__b, __cc);
9738 }
9739
9740 static inline __ATTRS_o_ai vector unsigned int
9741 vec_cmpne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9742                       int *__cc) {
9743   return __builtin_s390_vfenezfs(__a, __b, __cc);
9744 }
9745
9746 /*-- vec_cmprg --------------------------------------------------------------*/
9747
9748 static inline __ATTRS_o_ai vector bool char
9749 vec_cmprg(vector unsigned char __a, vector unsigned char __b,
9750           vector unsigned char __c) {
9751   return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
9752 }
9753
9754 static inline __ATTRS_o_ai vector bool short
9755 vec_cmprg(vector unsigned short __a, vector unsigned short __b,
9756           vector unsigned short __c) {
9757   return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
9758 }
9759
9760 static inline __ATTRS_o_ai vector bool int
9761 vec_cmprg(vector unsigned int __a, vector unsigned int __b,
9762           vector unsigned int __c) {
9763   return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
9764 }
9765
9766 /*-- vec_cmprg_cc -----------------------------------------------------------*/
9767
9768 static inline __ATTRS_o_ai vector bool char
9769 vec_cmprg_cc(vector unsigned char __a, vector unsigned char __b,
9770              vector unsigned char __c, int *__cc) {
9771   return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
9772 }
9773
9774 static inline __ATTRS_o_ai vector bool short
9775 vec_cmprg_cc(vector unsigned short __a, vector unsigned short __b,
9776              vector unsigned short __c, int *__cc) {
9777   return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
9778 }
9779
9780 static inline __ATTRS_o_ai vector bool int
9781 vec_cmprg_cc(vector unsigned int __a, vector unsigned int __b,
9782              vector unsigned int __c, int *__cc) {
9783   return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
9784 }
9785
9786 /*-- vec_cmprg_idx ----------------------------------------------------------*/
9787
9788 static inline __ATTRS_o_ai vector unsigned char
9789 vec_cmprg_idx(vector unsigned char __a, vector unsigned char __b,
9790               vector unsigned char __c) {
9791   return __builtin_s390_vstrcb(__a, __b, __c, 0);
9792 }
9793
9794 static inline __ATTRS_o_ai vector unsigned short
9795 vec_cmprg_idx(vector unsigned short __a, vector unsigned short __b,
9796               vector unsigned short __c) {
9797   return __builtin_s390_vstrch(__a, __b, __c, 0);
9798 }
9799
9800 static inline __ATTRS_o_ai vector unsigned int
9801 vec_cmprg_idx(vector unsigned int __a, vector unsigned int __b,
9802               vector unsigned int __c) {
9803   return __builtin_s390_vstrcf(__a, __b, __c, 0);
9804 }
9805
9806 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
9807
9808 static inline __ATTRS_o_ai vector unsigned char
9809 vec_cmprg_idx_cc(vector unsigned char __a, vector unsigned char __b,
9810                  vector unsigned char __c, int *__cc) {
9811   return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
9812 }
9813
9814 static inline __ATTRS_o_ai vector unsigned short
9815 vec_cmprg_idx_cc(vector unsigned short __a, vector unsigned short __b,
9816                  vector unsigned short __c, int *__cc) {
9817   return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
9818 }
9819
9820 static inline __ATTRS_o_ai vector unsigned int
9821 vec_cmprg_idx_cc(vector unsigned int __a, vector unsigned int __b,
9822                  vector unsigned int __c, int *__cc) {
9823   return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
9824 }
9825
9826 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
9827
9828 static inline __ATTRS_o_ai vector unsigned char
9829 vec_cmprg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
9830                    vector unsigned char __c) {
9831   return __builtin_s390_vstrczb(__a, __b, __c, 0);
9832 }
9833
9834 static inline __ATTRS_o_ai vector unsigned short
9835 vec_cmprg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
9836                    vector unsigned short __c) {
9837   return __builtin_s390_vstrczh(__a, __b, __c, 0);
9838 }
9839
9840 static inline __ATTRS_o_ai vector unsigned int
9841 vec_cmprg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
9842                    vector unsigned int __c) {
9843   return __builtin_s390_vstrczf(__a, __b, __c, 0);
9844 }
9845
9846 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
9847
9848 static inline __ATTRS_o_ai vector unsigned char
9849 vec_cmprg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9850                       vector unsigned char __c, int *__cc) {
9851   return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
9852 }
9853
9854 static inline __ATTRS_o_ai vector unsigned short
9855 vec_cmprg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9856                       vector unsigned short __c, int *__cc) {
9857   return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
9858 }
9859
9860 static inline __ATTRS_o_ai vector unsigned int
9861 vec_cmprg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9862                       vector unsigned int __c, int *__cc) {
9863   return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
9864 }
9865
9866 /*-- vec_cmpnrg -------------------------------------------------------------*/
9867
9868 static inline __ATTRS_o_ai vector bool char
9869 vec_cmpnrg(vector unsigned char __a, vector unsigned char __b,
9870            vector unsigned char __c) {
9871   return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
9872 }
9873
9874 static inline __ATTRS_o_ai vector bool short
9875 vec_cmpnrg(vector unsigned short __a, vector unsigned short __b,
9876            vector unsigned short __c) {
9877   return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
9878 }
9879
9880 static inline __ATTRS_o_ai vector bool int
9881 vec_cmpnrg(vector unsigned int __a, vector unsigned int __b,
9882            vector unsigned int __c) {
9883   return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
9884 }
9885
9886 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
9887
9888 static inline __ATTRS_o_ai vector bool char
9889 vec_cmpnrg_cc(vector unsigned char __a, vector unsigned char __b,
9890               vector unsigned char __c, int *__cc) {
9891   return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
9892 }
9893
9894 static inline __ATTRS_o_ai vector bool short
9895 vec_cmpnrg_cc(vector unsigned short __a, vector unsigned short __b,
9896               vector unsigned short __c, int *__cc) {
9897   return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
9898 }
9899
9900 static inline __ATTRS_o_ai vector bool int
9901 vec_cmpnrg_cc(vector unsigned int __a, vector unsigned int __b,
9902               vector unsigned int __c, int *__cc) {
9903   return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
9904 }
9905
9906 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
9907
9908 static inline __ATTRS_o_ai vector unsigned char
9909 vec_cmpnrg_idx(vector unsigned char __a, vector unsigned char __b,
9910                vector unsigned char __c) {
9911   return __builtin_s390_vstrcb(__a, __b, __c, 8);
9912 }
9913
9914 static inline __ATTRS_o_ai vector unsigned short
9915 vec_cmpnrg_idx(vector unsigned short __a, vector unsigned short __b,
9916                vector unsigned short __c) {
9917   return __builtin_s390_vstrch(__a, __b, __c, 8);
9918 }
9919
9920 static inline __ATTRS_o_ai vector unsigned int
9921 vec_cmpnrg_idx(vector unsigned int __a, vector unsigned int __b,
9922                vector unsigned int __c) {
9923   return __builtin_s390_vstrcf(__a, __b, __c, 8);
9924 }
9925
9926 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
9927
9928 static inline __ATTRS_o_ai vector unsigned char
9929 vec_cmpnrg_idx_cc(vector unsigned char __a, vector unsigned char __b,
9930                   vector unsigned char __c, int *__cc) {
9931   return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
9932 }
9933
9934 static inline __ATTRS_o_ai vector unsigned short
9935 vec_cmpnrg_idx_cc(vector unsigned short __a, vector unsigned short __b,
9936                   vector unsigned short __c, int *__cc) {
9937   return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
9938 }
9939
9940 static inline __ATTRS_o_ai vector unsigned int
9941 vec_cmpnrg_idx_cc(vector unsigned int __a, vector unsigned int __b,
9942                   vector unsigned int __c, int *__cc) {
9943   return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
9944 }
9945
9946 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
9947
9948 static inline __ATTRS_o_ai vector unsigned char
9949 vec_cmpnrg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
9950                     vector unsigned char __c) {
9951   return __builtin_s390_vstrczb(__a, __b, __c, 8);
9952 }
9953
9954 static inline __ATTRS_o_ai vector unsigned short
9955 vec_cmpnrg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
9956                     vector unsigned short __c) {
9957   return __builtin_s390_vstrczh(__a, __b, __c, 8);
9958 }
9959
9960 static inline __ATTRS_o_ai vector unsigned int
9961 vec_cmpnrg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
9962                     vector unsigned int __c) {
9963   return __builtin_s390_vstrczf(__a, __b, __c, 8);
9964 }
9965
9966 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
9967
9968 static inline __ATTRS_o_ai vector unsigned char
9969 vec_cmpnrg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9970                        vector unsigned char __c, int *__cc) {
9971   return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
9972 }
9973
9974 static inline __ATTRS_o_ai vector unsigned short
9975 vec_cmpnrg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9976                        vector unsigned short __c, int *__cc) {
9977   return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
9978 }
9979
9980 static inline __ATTRS_o_ai vector unsigned int
9981 vec_cmpnrg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9982                        vector unsigned int __c, int *__cc) {
9983   return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
9984 }
9985
9986 /*-- vec_find_any_eq --------------------------------------------------------*/
9987
9988 static inline __ATTRS_o_ai vector bool char
9989 vec_find_any_eq(vector signed char __a, vector signed char __b) {
9990   return (vector bool char)
9991     __builtin_s390_vfaeb((vector unsigned char)__a,
9992                          (vector unsigned char)__b, 4);
9993 }
9994
9995 static inline __ATTRS_o_ai vector bool char
9996 vec_find_any_eq(vector bool char __a, vector bool char __b) {
9997   return (vector bool char)
9998     __builtin_s390_vfaeb((vector unsigned char)__a,
9999                          (vector unsigned char)__b, 4);
10000 }
10001
10002 static inline __ATTRS_o_ai vector bool char
10003 vec_find_any_eq(vector unsigned char __a, vector unsigned char __b) {
10004   return (vector bool char)__builtin_s390_vfaeb(__a, __b, 4);
10005 }
10006
10007 static inline __ATTRS_o_ai vector bool short
10008 vec_find_any_eq(vector signed short __a, vector signed short __b) {
10009   return (vector bool short)
10010     __builtin_s390_vfaeh((vector unsigned short)__a,
10011                          (vector unsigned short)__b, 4);
10012 }
10013
10014 static inline __ATTRS_o_ai vector bool short
10015 vec_find_any_eq(vector bool short __a, vector bool short __b) {
10016   return (vector bool short)
10017     __builtin_s390_vfaeh((vector unsigned short)__a,
10018                          (vector unsigned short)__b, 4);
10019 }
10020
10021 static inline __ATTRS_o_ai vector bool short
10022 vec_find_any_eq(vector unsigned short __a, vector unsigned short __b) {
10023   return (vector bool short)__builtin_s390_vfaeh(__a, __b, 4);
10024 }
10025
10026 static inline __ATTRS_o_ai vector bool int
10027 vec_find_any_eq(vector signed int __a, vector signed int __b) {
10028   return (vector bool int)
10029     __builtin_s390_vfaef((vector unsigned int)__a,
10030                          (vector unsigned int)__b, 4);
10031 }
10032
10033 static inline __ATTRS_o_ai vector bool int
10034 vec_find_any_eq(vector bool int __a, vector bool int __b) {
10035   return (vector bool int)
10036     __builtin_s390_vfaef((vector unsigned int)__a,
10037                          (vector unsigned int)__b, 4);
10038 }
10039
10040 static inline __ATTRS_o_ai vector bool int
10041 vec_find_any_eq(vector unsigned int __a, vector unsigned int __b) {
10042   return (vector bool int)__builtin_s390_vfaef(__a, __b, 4);
10043 }
10044
10045 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
10046
10047 static inline __ATTRS_o_ai vector bool char
10048 vec_find_any_eq_cc(vector signed char __a, vector signed char __b, int *__cc) {
10049   return (vector bool char)
10050     __builtin_s390_vfaebs((vector unsigned char)__a,
10051                           (vector unsigned char)__b, 4, __cc);
10052 }
10053
10054 static inline __ATTRS_o_ai vector bool char
10055 vec_find_any_eq_cc(vector bool char __a, vector bool char __b, int *__cc) {
10056   return (vector bool char)
10057     __builtin_s390_vfaebs((vector unsigned char)__a,
10058                           (vector unsigned char)__b, 4, __cc);
10059 }
10060
10061 static inline __ATTRS_o_ai vector bool char
10062 vec_find_any_eq_cc(vector unsigned char __a, vector unsigned char __b,
10063                    int *__cc) {
10064   return (vector bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
10065 }
10066
10067 static inline __ATTRS_o_ai vector bool short
10068 vec_find_any_eq_cc(vector signed short __a, vector signed short __b,
10069                    int *__cc) {
10070   return (vector bool short)
10071     __builtin_s390_vfaehs((vector unsigned short)__a,
10072                           (vector unsigned short)__b, 4, __cc);
10073 }
10074
10075 static inline __ATTRS_o_ai vector bool short
10076 vec_find_any_eq_cc(vector bool short __a, vector bool short __b, int *__cc) {
10077   return (vector bool short)
10078     __builtin_s390_vfaehs((vector unsigned short)__a,
10079                           (vector unsigned short)__b, 4, __cc);
10080 }
10081
10082 static inline __ATTRS_o_ai vector bool short
10083 vec_find_any_eq_cc(vector unsigned short __a, vector unsigned short __b,
10084                    int *__cc) {
10085   return (vector bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
10086 }
10087
10088 static inline __ATTRS_o_ai vector bool int
10089 vec_find_any_eq_cc(vector signed int __a, vector signed int __b, int *__cc) {
10090   return (vector bool int)
10091     __builtin_s390_vfaefs((vector unsigned int)__a,
10092                           (vector unsigned int)__b, 4, __cc);
10093 }
10094
10095 static inline __ATTRS_o_ai vector bool int
10096 vec_find_any_eq_cc(vector bool int __a, vector bool int __b, int *__cc) {
10097   return (vector bool int)
10098     __builtin_s390_vfaefs((vector unsigned int)__a,
10099                           (vector unsigned int)__b, 4, __cc);
10100 }
10101
10102 static inline __ATTRS_o_ai vector bool int
10103 vec_find_any_eq_cc(vector unsigned int __a, vector unsigned int __b,
10104                    int *__cc) {
10105   return (vector bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
10106 }
10107
10108 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
10109
10110 static inline __ATTRS_o_ai vector signed char
10111 vec_find_any_eq_idx(vector signed char __a, vector signed char __b) {
10112   return (vector signed char)
10113     __builtin_s390_vfaeb((vector unsigned char)__a,
10114                          (vector unsigned char)__b, 0);
10115 }
10116
10117 static inline __ATTRS_o_ai vector unsigned char
10118 vec_find_any_eq_idx(vector bool char __a, vector bool char __b) {
10119   return __builtin_s390_vfaeb((vector unsigned char)__a,
10120                               (vector unsigned char)__b, 0);
10121 }
10122
10123 static inline __ATTRS_o_ai vector unsigned char
10124 vec_find_any_eq_idx(vector unsigned char __a, vector unsigned char __b) {
10125   return __builtin_s390_vfaeb(__a, __b, 0);
10126 }
10127
10128 static inline __ATTRS_o_ai vector signed short
10129 vec_find_any_eq_idx(vector signed short __a, vector signed short __b) {
10130   return (vector signed short)
10131     __builtin_s390_vfaeh((vector unsigned short)__a,
10132                          (vector unsigned short)__b, 0);
10133 }
10134
10135 static inline __ATTRS_o_ai vector unsigned short
10136 vec_find_any_eq_idx(vector bool short __a, vector bool short __b) {
10137   return __builtin_s390_vfaeh((vector unsigned short)__a,
10138                               (vector unsigned short)__b, 0);
10139 }
10140
10141 static inline __ATTRS_o_ai vector unsigned short
10142 vec_find_any_eq_idx(vector unsigned short __a, vector unsigned short __b) {
10143   return __builtin_s390_vfaeh(__a, __b, 0);
10144 }
10145
10146 static inline __ATTRS_o_ai vector signed int
10147 vec_find_any_eq_idx(vector signed int __a, vector signed int __b) {
10148   return (vector signed int)
10149     __builtin_s390_vfaef((vector unsigned int)__a,
10150                          (vector unsigned int)__b, 0);
10151 }
10152
10153 static inline __ATTRS_o_ai vector unsigned int
10154 vec_find_any_eq_idx(vector bool int __a, vector bool int __b) {
10155   return __builtin_s390_vfaef((vector unsigned int)__a,
10156                               (vector unsigned int)__b, 0);
10157 }
10158
10159 static inline __ATTRS_o_ai vector unsigned int
10160 vec_find_any_eq_idx(vector unsigned int __a, vector unsigned int __b) {
10161   return __builtin_s390_vfaef(__a, __b, 0);
10162 }
10163
10164 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
10165
10166 static inline __ATTRS_o_ai vector signed char
10167 vec_find_any_eq_idx_cc(vector signed char __a, vector signed char __b,
10168                        int *__cc) {
10169   return (vector signed char)
10170     __builtin_s390_vfaebs((vector unsigned char)__a,
10171                           (vector unsigned char)__b, 0, __cc);
10172 }
10173
10174 static inline __ATTRS_o_ai vector unsigned char
10175 vec_find_any_eq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
10176   return __builtin_s390_vfaebs((vector unsigned char)__a,
10177                                (vector unsigned char)__b, 0, __cc);
10178 }
10179
10180 static inline __ATTRS_o_ai vector unsigned char
10181 vec_find_any_eq_idx_cc(vector unsigned char __a, vector unsigned char __b,
10182                        int *__cc) {
10183   return __builtin_s390_vfaebs(__a, __b, 0, __cc);
10184 }
10185
10186 static inline __ATTRS_o_ai vector signed short
10187 vec_find_any_eq_idx_cc(vector signed short __a, vector signed short __b,
10188                        int *__cc) {
10189   return (vector signed short)
10190     __builtin_s390_vfaehs((vector unsigned short)__a,
10191                           (vector unsigned short)__b, 0, __cc);
10192 }
10193
10194 static inline __ATTRS_o_ai vector unsigned short
10195 vec_find_any_eq_idx_cc(vector bool short __a, vector bool short __b,
10196                        int *__cc) {
10197   return __builtin_s390_vfaehs((vector unsigned short)__a,
10198                                (vector unsigned short)__b, 0, __cc);
10199 }
10200
10201 static inline __ATTRS_o_ai vector unsigned short
10202 vec_find_any_eq_idx_cc(vector unsigned short __a, vector unsigned short __b,
10203                        int *__cc) {
10204   return __builtin_s390_vfaehs(__a, __b, 0, __cc);
10205 }
10206
10207 static inline __ATTRS_o_ai vector signed int
10208 vec_find_any_eq_idx_cc(vector signed int __a, vector signed int __b,
10209                        int *__cc) {
10210   return (vector signed int)
10211     __builtin_s390_vfaefs((vector unsigned int)__a,
10212                           (vector unsigned int)__b, 0, __cc);
10213 }
10214
10215 static inline __ATTRS_o_ai vector unsigned int
10216 vec_find_any_eq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
10217   return __builtin_s390_vfaefs((vector unsigned int)__a,
10218                                (vector unsigned int)__b, 0, __cc);
10219 }
10220
10221 static inline __ATTRS_o_ai vector unsigned int
10222 vec_find_any_eq_idx_cc(vector unsigned int __a, vector unsigned int __b,
10223                        int *__cc) {
10224   return __builtin_s390_vfaefs(__a, __b, 0, __cc);
10225 }
10226
10227 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
10228
10229 static inline __ATTRS_o_ai vector signed char
10230 vec_find_any_eq_or_0_idx(vector signed char __a, vector signed char __b) {
10231   return (vector signed char)
10232     __builtin_s390_vfaezb((vector unsigned char)__a,
10233                           (vector unsigned char)__b, 0);
10234 }
10235
10236 static inline __ATTRS_o_ai vector unsigned char
10237 vec_find_any_eq_or_0_idx(vector bool char __a, vector bool char __b) {
10238   return __builtin_s390_vfaezb((vector unsigned char)__a,
10239                                (vector unsigned char)__b, 0);
10240 }
10241
10242 static inline __ATTRS_o_ai vector unsigned char
10243 vec_find_any_eq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
10244   return __builtin_s390_vfaezb(__a, __b, 0);
10245 }
10246
10247 static inline __ATTRS_o_ai vector signed short
10248 vec_find_any_eq_or_0_idx(vector signed short __a, vector signed short __b) {
10249   return (vector signed short)
10250     __builtin_s390_vfaezh((vector unsigned short)__a,
10251                           (vector unsigned short)__b, 0);
10252 }
10253
10254 static inline __ATTRS_o_ai vector unsigned short
10255 vec_find_any_eq_or_0_idx(vector bool short __a, vector bool short __b) {
10256   return __builtin_s390_vfaezh((vector unsigned short)__a,
10257                                (vector unsigned short)__b, 0);
10258 }
10259
10260 static inline __ATTRS_o_ai vector unsigned short
10261 vec_find_any_eq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
10262   return __builtin_s390_vfaezh(__a, __b, 0);
10263 }
10264
10265 static inline __ATTRS_o_ai vector signed int
10266 vec_find_any_eq_or_0_idx(vector signed int __a, vector signed int __b) {
10267   return (vector signed int)
10268     __builtin_s390_vfaezf((vector unsigned int)__a,
10269                           (vector unsigned int)__b, 0);
10270 }
10271
10272 static inline __ATTRS_o_ai vector unsigned int
10273 vec_find_any_eq_or_0_idx(vector bool int __a, vector bool int __b) {
10274   return __builtin_s390_vfaezf((vector unsigned int)__a,
10275                                (vector unsigned int)__b, 0);
10276 }
10277
10278 static inline __ATTRS_o_ai vector unsigned int
10279 vec_find_any_eq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
10280   return __builtin_s390_vfaezf(__a, __b, 0);
10281 }
10282
10283 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
10284
10285 static inline __ATTRS_o_ai vector signed char
10286 vec_find_any_eq_or_0_idx_cc(vector signed char __a, vector signed char __b,
10287                             int *__cc) {
10288   return (vector signed char)
10289     __builtin_s390_vfaezbs((vector unsigned char)__a,
10290                            (vector unsigned char)__b, 0, __cc);
10291 }
10292
10293 static inline __ATTRS_o_ai vector unsigned char
10294 vec_find_any_eq_or_0_idx_cc(vector bool char __a, vector bool char __b,
10295                             int *__cc) {
10296   return __builtin_s390_vfaezbs((vector unsigned char)__a,
10297                                 (vector unsigned char)__b, 0, __cc);
10298 }
10299
10300 static inline __ATTRS_o_ai vector unsigned char
10301 vec_find_any_eq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
10302                             int *__cc) {
10303   return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
10304 }
10305
10306 static inline __ATTRS_o_ai vector signed short
10307 vec_find_any_eq_or_0_idx_cc(vector signed short __a, vector signed short __b,
10308                             int *__cc) {
10309   return (vector signed short)
10310     __builtin_s390_vfaezhs((vector unsigned short)__a,
10311                            (vector unsigned short)__b, 0, __cc);
10312 }
10313
10314 static inline __ATTRS_o_ai vector unsigned short
10315 vec_find_any_eq_or_0_idx_cc(vector bool short __a, vector bool short __b,
10316                             int *__cc) {
10317   return __builtin_s390_vfaezhs((vector unsigned short)__a,
10318                                 (vector unsigned short)__b, 0, __cc);
10319 }
10320
10321 static inline __ATTRS_o_ai vector unsigned short
10322 vec_find_any_eq_or_0_idx_cc(vector unsigned short __a,
10323                             vector unsigned short __b, int *__cc) {
10324   return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
10325 }
10326
10327 static inline __ATTRS_o_ai vector signed int
10328 vec_find_any_eq_or_0_idx_cc(vector signed int __a, vector signed int __b,
10329                             int *__cc) {
10330   return (vector signed int)
10331     __builtin_s390_vfaezfs((vector unsigned int)__a,
10332                            (vector unsigned int)__b, 0, __cc);
10333 }
10334
10335 static inline __ATTRS_o_ai vector unsigned int
10336 vec_find_any_eq_or_0_idx_cc(vector bool int __a, vector bool int __b,
10337                             int *__cc) {
10338   return __builtin_s390_vfaezfs((vector unsigned int)__a,
10339                                 (vector unsigned int)__b, 0, __cc);
10340 }
10341
10342 static inline __ATTRS_o_ai vector unsigned int
10343 vec_find_any_eq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
10344                             int *__cc) {
10345   return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
10346 }
10347
10348 /*-- vec_find_any_ne --------------------------------------------------------*/
10349
10350 static inline __ATTRS_o_ai vector bool char
10351 vec_find_any_ne(vector signed char __a, vector signed char __b) {
10352   return (vector bool char)
10353     __builtin_s390_vfaeb((vector unsigned char)__a,
10354                          (vector unsigned char)__b, 12);
10355 }
10356
10357 static inline __ATTRS_o_ai vector bool char
10358 vec_find_any_ne(vector bool char __a, vector bool char __b) {
10359   return (vector bool char)
10360     __builtin_s390_vfaeb((vector unsigned char)__a,
10361                          (vector unsigned char)__b, 12);
10362 }
10363
10364 static inline __ATTRS_o_ai vector bool char
10365 vec_find_any_ne(vector unsigned char __a, vector unsigned char __b) {
10366   return (vector bool char)__builtin_s390_vfaeb(__a, __b, 12);
10367 }
10368
10369 static inline __ATTRS_o_ai vector bool short
10370 vec_find_any_ne(vector signed short __a, vector signed short __b) {
10371   return (vector bool short)
10372     __builtin_s390_vfaeh((vector unsigned short)__a,
10373                          (vector unsigned short)__b, 12);
10374 }
10375
10376 static inline __ATTRS_o_ai vector bool short
10377 vec_find_any_ne(vector bool short __a, vector bool short __b) {
10378   return (vector bool short)
10379     __builtin_s390_vfaeh((vector unsigned short)__a,
10380                          (vector unsigned short)__b, 12);
10381 }
10382
10383 static inline __ATTRS_o_ai vector bool short
10384 vec_find_any_ne(vector unsigned short __a, vector unsigned short __b) {
10385   return (vector bool short)__builtin_s390_vfaeh(__a, __b, 12);
10386 }
10387
10388 static inline __ATTRS_o_ai vector bool int
10389 vec_find_any_ne(vector signed int __a, vector signed int __b) {
10390   return (vector bool int)
10391     __builtin_s390_vfaef((vector unsigned int)__a,
10392                          (vector unsigned int)__b, 12);
10393 }
10394
10395 static inline __ATTRS_o_ai vector bool int
10396 vec_find_any_ne(vector bool int __a, vector bool int __b) {
10397   return (vector bool int)
10398     __builtin_s390_vfaef((vector unsigned int)__a,
10399                          (vector unsigned int)__b, 12);
10400 }
10401
10402 static inline __ATTRS_o_ai vector bool int
10403 vec_find_any_ne(vector unsigned int __a, vector unsigned int __b) {
10404   return (vector bool int)__builtin_s390_vfaef(__a, __b, 12);
10405 }
10406
10407 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
10408
10409 static inline __ATTRS_o_ai vector bool char
10410 vec_find_any_ne_cc(vector signed char __a, vector signed char __b, int *__cc) {
10411   return (vector bool char)
10412     __builtin_s390_vfaebs((vector unsigned char)__a,
10413                           (vector unsigned char)__b, 12, __cc);
10414 }
10415
10416 static inline __ATTRS_o_ai vector bool char
10417 vec_find_any_ne_cc(vector bool char __a, vector bool char __b, int *__cc) {
10418   return (vector bool char)
10419     __builtin_s390_vfaebs((vector unsigned char)__a,
10420                           (vector unsigned char)__b, 12, __cc);
10421 }
10422
10423 static inline __ATTRS_o_ai vector bool char
10424 vec_find_any_ne_cc(vector unsigned char __a, vector unsigned char __b,
10425                    int *__cc) {
10426   return (vector bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
10427 }
10428
10429 static inline __ATTRS_o_ai vector bool short
10430 vec_find_any_ne_cc(vector signed short __a, vector signed short __b,
10431                    int *__cc) {
10432   return (vector bool short)
10433     __builtin_s390_vfaehs((vector unsigned short)__a,
10434                           (vector unsigned short)__b, 12, __cc);
10435 }
10436
10437 static inline __ATTRS_o_ai vector bool short
10438 vec_find_any_ne_cc(vector bool short __a, vector bool short __b, int *__cc) {
10439   return (vector bool short)
10440     __builtin_s390_vfaehs((vector unsigned short)__a,
10441                           (vector unsigned short)__b, 12, __cc);
10442 }
10443
10444 static inline __ATTRS_o_ai vector bool short
10445 vec_find_any_ne_cc(vector unsigned short __a, vector unsigned short __b,
10446                    int *__cc) {
10447   return (vector bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
10448 }
10449
10450 static inline __ATTRS_o_ai vector bool int
10451 vec_find_any_ne_cc(vector signed int __a, vector signed int __b, int *__cc) {
10452   return (vector bool int)
10453     __builtin_s390_vfaefs((vector unsigned int)__a,
10454                           (vector unsigned int)__b, 12, __cc);
10455 }
10456
10457 static inline __ATTRS_o_ai vector bool int
10458 vec_find_any_ne_cc(vector bool int __a, vector bool int __b, int *__cc) {
10459   return (vector bool int)
10460     __builtin_s390_vfaefs((vector unsigned int)__a,
10461                           (vector unsigned int)__b, 12, __cc);
10462 }
10463
10464 static inline __ATTRS_o_ai vector bool int
10465 vec_find_any_ne_cc(vector unsigned int __a, vector unsigned int __b,
10466                    int *__cc) {
10467   return (vector bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
10468 }
10469
10470 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
10471
10472 static inline __ATTRS_o_ai vector signed char
10473 vec_find_any_ne_idx(vector signed char __a, vector signed char __b) {
10474   return (vector signed char)
10475     __builtin_s390_vfaeb((vector unsigned char)__a,
10476                          (vector unsigned char)__b, 8);
10477 }
10478
10479 static inline __ATTRS_o_ai vector unsigned char
10480 vec_find_any_ne_idx(vector bool char __a, vector bool char __b) {
10481   return __builtin_s390_vfaeb((vector unsigned char)__a,
10482                               (vector unsigned char)__b, 8);
10483 }
10484
10485 static inline __ATTRS_o_ai vector unsigned char
10486 vec_find_any_ne_idx(vector unsigned char __a, vector unsigned char __b) {
10487   return __builtin_s390_vfaeb(__a, __b, 8);
10488 }
10489
10490 static inline __ATTRS_o_ai vector signed short
10491 vec_find_any_ne_idx(vector signed short __a, vector signed short __b) {
10492   return (vector signed short)
10493     __builtin_s390_vfaeh((vector unsigned short)__a,
10494                          (vector unsigned short)__b, 8);
10495 }
10496
10497 static inline __ATTRS_o_ai vector unsigned short
10498 vec_find_any_ne_idx(vector bool short __a, vector bool short __b) {
10499   return __builtin_s390_vfaeh((vector unsigned short)__a,
10500                               (vector unsigned short)__b, 8);
10501 }
10502
10503 static inline __ATTRS_o_ai vector unsigned short
10504 vec_find_any_ne_idx(vector unsigned short __a, vector unsigned short __b) {
10505   return __builtin_s390_vfaeh(__a, __b, 8);
10506 }
10507
10508 static inline __ATTRS_o_ai vector signed int
10509 vec_find_any_ne_idx(vector signed int __a, vector signed int __b) {
10510   return (vector signed int)
10511     __builtin_s390_vfaef((vector unsigned int)__a,
10512                          (vector unsigned int)__b, 8);
10513 }
10514
10515 static inline __ATTRS_o_ai vector unsigned int
10516 vec_find_any_ne_idx(vector bool int __a, vector bool int __b) {
10517   return __builtin_s390_vfaef((vector unsigned int)__a,
10518                               (vector unsigned int)__b, 8);
10519 }
10520
10521 static inline __ATTRS_o_ai vector unsigned int
10522 vec_find_any_ne_idx(vector unsigned int __a, vector unsigned int __b) {
10523   return __builtin_s390_vfaef(__a, __b, 8);
10524 }
10525
10526 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
10527
10528 static inline __ATTRS_o_ai vector signed char
10529 vec_find_any_ne_idx_cc(vector signed char __a, vector signed char __b,
10530                        int *__cc) {
10531   return (vector signed char)
10532     __builtin_s390_vfaebs((vector unsigned char)__a,
10533                           (vector unsigned char)__b, 8, __cc);
10534 }
10535
10536 static inline __ATTRS_o_ai vector unsigned char
10537 vec_find_any_ne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
10538   return __builtin_s390_vfaebs((vector unsigned char)__a,
10539                                (vector unsigned char)__b, 8, __cc);
10540 }
10541
10542 static inline __ATTRS_o_ai vector unsigned char
10543 vec_find_any_ne_idx_cc(vector unsigned char __a, vector unsigned char __b,
10544                        int *__cc) {
10545   return __builtin_s390_vfaebs(__a, __b, 8, __cc);
10546 }
10547
10548 static inline __ATTRS_o_ai vector signed short
10549 vec_find_any_ne_idx_cc(vector signed short __a, vector signed short __b,
10550                        int *__cc) {
10551   return (vector signed short)
10552     __builtin_s390_vfaehs((vector unsigned short)__a,
10553                           (vector unsigned short)__b, 8, __cc);
10554 }
10555
10556 static inline __ATTRS_o_ai vector unsigned short
10557 vec_find_any_ne_idx_cc(vector bool short __a, vector bool short __b,
10558                        int *__cc) {
10559   return __builtin_s390_vfaehs((vector unsigned short)__a,
10560                                (vector unsigned short)__b, 8, __cc);
10561 }
10562
10563 static inline __ATTRS_o_ai vector unsigned short
10564 vec_find_any_ne_idx_cc(vector unsigned short __a, vector unsigned short __b,
10565                        int *__cc) {
10566   return __builtin_s390_vfaehs(__a, __b, 8, __cc);
10567 }
10568
10569 static inline __ATTRS_o_ai vector signed int
10570 vec_find_any_ne_idx_cc(vector signed int __a, vector signed int __b,
10571                        int *__cc) {
10572   return (vector signed int)
10573     __builtin_s390_vfaefs((vector unsigned int)__a,
10574                           (vector unsigned int)__b, 8, __cc);
10575 }
10576
10577 static inline __ATTRS_o_ai vector unsigned int
10578 vec_find_any_ne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
10579   return __builtin_s390_vfaefs((vector unsigned int)__a,
10580                                (vector unsigned int)__b, 8, __cc);
10581 }
10582
10583 static inline __ATTRS_o_ai vector unsigned int
10584 vec_find_any_ne_idx_cc(vector unsigned int __a, vector unsigned int __b,
10585                        int *__cc) {
10586   return __builtin_s390_vfaefs(__a, __b, 8, __cc);
10587 }
10588
10589 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
10590
10591 static inline __ATTRS_o_ai vector signed char
10592 vec_find_any_ne_or_0_idx(vector signed char __a, vector signed char __b) {
10593   return (vector signed char)
10594     __builtin_s390_vfaezb((vector unsigned char)__a,
10595                           (vector unsigned char)__b, 8);
10596 }
10597
10598 static inline __ATTRS_o_ai vector unsigned char
10599 vec_find_any_ne_or_0_idx(vector bool char __a, vector bool char __b) {
10600   return __builtin_s390_vfaezb((vector unsigned char)__a,
10601                                (vector unsigned char)__b, 8);
10602 }
10603
10604 static inline __ATTRS_o_ai vector unsigned char
10605 vec_find_any_ne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
10606   return __builtin_s390_vfaezb(__a, __b, 8);
10607 }
10608
10609 static inline __ATTRS_o_ai vector signed short
10610 vec_find_any_ne_or_0_idx(vector signed short __a, vector signed short __b) {
10611   return (vector signed short)
10612     __builtin_s390_vfaezh((vector unsigned short)__a,
10613                           (vector unsigned short)__b, 8);
10614 }
10615
10616 static inline __ATTRS_o_ai vector unsigned short
10617 vec_find_any_ne_or_0_idx(vector bool short __a, vector bool short __b) {
10618   return __builtin_s390_vfaezh((vector unsigned short)__a,
10619                                (vector unsigned short)__b, 8);
10620 }
10621
10622 static inline __ATTRS_o_ai vector unsigned short
10623 vec_find_any_ne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
10624   return __builtin_s390_vfaezh(__a, __b, 8);
10625 }
10626
10627 static inline __ATTRS_o_ai vector signed int
10628 vec_find_any_ne_or_0_idx(vector signed int __a, vector signed int __b) {
10629   return (vector signed int)
10630     __builtin_s390_vfaezf((vector unsigned int)__a,
10631                           (vector unsigned int)__b, 8);
10632 }
10633
10634 static inline __ATTRS_o_ai vector unsigned int
10635 vec_find_any_ne_or_0_idx(vector bool int __a, vector bool int __b) {
10636   return __builtin_s390_vfaezf((vector unsigned int)__a,
10637                                (vector unsigned int)__b, 8);
10638 }
10639
10640 static inline __ATTRS_o_ai vector unsigned int
10641 vec_find_any_ne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
10642   return __builtin_s390_vfaezf(__a, __b, 8);
10643 }
10644
10645 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
10646
10647 static inline __ATTRS_o_ai vector signed char
10648 vec_find_any_ne_or_0_idx_cc(vector signed char __a, vector signed char __b,
10649                             int *__cc) {
10650   return (vector signed char)
10651     __builtin_s390_vfaezbs((vector unsigned char)__a,
10652                            (vector unsigned char)__b, 8, __cc);
10653 }
10654
10655 static inline __ATTRS_o_ai vector unsigned char
10656 vec_find_any_ne_or_0_idx_cc(vector bool char __a, vector bool char __b,
10657                             int *__cc) {
10658   return __builtin_s390_vfaezbs((vector unsigned char)__a,
10659                                 (vector unsigned char)__b, 8, __cc);
10660 }
10661
10662 static inline __ATTRS_o_ai vector unsigned char
10663 vec_find_any_ne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
10664                             int *__cc) {
10665   return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
10666 }
10667
10668 static inline __ATTRS_o_ai vector signed short
10669 vec_find_any_ne_or_0_idx_cc(vector signed short __a, vector signed short __b,
10670                             int *__cc) {
10671   return (vector signed short)
10672     __builtin_s390_vfaezhs((vector unsigned short)__a,
10673                            (vector unsigned short)__b, 8, __cc);
10674 }
10675
10676 static inline __ATTRS_o_ai vector unsigned short
10677 vec_find_any_ne_or_0_idx_cc(vector bool short __a, vector bool short __b,
10678                             int *__cc) {
10679   return __builtin_s390_vfaezhs((vector unsigned short)__a,
10680                                 (vector unsigned short)__b, 8, __cc);
10681 }
10682
10683 static inline __ATTRS_o_ai vector unsigned short
10684 vec_find_any_ne_or_0_idx_cc(vector unsigned short __a,
10685                             vector unsigned short __b, int *__cc) {
10686   return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
10687 }
10688
10689 static inline __ATTRS_o_ai vector signed int
10690 vec_find_any_ne_or_0_idx_cc(vector signed int __a, vector signed int __b,
10691                             int *__cc) {
10692   return (vector signed int)
10693     __builtin_s390_vfaezfs((vector unsigned int)__a,
10694                            (vector unsigned int)__b, 8, __cc);
10695 }
10696
10697 static inline __ATTRS_o_ai vector unsigned int
10698 vec_find_any_ne_or_0_idx_cc(vector bool int __a, vector bool int __b,
10699                             int *__cc) {
10700   return __builtin_s390_vfaezfs((vector unsigned int)__a,
10701                                 (vector unsigned int)__b, 8, __cc);
10702 }
10703
10704 static inline __ATTRS_o_ai vector unsigned int
10705 vec_find_any_ne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
10706                             int *__cc) {
10707   return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
10708 }
10709
10710 /*-- vec_search_string_cc ---------------------------------------------------*/
10711
10712 #if __ARCH__ >= 13
10713
10714 static inline __ATTRS_o_ai vector unsigned char
10715 vec_search_string_cc(vector signed char __a, vector signed char __b,
10716                      vector unsigned char __c, int *__cc) {
10717   return __builtin_s390_vstrsb((vector unsigned char)__a,
10718                                (vector unsigned char)__b, __c, __cc);
10719 }
10720
10721 static inline __ATTRS_o_ai vector unsigned char
10722 vec_search_string_cc(vector bool char __a, vector bool char __b,
10723                      vector unsigned char __c, int *__cc) {
10724   return __builtin_s390_vstrsb((vector unsigned char)__a,
10725                                (vector unsigned char)__b, __c, __cc);
10726 }
10727
10728 static inline __ATTRS_o_ai vector unsigned char
10729 vec_search_string_cc(vector unsigned char __a, vector unsigned char __b,
10730                      vector unsigned char __c, int *__cc) {
10731   return __builtin_s390_vstrsb(__a, __b, __c, __cc);
10732 }
10733
10734 static inline __ATTRS_o_ai vector unsigned char
10735 vec_search_string_cc(vector signed short __a, vector signed short __b,
10736                      vector unsigned char __c, int *__cc) {
10737   return __builtin_s390_vstrsh((vector unsigned short)__a,
10738                                (vector unsigned short)__b, __c, __cc);
10739 }
10740
10741 static inline __ATTRS_o_ai vector unsigned char
10742 vec_search_string_cc(vector bool short __a, vector bool short __b,
10743                      vector unsigned char __c, int *__cc) {
10744   return __builtin_s390_vstrsh((vector unsigned short)__a,
10745                                (vector unsigned short)__b, __c, __cc);
10746 }
10747
10748 static inline __ATTRS_o_ai vector unsigned char
10749 vec_search_string_cc(vector unsigned short __a, vector unsigned short __b,
10750                      vector unsigned char __c, int *__cc) {
10751   return __builtin_s390_vstrsh(__a, __b, __c, __cc);
10752 }
10753
10754 static inline __ATTRS_o_ai vector unsigned char
10755 vec_search_string_cc(vector signed int __a, vector signed int __b,
10756                      vector unsigned char __c, int *__cc) {
10757   return __builtin_s390_vstrsf((vector unsigned int)__a,
10758                                (vector unsigned int)__b, __c, __cc);
10759 }
10760
10761 static inline __ATTRS_o_ai vector unsigned char
10762 vec_search_string_cc(vector bool int __a, vector bool int __b,
10763                      vector unsigned char __c, int *__cc) {
10764   return __builtin_s390_vstrsf((vector unsigned int)__a,
10765                                (vector unsigned int)__b, __c, __cc);
10766 }
10767
10768 static inline __ATTRS_o_ai vector unsigned char
10769 vec_search_string_cc(vector unsigned int __a, vector unsigned int __b,
10770                      vector unsigned char __c, int *__cc) {
10771   return __builtin_s390_vstrsf(__a, __b, __c, __cc);
10772 }
10773
10774 #endif
10775
10776 /*-- vec_search_string_until_zero_cc ----------------------------------------*/
10777
10778 #if __ARCH__ >= 13
10779
10780 static inline __ATTRS_o_ai vector unsigned char
10781 vec_search_string_until_zero_cc(vector signed char __a,
10782                                 vector signed char __b,
10783                                 vector unsigned char __c, int *__cc) {
10784   return __builtin_s390_vstrszb((vector unsigned char)__a,
10785                                 (vector unsigned char)__b, __c, __cc);
10786 }
10787
10788 static inline __ATTRS_o_ai vector unsigned char
10789 vec_search_string_until_zero_cc(vector bool char __a,
10790                                 vector bool char __b,
10791                                 vector unsigned char __c, int *__cc) {
10792   return __builtin_s390_vstrszb((vector unsigned char)__a,
10793                                 (vector unsigned char)__b, __c, __cc);
10794 }
10795
10796 static inline __ATTRS_o_ai vector unsigned char
10797 vec_search_string_until_zero_cc(vector unsigned char __a,
10798                                 vector unsigned char __b,
10799                                 vector unsigned char __c, int *__cc) {
10800   return __builtin_s390_vstrszb(__a, __b, __c, __cc);
10801 }
10802
10803 static inline __ATTRS_o_ai vector unsigned char
10804 vec_search_string_until_zero_cc(vector signed short __a,
10805                                 vector signed short __b,
10806                                 vector unsigned char __c, int *__cc) {
10807   return __builtin_s390_vstrszh((vector unsigned short)__a,
10808                                 (vector unsigned short)__b, __c, __cc);
10809 }
10810
10811 static inline __ATTRS_o_ai vector unsigned char
10812 vec_search_string_until_zero_cc(vector bool short __a,
10813                                 vector bool short __b,
10814                                 vector unsigned char __c, int *__cc) {
10815   return __builtin_s390_vstrszh((vector unsigned short)__a,
10816                                 (vector unsigned short)__b, __c, __cc);
10817 }
10818
10819 static inline __ATTRS_o_ai vector unsigned char
10820 vec_search_string_until_zero_cc(vector unsigned short __a,
10821                                 vector unsigned short __b,
10822                                 vector unsigned char __c, int *__cc) {
10823   return __builtin_s390_vstrszh(__a, __b, __c, __cc);
10824 }
10825
10826 static inline __ATTRS_o_ai vector unsigned char
10827 vec_search_string_until_zero_cc(vector signed int __a,
10828                                 vector signed int __b,
10829                                 vector unsigned char __c, int *__cc) {
10830   return __builtin_s390_vstrszf((vector unsigned int)__a,
10831                                 (vector unsigned int)__b, __c, __cc);
10832 }
10833
10834 static inline __ATTRS_o_ai vector unsigned char
10835 vec_search_string_until_zero_cc(vector bool int __a,
10836                                 vector bool int __b,
10837                                 vector unsigned char __c, int *__cc) {
10838   return __builtin_s390_vstrszf((vector unsigned int)__a,
10839                                 (vector unsigned int)__b, __c, __cc);
10840 }
10841
10842 static inline __ATTRS_o_ai vector unsigned char
10843 vec_search_string_until_zero_cc(vector unsigned int __a,
10844                                 vector unsigned int __b,
10845                                 vector unsigned char __c, int *__cc) {
10846   return __builtin_s390_vstrszf(__a, __b, __c, __cc);
10847 }
10848
10849 #endif
10850
10851 #undef __constant_pow2_range
10852 #undef __constant_range
10853 #undef __constant
10854 #undef __ATTRS_o
10855 #undef __ATTRS_o_ai
10856 #undef __ATTRS_ai
10857
10858 #else
10859
10860 #error "Use -fzvector to enable vector extensions"
10861
10862 #endif