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
29extern __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
45static inline __ATTRS_o_ai signed char
46vec_extract(vector signed char __vec, int __index) {
47  return __vec[__index & 15];
48}
49
50static inline __ATTRS_o_ai unsigned char
51vec_extract(vector bool char __vec, int __index) {
52  return __vec[__index & 15];
53}
54
55static inline __ATTRS_o_ai unsigned char
56vec_extract(vector unsigned char __vec, int __index) {
57  return __vec[__index & 15];
58}
59
60static inline __ATTRS_o_ai signed short
61vec_extract(vector signed short __vec, int __index) {
62  return __vec[__index & 7];
63}
64
65static inline __ATTRS_o_ai unsigned short
66vec_extract(vector bool short __vec, int __index) {
67  return __vec[__index & 7];
68}
69
70static inline __ATTRS_o_ai unsigned short
71vec_extract(vector unsigned short __vec, int __index) {
72  return __vec[__index & 7];
73}
74
75static inline __ATTRS_o_ai signed int
76vec_extract(vector signed int __vec, int __index) {
77  return __vec[__index & 3];
78}
79
80static inline __ATTRS_o_ai unsigned int
81vec_extract(vector bool int __vec, int __index) {
82  return __vec[__index & 3];
83}
84
85static inline __ATTRS_o_ai unsigned int
86vec_extract(vector unsigned int __vec, int __index) {
87  return __vec[__index & 3];
88}
89
90static inline __ATTRS_o_ai signed long long
91vec_extract(vector signed long long __vec, int __index) {
92  return __vec[__index & 1];
93}
94
95static inline __ATTRS_o_ai unsigned long long
96vec_extract(vector bool long long __vec, int __index) {
97  return __vec[__index & 1];
98}
99
100static inline __ATTRS_o_ai unsigned long long
101vec_extract(vector unsigned long long __vec, int __index) {
102  return __vec[__index & 1];
103}
104
105#if __ARCH__ >= 12
106static inline __ATTRS_o_ai float
107vec_extract(vector float __vec, int __index) {
108  return __vec[__index & 3];
109}
110#endif
111
112static inline __ATTRS_o_ai double
113vec_extract(vector double __vec, int __index) {
114  return __vec[__index & 1];
115}
116
117/*-- vec_insert -------------------------------------------------------------*/
118
119static inline __ATTRS_o_ai vector signed char
120vec_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.
126static inline __ATTRS_o_ai vector unsigned char
127vec_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
133static inline __ATTRS_o_ai vector unsigned char
134vec_insert(unsigned char __scalar, vector unsigned char __vec, int __index) {
135  __vec[__index & 15] = __scalar;
136  return __vec;
137}
138
139static inline __ATTRS_o_ai vector signed short
140vec_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.
146static inline __ATTRS_o_ai vector unsigned short
147vec_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
153static inline __ATTRS_o_ai vector unsigned short
154vec_insert(unsigned short __scalar, vector unsigned short __vec, int __index) {
155  __vec[__index & 7] = __scalar;
156  return __vec;
157}
158
159static inline __ATTRS_o_ai vector signed int
160vec_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.
166static inline __ATTRS_o_ai vector unsigned int
167vec_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
173static inline __ATTRS_o_ai vector unsigned int
174vec_insert(unsigned int __scalar, vector unsigned int __vec, int __index) {
175  __vec[__index & 3] = __scalar;
176  return __vec;
177}
178
179static inline __ATTRS_o_ai vector signed long long
180vec_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.
187static inline __ATTRS_o_ai vector unsigned long long
188vec_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
195static inline __ATTRS_o_ai vector unsigned long long
196vec_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
203static inline __ATTRS_o_ai vector float
204vec_insert(float __scalar, vector float __vec, int __index) {
205  __vec[__index & 1] = __scalar;
206  return __vec;
207}
208#endif
209
210static inline __ATTRS_o_ai vector double
211vec_insert(double __scalar, vector double __vec, int __index) {
212  __vec[__index & 1] = __scalar;
213  return __vec;
214}
215
216/*-- vec_promote ------------------------------------------------------------*/
217
218static inline __ATTRS_o_ai vector signed char
219vec_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
227static inline __ATTRS_o_ai vector unsigned char
228vec_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
236static inline __ATTRS_o_ai vector signed short
237vec_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
245static inline __ATTRS_o_ai vector unsigned short
246vec_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
254static inline __ATTRS_o_ai vector signed int
255vec_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
263static inline __ATTRS_o_ai vector unsigned int
264vec_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
272static inline __ATTRS_o_ai vector signed long long
273vec_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
281static inline __ATTRS_o_ai vector unsigned long long
282vec_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
291static inline __ATTRS_o_ai vector float
292vec_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
300static inline __ATTRS_o_ai vector double
301vec_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
310static inline __ATTRS_o_ai vector signed char
311vec_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
317static inline __ATTRS_o_ai vector unsigned char
318vec_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
324static inline __ATTRS_o_ai vector signed short
325vec_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
331static inline __ATTRS_o_ai vector unsigned short
332vec_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
338static inline __ATTRS_o_ai vector signed int
339vec_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
345static inline __ATTRS_o_ai vector unsigned int
346vec_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
352static inline __ATTRS_o_ai vector signed long long
353vec_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
359static inline __ATTRS_o_ai vector unsigned long long
360vec_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
367static inline __ATTRS_o_ai vector float
368vec_insert_and_zero(const float *__ptr) {
369  vector float __vec = (vector float)0;
370  __vec[1] = *__ptr;
371  return __vec;
372}
373#endif
374
375static inline __ATTRS_o_ai vector double
376vec_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
384static inline __ATTRS_o_ai vector signed char
385vec_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
391static inline __ATTRS_o_ai vector unsigned char
392vec_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
398static inline __ATTRS_o_ai vector bool char
399vec_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
405static inline __ATTRS_o_ai vector signed short
406vec_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
412static inline __ATTRS_o_ai vector unsigned short
413vec_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
419static inline __ATTRS_o_ai vector bool short
420vec_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
426static inline __ATTRS_o_ai vector signed int
427vec_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
433static inline __ATTRS_o_ai vector unsigned int
434vec_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
440static inline __ATTRS_o_ai vector bool int
441vec_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
447static inline __ATTRS_o_ai vector signed long long
448vec_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
454static inline __ATTRS_o_ai vector unsigned long long
455vec_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
461static inline __ATTRS_o_ai vector bool long long
462vec_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
469static inline __ATTRS_o_ai vector float
470vec_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
477static inline __ATTRS_o_ai vector double
478vec_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.
487extern __ATTRS_o vector signed long long
488vec_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.
492extern __ATTRS_o vector unsigned long long
493vec_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.
497extern __ATTRS_o vector bool long long
498vec_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.
502extern __ATTRS_o vector double
503vec_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
514static inline __ATTRS_ai vector unsigned long long
515vec_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
522static inline __ATTRS_o_ai vector signed short
523vec_revb(vector signed short __vec) {
524  return (vector signed short)
525         __builtin_s390_vlbrh((vector unsigned short)__vec);
526}
527
528static inline __ATTRS_o_ai vector unsigned short
529vec_revb(vector unsigned short __vec) {
530  return __builtin_s390_vlbrh(__vec);
531}
532
533static inline __ATTRS_o_ai vector signed int
534vec_revb(vector signed int __vec) {
535  return (vector signed int)
536         __builtin_s390_vlbrf((vector unsigned int)__vec);
537}
538
539static inline __ATTRS_o_ai vector unsigned int
540vec_revb(vector unsigned int __vec) {
541  return __builtin_s390_vlbrf(__vec);
542}
543
544static inline __ATTRS_o_ai vector signed long long
545vec_revb(vector signed long long __vec) {
546  return (vector signed long long)
547         __builtin_s390_vlbrg((vector unsigned long long)__vec);
548}
549
550static inline __ATTRS_o_ai vector unsigned long long
551vec_revb(vector unsigned long long __vec) {
552  return __builtin_s390_vlbrg(__vec);
553}
554
555#if __ARCH__ >= 12
556static inline __ATTRS_o_ai vector float
557vec_revb(vector float __vec) {
558  return (vector float)
559         __builtin_s390_vlbrf((vector unsigned int)__vec);
560}
561#endif
562
563static inline __ATTRS_o_ai vector double
564vec_revb(vector double __vec) {
565  return (vector double)
566         __builtin_s390_vlbrg((vector unsigned long long)__vec);
567}
568
569/*-- vec_reve ---------------------------------------------------------------*/
570
571static inline __ATTRS_o_ai vector signed char
572vec_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
579static inline __ATTRS_o_ai vector unsigned char
580vec_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
587static inline __ATTRS_o_ai vector bool char
588vec_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
595static inline __ATTRS_o_ai vector signed short
596vec_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
601static inline __ATTRS_o_ai vector unsigned short
602vec_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
607static inline __ATTRS_o_ai vector bool short
608vec_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
613static inline __ATTRS_o_ai vector signed int
614vec_reve(vector signed int __vec) {
615  return (vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
616}
617
618static inline __ATTRS_o_ai vector unsigned int
619vec_reve(vector unsigned int __vec) {
620  return (vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
621}
622
623static inline __ATTRS_o_ai vector bool int
624vec_reve(vector bool int __vec) {
625  return (vector bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
626}
627
628static inline __ATTRS_o_ai vector signed long long
629vec_reve(vector signed long long __vec) {
630  return (vector signed long long) { __vec[1], __vec[0] };
631}
632
633static inline __ATTRS_o_ai vector unsigned long long
634vec_reve(vector unsigned long long __vec) {
635  return (vector unsigned long long) { __vec[1], __vec[0] };
636}
637
638static inline __ATTRS_o_ai vector bool long long
639vec_reve(vector bool long long __vec) {
640  return (vector bool long long) { __vec[1], __vec[0] };
641}
642
643#if __ARCH__ >= 12
644static inline __ATTRS_o_ai vector float
645vec_reve(vector float __vec) {
646  return (vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
647}
648#endif
649
650static inline __ATTRS_o_ai vector double
651vec_reve(vector double __vec) {
652  return (vector double) { __vec[1], __vec[0] };
653}
654
655/*-- vec_sel ----------------------------------------------------------------*/
656
657static inline __ATTRS_o_ai vector signed char
658vec_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
663static inline __ATTRS_o_ai vector signed char
664vec_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
668static inline __ATTRS_o_ai vector bool char
669vec_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
673static inline __ATTRS_o_ai vector bool char
674vec_sel(vector bool char __a, vector bool char __b, vector bool char __c) {
675  return (__c & __b) | (~__c & __a);
676}
677
678static inline __ATTRS_o_ai vector unsigned char
679vec_sel(vector unsigned char __a, vector unsigned char __b,
680        vector unsigned char __c) {
681  return (__c & __b) | (~__c & __a);
682}
683
684static inline __ATTRS_o_ai vector unsigned char
685vec_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
690static inline __ATTRS_o_ai vector signed short
691vec_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
696static inline __ATTRS_o_ai vector signed short
697vec_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
702static inline __ATTRS_o_ai vector bool short
703vec_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
708static inline __ATTRS_o_ai vector bool short
709vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) {
710  return (__c & __b) | (~__c & __a);
711}
712
713static inline __ATTRS_o_ai vector unsigned short
714vec_sel(vector unsigned short __a, vector unsigned short __b,
715        vector unsigned short __c) {
716  return (__c & __b) | (~__c & __a);
717}
718
719static inline __ATTRS_o_ai vector unsigned short
720vec_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
726static inline __ATTRS_o_ai vector signed int
727vec_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
732static inline __ATTRS_o_ai vector signed int
733vec_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
737static inline __ATTRS_o_ai vector bool int
738vec_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
742static inline __ATTRS_o_ai vector bool int
743vec_sel(vector bool int __a, vector bool int __b, vector bool int __c) {
744  return (__c & __b) | (~__c & __a);
745}
746
747static inline __ATTRS_o_ai vector unsigned int
748vec_sel(vector unsigned int __a, vector unsigned int __b,
749        vector unsigned int __c) {
750  return (__c & __b) | (~__c & __a);
751}
752
753static inline __ATTRS_o_ai vector unsigned int
754vec_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
758static inline __ATTRS_o_ai vector signed long long
759vec_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
765static inline __ATTRS_o_ai vector signed long long
766vec_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
772static inline __ATTRS_o_ai vector bool long long
773vec_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
779static inline __ATTRS_o_ai vector bool long long
780vec_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
785static inline __ATTRS_o_ai vector unsigned long long
786vec_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
791static inline __ATTRS_o_ai vector unsigned long long
792vec_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
799static inline __ATTRS_o_ai vector float
800vec_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
805static inline __ATTRS_o_ai vector float
806vec_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
814static inline __ATTRS_o_ai vector double
815vec_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
820static inline __ATTRS_o_ai vector double
821vec_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
830static inline __ATTRS_o_ai vector signed int
831vec_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
839static inline __ATTRS_o_ai vector bool int
840vec_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
848static inline __ATTRS_o_ai vector unsigned int
849vec_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
857static inline __ATTRS_o_ai vector signed long long
858vec_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
867static inline __ATTRS_o_ai vector bool long long
868vec_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
877static inline __ATTRS_o_ai vector unsigned long long
878vec_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
888static inline __ATTRS_o_ai vector float
889vec_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
898static inline __ATTRS_o_ai vector double
899vec_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
909static inline __ATTRS_o_ai void
910vec_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
917static inline __ATTRS_o_ai void
918vec_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
925static inline __ATTRS_o_ai void
926vec_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
933static inline __ATTRS_o_ai void
934vec_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
942static inline __ATTRS_o_ai void
943vec_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
951static inline __ATTRS_o_ai void
952vec_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
961static inline __ATTRS_o_ai void
962vec_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
970static inline __ATTRS_o_ai void
971vec_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
980static inline __ATTRS_o_ai vector signed char
981vec_xl(long __offset, const signed char *__ptr) {
982  return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
983}
984
985static inline __ATTRS_o_ai vector unsigned char
986vec_xl(long __offset, const unsigned char *__ptr) {
987  return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
988}
989
990static inline __ATTRS_o_ai vector signed short
991vec_xl(long __offset, const signed short *__ptr) {
992  return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
993}
994
995static inline __ATTRS_o_ai vector unsigned short
996vec_xl(long __offset, const unsigned short *__ptr) {
997  return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
998}
999
1000static inline __ATTRS_o_ai vector signed int
1001vec_xl(long __offset, const signed int *__ptr) {
1002  return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
1003}
1004
1005static inline __ATTRS_o_ai vector unsigned int
1006vec_xl(long __offset, const unsigned int *__ptr) {
1007  return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1008}
1009
1010static inline __ATTRS_o_ai vector signed long long
1011vec_xl(long __offset, const signed long long *__ptr) {
1012  return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
1013}
1014
1015static inline __ATTRS_o_ai vector unsigned long long
1016vec_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
1021static inline __ATTRS_o_ai vector float
1022vec_xl(long __offset, const float *__ptr) {
1023  return *(const vector float *)((__INTPTR_TYPE__)__ptr + __offset);
1024}
1025#endif
1026
1027static inline __ATTRS_o_ai vector double
1028vec_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.
1035static inline __ATTRS_o_ai vector signed char
1036vec_xld2(long __offset, const signed char *__ptr) {
1037  return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
1038}
1039
1040// This prototype is deprecated.
1041static inline __ATTRS_o_ai vector unsigned char
1042vec_xld2(long __offset, const unsigned char *__ptr) {
1043  return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
1044}
1045
1046// This prototype is deprecated.
1047static inline __ATTRS_o_ai vector signed short
1048vec_xld2(long __offset, const signed short *__ptr) {
1049  return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
1050}
1051
1052// This prototype is deprecated.
1053static inline __ATTRS_o_ai vector unsigned short
1054vec_xld2(long __offset, const unsigned short *__ptr) {
1055  return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
1056}
1057
1058// This prototype is deprecated.
1059static inline __ATTRS_o_ai vector signed int
1060vec_xld2(long __offset, const signed int *__ptr) {
1061  return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
1062}
1063
1064// This prototype is deprecated.
1065static inline __ATTRS_o_ai vector unsigned int
1066vec_xld2(long __offset, const unsigned int *__ptr) {
1067  return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1068}
1069
1070// This prototype is deprecated.
1071static inline __ATTRS_o_ai vector signed long long
1072vec_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.
1077static inline __ATTRS_o_ai vector unsigned long long
1078vec_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.
1083static inline __ATTRS_o_ai vector double
1084vec_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.
1091static inline __ATTRS_o_ai vector signed char
1092vec_xlw4(long __offset, const signed char *__ptr) {
1093  return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
1094}
1095
1096// This prototype is deprecated.
1097static inline __ATTRS_o_ai vector unsigned char
1098vec_xlw4(long __offset, const unsigned char *__ptr) {
1099  return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
1100}
1101
1102// This prototype is deprecated.
1103static inline __ATTRS_o_ai vector signed short
1104vec_xlw4(long __offset, const signed short *__ptr) {
1105  return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
1106}
1107
1108// This prototype is deprecated.
1109static inline __ATTRS_o_ai vector unsigned short
1110vec_xlw4(long __offset, const unsigned short *__ptr) {
1111  return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
1112}
1113
1114// This prototype is deprecated.
1115static inline __ATTRS_o_ai vector signed int
1116vec_xlw4(long __offset, const signed int *__ptr) {
1117  return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
1118}
1119
1120// This prototype is deprecated.
1121static inline __ATTRS_o_ai vector unsigned int
1122vec_xlw4(long __offset, const unsigned int *__ptr) {
1123  return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1124}
1125
1126/*-- vec_xst ----------------------------------------------------------------*/
1127
1128static inline __ATTRS_o_ai void
1129vec_xst(vector signed char __vec, long __offset, signed char *__ptr) {
1130  *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1131}
1132
1133static inline __ATTRS_o_ai void
1134vec_xst(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1135  *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1136}
1137
1138static inline __ATTRS_o_ai void
1139vec_xst(vector signed short __vec, long __offset, signed short *__ptr) {
1140  *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1141}
1142
1143static inline __ATTRS_o_ai void
1144vec_xst(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1145  *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1146}
1147
1148static inline __ATTRS_o_ai void
1149vec_xst(vector signed int __vec, long __offset, signed int *__ptr) {
1150  *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1151}
1152
1153static inline __ATTRS_o_ai void
1154vec_xst(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1155  *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1156}
1157
1158static inline __ATTRS_o_ai void
1159vec_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
1164static inline __ATTRS_o_ai void
1165vec_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
1172static inline __ATTRS_o_ai void
1173vec_xst(vector float __vec, long __offset, float *__ptr) {
1174  *(vector float *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1175}
1176#endif
1177
1178static inline __ATTRS_o_ai void
1179vec_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.
1186static inline __ATTRS_o_ai void
1187vec_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.
1192static inline __ATTRS_o_ai void
1193vec_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.
1198static inline __ATTRS_o_ai void
1199vec_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.
1204static inline __ATTRS_o_ai void
1205vec_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.
1210static inline __ATTRS_o_ai void
1211vec_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.
1216static inline __ATTRS_o_ai void
1217vec_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.
1222static inline __ATTRS_o_ai void
1223vec_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.
1229static inline __ATTRS_o_ai void
1230vec_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.
1237static inline __ATTRS_o_ai void
1238vec_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.
1245static inline __ATTRS_o_ai void
1246vec_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.
1251static inline __ATTRS_o_ai void
1252vec_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.
1257static inline __ATTRS_o_ai void
1258vec_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.
1263static inline __ATTRS_o_ai void
1264vec_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.
1269static inline __ATTRS_o_ai void
1270vec_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.
1275static inline __ATTRS_o_ai void
1276vec_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
1282extern __ATTRS_o vector signed char
1283vec_load_bndry(const signed char *__ptr, unsigned short __len)
1284  __constant_pow2_range(__len, 64, 4096);
1285
1286extern __ATTRS_o vector unsigned char
1287vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1288  __constant_pow2_range(__len, 64, 4096);
1289
1290extern __ATTRS_o vector signed short
1291vec_load_bndry(const signed short *__ptr, unsigned short __len)
1292  __constant_pow2_range(__len, 64, 4096);
1293
1294extern __ATTRS_o vector unsigned short
1295vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1296  __constant_pow2_range(__len, 64, 4096);
1297
1298extern __ATTRS_o vector signed int
1299vec_load_bndry(const signed int *__ptr, unsigned short __len)
1300  __constant_pow2_range(__len, 64, 4096);
1301
1302extern __ATTRS_o vector unsigned int
1303vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1304  __constant_pow2_range(__len, 64, 4096);
1305
1306extern __ATTRS_o vector signed long long
1307vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1308  __constant_pow2_range(__len, 64, 4096);
1309
1310extern __ATTRS_o vector unsigned long long
1311vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1312  __constant_pow2_range(__len, 64, 4096);
1313
1314#if __ARCH__ >= 12
1315extern __ATTRS_o vector float
1316vec_load_bndry(const float *__ptr, unsigned short __len)
1317  __constant_pow2_range(__len, 64, 4096);
1318#endif
1319
1320extern __ATTRS_o vector double
1321vec_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
1335static inline __ATTRS_o_ai vector signed char
1336vec_load_len(const signed char *__ptr, unsigned int __len) {
1337  return (vector signed char)__builtin_s390_vll(__len, __ptr);
1338}
1339
1340static inline __ATTRS_o_ai vector unsigned char
1341vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1342  return (vector unsigned char)__builtin_s390_vll(__len, __ptr);
1343}
1344
1345static inline __ATTRS_o_ai vector signed short
1346vec_load_len(const signed short *__ptr, unsigned int __len) {
1347  return (vector signed short)__builtin_s390_vll(__len, __ptr);
1348}
1349
1350static inline __ATTRS_o_ai vector unsigned short
1351vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1352  return (vector unsigned short)__builtin_s390_vll(__len, __ptr);
1353}
1354
1355static inline __ATTRS_o_ai vector signed int
1356vec_load_len(const signed int *__ptr, unsigned int __len) {
1357  return (vector signed int)__builtin_s390_vll(__len, __ptr);
1358}
1359
1360static inline __ATTRS_o_ai vector unsigned int
1361vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1362  return (vector unsigned int)__builtin_s390_vll(__len, __ptr);
1363}
1364
1365static inline __ATTRS_o_ai vector signed long long
1366vec_load_len(const signed long long *__ptr, unsigned int __len) {
1367  return (vector signed long long)__builtin_s390_vll(__len, __ptr);
1368}
1369
1370static inline __ATTRS_o_ai vector unsigned long long
1371vec_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
1376static inline __ATTRS_o_ai vector float
1377vec_load_len(const float *__ptr, unsigned int __len) {
1378  return (vector float)__builtin_s390_vll(__len, __ptr);
1379}
1380#endif
1381
1382static inline __ATTRS_o_ai vector double
1383vec_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
1390static inline __ATTRS_ai vector unsigned char
1391vec_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
1398static inline __ATTRS_o_ai void
1399vec_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
1404static inline __ATTRS_o_ai void
1405vec_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
1410static inline __ATTRS_o_ai void
1411vec_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
1416static inline __ATTRS_o_ai void
1417vec_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
1422static inline __ATTRS_o_ai void
1423vec_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
1428static inline __ATTRS_o_ai void
1429vec_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
1434static inline __ATTRS_o_ai void
1435vec_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
1440static inline __ATTRS_o_ai void
1441vec_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
1447static inline __ATTRS_o_ai void
1448vec_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
1454static inline __ATTRS_o_ai void
1455vec_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
1463static inline __ATTRS_ai void
1464vec_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
1472static inline __ATTRS_o_ai vector signed long long
1473vec_load_pair(signed long long __a, signed long long __b) {
1474  return (vector signed long long)(__a, __b);
1475}
1476
1477static inline __ATTRS_o_ai vector unsigned long long
1478vec_load_pair(unsigned long long __a, unsigned long long __b) {
1479  return (vector unsigned long long)(__a, __b);
1480}
1481
1482/*-- vec_genmask ------------------------------------------------------------*/
1483
1484static inline __ATTRS_o_ai vector unsigned char
1485vec_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
1508static inline __ATTRS_o_ai vector unsigned char
1509vec_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
1521static inline __ATTRS_o_ai vector unsigned short
1522vec_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
1534static inline __ATTRS_o_ai vector unsigned int
1535vec_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
1547static inline __ATTRS_o_ai vector unsigned long long
1548vec_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
1562static inline __ATTRS_o_ai vector signed char
1563vec_splat(vector signed char __vec, int __index)
1564  __constant_range(__index, 0, 15) {
1565  return (vector signed char)__vec[__index];
1566}
1567
1568static inline __ATTRS_o_ai vector bool char
1569vec_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
1574static inline __ATTRS_o_ai vector unsigned char
1575vec_splat(vector unsigned char __vec, int __index)
1576  __constant_range(__index, 0, 15) {
1577  return (vector unsigned char)__vec[__index];
1578}
1579
1580static inline __ATTRS_o_ai vector signed short
1581vec_splat(vector signed short __vec, int __index)
1582  __constant_range(__index, 0, 7) {
1583  return (vector signed short)__vec[__index];
1584}
1585
1586static inline __ATTRS_o_ai vector bool short
1587vec_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
1592static inline __ATTRS_o_ai vector unsigned short
1593vec_splat(vector unsigned short __vec, int __index)
1594  __constant_range(__index, 0, 7) {
1595  return (vector unsigned short)__vec[__index];
1596}
1597
1598static inline __ATTRS_o_ai vector signed int
1599vec_splat(vector signed int __vec, int __index)
1600  __constant_range(__index, 0, 3) {
1601  return (vector signed int)__vec[__index];
1602}
1603
1604static inline __ATTRS_o_ai vector bool int
1605vec_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
1610static inline __ATTRS_o_ai vector unsigned int
1611vec_splat(vector unsigned int __vec, int __index)
1612  __constant_range(__index, 0, 3) {
1613  return (vector unsigned int)__vec[__index];
1614}
1615
1616static inline __ATTRS_o_ai vector signed long long
1617vec_splat(vector signed long long __vec, int __index)
1618  __constant_range(__index, 0, 1) {
1619  return (vector signed long long)__vec[__index];
1620}
1621
1622static inline __ATTRS_o_ai vector bool long long
1623vec_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
1628static inline __ATTRS_o_ai vector unsigned long long
1629vec_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
1635static inline __ATTRS_o_ai vector float
1636vec_splat(vector float __vec, int __index)
1637  __constant_range(__index, 0, 3) {
1638  return (vector float)__vec[__index];
1639}
1640#endif
1641
1642static inline __ATTRS_o_ai vector double
1643vec_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
1650static inline __ATTRS_ai vector signed char
1651vec_splat_s8(signed char __scalar)
1652  __constant(__scalar) {
1653  return (vector signed char)__scalar;
1654}
1655
1656static inline __ATTRS_ai vector signed short
1657vec_splat_s16(signed short __scalar)
1658  __constant(__scalar) {
1659  return (vector signed short)__scalar;
1660}
1661
1662static inline __ATTRS_ai vector signed int
1663vec_splat_s32(signed short __scalar)
1664  __constant(__scalar) {
1665  return (vector signed int)(signed int)__scalar;
1666}
1667
1668static inline __ATTRS_ai vector signed long long
1669vec_splat_s64(signed short __scalar)
1670  __constant(__scalar) {
1671  return (vector signed long long)(signed long)__scalar;
1672}
1673
1674/*-- vec_splat_u* -----------------------------------------------------------*/
1675
1676static inline __ATTRS_ai vector unsigned char
1677vec_splat_u8(unsigned char __scalar)
1678  __constant(__scalar) {
1679  return (vector unsigned char)__scalar;
1680}
1681
1682static inline __ATTRS_ai vector unsigned short
1683vec_splat_u16(unsigned short __scalar)
1684  __constant(__scalar) {
1685  return (vector unsigned short)__scalar;
1686}
1687
1688static inline __ATTRS_ai vector unsigned int
1689vec_splat_u32(signed short __scalar)
1690  __constant(__scalar) {
1691  return (vector unsigned int)(signed int)__scalar;
1692}
1693
1694static inline __ATTRS_ai vector unsigned long long
1695vec_splat_u64(signed short __scalar)
1696  __constant(__scalar) {
1697  return (vector unsigned long long)(signed long long)__scalar;
1698}
1699
1700/*-- vec_splats -------------------------------------------------------------*/
1701
1702static inline __ATTRS_o_ai vector signed char
1703vec_splats(signed char __scalar) {
1704  return (vector signed char)__scalar;
1705}
1706
1707static inline __ATTRS_o_ai vector unsigned char
1708vec_splats(unsigned char __scalar) {
1709  return (vector unsigned char)__scalar;
1710}
1711
1712static inline __ATTRS_o_ai vector signed short
1713vec_splats(signed short __scalar) {
1714  return (vector signed short)__scalar;
1715}
1716
1717static inline __ATTRS_o_ai vector unsigned short
1718vec_splats(unsigned short __scalar) {
1719  return (vector unsigned short)__scalar;
1720}
1721
1722static inline __ATTRS_o_ai vector signed int
1723vec_splats(signed int __scalar) {
1724  return (vector signed int)__scalar;
1725}
1726
1727static inline __ATTRS_o_ai vector unsigned int
1728vec_splats(unsigned int __scalar) {
1729  return (vector unsigned int)__scalar;
1730}
1731
1732static inline __ATTRS_o_ai vector signed long long
1733vec_splats(signed long long __scalar) {
1734  return (vector signed long long)__scalar;
1735}
1736
1737static inline __ATTRS_o_ai vector unsigned long long
1738vec_splats(unsigned long long __scalar) {
1739  return (vector unsigned long long)__scalar;
1740}
1741
1742#if __ARCH__ >= 12
1743static inline __ATTRS_o_ai vector float
1744vec_splats(float __scalar) {
1745  return (vector float)__scalar;
1746}
1747#endif
1748
1749static inline __ATTRS_o_ai vector double
1750vec_splats(double __scalar) {
1751  return (vector double)__scalar;
1752}
1753
1754/*-- vec_extend_s64 ---------------------------------------------------------*/
1755
1756static inline __ATTRS_o_ai vector signed long long
1757vec_extend_s64(vector signed char __a) {
1758  return (vector signed long long)(__a[7], __a[15]);
1759}
1760
1761static inline __ATTRS_o_ai vector signed long long
1762vec_extend_s64(vector signed short __a) {
1763  return (vector signed long long)(__a[3], __a[7]);
1764}
1765
1766static inline __ATTRS_o_ai vector signed long long
1767vec_extend_s64(vector signed int __a) {
1768  return (vector signed long long)(__a[1], __a[3]);
1769}
1770
1771/*-- vec_mergeh -------------------------------------------------------------*/
1772
1773static inline __ATTRS_o_ai vector signed char
1774vec_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
1780static inline __ATTRS_o_ai vector bool char
1781vec_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
1787static inline __ATTRS_o_ai vector unsigned char
1788vec_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
1794static inline __ATTRS_o_ai vector signed short
1795vec_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
1800static inline __ATTRS_o_ai vector bool short
1801vec_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
1806static inline __ATTRS_o_ai vector unsigned short
1807vec_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
1812static inline __ATTRS_o_ai vector signed int
1813vec_mergeh(vector signed int __a, vector signed int __b) {
1814  return (vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1815}
1816
1817static inline __ATTRS_o_ai vector bool int
1818vec_mergeh(vector bool int __a, vector bool int __b) {
1819  return (vector bool int)(__a[0], __b[0], __a[1], __b[1]);
1820}
1821
1822static inline __ATTRS_o_ai vector unsigned int
1823vec_mergeh(vector unsigned int __a, vector unsigned int __b) {
1824  return (vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1825}
1826
1827static inline __ATTRS_o_ai vector signed long long
1828vec_mergeh(vector signed long long __a, vector signed long long __b) {
1829  return (vector signed long long)(__a[0], __b[0]);
1830}
1831
1832static inline __ATTRS_o_ai vector bool long long
1833vec_mergeh(vector bool long long __a, vector bool long long __b) {
1834  return (vector bool long long)(__a[0], __b[0]);
1835}
1836
1837static inline __ATTRS_o_ai vector unsigned long long
1838vec_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
1843static inline __ATTRS_o_ai vector float
1844vec_mergeh(vector float __a, vector float __b) {
1845  return (vector float)(__a[0], __b[0], __a[1], __b[1]);
1846}
1847#endif
1848
1849static inline __ATTRS_o_ai vector double
1850vec_mergeh(vector double __a, vector double __b) {
1851  return (vector double)(__a[0], __b[0]);
1852}
1853
1854/*-- vec_mergel -------------------------------------------------------------*/
1855
1856static inline __ATTRS_o_ai vector signed char
1857vec_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
1863static inline __ATTRS_o_ai vector bool char
1864vec_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
1870static inline __ATTRS_o_ai vector unsigned char
1871vec_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
1877static inline __ATTRS_o_ai vector signed short
1878vec_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
1883static inline __ATTRS_o_ai vector bool short
1884vec_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
1889static inline __ATTRS_o_ai vector unsigned short
1890vec_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
1895static inline __ATTRS_o_ai vector signed int
1896vec_mergel(vector signed int __a, vector signed int __b) {
1897  return (vector signed int)(__a[2], __b[2], __a[3], __b[3]);
1898}
1899
1900static inline __ATTRS_o_ai vector bool int
1901vec_mergel(vector bool int __a, vector bool int __b) {
1902  return (vector bool int)(__a[2], __b[2], __a[3], __b[3]);
1903}
1904
1905static inline __ATTRS_o_ai vector unsigned int
1906vec_mergel(vector unsigned int __a, vector unsigned int __b) {
1907  return (vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
1908}
1909
1910static inline __ATTRS_o_ai vector signed long long
1911vec_mergel(vector signed long long __a, vector signed long long __b) {
1912  return (vector signed long long)(__a[1], __b[1]);
1913}
1914
1915static inline __ATTRS_o_ai vector bool long long
1916vec_mergel(vector bool long long __a, vector bool long long __b) {
1917  return (vector bool long long)(__a[1], __b[1]);
1918}
1919
1920static inline __ATTRS_o_ai vector unsigned long long
1921vec_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
1926static inline __ATTRS_o_ai vector float
1927vec_mergel(vector float __a, vector float __b) {
1928  return (vector float)(__a[2], __b[2], __a[3], __b[3]);
1929}
1930#endif
1931
1932static inline __ATTRS_o_ai vector double
1933vec_mergel(vector double __a, vector double __b) {
1934  return (vector double)(__a[1], __b[1]);
1935}
1936
1937/*-- vec_pack ---------------------------------------------------------------*/
1938
1939static inline __ATTRS_o_ai vector signed char
1940vec_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
1948static inline __ATTRS_o_ai vector bool char
1949vec_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
1957static inline __ATTRS_o_ai vector unsigned char
1958vec_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
1966static inline __ATTRS_o_ai vector signed short
1967vec_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
1975static inline __ATTRS_o_ai vector bool short
1976vec_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
1984static inline __ATTRS_o_ai vector unsigned short
1985vec_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
1993static inline __ATTRS_o_ai vector signed int
1994vec_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
2000static inline __ATTRS_o_ai vector bool int
2001vec_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
2007static inline __ATTRS_o_ai vector unsigned int
2008vec_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
2016static inline __ATTRS_o_ai vector signed char
2017vec_packs(vector signed short __a, vector signed short __b) {
2018  return __builtin_s390_vpksh(__a, __b);
2019}
2020
2021static inline __ATTRS_o_ai vector unsigned char
2022vec_packs(vector unsigned short __a, vector unsigned short __b) {
2023  return __builtin_s390_vpklsh(__a, __b);
2024}
2025
2026static inline __ATTRS_o_ai vector signed short
2027vec_packs(vector signed int __a, vector signed int __b) {
2028  return __builtin_s390_vpksf(__a, __b);
2029}
2030
2031static inline __ATTRS_o_ai vector unsigned short
2032vec_packs(vector unsigned int __a, vector unsigned int __b) {
2033  return __builtin_s390_vpklsf(__a, __b);
2034}
2035
2036static inline __ATTRS_o_ai vector signed int
2037vec_packs(vector signed long long __a, vector signed long long __b) {
2038  return __builtin_s390_vpksg(__a, __b);
2039}
2040
2041static inline __ATTRS_o_ai vector unsigned int
2042vec_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
2048static inline __ATTRS_o_ai vector signed char
2049vec_packs_cc(vector signed short __a, vector signed short __b, int *__cc) {
2050  return __builtin_s390_vpkshs(__a, __b, __cc);
2051}
2052
2053static inline __ATTRS_o_ai vector unsigned char
2054vec_packs_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
2055  return __builtin_s390_vpklshs(__a, __b, __cc);
2056}
2057
2058static inline __ATTRS_o_ai vector signed short
2059vec_packs_cc(vector signed int __a, vector signed int __b, int *__cc) {
2060  return __builtin_s390_vpksfs(__a, __b, __cc);
2061}
2062
2063static inline __ATTRS_o_ai vector unsigned short
2064vec_packs_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
2065  return __builtin_s390_vpklsfs(__a, __b, __cc);
2066}
2067
2068static inline __ATTRS_o_ai vector signed int
2069vec_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
2074static inline __ATTRS_o_ai vector unsigned int
2075vec_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
2082static inline __ATTRS_o_ai vector unsigned char
2083vec_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
2090static inline __ATTRS_o_ai vector unsigned char
2091vec_packsu(vector unsigned short __a, vector unsigned short __b) {
2092  return __builtin_s390_vpklsh(__a, __b);
2093}
2094
2095static inline __ATTRS_o_ai vector unsigned short
2096vec_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
2103static inline __ATTRS_o_ai vector unsigned short
2104vec_packsu(vector unsigned int __a, vector unsigned int __b) {
2105  return __builtin_s390_vpklsf(__a, __b);
2106}
2107
2108static inline __ATTRS_o_ai vector unsigned int
2109vec_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
2118static inline __ATTRS_o_ai vector unsigned int
2119vec_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
2125static inline __ATTRS_o_ai vector unsigned char
2126vec_packsu_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
2127  return __builtin_s390_vpklshs(__a, __b, __cc);
2128}
2129
2130static inline __ATTRS_o_ai vector unsigned short
2131vec_packsu_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
2132  return __builtin_s390_vpklsfs(__a, __b, __cc);
2133}
2134
2135static inline __ATTRS_o_ai vector unsigned int
2136vec_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
2143static inline __ATTRS_o_ai vector signed short
2144vec_unpackh(vector signed char __a) {
2145  return __builtin_s390_vuphb(__a);
2146}
2147
2148static inline __ATTRS_o_ai vector bool short
2149vec_unpackh(vector bool char __a) {
2150  return (vector bool short)__builtin_s390_vuphb((vector signed char)__a);
2151}
2152
2153static inline __ATTRS_o_ai vector unsigned short
2154vec_unpackh(vector unsigned char __a) {
2155  return __builtin_s390_vuplhb(__a);
2156}
2157
2158static inline __ATTRS_o_ai vector signed int
2159vec_unpackh(vector signed short __a) {
2160  return __builtin_s390_vuphh(__a);
2161}
2162
2163static inline __ATTRS_o_ai vector bool int
2164vec_unpackh(vector bool short __a) {
2165  return (vector bool int)__builtin_s390_vuphh((vector signed short)__a);
2166}
2167
2168static inline __ATTRS_o_ai vector unsigned int
2169vec_unpackh(vector unsigned short __a) {
2170  return __builtin_s390_vuplhh(__a);
2171}
2172
2173static inline __ATTRS_o_ai vector signed long long
2174vec_unpackh(vector signed int __a) {
2175  return __builtin_s390_vuphf(__a);
2176}
2177
2178static inline __ATTRS_o_ai vector bool long long
2179vec_unpackh(vector bool int __a) {
2180  return (vector bool long long)__builtin_s390_vuphf((vector signed int)__a);
2181}
2182
2183static inline __ATTRS_o_ai vector unsigned long long
2184vec_unpackh(vector unsigned int __a) {
2185  return __builtin_s390_vuplhf(__a);
2186}
2187
2188/*-- vec_unpackl ------------------------------------------------------------*/
2189
2190static inline __ATTRS_o_ai vector signed short
2191vec_unpackl(vector signed char __a) {
2192  return __builtin_s390_vuplb(__a);
2193}
2194
2195static inline __ATTRS_o_ai vector bool short
2196vec_unpackl(vector bool char __a) {
2197  return (vector bool short)__builtin_s390_vuplb((vector signed char)__a);
2198}
2199
2200static inline __ATTRS_o_ai vector unsigned short
2201vec_unpackl(vector unsigned char __a) {
2202  return __builtin_s390_vupllb(__a);
2203}
2204
2205static inline __ATTRS_o_ai vector signed int
2206vec_unpackl(vector signed short __a) {
2207  return __builtin_s390_vuplhw(__a);
2208}
2209
2210static inline __ATTRS_o_ai vector bool int
2211vec_unpackl(vector bool short __a) {
2212  return (vector bool int)__builtin_s390_vuplhw((vector signed short)__a);
2213}
2214
2215static inline __ATTRS_o_ai vector unsigned int
2216vec_unpackl(vector unsigned short __a) {
2217  return __builtin_s390_vupllh(__a);
2218}
2219
2220static inline __ATTRS_o_ai vector signed long long
2221vec_unpackl(vector signed int __a) {
2222  return __builtin_s390_vuplf(__a);
2223}
2224
2225static inline __ATTRS_o_ai vector bool long long
2226vec_unpackl(vector bool int __a) {
2227  return (vector bool long long)__builtin_s390_vuplf((vector signed int)__a);
2228}
2229
2230static inline __ATTRS_o_ai vector unsigned long long
2231vec_unpackl(vector unsigned int __a) {
2232  return __builtin_s390_vupllf(__a);
2233}
2234
2235/*-- vec_cmpeq --------------------------------------------------------------*/
2236
2237static inline __ATTRS_o_ai vector bool char
2238vec_cmpeq(vector bool char __a, vector bool char __b) {
2239  return (vector bool char)(__a == __b);
2240}
2241
2242static inline __ATTRS_o_ai vector bool char
2243vec_cmpeq(vector signed char __a, vector signed char __b) {
2244  return (vector bool char)(__a == __b);
2245}
2246
2247static inline __ATTRS_o_ai vector bool char
2248vec_cmpeq(vector unsigned char __a, vector unsigned char __b) {
2249  return (vector bool char)(__a == __b);
2250}
2251
2252static inline __ATTRS_o_ai vector bool short
2253vec_cmpeq(vector bool short __a, vector bool short __b) {
2254  return (vector bool short)(__a == __b);
2255}
2256
2257static inline __ATTRS_o_ai vector bool short
2258vec_cmpeq(vector signed short __a, vector signed short __b) {
2259  return (vector bool short)(__a == __b);
2260}
2261
2262static inline __ATTRS_o_ai vector bool short
2263vec_cmpeq(vector unsigned short __a, vector unsigned short __b) {
2264  return (vector bool short)(__a == __b);
2265}
2266
2267static inline __ATTRS_o_ai vector bool int
2268vec_cmpeq(vector bool int __a, vector bool int __b) {
2269  return (vector bool int)(__a == __b);
2270}
2271
2272static inline __ATTRS_o_ai vector bool int
2273vec_cmpeq(vector signed int __a, vector signed int __b) {
2274  return (vector bool int)(__a == __b);
2275}
2276
2277static inline __ATTRS_o_ai vector bool int
2278vec_cmpeq(vector unsigned int __a, vector unsigned int __b) {
2279  return (vector bool int)(__a == __b);
2280}
2281
2282static inline __ATTRS_o_ai vector bool long long
2283vec_cmpeq(vector bool long long __a, vector bool long long __b) {
2284  return (vector bool long long)(__a == __b);
2285}
2286
2287static inline __ATTRS_o_ai vector bool long long
2288vec_cmpeq(vector signed long long __a, vector signed long long __b) {
2289  return (vector bool long long)(__a == __b);
2290}
2291
2292static inline __ATTRS_o_ai vector bool long long
2293vec_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
2298static inline __ATTRS_o_ai vector bool int
2299vec_cmpeq(vector float __a, vector float __b) {
2300  return (vector bool int)(__a == __b);
2301}
2302#endif
2303
2304static inline __ATTRS_o_ai vector bool long long
2305vec_cmpeq(vector double __a, vector double __b) {
2306  return (vector bool long long)(__a == __b);
2307}
2308
2309/*-- vec_cmpge --------------------------------------------------------------*/
2310
2311static inline __ATTRS_o_ai vector bool char
2312vec_cmpge(vector signed char __a, vector signed char __b) {
2313  return (vector bool char)(__a >= __b);
2314}
2315
2316static inline __ATTRS_o_ai vector bool char
2317vec_cmpge(vector unsigned char __a, vector unsigned char __b) {
2318  return (vector bool char)(__a >= __b);
2319}
2320
2321static inline __ATTRS_o_ai vector bool short
2322vec_cmpge(vector signed short __a, vector signed short __b) {
2323  return (vector bool short)(__a >= __b);
2324}
2325
2326static inline __ATTRS_o_ai vector bool short
2327vec_cmpge(vector unsigned short __a, vector unsigned short __b) {
2328  return (vector bool short)(__a >= __b);
2329}
2330
2331static inline __ATTRS_o_ai vector bool int
2332vec_cmpge(vector signed int __a, vector signed int __b) {
2333  return (vector bool int)(__a >= __b);
2334}
2335
2336static inline __ATTRS_o_ai vector bool int
2337vec_cmpge(vector unsigned int __a, vector unsigned int __b) {
2338  return (vector bool int)(__a >= __b);
2339}
2340
2341static inline __ATTRS_o_ai vector bool long long
2342vec_cmpge(vector signed long long __a, vector signed long long __b) {
2343  return (vector bool long long)(__a >= __b);
2344}
2345
2346static inline __ATTRS_o_ai vector bool long long
2347vec_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
2352static inline __ATTRS_o_ai vector bool int
2353vec_cmpge(vector float __a, vector float __b) {
2354  return (vector bool int)(__a >= __b);
2355}
2356#endif
2357
2358static inline __ATTRS_o_ai vector bool long long
2359vec_cmpge(vector double __a, vector double __b) {
2360  return (vector bool long long)(__a >= __b);
2361}
2362
2363/*-- vec_cmpgt --------------------------------------------------------------*/
2364
2365static inline __ATTRS_o_ai vector bool char
2366vec_cmpgt(vector signed char __a, vector signed char __b) {
2367  return (vector bool char)(__a > __b);
2368}
2369
2370static inline __ATTRS_o_ai vector bool char
2371vec_cmpgt(vector unsigned char __a, vector unsigned char __b) {
2372  return (vector bool char)(__a > __b);
2373}
2374
2375static inline __ATTRS_o_ai vector bool short
2376vec_cmpgt(vector signed short __a, vector signed short __b) {
2377  return (vector bool short)(__a > __b);
2378}
2379
2380static inline __ATTRS_o_ai vector bool short
2381vec_cmpgt(vector unsigned short __a, vector unsigned short __b) {
2382  return (vector bool short)(__a > __b);
2383}
2384
2385static inline __ATTRS_o_ai vector bool int
2386vec_cmpgt(vector signed int __a, vector signed int __b) {
2387  return (vector bool int)(__a > __b);
2388}
2389
2390static inline __ATTRS_o_ai vector bool int
2391vec_cmpgt(vector unsigned int __a, vector unsigned int __b) {
2392  return (vector bool int)(__a > __b);
2393}
2394
2395static inline __ATTRS_o_ai vector bool long long
2396vec_cmpgt(vector signed long long __a, vector signed long long __b) {
2397  return (vector bool long long)(__a > __b);
2398}
2399
2400static inline __ATTRS_o_ai vector bool long long
2401vec_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
2406static inline __ATTRS_o_ai vector bool int
2407vec_cmpgt(vector float __a, vector float __b) {
2408  return (vector bool int)(__a > __b);
2409}
2410#endif
2411
2412static inline __ATTRS_o_ai vector bool long long
2413vec_cmpgt(vector double __a, vector double __b) {
2414  return (vector bool long long)(__a > __b);
2415}
2416
2417/*-- vec_cmple --------------------------------------------------------------*/
2418
2419static inline __ATTRS_o_ai vector bool char
2420vec_cmple(vector signed char __a, vector signed char __b) {
2421  return (vector bool char)(__a <= __b);
2422}
2423
2424static inline __ATTRS_o_ai vector bool char
2425vec_cmple(vector unsigned char __a, vector unsigned char __b) {
2426  return (vector bool char)(__a <= __b);
2427}
2428
2429static inline __ATTRS_o_ai vector bool short
2430vec_cmple(vector signed short __a, vector signed short __b) {
2431  return (vector bool short)(__a <= __b);
2432}
2433
2434static inline __ATTRS_o_ai vector bool short
2435vec_cmple(vector unsigned short __a, vector unsigned short __b) {
2436  return (vector bool short)(__a <= __b);
2437}
2438
2439static inline __ATTRS_o_ai vector bool int
2440vec_cmple(vector signed int __a, vector signed int __b) {
2441  return (vector bool int)(__a <= __b);
2442}
2443
2444static inline __ATTRS_o_ai vector bool int
2445vec_cmple(vector unsigned int __a, vector unsigned int __b) {
2446  return (vector bool int)(__a <= __b);
2447}
2448
2449static inline __ATTRS_o_ai vector bool long long
2450vec_cmple(vector signed long long __a, vector signed long long __b) {
2451  return (vector bool long long)(__a <= __b);
2452}
2453
2454static inline __ATTRS_o_ai vector bool long long
2455vec_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
2460static inline __ATTRS_o_ai vector bool int
2461vec_cmple(vector float __a, vector float __b) {
2462  return (vector bool int)(__a <= __b);
2463}
2464#endif
2465
2466static inline __ATTRS_o_ai vector bool long long
2467vec_cmple(vector double __a, vector double __b) {
2468  return (vector bool long long)(__a <= __b);
2469}
2470
2471/*-- vec_cmplt --------------------------------------------------------------*/
2472
2473static inline __ATTRS_o_ai vector bool char
2474vec_cmplt(vector signed char __a, vector signed char __b) {
2475  return (vector bool char)(__a < __b);
2476}
2477
2478static inline __ATTRS_o_ai vector bool char
2479vec_cmplt(vector unsigned char __a, vector unsigned char __b) {
2480  return (vector bool char)(__a < __b);
2481}
2482
2483static inline __ATTRS_o_ai vector bool short
2484vec_cmplt(vector signed short __a, vector signed short __b) {
2485  return (vector bool short)(__a < __b);
2486}
2487
2488static inline __ATTRS_o_ai vector bool short
2489vec_cmplt(vector unsigned short __a, vector unsigned short __b) {
2490  return (vector bool short)(__a < __b);
2491}
2492
2493static inline __ATTRS_o_ai vector bool int
2494vec_cmplt(vector signed int __a, vector signed int __b) {
2495  return (vector bool int)(__a < __b);
2496}
2497
2498static inline __ATTRS_o_ai vector bool int
2499vec_cmplt(vector unsigned int __a, vector unsigned int __b) {
2500  return (vector bool int)(__a < __b);
2501}
2502
2503static inline __ATTRS_o_ai vector bool long long
2504vec_cmplt(vector signed long long __a, vector signed long long __b) {
2505  return (vector bool long long)(__a < __b);
2506}
2507
2508static inline __ATTRS_o_ai vector bool long long
2509vec_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
2514static inline __ATTRS_o_ai vector bool int
2515vec_cmplt(vector float __a, vector float __b) {
2516  return (vector bool int)(__a < __b);
2517}
2518#endif
2519
2520static inline __ATTRS_o_ai vector bool long long
2521vec_cmplt(vector double __a, vector double __b) {
2522  return (vector bool long long)(__a < __b);
2523}
2524
2525/*-- vec_all_eq -------------------------------------------------------------*/
2526
2527static inline __ATTRS_o_ai int
2528vec_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.
2535static inline __ATTRS_o_ai int
2536vec_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.
2543static inline __ATTRS_o_ai int
2544vec_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
2550static inline __ATTRS_o_ai int
2551vec_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.
2559static inline __ATTRS_o_ai int
2560vec_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.
2568static inline __ATTRS_o_ai int
2569vec_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
2576static inline __ATTRS_o_ai int
2577vec_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
2584static inline __ATTRS_o_ai int
2585vec_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.
2592static inline __ATTRS_o_ai int
2593vec_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.
2600static inline __ATTRS_o_ai int
2601vec_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
2607static inline __ATTRS_o_ai int
2608vec_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.
2616static inline __ATTRS_o_ai int
2617vec_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.
2625static inline __ATTRS_o_ai int
2626vec_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
2633static inline __ATTRS_o_ai int
2634vec_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
2641static inline __ATTRS_o_ai int
2642vec_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.
2649static inline __ATTRS_o_ai int
2650vec_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.
2657static inline __ATTRS_o_ai int
2658vec_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
2664static inline __ATTRS_o_ai int
2665vec_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.
2673static inline __ATTRS_o_ai int
2674vec_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.
2682static inline __ATTRS_o_ai int
2683vec_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
2690static inline __ATTRS_o_ai int
2691vec_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
2698static inline __ATTRS_o_ai int
2699vec_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.
2706static inline __ATTRS_o_ai int
2707vec_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.
2714static inline __ATTRS_o_ai int
2715vec_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
2721static inline __ATTRS_o_ai int
2722vec_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.
2730static inline __ATTRS_o_ai int
2731vec_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.
2739static inline __ATTRS_o_ai int
2740vec_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
2747static inline __ATTRS_o_ai int
2748vec_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
2756static inline __ATTRS_o_ai int
2757vec_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
2764static inline __ATTRS_o_ai int
2765vec_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
2773static inline __ATTRS_o_ai int
2774vec_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.
2781static inline __ATTRS_o_ai int
2782vec_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.
2789static inline __ATTRS_o_ai int
2790vec_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
2796static inline __ATTRS_o_ai int
2797vec_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.
2805static inline __ATTRS_o_ai int
2806vec_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.
2814static inline __ATTRS_o_ai int
2815vec_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
2822static inline __ATTRS_o_ai int
2823vec_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
2830static inline __ATTRS_o_ai int
2831vec_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.
2838static inline __ATTRS_o_ai int
2839vec_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.
2846static inline __ATTRS_o_ai int
2847vec_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
2853static inline __ATTRS_o_ai int
2854vec_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.
2862static inline __ATTRS_o_ai int
2863vec_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.
2871static inline __ATTRS_o_ai int
2872vec_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
2879static inline __ATTRS_o_ai int
2880vec_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
2887static inline __ATTRS_o_ai int
2888vec_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.
2895static inline __ATTRS_o_ai int
2896vec_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.
2903static inline __ATTRS_o_ai int
2904vec_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
2910static inline __ATTRS_o_ai int
2911vec_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.
2919static inline __ATTRS_o_ai int
2920vec_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.
2928static inline __ATTRS_o_ai int
2929vec_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
2936static inline __ATTRS_o_ai int
2937vec_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
2944static inline __ATTRS_o_ai int
2945vec_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.
2952static inline __ATTRS_o_ai int
2953vec_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.
2960static inline __ATTRS_o_ai int
2961vec_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
2967static inline __ATTRS_o_ai int
2968vec_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.
2976static inline __ATTRS_o_ai int
2977vec_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.
2985static inline __ATTRS_o_ai int
2986vec_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
2993static inline __ATTRS_o_ai int
2994vec_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
3002static inline __ATTRS_o_ai int
3003vec_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
3010static inline __ATTRS_o_ai int
3011vec_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
3019static inline __ATTRS_o_ai int
3020vec_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.
3027static inline __ATTRS_o_ai int
3028vec_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.
3035static inline __ATTRS_o_ai int
3036vec_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
3042static inline __ATTRS_o_ai int
3043vec_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.
3050static inline __ATTRS_o_ai int
3051vec_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.
3058static inline __ATTRS_o_ai int
3059vec_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.
3066static inline __ATTRS_o_ai int
3067vec_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
3074static inline __ATTRS_o_ai int
3075vec_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.
3082static inline __ATTRS_o_ai int
3083vec_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.
3090static inline __ATTRS_o_ai int
3091vec_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
3097static inline __ATTRS_o_ai int
3098vec_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.
3105static inline __ATTRS_o_ai int
3106vec_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.
3113static inline __ATTRS_o_ai int
3114vec_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.
3121static inline __ATTRS_o_ai int
3122vec_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
3129static inline __ATTRS_o_ai int
3130vec_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.
3137static inline __ATTRS_o_ai int
3138vec_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.
3145static inline __ATTRS_o_ai int
3146vec_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
3152static inline __ATTRS_o_ai int
3153vec_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.
3160static inline __ATTRS_o_ai int
3161vec_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.
3168static inline __ATTRS_o_ai int
3169vec_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.
3176static inline __ATTRS_o_ai int
3177vec_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
3184static inline __ATTRS_o_ai int
3185vec_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.
3192static inline __ATTRS_o_ai int
3193vec_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.
3200static inline __ATTRS_o_ai int
3201vec_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
3207static inline __ATTRS_o_ai int
3208vec_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.
3215static inline __ATTRS_o_ai int
3216vec_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.
3223static inline __ATTRS_o_ai int
3224vec_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.
3231static inline __ATTRS_o_ai int
3232vec_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
3240static inline __ATTRS_o_ai int
3241vec_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
3248static inline __ATTRS_o_ai int
3249vec_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
3257static inline __ATTRS_o_ai int
3258vec_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.
3265static inline __ATTRS_o_ai int
3266vec_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.
3273static inline __ATTRS_o_ai int
3274vec_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
3280static inline __ATTRS_o_ai int
3281vec_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.
3288static inline __ATTRS_o_ai int
3289vec_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.
3296static inline __ATTRS_o_ai int
3297vec_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.
3304static inline __ATTRS_o_ai int
3305vec_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
3312static inline __ATTRS_o_ai int
3313vec_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.
3320static inline __ATTRS_o_ai int
3321vec_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.
3328static inline __ATTRS_o_ai int
3329vec_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
3335static inline __ATTRS_o_ai int
3336vec_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.
3343static inline __ATTRS_o_ai int
3344vec_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.
3351static inline __ATTRS_o_ai int
3352vec_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.
3359static inline __ATTRS_o_ai int
3360vec_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
3367static inline __ATTRS_o_ai int
3368vec_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.
3375static inline __ATTRS_o_ai int
3376vec_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.
3383static inline __ATTRS_o_ai int
3384vec_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
3390static inline __ATTRS_o_ai int
3391vec_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.
3398static inline __ATTRS_o_ai int
3399vec_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.
3406static inline __ATTRS_o_ai int
3407vec_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.
3414static inline __ATTRS_o_ai int
3415vec_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
3422static inline __ATTRS_o_ai int
3423vec_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.
3430static inline __ATTRS_o_ai int
3431vec_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.
3438static inline __ATTRS_o_ai int
3439vec_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
3445static inline __ATTRS_o_ai int
3446vec_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.
3453static inline __ATTRS_o_ai int
3454vec_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.
3461static inline __ATTRS_o_ai int
3462vec_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.
3469static inline __ATTRS_o_ai int
3470vec_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
3478static inline __ATTRS_o_ai int
3479vec_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
3486static inline __ATTRS_o_ai int
3487vec_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
3495static inline __ATTRS_o_ai int
3496vec_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.
3503static inline __ATTRS_o_ai int
3504vec_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.
3511static inline __ATTRS_o_ai int
3512vec_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
3518static inline __ATTRS_o_ai int
3519vec_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.
3526static inline __ATTRS_o_ai int
3527vec_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.
3534static inline __ATTRS_o_ai int
3535vec_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.
3542static inline __ATTRS_o_ai int
3543vec_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
3550static inline __ATTRS_o_ai int
3551vec_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.
3558static inline __ATTRS_o_ai int
3559vec_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.
3566static inline __ATTRS_o_ai int
3567vec_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
3573static inline __ATTRS_o_ai int
3574vec_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.
3581static inline __ATTRS_o_ai int
3582vec_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.
3589static inline __ATTRS_o_ai int
3590vec_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.
3597static inline __ATTRS_o_ai int
3598vec_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
3605static inline __ATTRS_o_ai int
3606vec_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.
3613static inline __ATTRS_o_ai int
3614vec_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.
3621static inline __ATTRS_o_ai int
3622vec_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
3628static inline __ATTRS_o_ai int
3629vec_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.
3636static inline __ATTRS_o_ai int
3637vec_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.
3644static inline __ATTRS_o_ai int
3645vec_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.
3652static inline __ATTRS_o_ai int
3653vec_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
3660static inline __ATTRS_o_ai int
3661vec_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.
3668static inline __ATTRS_o_ai int
3669vec_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.
3676static inline __ATTRS_o_ai int
3677vec_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
3683static inline __ATTRS_o_ai int
3684vec_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.
3691static inline __ATTRS_o_ai int
3692vec_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.
3699static inline __ATTRS_o_ai int
3700vec_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.
3707static inline __ATTRS_o_ai int
3708vec_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
3716static inline __ATTRS_o_ai int
3717vec_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
3724static inline __ATTRS_o_ai int
3725vec_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
3733static inline __ATTRS_o_ai int
3734vec_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.
3741static inline __ATTRS_o_ai int
3742vec_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.
3749static inline __ATTRS_o_ai int
3750vec_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
3756static inline __ATTRS_o_ai int
3757vec_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.
3764static inline __ATTRS_o_ai int
3765vec_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.
3772static inline __ATTRS_o_ai int
3773vec_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.
3780static inline __ATTRS_o_ai int
3781vec_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
3788static inline __ATTRS_o_ai int
3789vec_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.
3796static inline __ATTRS_o_ai int
3797vec_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.
3804static inline __ATTRS_o_ai int
3805vec_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
3811static inline __ATTRS_o_ai int
3812vec_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.
3819static inline __ATTRS_o_ai int
3820vec_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.
3827static inline __ATTRS_o_ai int
3828vec_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.
3835static inline __ATTRS_o_ai int
3836vec_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
3843static inline __ATTRS_o_ai int
3844vec_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.
3851static inline __ATTRS_o_ai int
3852vec_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.
3859static inline __ATTRS_o_ai int
3860vec_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
3866static inline __ATTRS_o_ai int
3867vec_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.
3874static inline __ATTRS_o_ai int
3875vec_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.
3882static inline __ATTRS_o_ai int
3883vec_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.
3890static inline __ATTRS_o_ai int
3891vec_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
3898static inline __ATTRS_o_ai int
3899vec_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.
3906static inline __ATTRS_o_ai int
3907vec_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.
3914static inline __ATTRS_o_ai int
3915vec_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
3921static inline __ATTRS_o_ai int
3922vec_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.
3929static inline __ATTRS_o_ai int
3930vec_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.
3937static inline __ATTRS_o_ai int
3938vec_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.
3945static inline __ATTRS_o_ai int
3946vec_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
3954static inline __ATTRS_o_ai int
3955vec_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
3962static inline __ATTRS_o_ai int
3963vec_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
3972static inline __ATTRS_o_ai int
3973vec_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
3980static inline __ATTRS_o_ai int
3981vec_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
3990static inline __ATTRS_o_ai int
3991vec_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
3998static inline __ATTRS_o_ai int
3999vec_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
4008static inline __ATTRS_o_ai int
4009vec_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
4016static inline __ATTRS_o_ai int
4017vec_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
4026static inline __ATTRS_o_ai int
4027vec_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
4034static inline __ATTRS_o_ai int
4035vec_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
4044static inline __ATTRS_o_ai int
4045vec_all_nan(vector float __a) {
4046  int __cc;
4047  __builtin_s390_vftcisb(__a, 15, &__cc);
4048  return __cc == 0;
4049}
4050#endif
4051
4052static inline __ATTRS_o_ai int
4053vec_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
4062static inline __ATTRS_o_ai int
4063vec_all_numeric(vector float __a) {
4064  int __cc;
4065  __builtin_s390_vftcisb(__a, 15, &__cc);
4066  return __cc == 3;
4067}
4068#endif
4069
4070static inline __ATTRS_o_ai int
4071vec_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
4079static inline __ATTRS_o_ai int
4080vec_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.
4087static inline __ATTRS_o_ai int
4088vec_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.
4095static inline __ATTRS_o_ai int
4096vec_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
4102static inline __ATTRS_o_ai int
4103vec_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.
4111static inline __ATTRS_o_ai int
4112vec_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.
4120static inline __ATTRS_o_ai int
4121vec_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
4128static inline __ATTRS_o_ai int
4129vec_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
4136static inline __ATTRS_o_ai int
4137vec_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.
4144static inline __ATTRS_o_ai int
4145vec_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.
4152static inline __ATTRS_o_ai int
4153vec_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
4159static inline __ATTRS_o_ai int
4160vec_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.
4168static inline __ATTRS_o_ai int
4169vec_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.
4177static inline __ATTRS_o_ai int
4178vec_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
4185static inline __ATTRS_o_ai int
4186vec_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
4193static inline __ATTRS_o_ai int
4194vec_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.
4201static inline __ATTRS_o_ai int
4202vec_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.
4209static inline __ATTRS_o_ai int
4210vec_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
4216static inline __ATTRS_o_ai int
4217vec_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.
4225static inline __ATTRS_o_ai int
4226vec_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.
4234static inline __ATTRS_o_ai int
4235vec_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
4242static inline __ATTRS_o_ai int
4243vec_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
4250static inline __ATTRS_o_ai int
4251vec_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.
4258static inline __ATTRS_o_ai int
4259vec_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.
4266static inline __ATTRS_o_ai int
4267vec_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
4273static inline __ATTRS_o_ai int
4274vec_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.
4282static inline __ATTRS_o_ai int
4283vec_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.
4291static inline __ATTRS_o_ai int
4292vec_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
4299static inline __ATTRS_o_ai int
4300vec_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
4308static inline __ATTRS_o_ai int
4309vec_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
4316static inline __ATTRS_o_ai int
4317vec_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
4325static inline __ATTRS_o_ai int
4326vec_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.
4333static inline __ATTRS_o_ai int
4334vec_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.
4341static inline __ATTRS_o_ai int
4342vec_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
4348static inline __ATTRS_o_ai int
4349vec_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.
4357static inline __ATTRS_o_ai int
4358vec_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.
4366static inline __ATTRS_o_ai int
4367vec_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
4374static inline __ATTRS_o_ai int
4375vec_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
4382static inline __ATTRS_o_ai int
4383vec_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.
4390static inline __ATTRS_o_ai int
4391vec_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.
4398static inline __ATTRS_o_ai int
4399vec_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
4405static inline __ATTRS_o_ai int
4406vec_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.
4414static inline __ATTRS_o_ai int
4415vec_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.
4423static inline __ATTRS_o_ai int
4424vec_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
4431static inline __ATTRS_o_ai int
4432vec_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
4439static inline __ATTRS_o_ai int
4440vec_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.
4447static inline __ATTRS_o_ai int
4448vec_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.
4455static inline __ATTRS_o_ai int
4456vec_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
4462static inline __ATTRS_o_ai int
4463vec_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.
4471static inline __ATTRS_o_ai int
4472vec_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.
4480static inline __ATTRS_o_ai int
4481vec_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
4488static inline __ATTRS_o_ai int
4489vec_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
4496static inline __ATTRS_o_ai int
4497vec_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.
4504static inline __ATTRS_o_ai int
4505vec_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.
4512static inline __ATTRS_o_ai int
4513vec_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
4519static inline __ATTRS_o_ai int
4520vec_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.
4528static inline __ATTRS_o_ai int
4529vec_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.
4537static inline __ATTRS_o_ai int
4538vec_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
4545static inline __ATTRS_o_ai int
4546vec_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
4554static inline __ATTRS_o_ai int
4555vec_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
4562static inline __ATTRS_o_ai int
4563vec_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
4571static inline __ATTRS_o_ai int
4572vec_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.
4579static inline __ATTRS_o_ai int
4580vec_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.
4587static inline __ATTRS_o_ai int
4588vec_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
4594static inline __ATTRS_o_ai int
4595vec_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.
4602static inline __ATTRS_o_ai int
4603vec_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.
4610static inline __ATTRS_o_ai int
4611vec_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.
4618static inline __ATTRS_o_ai int
4619vec_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
4626static inline __ATTRS_o_ai int
4627vec_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.
4634static inline __ATTRS_o_ai int
4635vec_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.
4642static inline __ATTRS_o_ai int
4643vec_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
4649static inline __ATTRS_o_ai int
4650vec_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.
4657static inline __ATTRS_o_ai int
4658vec_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.
4665static inline __ATTRS_o_ai int
4666vec_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.
4673static inline __ATTRS_o_ai int
4674vec_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
4681static inline __ATTRS_o_ai int
4682vec_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.
4689static inline __ATTRS_o_ai int
4690vec_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.
4697static inline __ATTRS_o_ai int
4698vec_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
4704static inline __ATTRS_o_ai int
4705vec_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.
4712static inline __ATTRS_o_ai int
4713vec_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.
4720static inline __ATTRS_o_ai int
4721vec_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.
4728static inline __ATTRS_o_ai int
4729vec_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
4736static inline __ATTRS_o_ai int
4737vec_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.
4744static inline __ATTRS_o_ai int
4745vec_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.
4752static inline __ATTRS_o_ai int
4753vec_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
4759static inline __ATTRS_o_ai int
4760vec_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.
4767static inline __ATTRS_o_ai int
4768vec_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.
4775static inline __ATTRS_o_ai int
4776vec_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.
4783static inline __ATTRS_o_ai int
4784vec_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
4792static inline __ATTRS_o_ai int
4793vec_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
4800static inline __ATTRS_o_ai int
4801vec_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
4809static inline __ATTRS_o_ai int
4810vec_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.
4817static inline __ATTRS_o_ai int
4818vec_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.
4825static inline __ATTRS_o_ai int
4826vec_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
4832static inline __ATTRS_o_ai int
4833vec_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.
4840static inline __ATTRS_o_ai int
4841vec_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.
4848static inline __ATTRS_o_ai int
4849vec_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.
4856static inline __ATTRS_o_ai int
4857vec_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
4864static inline __ATTRS_o_ai int
4865vec_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.
4872static inline __ATTRS_o_ai int
4873vec_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.
4880static inline __ATTRS_o_ai int
4881vec_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
4887static inline __ATTRS_o_ai int
4888vec_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.
4895static inline __ATTRS_o_ai int
4896vec_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.
4903static inline __ATTRS_o_ai int
4904vec_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.
4911static inline __ATTRS_o_ai int
4912vec_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
4919static inline __ATTRS_o_ai int
4920vec_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.
4927static inline __ATTRS_o_ai int
4928vec_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.
4935static inline __ATTRS_o_ai int
4936vec_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
4942static inline __ATTRS_o_ai int
4943vec_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.
4950static inline __ATTRS_o_ai int
4951vec_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.
4958static inline __ATTRS_o_ai int
4959vec_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.
4966static inline __ATTRS_o_ai int
4967vec_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
4974static inline __ATTRS_o_ai int
4975vec_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.
4982static inline __ATTRS_o_ai int
4983vec_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.
4990static inline __ATTRS_o_ai int
4991vec_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
4997static inline __ATTRS_o_ai int
4998vec_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.
5005static inline __ATTRS_o_ai int
5006vec_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.
5013static inline __ATTRS_o_ai int
5014vec_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.
5021static inline __ATTRS_o_ai int
5022vec_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
5030static inline __ATTRS_o_ai int
5031vec_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
5038static inline __ATTRS_o_ai int
5039vec_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
5047static inline __ATTRS_o_ai int
5048vec_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.
5055static inline __ATTRS_o_ai int
5056vec_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.
5063static inline __ATTRS_o_ai int
5064vec_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
5070static inline __ATTRS_o_ai int
5071vec_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.
5078static inline __ATTRS_o_ai int
5079vec_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.
5086static inline __ATTRS_o_ai int
5087vec_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.
5094static inline __ATTRS_o_ai int
5095vec_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
5102static inline __ATTRS_o_ai int
5103vec_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.
5110static inline __ATTRS_o_ai int
5111vec_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.
5118static inline __ATTRS_o_ai int
5119vec_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
5125static inline __ATTRS_o_ai int
5126vec_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.
5133static inline __ATTRS_o_ai int
5134vec_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.
5141static inline __ATTRS_o_ai int
5142vec_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.
5149static inline __ATTRS_o_ai int
5150vec_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
5157static inline __ATTRS_o_ai int
5158vec_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.
5165static inline __ATTRS_o_ai int
5166vec_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.
5173static inline __ATTRS_o_ai int
5174vec_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
5180static inline __ATTRS_o_ai int
5181vec_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.
5188static inline __ATTRS_o_ai int
5189vec_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.
5196static inline __ATTRS_o_ai int
5197vec_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.
5204static inline __ATTRS_o_ai int
5205vec_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
5212static inline __ATTRS_o_ai int
5213vec_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.
5220static inline __ATTRS_o_ai int
5221vec_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.
5228static inline __ATTRS_o_ai int
5229vec_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
5235static inline __ATTRS_o_ai int
5236vec_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.
5243static inline __ATTRS_o_ai int
5244vec_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.
5251static inline __ATTRS_o_ai int
5252vec_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.
5259static inline __ATTRS_o_ai int
5260vec_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
5268static inline __ATTRS_o_ai int
5269vec_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
5276static inline __ATTRS_o_ai int
5277vec_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
5285static inline __ATTRS_o_ai int
5286vec_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.
5293static inline __ATTRS_o_ai int
5294vec_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.
5301static inline __ATTRS_o_ai int
5302vec_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
5308static inline __ATTRS_o_ai int
5309vec_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.
5316static inline __ATTRS_o_ai int
5317vec_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.
5324static inline __ATTRS_o_ai int
5325vec_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.
5332static inline __ATTRS_o_ai int
5333vec_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
5340static inline __ATTRS_o_ai int
5341vec_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.
5348static inline __ATTRS_o_ai int
5349vec_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.
5356static inline __ATTRS_o_ai int
5357vec_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
5363static inline __ATTRS_o_ai int
5364vec_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.
5371static inline __ATTRS_o_ai int
5372vec_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.
5379static inline __ATTRS_o_ai int
5380vec_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.
5387static inline __ATTRS_o_ai int
5388vec_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
5395static inline __ATTRS_o_ai int
5396vec_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.
5403static inline __ATTRS_o_ai int
5404vec_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.
5411static inline __ATTRS_o_ai int
5412vec_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
5418static inline __ATTRS_o_ai int
5419vec_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.
5426static inline __ATTRS_o_ai int
5427vec_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.
5434static inline __ATTRS_o_ai int
5435vec_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.
5442static inline __ATTRS_o_ai int
5443vec_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
5450static inline __ATTRS_o_ai int
5451vec_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.
5458static inline __ATTRS_o_ai int
5459vec_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.
5466static inline __ATTRS_o_ai int
5467vec_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
5473static inline __ATTRS_o_ai int
5474vec_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.
5481static inline __ATTRS_o_ai int
5482vec_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.
5489static inline __ATTRS_o_ai int
5490vec_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.
5497static inline __ATTRS_o_ai int
5498vec_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
5506static inline __ATTRS_o_ai int
5507vec_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
5514static inline __ATTRS_o_ai int
5515vec_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
5524static inline __ATTRS_o_ai int
5525vec_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
5532static inline __ATTRS_o_ai int
5533vec_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
5542static inline __ATTRS_o_ai int
5543vec_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
5550static inline __ATTRS_o_ai int
5551vec_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
5560static inline __ATTRS_o_ai int
5561vec_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
5568static inline __ATTRS_o_ai int
5569vec_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
5578static inline __ATTRS_o_ai int
5579vec_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
5586static inline __ATTRS_o_ai int
5587vec_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
5596static inline __ATTRS_o_ai int
5597vec_any_nan(vector float __a) {
5598  int __cc;
5599  __builtin_s390_vftcisb(__a, 15, &__cc);
5600  return __cc != 3;
5601}
5602#endif
5603
5604static inline __ATTRS_o_ai int
5605vec_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
5614static inline __ATTRS_o_ai int
5615vec_any_numeric(vector float __a) {
5616  int __cc;
5617  __builtin_s390_vftcisb(__a, 15, &__cc);
5618  return __cc != 0;
5619}
5620#endif
5621
5622static inline __ATTRS_o_ai int
5623vec_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
5631static inline __ATTRS_o_ai vector bool char
5632vec_andc(vector bool char __a, vector bool char __b) {
5633  return __a & ~__b;
5634}
5635
5636static inline __ATTRS_o_ai vector signed char
5637vec_andc(vector signed char __a, vector signed char __b) {
5638  return __a & ~__b;
5639}
5640
5641// This prototype is deprecated.
5642static inline __ATTRS_o_ai vector signed char
5643vec_andc(vector bool char __a, vector signed char __b) {
5644  return __a & ~__b;
5645}
5646
5647// This prototype is deprecated.
5648static inline __ATTRS_o_ai vector signed char
5649vec_andc(vector signed char __a, vector bool char __b) {
5650  return __a & ~__b;
5651}
5652
5653static inline __ATTRS_o_ai vector unsigned char
5654vec_andc(vector unsigned char __a, vector unsigned char __b) {
5655  return __a & ~__b;
5656}
5657
5658// This prototype is deprecated.
5659static inline __ATTRS_o_ai vector unsigned char
5660vec_andc(vector bool char __a, vector unsigned char __b) {
5661  return __a & ~__b;
5662}
5663
5664// This prototype is deprecated.
5665static inline __ATTRS_o_ai vector unsigned char
5666vec_andc(vector unsigned char __a, vector bool char __b) {
5667  return __a & ~__b;
5668}
5669
5670static inline __ATTRS_o_ai vector bool short
5671vec_andc(vector bool short __a, vector bool short __b) {
5672  return __a & ~__b;
5673}
5674
5675static inline __ATTRS_o_ai vector signed short
5676vec_andc(vector signed short __a, vector signed short __b) {
5677  return __a & ~__b;
5678}
5679
5680// This prototype is deprecated.
5681static inline __ATTRS_o_ai vector signed short
5682vec_andc(vector bool short __a, vector signed short __b) {
5683  return __a & ~__b;
5684}
5685
5686// This prototype is deprecated.
5687static inline __ATTRS_o_ai vector signed short
5688vec_andc(vector signed short __a, vector bool short __b) {
5689  return __a & ~__b;
5690}
5691
5692static inline __ATTRS_o_ai vector unsigned short
5693vec_andc(vector unsigned short __a, vector unsigned short __b) {
5694  return __a & ~__b;
5695}
5696
5697// This prototype is deprecated.
5698static inline __ATTRS_o_ai vector unsigned short
5699vec_andc(vector bool short __a, vector unsigned short __b) {
5700  return __a & ~__b;
5701}
5702
5703// This prototype is deprecated.
5704static inline __ATTRS_o_ai vector unsigned short
5705vec_andc(vector unsigned short __a, vector bool short __b) {
5706  return __a & ~__b;
5707}
5708
5709static inline __ATTRS_o_ai vector bool int
5710vec_andc(vector bool int __a, vector bool int __b) {
5711  return __a & ~__b;
5712}
5713
5714static inline __ATTRS_o_ai vector signed int
5715vec_andc(vector signed int __a, vector signed int __b) {
5716  return __a & ~__b;
5717}
5718
5719// This prototype is deprecated.
5720static inline __ATTRS_o_ai vector signed int
5721vec_andc(vector bool int __a, vector signed int __b) {
5722  return __a & ~__b;
5723}
5724
5725// This prototype is deprecated.
5726static inline __ATTRS_o_ai vector signed int
5727vec_andc(vector signed int __a, vector bool int __b) {
5728  return __a & ~__b;
5729}
5730
5731static inline __ATTRS_o_ai vector unsigned int
5732vec_andc(vector unsigned int __a, vector unsigned int __b) {
5733  return __a & ~__b;
5734}
5735
5736// This prototype is deprecated.
5737static inline __ATTRS_o_ai vector unsigned int
5738vec_andc(vector bool int __a, vector unsigned int __b) {
5739  return __a & ~__b;
5740}
5741
5742// This prototype is deprecated.
5743static inline __ATTRS_o_ai vector unsigned int
5744vec_andc(vector unsigned int __a, vector bool int __b) {
5745  return __a & ~__b;
5746}
5747
5748static inline __ATTRS_o_ai vector bool long long
5749vec_andc(vector bool long long __a, vector bool long long __b) {
5750  return __a & ~__b;
5751}
5752
5753static inline __ATTRS_o_ai vector signed long long
5754vec_andc(vector signed long long __a, vector signed long long __b) {
5755  return __a & ~__b;
5756}
5757
5758// This prototype is deprecated.
5759static inline __ATTRS_o_ai vector signed long long
5760vec_andc(vector bool long long __a, vector signed long long __b) {
5761  return __a & ~__b;
5762}
5763
5764// This prototype is deprecated.
5765static inline __ATTRS_o_ai vector signed long long
5766vec_andc(vector signed long long __a, vector bool long long __b) {
5767  return __a & ~__b;
5768}
5769
5770static inline __ATTRS_o_ai vector unsigned long long
5771vec_andc(vector unsigned long long __a, vector unsigned long long __b) {
5772  return __a & ~__b;
5773}
5774
5775// This prototype is deprecated.
5776static inline __ATTRS_o_ai vector unsigned long long
5777vec_andc(vector bool long long __a, vector unsigned long long __b) {
5778  return __a & ~__b;
5779}
5780
5781// This prototype is deprecated.
5782static inline __ATTRS_o_ai vector unsigned long long
5783vec_andc(vector unsigned long long __a, vector bool long long __b) {
5784  return __a & ~__b;
5785}
5786
5787#if __ARCH__ >= 12
5788static inline __ATTRS_o_ai vector float
5789vec_andc(vector float __a, vector float __b) {
5790  return (vector float)((vector unsigned int)__a &
5791                         ~(vector unsigned int)__b);
5792}
5793#endif
5794
5795static inline __ATTRS_o_ai vector double
5796vec_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.
5802static inline __ATTRS_o_ai vector double
5803vec_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.
5809static inline __ATTRS_o_ai vector double
5810vec_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
5817static inline __ATTRS_o_ai vector bool char
5818vec_nor(vector bool char __a, vector bool char __b) {
5819  return ~(__a | __b);
5820}
5821
5822static inline __ATTRS_o_ai vector signed char
5823vec_nor(vector signed char __a, vector signed char __b) {
5824  return ~(__a | __b);
5825}
5826
5827// This prototype is deprecated.
5828static inline __ATTRS_o_ai vector signed char
5829vec_nor(vector bool char __a, vector signed char __b) {
5830  return ~(__a | __b);
5831}
5832
5833// This prototype is deprecated.
5834static inline __ATTRS_o_ai vector signed char
5835vec_nor(vector signed char __a, vector bool char __b) {
5836  return ~(__a | __b);
5837}
5838
5839static inline __ATTRS_o_ai vector unsigned char
5840vec_nor(vector unsigned char __a, vector unsigned char __b) {
5841  return ~(__a | __b);
5842}
5843
5844// This prototype is deprecated.
5845static inline __ATTRS_o_ai vector unsigned char
5846vec_nor(vector bool char __a, vector unsigned char __b) {
5847  return ~(__a | __b);
5848}
5849
5850// This prototype is deprecated.
5851static inline __ATTRS_o_ai vector unsigned char
5852vec_nor(vector unsigned char __a, vector bool char __b) {
5853  return ~(__a | __b);
5854}
5855
5856static inline __ATTRS_o_ai vector bool short
5857vec_nor(vector bool short __a, vector bool short __b) {
5858  return ~(__a | __b);
5859}
5860
5861static inline __ATTRS_o_ai vector signed short
5862vec_nor(vector signed short __a, vector signed short __b) {
5863  return ~(__a | __b);
5864}
5865
5866// This prototype is deprecated.
5867static inline __ATTRS_o_ai vector signed short
5868vec_nor(vector bool short __a, vector signed short __b) {
5869  return ~(__a | __b);
5870}
5871
5872// This prototype is deprecated.
5873static inline __ATTRS_o_ai vector signed short
5874vec_nor(vector signed short __a, vector bool short __b) {
5875  return ~(__a | __b);
5876}
5877
5878static inline __ATTRS_o_ai vector unsigned short
5879vec_nor(vector unsigned short __a, vector unsigned short __b) {
5880  return ~(__a | __b);
5881}
5882
5883// This prototype is deprecated.
5884static inline __ATTRS_o_ai vector unsigned short
5885vec_nor(vector bool short __a, vector unsigned short __b) {
5886  return ~(__a | __b);
5887}
5888
5889// This prototype is deprecated.
5890static inline __ATTRS_o_ai vector unsigned short
5891vec_nor(vector unsigned short __a, vector bool short __b) {
5892  return ~(__a | __b);
5893}
5894
5895static inline __ATTRS_o_ai vector bool int
5896vec_nor(vector bool int __a, vector bool int __b) {
5897  return ~(__a | __b);
5898}
5899
5900static inline __ATTRS_o_ai vector signed int
5901vec_nor(vector signed int __a, vector signed int __b) {
5902  return ~(__a | __b);
5903}
5904
5905// This prototype is deprecated.
5906static inline __ATTRS_o_ai vector signed int
5907vec_nor(vector bool int __a, vector signed int __b) {
5908  return ~(__a | __b);
5909}
5910
5911// This prototype is deprecated.
5912static inline __ATTRS_o_ai vector signed int
5913vec_nor(vector signed int __a, vector bool int __b) {
5914  return ~(__a | __b);
5915}
5916
5917static inline __ATTRS_o_ai vector unsigned int
5918vec_nor(vector unsigned int __a, vector unsigned int __b) {
5919  return ~(__a | __b);
5920}
5921
5922// This prototype is deprecated.
5923static inline __ATTRS_o_ai vector unsigned int
5924vec_nor(vector bool int __a, vector unsigned int __b) {
5925  return ~(__a | __b);
5926}
5927
5928// This prototype is deprecated.
5929static inline __ATTRS_o_ai vector unsigned int
5930vec_nor(vector unsigned int __a, vector bool int __b) {
5931  return ~(__a | __b);
5932}
5933
5934static inline __ATTRS_o_ai vector bool long long
5935vec_nor(vector bool long long __a, vector bool long long __b) {
5936  return ~(__a | __b);
5937}
5938
5939static inline __ATTRS_o_ai vector signed long long
5940vec_nor(vector signed long long __a, vector signed long long __b) {
5941  return ~(__a | __b);
5942}
5943
5944// This prototype is deprecated.
5945static inline __ATTRS_o_ai vector signed long long
5946vec_nor(vector bool long long __a, vector signed long long __b) {
5947  return ~(__a | __b);
5948}
5949
5950// This prototype is deprecated.
5951static inline __ATTRS_o_ai vector signed long long
5952vec_nor(vector signed long long __a, vector bool long long __b) {
5953  return ~(__a | __b);
5954}
5955
5956static inline __ATTRS_o_ai vector unsigned long long
5957vec_nor(vector unsigned long long __a, vector unsigned long long __b) {
5958  return ~(__a | __b);
5959}
5960
5961// This prototype is deprecated.
5962static inline __ATTRS_o_ai vector unsigned long long
5963vec_nor(vector bool long long __a, vector unsigned long long __b) {
5964  return ~(__a | __b);
5965}
5966
5967// This prototype is deprecated.
5968static inline __ATTRS_o_ai vector unsigned long long
5969vec_nor(vector unsigned long long __a, vector bool long long __b) {
5970  return ~(__a | __b);
5971}
5972
5973#if __ARCH__ >= 12
5974static inline __ATTRS_o_ai vector float
5975vec_nor(vector float __a, vector float __b) {
5976  return (vector float)~((vector unsigned int)__a |
5977                         (vector unsigned int)__b);
5978}
5979#endif
5980
5981static inline __ATTRS_o_ai vector double
5982vec_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.
5988static inline __ATTRS_o_ai vector double
5989vec_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.
5995static inline __ATTRS_o_ai vector double
5996vec_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
6004static inline __ATTRS_o_ai vector bool char
6005vec_orc(vector bool char __a, vector bool char __b) {
6006  return __a | ~__b;
6007}
6008
6009static inline __ATTRS_o_ai vector signed char
6010vec_orc(vector signed char __a, vector signed char __b) {
6011  return __a | ~__b;
6012}
6013
6014static inline __ATTRS_o_ai vector unsigned char
6015vec_orc(vector unsigned char __a, vector unsigned char __b) {
6016  return __a | ~__b;
6017}
6018
6019static inline __ATTRS_o_ai vector bool short
6020vec_orc(vector bool short __a, vector bool short __b) {
6021  return __a | ~__b;
6022}
6023
6024static inline __ATTRS_o_ai vector signed short
6025vec_orc(vector signed short __a, vector signed short __b) {
6026  return __a | ~__b;
6027}
6028
6029static inline __ATTRS_o_ai vector unsigned short
6030vec_orc(vector unsigned short __a, vector unsigned short __b) {
6031  return __a | ~__b;
6032}
6033
6034static inline __ATTRS_o_ai vector bool int
6035vec_orc(vector bool int __a, vector bool int __b) {
6036  return __a | ~__b;
6037}
6038
6039static inline __ATTRS_o_ai vector signed int
6040vec_orc(vector signed int __a, vector signed int __b) {
6041  return __a | ~__b;
6042}
6043
6044static inline __ATTRS_o_ai vector unsigned int
6045vec_orc(vector unsigned int __a, vector unsigned int __b) {
6046  return __a | ~__b;
6047}
6048
6049static inline __ATTRS_o_ai vector bool long long
6050vec_orc(vector bool long long __a, vector bool long long __b) {
6051  return __a | ~__b;
6052}
6053
6054static inline __ATTRS_o_ai vector signed long long
6055vec_orc(vector signed long long __a, vector signed long long __b) {
6056  return __a | ~__b;
6057}
6058
6059static inline __ATTRS_o_ai vector unsigned long long
6060vec_orc(vector unsigned long long __a, vector unsigned long long __b) {
6061  return __a | ~__b;
6062}
6063
6064static inline __ATTRS_o_ai vector float
6065vec_orc(vector float __a, vector float __b) {
6066  return (vector float)((vector unsigned int)__a |
6067                        ~(vector unsigned int)__b);
6068}
6069
6070static inline __ATTRS_o_ai vector double
6071vec_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
6080static inline __ATTRS_o_ai vector bool char
6081vec_nand(vector bool char __a, vector bool char __b) {
6082  return ~(__a & __b);
6083}
6084
6085static inline __ATTRS_o_ai vector signed char
6086vec_nand(vector signed char __a, vector signed char __b) {
6087  return ~(__a & __b);
6088}
6089
6090static inline __ATTRS_o_ai vector unsigned char
6091vec_nand(vector unsigned char __a, vector unsigned char __b) {
6092  return ~(__a & __b);
6093}
6094
6095static inline __ATTRS_o_ai vector bool short
6096vec_nand(vector bool short __a, vector bool short __b) {
6097  return ~(__a & __b);
6098}
6099
6100static inline __ATTRS_o_ai vector signed short
6101vec_nand(vector signed short __a, vector signed short __b) {
6102  return ~(__a & __b);
6103}
6104
6105static inline __ATTRS_o_ai vector unsigned short
6106vec_nand(vector unsigned short __a, vector unsigned short __b) {
6107  return ~(__a & __b);
6108}
6109
6110static inline __ATTRS_o_ai vector bool int
6111vec_nand(vector bool int __a, vector bool int __b) {
6112  return ~(__a & __b);
6113}
6114
6115static inline __ATTRS_o_ai vector signed int
6116vec_nand(vector signed int __a, vector signed int __b) {
6117  return ~(__a & __b);
6118}
6119
6120static inline __ATTRS_o_ai vector unsigned int
6121vec_nand(vector unsigned int __a, vector unsigned int __b) {
6122  return ~(__a & __b);
6123}
6124
6125static inline __ATTRS_o_ai vector bool long long
6126vec_nand(vector bool long long __a, vector bool long long __b) {
6127  return ~(__a & __b);
6128}
6129
6130static inline __ATTRS_o_ai vector signed long long
6131vec_nand(vector signed long long __a, vector signed long long __b) {
6132  return ~(__a & __b);
6133}
6134
6135static inline __ATTRS_o_ai vector unsigned long long
6136vec_nand(vector unsigned long long __a, vector unsigned long long __b) {
6137  return ~(__a & __b);
6138}
6139
6140static inline __ATTRS_o_ai vector float
6141vec_nand(vector float __a, vector float __b) {
6142  return (vector float)~((vector unsigned int)__a &
6143                         (vector unsigned int)__b);
6144}
6145
6146static inline __ATTRS_o_ai vector double
6147vec_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
6156static inline __ATTRS_o_ai vector bool char
6157vec_eqv(vector bool char __a, vector bool char __b) {
6158  return ~(__a ^ __b);
6159}
6160
6161static inline __ATTRS_o_ai vector signed char
6162vec_eqv(vector signed char __a, vector signed char __b) {
6163  return ~(__a ^ __b);
6164}
6165
6166static inline __ATTRS_o_ai vector unsigned char
6167vec_eqv(vector unsigned char __a, vector unsigned char __b) {
6168  return ~(__a ^ __b);
6169}
6170
6171static inline __ATTRS_o_ai vector bool short
6172vec_eqv(vector bool short __a, vector bool short __b) {
6173  return ~(__a ^ __b);
6174}
6175
6176static inline __ATTRS_o_ai vector signed short
6177vec_eqv(vector signed short __a, vector signed short __b) {
6178  return ~(__a ^ __b);
6179}
6180
6181static inline __ATTRS_o_ai vector unsigned short
6182vec_eqv(vector unsigned short __a, vector unsigned short __b) {
6183  return ~(__a ^ __b);
6184}
6185
6186static inline __ATTRS_o_ai vector bool int
6187vec_eqv(vector bool int __a, vector bool int __b) {
6188  return ~(__a ^ __b);
6189}
6190
6191static inline __ATTRS_o_ai vector signed int
6192vec_eqv(vector signed int __a, vector signed int __b) {
6193  return ~(__a ^ __b);
6194}
6195
6196static inline __ATTRS_o_ai vector unsigned int
6197vec_eqv(vector unsigned int __a, vector unsigned int __b) {
6198  return ~(__a ^ __b);
6199}
6200
6201static inline __ATTRS_o_ai vector bool long long
6202vec_eqv(vector bool long long __a, vector bool long long __b) {
6203  return ~(__a ^ __b);
6204}
6205
6206static inline __ATTRS_o_ai vector signed long long
6207vec_eqv(vector signed long long __a, vector signed long long __b) {
6208  return ~(__a ^ __b);
6209}
6210
6211static inline __ATTRS_o_ai vector unsigned long long
6212vec_eqv(vector unsigned long long __a, vector unsigned long long __b) {
6213  return ~(__a ^ __b);
6214}
6215
6216static inline __ATTRS_o_ai vector float
6217vec_eqv(vector float __a, vector float __b) {
6218  return (vector float)~((vector unsigned int)__a ^
6219                         (vector unsigned int)__b);
6220}
6221
6222static inline __ATTRS_o_ai vector double
6223vec_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
6231static inline __ATTRS_o_ai vector unsigned char
6232vec_cntlz(vector signed char __a) {
6233  return __builtin_s390_vclzb((vector unsigned char)__a);
6234}
6235
6236static inline __ATTRS_o_ai vector unsigned char
6237vec_cntlz(vector unsigned char __a) {
6238  return __builtin_s390_vclzb(__a);
6239}
6240
6241static inline __ATTRS_o_ai vector unsigned short
6242vec_cntlz(vector signed short __a) {
6243  return __builtin_s390_vclzh((vector unsigned short)__a);
6244}
6245
6246static inline __ATTRS_o_ai vector unsigned short
6247vec_cntlz(vector unsigned short __a) {
6248  return __builtin_s390_vclzh(__a);
6249}
6250
6251static inline __ATTRS_o_ai vector unsigned int
6252vec_cntlz(vector signed int __a) {
6253  return __builtin_s390_vclzf((vector unsigned int)__a);
6254}
6255
6256static inline __ATTRS_o_ai vector unsigned int
6257vec_cntlz(vector unsigned int __a) {
6258  return __builtin_s390_vclzf(__a);
6259}
6260
6261static inline __ATTRS_o_ai vector unsigned long long
6262vec_cntlz(vector signed long long __a) {
6263  return __builtin_s390_vclzg((vector unsigned long long)__a);
6264}
6265
6266static inline __ATTRS_o_ai vector unsigned long long
6267vec_cntlz(vector unsigned long long __a) {
6268  return __builtin_s390_vclzg(__a);
6269}
6270
6271/*-- vec_cnttz --------------------------------------------------------------*/
6272
6273static inline __ATTRS_o_ai vector unsigned char
6274vec_cnttz(vector signed char __a) {
6275  return __builtin_s390_vctzb((vector unsigned char)__a);
6276}
6277
6278static inline __ATTRS_o_ai vector unsigned char
6279vec_cnttz(vector unsigned char __a) {
6280  return __builtin_s390_vctzb(__a);
6281}
6282
6283static inline __ATTRS_o_ai vector unsigned short
6284vec_cnttz(vector signed short __a) {
6285  return __builtin_s390_vctzh((vector unsigned short)__a);
6286}
6287
6288static inline __ATTRS_o_ai vector unsigned short
6289vec_cnttz(vector unsigned short __a) {
6290  return __builtin_s390_vctzh(__a);
6291}
6292
6293static inline __ATTRS_o_ai vector unsigned int
6294vec_cnttz(vector signed int __a) {
6295  return __builtin_s390_vctzf((vector unsigned int)__a);
6296}
6297
6298static inline __ATTRS_o_ai vector unsigned int
6299vec_cnttz(vector unsigned int __a) {
6300  return __builtin_s390_vctzf(__a);
6301}
6302
6303static inline __ATTRS_o_ai vector unsigned long long
6304vec_cnttz(vector signed long long __a) {
6305  return __builtin_s390_vctzg((vector unsigned long long)__a);
6306}
6307
6308static inline __ATTRS_o_ai vector unsigned long long
6309vec_cnttz(vector unsigned long long __a) {
6310  return __builtin_s390_vctzg(__a);
6311}
6312
6313/*-- vec_popcnt -------------------------------------------------------------*/
6314
6315static inline __ATTRS_o_ai vector unsigned char
6316vec_popcnt(vector signed char __a) {
6317  return __builtin_s390_vpopctb((vector unsigned char)__a);
6318}
6319
6320static inline __ATTRS_o_ai vector unsigned char
6321vec_popcnt(vector unsigned char __a) {
6322  return __builtin_s390_vpopctb(__a);
6323}
6324
6325static inline __ATTRS_o_ai vector unsigned short
6326vec_popcnt(vector signed short __a) {
6327  return __builtin_s390_vpopcth((vector unsigned short)__a);
6328}
6329
6330static inline __ATTRS_o_ai vector unsigned short
6331vec_popcnt(vector unsigned short __a) {
6332  return __builtin_s390_vpopcth(__a);
6333}
6334
6335static inline __ATTRS_o_ai vector unsigned int
6336vec_popcnt(vector signed int __a) {
6337  return __builtin_s390_vpopctf((vector unsigned int)__a);
6338}
6339
6340static inline __ATTRS_o_ai vector unsigned int
6341vec_popcnt(vector unsigned int __a) {
6342  return __builtin_s390_vpopctf(__a);
6343}
6344
6345static inline __ATTRS_o_ai vector unsigned long long
6346vec_popcnt(vector signed long long __a) {
6347  return __builtin_s390_vpopctg((vector unsigned long long)__a);
6348}
6349
6350static inline __ATTRS_o_ai vector unsigned long long
6351vec_popcnt(vector unsigned long long __a) {
6352  return __builtin_s390_vpopctg(__a);
6353}
6354
6355/*-- vec_rl -----------------------------------------------------------------*/
6356
6357static inline __ATTRS_o_ai vector signed char
6358vec_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
6363static inline __ATTRS_o_ai vector unsigned char
6364vec_rl(vector unsigned char __a, vector unsigned char __b) {
6365  return __builtin_s390_verllvb(__a, __b);
6366}
6367
6368static inline __ATTRS_o_ai vector signed short
6369vec_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
6374static inline __ATTRS_o_ai vector unsigned short
6375vec_rl(vector unsigned short __a, vector unsigned short __b) {
6376  return __builtin_s390_verllvh(__a, __b);
6377}
6378
6379static inline __ATTRS_o_ai vector signed int
6380vec_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
6385static inline __ATTRS_o_ai vector unsigned int
6386vec_rl(vector unsigned int __a, vector unsigned int __b) {
6387  return __builtin_s390_verllvf(__a, __b);
6388}
6389
6390static inline __ATTRS_o_ai vector signed long long
6391vec_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
6396static inline __ATTRS_o_ai vector unsigned long long
6397vec_rl(vector unsigned long long __a, vector unsigned long long __b) {
6398  return __builtin_s390_verllvg(__a, __b);
6399}
6400
6401/*-- vec_rli ----------------------------------------------------------------*/
6402
6403static inline __ATTRS_o_ai vector signed char
6404vec_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
6409static inline __ATTRS_o_ai vector unsigned char
6410vec_rli(vector unsigned char __a, unsigned long __b) {
6411  return __builtin_s390_verllb(__a, (int)__b);
6412}
6413
6414static inline __ATTRS_o_ai vector signed short
6415vec_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
6420static inline __ATTRS_o_ai vector unsigned short
6421vec_rli(vector unsigned short __a, unsigned long __b) {
6422  return __builtin_s390_verllh(__a, (int)__b);
6423}
6424
6425static inline __ATTRS_o_ai vector signed int
6426vec_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
6431static inline __ATTRS_o_ai vector unsigned int
6432vec_rli(vector unsigned int __a, unsigned long __b) {
6433  return __builtin_s390_verllf(__a, (int)__b);
6434}
6435
6436static inline __ATTRS_o_ai vector signed long long
6437vec_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
6442static inline __ATTRS_o_ai vector unsigned long long
6443vec_rli(vector unsigned long long __a, unsigned long __b) {
6444  return __builtin_s390_verllg(__a, (int)__b);
6445}
6446
6447/*-- vec_rl_mask ------------------------------------------------------------*/
6448
6449extern __ATTRS_o vector signed char
6450vec_rl_mask(vector signed char __a, vector unsigned char __b,
6451            unsigned char __c) __constant(__c);
6452
6453extern __ATTRS_o vector unsigned char
6454vec_rl_mask(vector unsigned char __a, vector unsigned char __b,
6455            unsigned char __c) __constant(__c);
6456
6457extern __ATTRS_o vector signed short
6458vec_rl_mask(vector signed short __a, vector unsigned short __b,
6459            unsigned char __c) __constant(__c);
6460
6461extern __ATTRS_o vector unsigned short
6462vec_rl_mask(vector unsigned short __a, vector unsigned short __b,
6463            unsigned char __c) __constant(__c);
6464
6465extern __ATTRS_o vector signed int
6466vec_rl_mask(vector signed int __a, vector unsigned int __b,
6467            unsigned char __c) __constant(__c);
6468
6469extern __ATTRS_o vector unsigned int
6470vec_rl_mask(vector unsigned int __a, vector unsigned int __b,
6471            unsigned char __c) __constant(__c);
6472
6473extern __ATTRS_o vector signed long long
6474vec_rl_mask(vector signed long long __a, vector unsigned long long __b,
6475            unsigned char __c) __constant(__c);
6476
6477extern __ATTRS_o vector unsigned long long
6478vec_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
6503static inline __ATTRS_o_ai vector signed char
6504vec_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.
6510static inline __ATTRS_o_ai vector signed char
6511vec_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.
6517static inline __ATTRS_o_ai vector signed char
6518vec_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.
6524static inline __ATTRS_o_ai vector bool char
6525vec_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.
6531static inline __ATTRS_o_ai vector bool char
6532vec_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.
6538static inline __ATTRS_o_ai vector bool char
6539vec_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
6544static inline __ATTRS_o_ai vector unsigned char
6545vec_sll(vector unsigned char __a, vector unsigned char __b) {
6546  return __builtin_s390_vsl(__a, __b);
6547}
6548
6549// This prototype is deprecated.
6550static inline __ATTRS_o_ai vector unsigned char
6551vec_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.
6556static inline __ATTRS_o_ai vector unsigned char
6557vec_sll(vector unsigned char __a, vector unsigned int __b) {
6558  return __builtin_s390_vsl(__a, (vector unsigned char)__b);
6559}
6560
6561static inline __ATTRS_o_ai vector signed short
6562vec_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.
6568static inline __ATTRS_o_ai vector signed short
6569vec_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.
6575static inline __ATTRS_o_ai vector signed short
6576vec_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.
6582static inline __ATTRS_o_ai vector bool short
6583vec_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.
6589static inline __ATTRS_o_ai vector bool short
6590vec_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.
6596static inline __ATTRS_o_ai vector bool short
6597vec_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
6602static inline __ATTRS_o_ai vector unsigned short
6603vec_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.
6609static inline __ATTRS_o_ai vector unsigned short
6610vec_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.
6616static inline __ATTRS_o_ai vector unsigned short
6617vec_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
6622static inline __ATTRS_o_ai vector signed int
6623vec_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.
6629static inline __ATTRS_o_ai vector signed int
6630vec_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.
6636static inline __ATTRS_o_ai vector signed int
6637vec_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.
6643static inline __ATTRS_o_ai vector bool int
6644vec_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.
6650static inline __ATTRS_o_ai vector bool int
6651vec_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.
6657static inline __ATTRS_o_ai vector bool int
6658vec_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
6663static inline __ATTRS_o_ai vector unsigned int
6664vec_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.
6670static inline __ATTRS_o_ai vector unsigned int
6671vec_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.
6677static inline __ATTRS_o_ai vector unsigned int
6678vec_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
6683static inline __ATTRS_o_ai vector signed long long
6684vec_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.
6690static inline __ATTRS_o_ai vector signed long long
6691vec_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.
6697static inline __ATTRS_o_ai vector signed long long
6698vec_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.
6704static inline __ATTRS_o_ai vector bool long long
6705vec_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.
6711static inline __ATTRS_o_ai vector bool long long
6712vec_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.
6718static inline __ATTRS_o_ai vector bool long long
6719vec_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
6724static inline __ATTRS_o_ai vector unsigned long long
6725vec_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.
6731static inline __ATTRS_o_ai vector unsigned long long
6732vec_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.
6738static inline __ATTRS_o_ai vector unsigned long long
6739vec_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
6746static inline __ATTRS_o_ai vector signed char
6747vec_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
6752static inline __ATTRS_o_ai vector signed char
6753vec_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
6758static inline __ATTRS_o_ai vector unsigned char
6759vec_slb(vector unsigned char __a, vector signed char __b) {
6760  return __builtin_s390_vslb(__a, (vector unsigned char)__b);
6761}
6762
6763static inline __ATTRS_o_ai vector unsigned char
6764vec_slb(vector unsigned char __a, vector unsigned char __b) {
6765  return __builtin_s390_vslb(__a, __b);
6766}
6767
6768static inline __ATTRS_o_ai vector signed short
6769vec_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
6774static inline __ATTRS_o_ai vector signed short
6775vec_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
6780static inline __ATTRS_o_ai vector unsigned short
6781vec_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
6786static inline __ATTRS_o_ai vector unsigned short
6787vec_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
6792static inline __ATTRS_o_ai vector signed int
6793vec_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
6798static inline __ATTRS_o_ai vector signed int
6799vec_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
6804static inline __ATTRS_o_ai vector unsigned int
6805vec_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
6810static inline __ATTRS_o_ai vector unsigned int
6811vec_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
6816static inline __ATTRS_o_ai vector signed long long
6817vec_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
6822static inline __ATTRS_o_ai vector signed long long
6823vec_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
6828static inline __ATTRS_o_ai vector unsigned long long
6829vec_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
6834static inline __ATTRS_o_ai vector unsigned long long
6835vec_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
6841static inline __ATTRS_o_ai vector float
6842vec_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
6847static inline __ATTRS_o_ai vector float
6848vec_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
6854static inline __ATTRS_o_ai vector double
6855vec_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
6860static inline __ATTRS_o_ai vector double
6861vec_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
6868extern __ATTRS_o vector signed char
6869vec_sld(vector signed char __a, vector signed char __b, int __c)
6870  __constant_range(__c, 0, 15);
6871
6872extern __ATTRS_o vector bool char
6873vec_sld(vector bool char __a, vector bool char __b, int __c)
6874  __constant_range(__c, 0, 15);
6875
6876extern __ATTRS_o vector unsigned char
6877vec_sld(vector unsigned char __a, vector unsigned char __b, int __c)
6878  __constant_range(__c, 0, 15);
6879
6880extern __ATTRS_o vector signed short
6881vec_sld(vector signed short __a, vector signed short __b, int __c)
6882  __constant_range(__c, 0, 15);
6883
6884extern __ATTRS_o vector bool short
6885vec_sld(vector bool short __a, vector bool short __b, int __c)
6886  __constant_range(__c, 0, 15);
6887
6888extern __ATTRS_o vector unsigned short
6889vec_sld(vector unsigned short __a, vector unsigned short __b, int __c)
6890  __constant_range(__c, 0, 15);
6891
6892extern __ATTRS_o vector signed int
6893vec_sld(vector signed int __a, vector signed int __b, int __c)
6894  __constant_range(__c, 0, 15);
6895
6896extern __ATTRS_o vector bool int
6897vec_sld(vector bool int __a, vector bool int __b, int __c)
6898  __constant_range(__c, 0, 15);
6899
6900extern __ATTRS_o vector unsigned int
6901vec_sld(vector unsigned int __a, vector unsigned int __b, int __c)
6902  __constant_range(__c, 0, 15);
6903
6904extern __ATTRS_o vector signed long long
6905vec_sld(vector signed long long __a, vector signed long long __b, int __c)
6906  __constant_range(__c, 0, 15);
6907
6908extern __ATTRS_o vector bool long long
6909vec_sld(vector bool long long __a, vector bool long long __b, int __c)
6910  __constant_range(__c, 0, 15);
6911
6912extern __ATTRS_o vector unsigned long long
6913vec_sld(vector unsigned long long __a, vector unsigned long long __b, int __c)
6914  __constant_range(__c, 0, 15);
6915
6916#if __ARCH__ >= 12
6917extern __ATTRS_o vector float
6918vec_sld(vector float __a, vector float __b, int __c)
6919  __constant_range(__c, 0, 15);
6920#endif
6921
6922extern __ATTRS_o vector double
6923vec_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
6932extern __ATTRS_o vector signed char
6933vec_sldw(vector signed char __a, vector signed char __b, int __c)
6934  __constant_range(__c, 0, 3);
6935
6936extern __ATTRS_o vector unsigned char
6937vec_sldw(vector unsigned char __a, vector unsigned char __b, int __c)
6938  __constant_range(__c, 0, 3);
6939
6940extern __ATTRS_o vector signed short
6941vec_sldw(vector signed short __a, vector signed short __b, int __c)
6942  __constant_range(__c, 0, 3);
6943
6944extern __ATTRS_o vector unsigned short
6945vec_sldw(vector unsigned short __a, vector unsigned short __b, int __c)
6946  __constant_range(__c, 0, 3);
6947
6948extern __ATTRS_o vector signed int
6949vec_sldw(vector signed int __a, vector signed int __b, int __c)
6950  __constant_range(__c, 0, 3);
6951
6952extern __ATTRS_o vector unsigned int
6953vec_sldw(vector unsigned int __a, vector unsigned int __b, int __c)
6954  __constant_range(__c, 0, 3);
6955
6956extern __ATTRS_o vector signed long long
6957vec_sldw(vector signed long long __a, vector signed long long __b, int __c)
6958  __constant_range(__c, 0, 3);
6959
6960extern __ATTRS_o vector unsigned long long
6961vec_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.
6965extern __ATTRS_o vector double
6966vec_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
6977extern __ATTRS_o vector signed char
6978vec_sldb(vector signed char __a, vector signed char __b, int __c)
6979  __constant_range(__c, 0, 7);
6980
6981extern __ATTRS_o vector unsigned char
6982vec_sldb(vector unsigned char __a, vector unsigned char __b, int __c)
6983  __constant_range(__c, 0, 7);
6984
6985extern __ATTRS_o vector signed short
6986vec_sldb(vector signed short __a, vector signed short __b, int __c)
6987  __constant_range(__c, 0, 7);
6988
6989extern __ATTRS_o vector unsigned short
6990vec_sldb(vector unsigned short __a, vector unsigned short __b, int __c)
6991  __constant_range(__c, 0, 7);
6992
6993extern __ATTRS_o vector signed int
6994vec_sldb(vector signed int __a, vector signed int __b, int __c)
6995  __constant_range(__c, 0, 7);
6996
6997extern __ATTRS_o vector unsigned int
6998vec_sldb(vector unsigned int __a, vector unsigned int __b, int __c)
6999  __constant_range(__c, 0, 7);
7000
7001extern __ATTRS_o vector signed long long
7002vec_sldb(vector signed long long __a, vector signed long long __b, int __c)
7003  __constant_range(__c, 0, 7);
7004
7005extern __ATTRS_o vector unsigned long long
7006vec_sldb(vector unsigned long long __a, vector unsigned long long __b, int __c)
7007  __constant_range(__c, 0, 7);
7008
7009extern __ATTRS_o vector float
7010vec_sldb(vector float __a, vector float __b, int __c)
7011  __constant_range(__c, 0, 7);
7012
7013extern __ATTRS_o vector double
7014vec_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
7025static inline __ATTRS_o_ai vector signed char
7026vec_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.
7032static inline __ATTRS_o_ai vector signed char
7033vec_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.
7039static inline __ATTRS_o_ai vector signed char
7040vec_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.
7046static inline __ATTRS_o_ai vector bool char
7047vec_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.
7053static inline __ATTRS_o_ai vector bool char
7054vec_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.
7060static inline __ATTRS_o_ai vector bool char
7061vec_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
7066static inline __ATTRS_o_ai vector unsigned char
7067vec_sral(vector unsigned char __a, vector unsigned char __b) {
7068  return __builtin_s390_vsra(__a, __b);
7069}
7070
7071// This prototype is deprecated.
7072static inline __ATTRS_o_ai vector unsigned char
7073vec_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.
7078static inline __ATTRS_o_ai vector unsigned char
7079vec_sral(vector unsigned char __a, vector unsigned int __b) {
7080  return __builtin_s390_vsra(__a, (vector unsigned char)__b);
7081}
7082
7083static inline __ATTRS_o_ai vector signed short
7084vec_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.
7090static inline __ATTRS_o_ai vector signed short
7091vec_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.
7097static inline __ATTRS_o_ai vector signed short
7098vec_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.
7104static inline __ATTRS_o_ai vector bool short
7105vec_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.
7111static inline __ATTRS_o_ai vector bool short
7112vec_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.
7118static inline __ATTRS_o_ai vector bool short
7119vec_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
7124static inline __ATTRS_o_ai vector unsigned short
7125vec_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.
7131static inline __ATTRS_o_ai vector unsigned short
7132vec_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.
7138static inline __ATTRS_o_ai vector unsigned short
7139vec_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
7144static inline __ATTRS_o_ai vector signed int
7145vec_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.
7151static inline __ATTRS_o_ai vector signed int
7152vec_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.
7158static inline __ATTRS_o_ai vector signed int
7159vec_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.
7165static inline __ATTRS_o_ai vector bool int
7166vec_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.
7172static inline __ATTRS_o_ai vector bool int
7173vec_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.
7179static inline __ATTRS_o_ai vector bool int
7180vec_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
7185static inline __ATTRS_o_ai vector unsigned int
7186vec_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.
7192static inline __ATTRS_o_ai vector unsigned int
7193vec_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.
7199static inline __ATTRS_o_ai vector unsigned int
7200vec_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
7205static inline __ATTRS_o_ai vector signed long long
7206vec_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.
7212static inline __ATTRS_o_ai vector signed long long
7213vec_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.
7219static inline __ATTRS_o_ai vector signed long long
7220vec_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.
7226static inline __ATTRS_o_ai vector bool long long
7227vec_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.
7233static inline __ATTRS_o_ai vector bool long long
7234vec_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.
7240static inline __ATTRS_o_ai vector bool long long
7241vec_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
7246static inline __ATTRS_o_ai vector unsigned long long
7247vec_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.
7253static inline __ATTRS_o_ai vector unsigned long long
7254vec_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.
7260static inline __ATTRS_o_ai vector unsigned long long
7261vec_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
7268static inline __ATTRS_o_ai vector signed char
7269vec_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
7274static inline __ATTRS_o_ai vector signed char
7275vec_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
7280static inline __ATTRS_o_ai vector unsigned char
7281vec_srab(vector unsigned char __a, vector signed char __b) {
7282  return __builtin_s390_vsrab(__a, (vector unsigned char)__b);
7283}
7284
7285static inline __ATTRS_o_ai vector unsigned char
7286vec_srab(vector unsigned char __a, vector unsigned char __b) {
7287  return __builtin_s390_vsrab(__a, __b);
7288}
7289
7290static inline __ATTRS_o_ai vector signed short
7291vec_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
7296static inline __ATTRS_o_ai vector signed short
7297vec_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
7302static inline __ATTRS_o_ai vector unsigned short
7303vec_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
7308static inline __ATTRS_o_ai vector unsigned short
7309vec_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
7314static inline __ATTRS_o_ai vector signed int
7315vec_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
7320static inline __ATTRS_o_ai vector signed int
7321vec_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
7326static inline __ATTRS_o_ai vector unsigned int
7327vec_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
7332static inline __ATTRS_o_ai vector unsigned int
7333vec_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
7338static inline __ATTRS_o_ai vector signed long long
7339vec_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
7344static inline __ATTRS_o_ai vector signed long long
7345vec_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
7350static inline __ATTRS_o_ai vector unsigned long long
7351vec_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
7356static inline __ATTRS_o_ai vector unsigned long long
7357vec_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
7363static inline __ATTRS_o_ai vector float
7364vec_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
7369static inline __ATTRS_o_ai vector float
7370vec_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
7376static inline __ATTRS_o_ai vector double
7377vec_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
7382static inline __ATTRS_o_ai vector double
7383vec_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
7390static inline __ATTRS_o_ai vector signed char
7391vec_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.
7397static inline __ATTRS_o_ai vector signed char
7398vec_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.
7404static inline __ATTRS_o_ai vector signed char
7405vec_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.
7411static inline __ATTRS_o_ai vector bool char
7412vec_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.
7418static inline __ATTRS_o_ai vector bool char
7419vec_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.
7425static inline __ATTRS_o_ai vector bool char
7426vec_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
7431static inline __ATTRS_o_ai vector unsigned char
7432vec_srl(vector unsigned char __a, vector unsigned char __b) {
7433  return __builtin_s390_vsrl(__a, __b);
7434}
7435
7436// This prototype is deprecated.
7437static inline __ATTRS_o_ai vector unsigned char
7438vec_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.
7443static inline __ATTRS_o_ai vector unsigned char
7444vec_srl(vector unsigned char __a, vector unsigned int __b) {
7445  return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
7446}
7447
7448static inline __ATTRS_o_ai vector signed short
7449vec_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.
7455static inline __ATTRS_o_ai vector signed short
7456vec_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.
7462static inline __ATTRS_o_ai vector signed short
7463vec_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.
7469static inline __ATTRS_o_ai vector bool short
7470vec_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.
7476static inline __ATTRS_o_ai vector bool short
7477vec_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.
7483static inline __ATTRS_o_ai vector bool short
7484vec_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
7489static inline __ATTRS_o_ai vector unsigned short
7490vec_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.
7496static inline __ATTRS_o_ai vector unsigned short
7497vec_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.
7503static inline __ATTRS_o_ai vector unsigned short
7504vec_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
7509static inline __ATTRS_o_ai vector signed int
7510vec_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.
7516static inline __ATTRS_o_ai vector signed int
7517vec_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.
7523static inline __ATTRS_o_ai vector signed int
7524vec_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.
7530static inline __ATTRS_o_ai vector bool int
7531vec_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.
7537static inline __ATTRS_o_ai vector bool int
7538vec_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.
7544static inline __ATTRS_o_ai vector bool int
7545vec_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
7550static inline __ATTRS_o_ai vector unsigned int
7551vec_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.
7557static inline __ATTRS_o_ai vector unsigned int
7558vec_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.
7564static inline __ATTRS_o_ai vector unsigned int
7565vec_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
7570static inline __ATTRS_o_ai vector signed long long
7571vec_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.
7577static inline __ATTRS_o_ai vector signed long long
7578vec_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.
7584static inline __ATTRS_o_ai vector signed long long
7585vec_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.
7591static inline __ATTRS_o_ai vector bool long long
7592vec_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.
7598static inline __ATTRS_o_ai vector bool long long
7599vec_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.
7605static inline __ATTRS_o_ai vector bool long long
7606vec_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
7611static inline __ATTRS_o_ai vector unsigned long long
7612vec_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.
7618static inline __ATTRS_o_ai vector unsigned long long
7619vec_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.
7625static inline __ATTRS_o_ai vector unsigned long long
7626vec_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
7633static inline __ATTRS_o_ai vector signed char
7634vec_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
7639static inline __ATTRS_o_ai vector signed char
7640vec_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
7645static inline __ATTRS_o_ai vector unsigned char
7646vec_srb(vector unsigned char __a, vector signed char __b) {
7647  return __builtin_s390_vsrlb(__a, (vector unsigned char)__b);
7648}
7649
7650static inline __ATTRS_o_ai vector unsigned char
7651vec_srb(vector unsigned char __a, vector unsigned char __b) {
7652  return __builtin_s390_vsrlb(__a, __b);
7653}
7654
7655static inline __ATTRS_o_ai vector signed short
7656vec_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
7661static inline __ATTRS_o_ai vector signed short
7662vec_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
7667static inline __ATTRS_o_ai vector unsigned short
7668vec_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
7673static inline __ATTRS_o_ai vector unsigned short
7674vec_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
7679static inline __ATTRS_o_ai vector signed int
7680vec_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
7685static inline __ATTRS_o_ai vector signed int
7686vec_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
7691static inline __ATTRS_o_ai vector unsigned int
7692vec_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
7697static inline __ATTRS_o_ai vector unsigned int
7698vec_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
7703static inline __ATTRS_o_ai vector signed long long
7704vec_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
7709static inline __ATTRS_o_ai vector signed long long
7710vec_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
7715static inline __ATTRS_o_ai vector unsigned long long
7716vec_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
7721static inline __ATTRS_o_ai vector unsigned long long
7722vec_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
7728static inline __ATTRS_o_ai vector float
7729vec_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
7734static inline __ATTRS_o_ai vector float
7735vec_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
7741static inline __ATTRS_o_ai vector double
7742vec_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
7747static inline __ATTRS_o_ai vector double
7748vec_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
7757extern __ATTRS_o vector signed char
7758vec_srdb(vector signed char __a, vector signed char __b, int __c)
7759  __constant_range(__c, 0, 7);
7760
7761extern __ATTRS_o vector unsigned char
7762vec_srdb(vector unsigned char __a, vector unsigned char __b, int __c)
7763  __constant_range(__c, 0, 7);
7764
7765extern __ATTRS_o vector signed short
7766vec_srdb(vector signed short __a, vector signed short __b, int __c)
7767  __constant_range(__c, 0, 7);
7768
7769extern __ATTRS_o vector unsigned short
7770vec_srdb(vector unsigned short __a, vector unsigned short __b, int __c)
7771  __constant_range(__c, 0, 7);
7772
7773extern __ATTRS_o vector signed int
7774vec_srdb(vector signed int __a, vector signed int __b, int __c)
7775  __constant_range(__c, 0, 7);
7776
7777extern __ATTRS_o vector unsigned int
7778vec_srdb(vector unsigned int __a, vector unsigned int __b, int __c)
7779  __constant_range(__c, 0, 7);
7780
7781extern __ATTRS_o vector signed long long
7782vec_srdb(vector signed long long __a, vector signed long long __b, int __c)
7783  __constant_range(__c, 0, 7);
7784
7785extern __ATTRS_o vector unsigned long long
7786vec_srdb(vector unsigned long long __a, vector unsigned long long __b, int __c)
7787  __constant_range(__c, 0, 7);
7788
7789extern __ATTRS_o vector float
7790vec_srdb(vector float __a, vector float __b, int __c)
7791  __constant_range(__c, 0, 7);
7792
7793extern __ATTRS_o vector double
7794vec_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
7805static inline __ATTRS_o_ai vector signed char
7806vec_abs(vector signed char __a) {
7807  return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed char)0));
7808}
7809
7810static inline __ATTRS_o_ai vector signed short
7811vec_abs(vector signed short __a) {
7812  return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed short)0));
7813}
7814
7815static inline __ATTRS_o_ai vector signed int
7816vec_abs(vector signed int __a) {
7817  return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed int)0));
7818}
7819
7820static inline __ATTRS_o_ai vector signed long long
7821vec_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
7826static inline __ATTRS_o_ai vector float
7827vec_abs(vector float __a) {
7828  return __builtin_s390_vflpsb(__a);
7829}
7830#endif
7831
7832static inline __ATTRS_o_ai vector double
7833vec_abs(vector double __a) {
7834  return __builtin_s390_vflpdb(__a);
7835}
7836
7837/*-- vec_nabs ---------------------------------------------------------------*/
7838
7839#if __ARCH__ >= 12
7840static inline __ATTRS_o_ai vector float
7841vec_nabs(vector float __a) {
7842  return __builtin_s390_vflnsb(__a);
7843}
7844#endif
7845
7846static inline __ATTRS_o_ai vector double
7847vec_nabs(vector double __a) {
7848  return __builtin_s390_vflndb(__a);
7849}
7850
7851/*-- vec_max ----------------------------------------------------------------*/
7852
7853static inline __ATTRS_o_ai vector signed char
7854vec_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.
7859static inline __ATTRS_o_ai vector signed char
7860vec_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.
7866static inline __ATTRS_o_ai vector signed char
7867vec_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
7872static inline __ATTRS_o_ai vector unsigned char
7873vec_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.
7878static inline __ATTRS_o_ai vector unsigned char
7879vec_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.
7885static inline __ATTRS_o_ai vector unsigned char
7886vec_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
7891static inline __ATTRS_o_ai vector signed short
7892vec_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.
7897static inline __ATTRS_o_ai vector signed short
7898vec_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.
7904static inline __ATTRS_o_ai vector signed short
7905vec_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
7910static inline __ATTRS_o_ai vector unsigned short
7911vec_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.
7916static inline __ATTRS_o_ai vector unsigned short
7917vec_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.
7923static inline __ATTRS_o_ai vector unsigned short
7924vec_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
7929static inline __ATTRS_o_ai vector signed int
7930vec_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.
7935static inline __ATTRS_o_ai vector signed int
7936vec_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.
7942static inline __ATTRS_o_ai vector signed int
7943vec_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
7948static inline __ATTRS_o_ai vector unsigned int
7949vec_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.
7954static inline __ATTRS_o_ai vector unsigned int
7955vec_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.
7961static inline __ATTRS_o_ai vector unsigned int
7962vec_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
7967static inline __ATTRS_o_ai vector signed long long
7968vec_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.
7973static inline __ATTRS_o_ai vector signed long long
7974vec_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.
7980static inline __ATTRS_o_ai vector signed long long
7981vec_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
7986static inline __ATTRS_o_ai vector unsigned long long
7987vec_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.
7992static inline __ATTRS_o_ai vector unsigned long long
7993vec_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.
7999static inline __ATTRS_o_ai vector unsigned long long
8000vec_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
8006static inline __ATTRS_o_ai vector float
8007vec_max(vector float __a, vector float __b) {
8008  return __builtin_s390_vfmaxsb(__a, __b, 0);
8009}
8010#endif
8011
8012static inline __ATTRS_o_ai vector double
8013vec_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
8023static inline __ATTRS_o_ai vector signed char
8024vec_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.
8029static inline __ATTRS_o_ai vector signed char
8030vec_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.
8036static inline __ATTRS_o_ai vector signed char
8037vec_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
8042static inline __ATTRS_o_ai vector unsigned char
8043vec_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.
8048static inline __ATTRS_o_ai vector unsigned char
8049vec_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.
8055static inline __ATTRS_o_ai vector unsigned char
8056vec_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
8061static inline __ATTRS_o_ai vector signed short
8062vec_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.
8067static inline __ATTRS_o_ai vector signed short
8068vec_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.
8074static inline __ATTRS_o_ai vector signed short
8075vec_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
8080static inline __ATTRS_o_ai vector unsigned short
8081vec_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.
8086static inline __ATTRS_o_ai vector unsigned short
8087vec_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.
8093static inline __ATTRS_o_ai vector unsigned short
8094vec_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
8099static inline __ATTRS_o_ai vector signed int
8100vec_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.
8105static inline __ATTRS_o_ai vector signed int
8106vec_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.
8112static inline __ATTRS_o_ai vector signed int
8113vec_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
8118static inline __ATTRS_o_ai vector unsigned int
8119vec_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.
8124static inline __ATTRS_o_ai vector unsigned int
8125vec_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.
8131static inline __ATTRS_o_ai vector unsigned int
8132vec_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
8137static inline __ATTRS_o_ai vector signed long long
8138vec_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.
8143static inline __ATTRS_o_ai vector signed long long
8144vec_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.
8150static inline __ATTRS_o_ai vector signed long long
8151vec_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
8156static inline __ATTRS_o_ai vector unsigned long long
8157vec_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.
8162static inline __ATTRS_o_ai vector unsigned long long
8163vec_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.
8169static inline __ATTRS_o_ai vector unsigned long long
8170vec_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
8176static inline __ATTRS_o_ai vector float
8177vec_min(vector float __a, vector float __b) {
8178  return __builtin_s390_vfminsb(__a, __b, 0);
8179}
8180#endif
8181
8182static inline __ATTRS_o_ai vector double
8183vec_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
8193static inline __ATTRS_ai vector unsigned char
8194vec_add_u128(vector unsigned char __a, vector unsigned char __b) {
8195  return __builtin_s390_vaq(__a, __b);
8196}
8197
8198/*-- vec_addc ---------------------------------------------------------------*/
8199
8200static inline __ATTRS_o_ai vector unsigned char
8201vec_addc(vector unsigned char __a, vector unsigned char __b) {
8202  return __builtin_s390_vaccb(__a, __b);
8203}
8204
8205static inline __ATTRS_o_ai vector unsigned short
8206vec_addc(vector unsigned short __a, vector unsigned short __b) {
8207  return __builtin_s390_vacch(__a, __b);
8208}
8209
8210static inline __ATTRS_o_ai vector unsigned int
8211vec_addc(vector unsigned int __a, vector unsigned int __b) {
8212  return __builtin_s390_vaccf(__a, __b);
8213}
8214
8215static inline __ATTRS_o_ai vector unsigned long long
8216vec_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
8222static inline __ATTRS_ai vector unsigned char
8223vec_addc_u128(vector unsigned char __a, vector unsigned char __b) {
8224  return __builtin_s390_vaccq(__a, __b);
8225}
8226
8227/*-- vec_adde_u128 ----------------------------------------------------------*/
8228
8229static inline __ATTRS_ai vector unsigned char
8230vec_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
8237static inline __ATTRS_ai vector unsigned char
8238vec_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
8245static inline __ATTRS_o_ai vector signed char
8246vec_avg(vector signed char __a, vector signed char __b) {
8247  return __builtin_s390_vavgb(__a, __b);
8248}
8249
8250static inline __ATTRS_o_ai vector signed short
8251vec_avg(vector signed short __a, vector signed short __b) {
8252  return __builtin_s390_vavgh(__a, __b);
8253}
8254
8255static inline __ATTRS_o_ai vector signed int
8256vec_avg(vector signed int __a, vector signed int __b) {
8257  return __builtin_s390_vavgf(__a, __b);
8258}
8259
8260static inline __ATTRS_o_ai vector signed long long
8261vec_avg(vector signed long long __a, vector signed long long __b) {
8262  return __builtin_s390_vavgg(__a, __b);
8263}
8264
8265static inline __ATTRS_o_ai vector unsigned char
8266vec_avg(vector unsigned char __a, vector unsigned char __b) {
8267  return __builtin_s390_vavglb(__a, __b);
8268}
8269
8270static inline __ATTRS_o_ai vector unsigned short
8271vec_avg(vector unsigned short __a, vector unsigned short __b) {
8272  return __builtin_s390_vavglh(__a, __b);
8273}
8274
8275static inline __ATTRS_o_ai vector unsigned int
8276vec_avg(vector unsigned int __a, vector unsigned int __b) {
8277  return __builtin_s390_vavglf(__a, __b);
8278}
8279
8280static inline __ATTRS_o_ai vector unsigned long long
8281vec_avg(vector unsigned long long __a, vector unsigned long long __b) {
8282  return __builtin_s390_vavglg(__a, __b);
8283}
8284
8285/*-- vec_checksum -----------------------------------------------------------*/
8286
8287static inline __ATTRS_ai vector unsigned int
8288vec_checksum(vector unsigned int __a, vector unsigned int __b) {
8289  return __builtin_s390_vcksm(__a, __b);
8290}
8291
8292/*-- vec_gfmsum -------------------------------------------------------------*/
8293
8294static inline __ATTRS_o_ai vector unsigned short
8295vec_gfmsum(vector unsigned char __a, vector unsigned char __b) {
8296  return __builtin_s390_vgfmb(__a, __b);
8297}
8298
8299static inline __ATTRS_o_ai vector unsigned int
8300vec_gfmsum(vector unsigned short __a, vector unsigned short __b) {
8301  return __builtin_s390_vgfmh(__a, __b);
8302}
8303
8304static inline __ATTRS_o_ai vector unsigned long long
8305vec_gfmsum(vector unsigned int __a, vector unsigned int __b) {
8306  return __builtin_s390_vgfmf(__a, __b);
8307}
8308
8309/*-- vec_gfmsum_128 ---------------------------------------------------------*/
8310
8311static inline __ATTRS_o_ai vector unsigned char
8312vec_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
8318static inline __ATTRS_o_ai vector unsigned short
8319vec_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
8324static inline __ATTRS_o_ai vector unsigned int
8325vec_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
8330static inline __ATTRS_o_ai vector unsigned long long
8331vec_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
8338static inline __ATTRS_o_ai vector unsigned char
8339vec_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
8347static inline __ATTRS_o_ai vector signed char
8348vec_mladd(vector signed char __a, vector signed char __b,
8349          vector signed char __c) {
8350  return __a * __b + __c;
8351}
8352
8353static inline __ATTRS_o_ai vector signed char
8354vec_mladd(vector unsigned char __a, vector signed char __b,
8355          vector signed char __c) {
8356  return (vector signed char)__a * __b + __c;
8357}
8358
8359static inline __ATTRS_o_ai vector signed char
8360vec_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
8365static inline __ATTRS_o_ai vector unsigned char
8366vec_mladd(vector unsigned char __a, vector unsigned char __b,
8367          vector unsigned char __c) {
8368  return __a * __b + __c;
8369}
8370
8371static inline __ATTRS_o_ai vector signed short
8372vec_mladd(vector signed short __a, vector signed short __b,
8373          vector signed short __c) {
8374  return __a * __b + __c;
8375}
8376
8377static inline __ATTRS_o_ai vector signed short
8378vec_mladd(vector unsigned short __a, vector signed short __b,
8379          vector signed short __c) {
8380  return (vector signed short)__a * __b + __c;
8381}
8382
8383static inline __ATTRS_o_ai vector signed short
8384vec_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
8389static inline __ATTRS_o_ai vector unsigned short
8390vec_mladd(vector unsigned short __a, vector unsigned short __b,
8391          vector unsigned short __c) {
8392  return __a * __b + __c;
8393}
8394
8395static inline __ATTRS_o_ai vector signed int
8396vec_mladd(vector signed int __a, vector signed int __b,
8397          vector signed int __c) {
8398  return __a * __b + __c;
8399}
8400
8401static inline __ATTRS_o_ai vector signed int
8402vec_mladd(vector unsigned int __a, vector signed int __b,
8403          vector signed int __c) {
8404  return (vector signed int)__a * __b + __c;
8405}
8406
8407static inline __ATTRS_o_ai vector signed int
8408vec_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
8413static inline __ATTRS_o_ai vector unsigned int
8414vec_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
8421static inline __ATTRS_o_ai vector signed char
8422vec_mhadd(vector signed char __a, vector signed char __b,
8423          vector signed char __c) {
8424  return __builtin_s390_vmahb(__a, __b, __c);
8425}
8426
8427static inline __ATTRS_o_ai vector unsigned char
8428vec_mhadd(vector unsigned char __a, vector unsigned char __b,
8429          vector unsigned char __c) {
8430  return __builtin_s390_vmalhb(__a, __b, __c);
8431}
8432
8433static inline __ATTRS_o_ai vector signed short
8434vec_mhadd(vector signed short __a, vector signed short __b,
8435          vector signed short __c) {
8436  return __builtin_s390_vmahh(__a, __b, __c);
8437}
8438
8439static inline __ATTRS_o_ai vector unsigned short
8440vec_mhadd(vector unsigned short __a, vector unsigned short __b,
8441          vector unsigned short __c) {
8442  return __builtin_s390_vmalhh(__a, __b, __c);
8443}
8444
8445static inline __ATTRS_o_ai vector signed int
8446vec_mhadd(vector signed int __a, vector signed int __b,
8447          vector signed int __c) {
8448  return __builtin_s390_vmahf(__a, __b, __c);
8449}
8450
8451static inline __ATTRS_o_ai vector unsigned int
8452vec_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
8459static inline __ATTRS_o_ai vector signed short
8460vec_meadd(vector signed char __a, vector signed char __b,
8461          vector signed short __c) {
8462  return __builtin_s390_vmaeb(__a, __b, __c);
8463}
8464
8465static inline __ATTRS_o_ai vector unsigned short
8466vec_meadd(vector unsigned char __a, vector unsigned char __b,
8467          vector unsigned short __c) {
8468  return __builtin_s390_vmaleb(__a, __b, __c);
8469}
8470
8471static inline __ATTRS_o_ai vector signed int
8472vec_meadd(vector signed short __a, vector signed short __b,
8473          vector signed int __c) {
8474  return __builtin_s390_vmaeh(__a, __b, __c);
8475}
8476
8477static inline __ATTRS_o_ai vector unsigned int
8478vec_meadd(vector unsigned short __a, vector unsigned short __b,
8479          vector unsigned int __c) {
8480  return __builtin_s390_vmaleh(__a, __b, __c);
8481}
8482
8483static inline __ATTRS_o_ai vector signed long long
8484vec_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
8489static inline __ATTRS_o_ai vector unsigned long long
8490vec_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
8497static inline __ATTRS_o_ai vector signed short
8498vec_moadd(vector signed char __a, vector signed char __b,
8499          vector signed short __c) {
8500  return __builtin_s390_vmaob(__a, __b, __c);
8501}
8502
8503static inline __ATTRS_o_ai vector unsigned short
8504vec_moadd(vector unsigned char __a, vector unsigned char __b,
8505          vector unsigned short __c) {
8506  return __builtin_s390_vmalob(__a, __b, __c);
8507}
8508
8509static inline __ATTRS_o_ai vector signed int
8510vec_moadd(vector signed short __a, vector signed short __b,
8511          vector signed int __c) {
8512  return __builtin_s390_vmaoh(__a, __b, __c);
8513}
8514
8515static inline __ATTRS_o_ai vector unsigned int
8516vec_moadd(vector unsigned short __a, vector unsigned short __b,
8517          vector unsigned int __c) {
8518  return __builtin_s390_vmaloh(__a, __b, __c);
8519}
8520
8521static inline __ATTRS_o_ai vector signed long long
8522vec_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
8527static inline __ATTRS_o_ai vector unsigned long long
8528vec_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
8535static inline __ATTRS_o_ai vector signed char
8536vec_mulh(vector signed char __a, vector signed char __b) {
8537  return __builtin_s390_vmhb(__a, __b);
8538}
8539
8540static inline __ATTRS_o_ai vector unsigned char
8541vec_mulh(vector unsigned char __a, vector unsigned char __b) {
8542  return __builtin_s390_vmlhb(__a, __b);
8543}
8544
8545static inline __ATTRS_o_ai vector signed short
8546vec_mulh(vector signed short __a, vector signed short __b) {
8547  return __builtin_s390_vmhh(__a, __b);
8548}
8549
8550static inline __ATTRS_o_ai vector unsigned short
8551vec_mulh(vector unsigned short __a, vector unsigned short __b) {
8552  return __builtin_s390_vmlhh(__a, __b);
8553}
8554
8555static inline __ATTRS_o_ai vector signed int
8556vec_mulh(vector signed int __a, vector signed int __b) {
8557  return __builtin_s390_vmhf(__a, __b);
8558}
8559
8560static inline __ATTRS_o_ai vector unsigned int
8561vec_mulh(vector unsigned int __a, vector unsigned int __b) {
8562  return __builtin_s390_vmlhf(__a, __b);
8563}
8564
8565/*-- vec_mule ---------------------------------------------------------------*/
8566
8567static inline __ATTRS_o_ai vector signed short
8568vec_mule(vector signed char __a, vector signed char __b) {
8569  return __builtin_s390_vmeb(__a, __b);
8570}
8571
8572static inline __ATTRS_o_ai vector unsigned short
8573vec_mule(vector unsigned char __a, vector unsigned char __b) {
8574  return __builtin_s390_vmleb(__a, __b);
8575}
8576
8577static inline __ATTRS_o_ai vector signed int
8578vec_mule(vector signed short __a, vector signed short __b) {
8579  return __builtin_s390_vmeh(__a, __b);
8580}
8581
8582static inline __ATTRS_o_ai vector unsigned int
8583vec_mule(vector unsigned short __a, vector unsigned short __b) {
8584  return __builtin_s390_vmleh(__a, __b);
8585}
8586
8587static inline __ATTRS_o_ai vector signed long long
8588vec_mule(vector signed int __a, vector signed int __b) {
8589  return __builtin_s390_vmef(__a, __b);
8590}
8591
8592static inline __ATTRS_o_ai vector unsigned long long
8593vec_mule(vector unsigned int __a, vector unsigned int __b) {
8594  return __builtin_s390_vmlef(__a, __b);
8595}
8596
8597/*-- vec_mulo ---------------------------------------------------------------*/
8598
8599static inline __ATTRS_o_ai vector signed short
8600vec_mulo(vector signed char __a, vector signed char __b) {
8601  return __builtin_s390_vmob(__a, __b);
8602}
8603
8604static inline __ATTRS_o_ai vector unsigned short
8605vec_mulo(vector unsigned char __a, vector unsigned char __b) {
8606  return __builtin_s390_vmlob(__a, __b);
8607}
8608
8609static inline __ATTRS_o_ai vector signed int
8610vec_mulo(vector signed short __a, vector signed short __b) {
8611  return __builtin_s390_vmoh(__a, __b);
8612}
8613
8614static inline __ATTRS_o_ai vector unsigned int
8615vec_mulo(vector unsigned short __a, vector unsigned short __b) {
8616  return __builtin_s390_vmloh(__a, __b);
8617}
8618
8619static inline __ATTRS_o_ai vector signed long long
8620vec_mulo(vector signed int __a, vector signed int __b) {
8621  return __builtin_s390_vmof(__a, __b);
8622}
8623
8624static inline __ATTRS_o_ai vector unsigned long long
8625vec_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
8638static inline __ATTRS_ai vector unsigned char
8639vec_sub_u128(vector unsigned char __a, vector unsigned char __b) {
8640  return __builtin_s390_vsq(__a, __b);
8641}
8642
8643/*-- vec_subc ---------------------------------------------------------------*/
8644
8645static inline __ATTRS_o_ai vector unsigned char
8646vec_subc(vector unsigned char __a, vector unsigned char __b) {
8647  return __builtin_s390_vscbib(__a, __b);
8648}
8649
8650static inline __ATTRS_o_ai vector unsigned short
8651vec_subc(vector unsigned short __a, vector unsigned short __b) {
8652  return __builtin_s390_vscbih(__a, __b);
8653}
8654
8655static inline __ATTRS_o_ai vector unsigned int
8656vec_subc(vector unsigned int __a, vector unsigned int __b) {
8657  return __builtin_s390_vscbif(__a, __b);
8658}
8659
8660static inline __ATTRS_o_ai vector unsigned long long
8661vec_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
8667static inline __ATTRS_ai vector unsigned char
8668vec_subc_u128(vector unsigned char __a, vector unsigned char __b) {
8669  return __builtin_s390_vscbiq(__a, __b);
8670}
8671
8672/*-- vec_sube_u128 ----------------------------------------------------------*/
8673
8674static inline __ATTRS_ai vector unsigned char
8675vec_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
8682static inline __ATTRS_ai vector unsigned char
8683vec_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
8690static inline __ATTRS_o_ai vector unsigned long long
8691vec_sum2(vector unsigned short __a, vector unsigned short __b) {
8692  return __builtin_s390_vsumgh(__a, __b);
8693}
8694
8695static inline __ATTRS_o_ai vector unsigned long long
8696vec_sum2(vector unsigned int __a, vector unsigned int __b) {
8697  return __builtin_s390_vsumgf(__a, __b);
8698}
8699
8700/*-- vec_sum_u128 -----------------------------------------------------------*/
8701
8702static inline __ATTRS_o_ai vector unsigned char
8703vec_sum_u128(vector unsigned int __a, vector unsigned int __b) {
8704  return __builtin_s390_vsumqf(__a, __b);
8705}
8706
8707static inline __ATTRS_o_ai vector unsigned char
8708vec_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
8714static inline __ATTRS_o_ai vector unsigned int
8715vec_sum4(vector unsigned char __a, vector unsigned char __b) {
8716  return __builtin_s390_vsumb(__a, __b);
8717}
8718
8719static inline __ATTRS_o_ai vector unsigned int
8720vec_sum4(vector unsigned short __a, vector unsigned short __b) {
8721  return __builtin_s390_vsumh(__a, __b);
8722}
8723
8724/*-- vec_test_mask ----------------------------------------------------------*/
8725
8726static inline __ATTRS_o_ai int
8727vec_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
8732static inline __ATTRS_o_ai int
8733vec_test_mask(vector unsigned char __a, vector unsigned char __b) {
8734  return __builtin_s390_vtm(__a, __b);
8735}
8736
8737static inline __ATTRS_o_ai int
8738vec_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
8743static inline __ATTRS_o_ai int
8744vec_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
8749static inline __ATTRS_o_ai int
8750vec_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
8755static inline __ATTRS_o_ai int
8756vec_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
8761static inline __ATTRS_o_ai int
8762vec_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
8767static inline __ATTRS_o_ai int
8768vec_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
8774static inline __ATTRS_o_ai int
8775vec_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
8781static inline __ATTRS_o_ai int
8782vec_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
8790static inline __ATTRS_o_ai vector float
8791vec_madd(vector float __a, vector float __b, vector float __c) {
8792  return __builtin_s390_vfmasb(__a, __b, __c);
8793}
8794#endif
8795
8796static inline __ATTRS_o_ai vector double
8797vec_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
8804static inline __ATTRS_o_ai vector float
8805vec_msub(vector float __a, vector float __b, vector float __c) {
8806  return __builtin_s390_vfmssb(__a, __b, __c);
8807}
8808#endif
8809
8810static inline __ATTRS_o_ai vector double
8811vec_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
8818static inline __ATTRS_o_ai vector float
8819vec_nmadd(vector float __a, vector float __b, vector float __c) {
8820  return __builtin_s390_vfnmasb(__a, __b, __c);
8821}
8822
8823static inline __ATTRS_o_ai vector double
8824vec_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
8832static inline __ATTRS_o_ai vector float
8833vec_nmsub(vector float __a, vector float __b, vector float __c) {
8834  return __builtin_s390_vfnmssb(__a, __b, __c);
8835}
8836
8837static inline __ATTRS_o_ai vector double
8838vec_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
8846static inline __ATTRS_o_ai vector float
8847vec_sqrt(vector float __a) {
8848  return __builtin_s390_vfsqsb(__a);
8849}
8850#endif
8851
8852static inline __ATTRS_o_ai vector double
8853vec_sqrt(vector double __a) {
8854  return __builtin_s390_vfsqdb(__a);
8855}
8856
8857/*-- vec_ld2f ---------------------------------------------------------------*/
8858
8859// This prototype is deprecated.
8860static inline __ATTRS_ai vector double
8861vec_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.
8869static inline __ATTRS_ai void
8870vec_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.
8878static inline __ATTRS_o_ai vector double
8879vec_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.
8887static inline __ATTRS_o_ai vector double
8888vec_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.
8898static inline __ATTRS_o_ai vector signed long long
8899vec_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.
8908static inline __ATTRS_o_ai vector unsigned long long
8909vec_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
8918static inline __ATTRS_ai vector double
8919vec_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
8929static inline __ATTRS_ai vector float
8930vec_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
8939static inline __ATTRS_o_ai vector double
8940vec_double(vector signed long long __a) {
8941  return __builtin_convertvector(__a, vector double);
8942}
8943
8944static inline __ATTRS_o_ai vector double
8945vec_double(vector unsigned long long __a) {
8946  return __builtin_convertvector(__a, vector double);
8947}
8948
8949/*-- vec_float --------------------------------------------------------------*/
8950
8951#if __ARCH__ >= 13
8952
8953static inline __ATTRS_o_ai vector float
8954vec_float(vector signed int __a) {
8955  return __builtin_convertvector(__a, vector float);
8956}
8957
8958static inline __ATTRS_o_ai vector float
8959vec_float(vector unsigned int __a) {
8960  return __builtin_convertvector(__a, vector float);
8961}
8962
8963#endif
8964
8965/*-- vec_signed -------------------------------------------------------------*/
8966
8967static inline __ATTRS_o_ai vector signed long long
8968vec_signed(vector double __a) {
8969  return __builtin_convertvector(__a, vector signed long long);
8970}
8971
8972#if __ARCH__ >= 13
8973static inline __ATTRS_o_ai vector signed int
8974vec_signed(vector float __a) {
8975  return __builtin_convertvector(__a, vector signed int);
8976}
8977#endif
8978
8979/*-- vec_unsigned -----------------------------------------------------------*/
8980
8981static inline __ATTRS_o_ai vector unsigned long long
8982vec_unsigned(vector double __a) {
8983  return __builtin_convertvector(__a, vector unsigned long long);
8984}
8985
8986#if __ARCH__ >= 13
8987static inline __ATTRS_o_ai vector unsigned int
8988vec_unsigned(vector float __a) {
8989  return __builtin_convertvector(__a, vector unsigned int);
8990}
8991#endif
8992
8993/*-- vec_roundp -------------------------------------------------------------*/
8994
8995#if __ARCH__ >= 12
8996static inline __ATTRS_o_ai vector float
8997vec_roundp(vector float __a) {
8998  return __builtin_s390_vfisb(__a, 4, 6);
8999}
9000#endif
9001
9002static inline __ATTRS_o_ai vector double
9003vec_roundp(vector double __a) {
9004  return __builtin_s390_vfidb(__a, 4, 6);
9005}
9006
9007/*-- vec_ceil ---------------------------------------------------------------*/
9008
9009#if __ARCH__ >= 12
9010static inline __ATTRS_o_ai vector float
9011vec_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
9017static inline __ATTRS_o_ai vector double
9018vec_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
9026static inline __ATTRS_o_ai vector float
9027vec_roundm(vector float __a) {
9028  return __builtin_s390_vfisb(__a, 4, 7);
9029}
9030#endif
9031
9032static inline __ATTRS_o_ai vector double
9033vec_roundm(vector double __a) {
9034  return __builtin_s390_vfidb(__a, 4, 7);
9035}
9036
9037/*-- vec_floor --------------------------------------------------------------*/
9038
9039#if __ARCH__ >= 12
9040static inline __ATTRS_o_ai vector float
9041vec_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
9047static inline __ATTRS_o_ai vector double
9048vec_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
9056static inline __ATTRS_o_ai vector float
9057vec_roundz(vector float __a) {
9058  return __builtin_s390_vfisb(__a, 4, 5);
9059}
9060#endif
9061
9062static inline __ATTRS_o_ai vector double
9063vec_roundz(vector double __a) {
9064  return __builtin_s390_vfidb(__a, 4, 5);
9065}
9066
9067/*-- vec_trunc --------------------------------------------------------------*/
9068
9069#if __ARCH__ >= 12
9070static inline __ATTRS_o_ai vector float
9071vec_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
9077static inline __ATTRS_o_ai vector double
9078vec_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
9086static inline __ATTRS_o_ai vector float
9087vec_roundc(vector float __a) {
9088  return __builtin_s390_vfisb(__a, 4, 0);
9089}
9090#endif
9091
9092static inline __ATTRS_o_ai vector double
9093vec_roundc(vector double __a) {
9094  return __builtin_s390_vfidb(__a, 4, 0);
9095}
9096
9097/*-- vec_rint ---------------------------------------------------------------*/
9098
9099#if __ARCH__ >= 12
9100static inline __ATTRS_o_ai vector float
9101vec_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
9107static inline __ATTRS_o_ai vector double
9108vec_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
9116static inline __ATTRS_o_ai vector float
9117vec_round(vector float __a) {
9118  return __builtin_s390_vfisb(__a, 4, 4);
9119}
9120#endif
9121
9122static inline __ATTRS_o_ai vector double
9123vec_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
9130extern __ATTRS_o vector bool int
9131vec_fp_test_data_class(vector float __a, int __b, int *__c)
9132  __constant_range(__b, 0, 4095);
9133
9134extern __ATTRS_o vector bool long long
9135vec_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
9186static inline __ATTRS_o_ai vector signed char
9187vec_cp_until_zero(vector signed char __a) {
9188  return (vector signed char)__builtin_s390_vistrb((vector unsigned char)__a);
9189}
9190
9191static inline __ATTRS_o_ai vector bool char
9192vec_cp_until_zero(vector bool char __a) {
9193  return (vector bool char)__builtin_s390_vistrb((vector unsigned char)__a);
9194}
9195
9196static inline __ATTRS_o_ai vector unsigned char
9197vec_cp_until_zero(vector unsigned char __a) {
9198  return __builtin_s390_vistrb(__a);
9199}
9200
9201static inline __ATTRS_o_ai vector signed short
9202vec_cp_until_zero(vector signed short __a) {
9203  return (vector signed short)__builtin_s390_vistrh((vector unsigned short)__a);
9204}
9205
9206static inline __ATTRS_o_ai vector bool short
9207vec_cp_until_zero(vector bool short __a) {
9208  return (vector bool short)__builtin_s390_vistrh((vector unsigned short)__a);
9209}
9210
9211static inline __ATTRS_o_ai vector unsigned short
9212vec_cp_until_zero(vector unsigned short __a) {
9213  return __builtin_s390_vistrh(__a);
9214}
9215
9216static inline __ATTRS_o_ai vector signed int
9217vec_cp_until_zero(vector signed int __a) {
9218  return (vector signed int)__builtin_s390_vistrf((vector unsigned int)__a);
9219}
9220
9221static inline __ATTRS_o_ai vector bool int
9222vec_cp_until_zero(vector bool int __a) {
9223  return (vector bool int)__builtin_s390_vistrf((vector unsigned int)__a);
9224}
9225
9226static inline __ATTRS_o_ai vector unsigned int
9227vec_cp_until_zero(vector unsigned int __a) {
9228  return __builtin_s390_vistrf(__a);
9229}
9230
9231/*-- vec_cp_until_zero_cc ---------------------------------------------------*/
9232
9233static inline __ATTRS_o_ai vector signed char
9234vec_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
9239static inline __ATTRS_o_ai vector bool char
9240vec_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
9245static inline __ATTRS_o_ai vector unsigned char
9246vec_cp_until_zero_cc(vector unsigned char __a, int *__cc) {
9247  return __builtin_s390_vistrbs(__a, __cc);
9248}
9249
9250static inline __ATTRS_o_ai vector signed short
9251vec_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
9256static inline __ATTRS_o_ai vector bool short
9257vec_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
9262static inline __ATTRS_o_ai vector unsigned short
9263vec_cp_until_zero_cc(vector unsigned short __a, int *__cc) {
9264  return __builtin_s390_vistrhs(__a, __cc);
9265}
9266
9267static inline __ATTRS_o_ai vector signed int
9268vec_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
9273static inline __ATTRS_o_ai vector bool int
9274vec_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
9279static inline __ATTRS_o_ai vector unsigned int
9280vec_cp_until_zero_cc(vector unsigned int __a, int *__cc) {
9281  return __builtin_s390_vistrfs(__a, __cc);
9282}
9283
9284/*-- vec_cmpeq_idx ----------------------------------------------------------*/
9285
9286static inline __ATTRS_o_ai vector signed char
9287vec_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
9293static inline __ATTRS_o_ai vector unsigned char
9294vec_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
9299static inline __ATTRS_o_ai vector unsigned char
9300vec_cmpeq_idx(vector unsigned char __a, vector unsigned char __b) {
9301  return __builtin_s390_vfeeb(__a, __b);
9302}
9303
9304static inline __ATTRS_o_ai vector signed short
9305vec_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
9311static inline __ATTRS_o_ai vector unsigned short
9312vec_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
9317static inline __ATTRS_o_ai vector unsigned short
9318vec_cmpeq_idx(vector unsigned short __a, vector unsigned short __b) {
9319  return __builtin_s390_vfeeh(__a, __b);
9320}
9321
9322static inline __ATTRS_o_ai vector signed int
9323vec_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
9329static inline __ATTRS_o_ai vector unsigned int
9330vec_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
9335static inline __ATTRS_o_ai vector unsigned int
9336vec_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
9342static inline __ATTRS_o_ai vector signed char
9343vec_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
9349static inline __ATTRS_o_ai vector unsigned char
9350vec_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
9355static inline __ATTRS_o_ai vector unsigned char
9356vec_cmpeq_idx_cc(vector unsigned char __a, vector unsigned char __b,
9357                 int *__cc) {
9358  return __builtin_s390_vfeebs(__a, __b, __cc);
9359}
9360
9361static inline __ATTRS_o_ai vector signed short
9362vec_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
9368static inline __ATTRS_o_ai vector unsigned short
9369vec_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
9374static inline __ATTRS_o_ai vector unsigned short
9375vec_cmpeq_idx_cc(vector unsigned short __a, vector unsigned short __b,
9376                 int *__cc) {
9377  return __builtin_s390_vfeehs(__a, __b, __cc);
9378}
9379
9380static inline __ATTRS_o_ai vector signed int
9381vec_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
9387static inline __ATTRS_o_ai vector unsigned int
9388vec_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
9393static inline __ATTRS_o_ai vector unsigned int
9394vec_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
9400static inline __ATTRS_o_ai vector signed char
9401vec_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
9407static inline __ATTRS_o_ai vector unsigned char
9408vec_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
9413static inline __ATTRS_o_ai vector unsigned char
9414vec_cmpeq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9415  return __builtin_s390_vfeezb(__a, __b);
9416}
9417
9418static inline __ATTRS_o_ai vector signed short
9419vec_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
9425static inline __ATTRS_o_ai vector unsigned short
9426vec_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
9431static inline __ATTRS_o_ai vector unsigned short
9432vec_cmpeq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
9433  return __builtin_s390_vfeezh(__a, __b);
9434}
9435
9436static inline __ATTRS_o_ai vector signed int
9437vec_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
9443static inline __ATTRS_o_ai vector unsigned int
9444vec_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
9449static inline __ATTRS_o_ai vector unsigned int
9450vec_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
9456static inline __ATTRS_o_ai vector signed char
9457vec_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
9464static inline __ATTRS_o_ai vector unsigned char
9465vec_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
9470static inline __ATTRS_o_ai vector unsigned char
9471vec_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
9476static inline __ATTRS_o_ai vector signed short
9477vec_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
9484static inline __ATTRS_o_ai vector unsigned short
9485vec_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
9490static inline __ATTRS_o_ai vector unsigned short
9491vec_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
9496static inline __ATTRS_o_ai vector signed int
9497vec_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
9503static inline __ATTRS_o_ai vector unsigned int
9504vec_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
9509static inline __ATTRS_o_ai vector unsigned int
9510vec_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
9517static inline __ATTRS_o_ai vector signed char
9518vec_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
9524static inline __ATTRS_o_ai vector unsigned char
9525vec_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
9530static inline __ATTRS_o_ai vector unsigned char
9531vec_cmpne_idx(vector unsigned char __a, vector unsigned char __b) {
9532  return __builtin_s390_vfeneb(__a, __b);
9533}
9534
9535static inline __ATTRS_o_ai vector signed short
9536vec_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
9542static inline __ATTRS_o_ai vector unsigned short
9543vec_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
9548static inline __ATTRS_o_ai vector unsigned short
9549vec_cmpne_idx(vector unsigned short __a, vector unsigned short __b) {
9550  return __builtin_s390_vfeneh(__a, __b);
9551}
9552
9553static inline __ATTRS_o_ai vector signed int
9554vec_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
9560static inline __ATTRS_o_ai vector unsigned int
9561vec_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
9566static inline __ATTRS_o_ai vector unsigned int
9567vec_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
9573static inline __ATTRS_o_ai vector signed char
9574vec_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
9580static inline __ATTRS_o_ai vector unsigned char
9581vec_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
9586static inline __ATTRS_o_ai vector unsigned char
9587vec_cmpne_idx_cc(vector unsigned char __a, vector unsigned char __b,
9588                 int *__cc) {
9589  return __builtin_s390_vfenebs(__a, __b, __cc);
9590}
9591
9592static inline __ATTRS_o_ai vector signed short
9593vec_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
9599static inline __ATTRS_o_ai vector unsigned short
9600vec_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
9605static inline __ATTRS_o_ai vector unsigned short
9606vec_cmpne_idx_cc(vector unsigned short __a, vector unsigned short __b,
9607                 int *__cc) {
9608  return __builtin_s390_vfenehs(__a, __b, __cc);
9609}
9610
9611static inline __ATTRS_o_ai vector signed int
9612vec_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
9618static inline __ATTRS_o_ai vector unsigned int
9619vec_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
9624static inline __ATTRS_o_ai vector unsigned int
9625vec_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
9631static inline __ATTRS_o_ai vector signed char
9632vec_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
9638static inline __ATTRS_o_ai vector unsigned char
9639vec_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
9644static inline __ATTRS_o_ai vector unsigned char
9645vec_cmpne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9646  return __builtin_s390_vfenezb(__a, __b);
9647}
9648
9649static inline __ATTRS_o_ai vector signed short
9650vec_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
9656static inline __ATTRS_o_ai vector unsigned short
9657vec_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
9662static inline __ATTRS_o_ai vector unsigned short
9663vec_cmpne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
9664  return __builtin_s390_vfenezh(__a, __b);
9665}
9666
9667static inline __ATTRS_o_ai vector signed int
9668vec_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
9674static inline __ATTRS_o_ai vector unsigned int
9675vec_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
9680static inline __ATTRS_o_ai vector unsigned int
9681vec_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
9687static inline __ATTRS_o_ai vector signed char
9688vec_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
9695static inline __ATTRS_o_ai vector unsigned char
9696vec_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
9701static inline __ATTRS_o_ai vector unsigned char
9702vec_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
9707static inline __ATTRS_o_ai vector signed short
9708vec_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
9715static inline __ATTRS_o_ai vector unsigned short
9716vec_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
9721static inline __ATTRS_o_ai vector unsigned short
9722vec_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
9727static inline __ATTRS_o_ai vector signed int
9728vec_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
9734static inline __ATTRS_o_ai vector unsigned int
9735vec_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
9740static inline __ATTRS_o_ai vector unsigned int
9741vec_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
9748static inline __ATTRS_o_ai vector bool char
9749vec_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
9754static inline __ATTRS_o_ai vector bool short
9755vec_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
9760static inline __ATTRS_o_ai vector bool int
9761vec_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
9768static inline __ATTRS_o_ai vector bool char
9769vec_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
9774static inline __ATTRS_o_ai vector bool short
9775vec_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
9780static inline __ATTRS_o_ai vector bool int
9781vec_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
9788static inline __ATTRS_o_ai vector unsigned char
9789vec_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
9794static inline __ATTRS_o_ai vector unsigned short
9795vec_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
9800static inline __ATTRS_o_ai vector unsigned int
9801vec_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
9808static inline __ATTRS_o_ai vector unsigned char
9809vec_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
9814static inline __ATTRS_o_ai vector unsigned short
9815vec_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
9820static inline __ATTRS_o_ai vector unsigned int
9821vec_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
9828static inline __ATTRS_o_ai vector unsigned char
9829vec_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
9834static inline __ATTRS_o_ai vector unsigned short
9835vec_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
9840static inline __ATTRS_o_ai vector unsigned int
9841vec_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
9848static inline __ATTRS_o_ai vector unsigned char
9849vec_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
9854static inline __ATTRS_o_ai vector unsigned short
9855vec_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
9860static inline __ATTRS_o_ai vector unsigned int
9861vec_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
9868static inline __ATTRS_o_ai vector bool char
9869vec_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
9874static inline __ATTRS_o_ai vector bool short
9875vec_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
9880static inline __ATTRS_o_ai vector bool int
9881vec_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
9888static inline __ATTRS_o_ai vector bool char
9889vec_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
9894static inline __ATTRS_o_ai vector bool short
9895vec_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
9900static inline __ATTRS_o_ai vector bool int
9901vec_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
9908static inline __ATTRS_o_ai vector unsigned char
9909vec_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
9914static inline __ATTRS_o_ai vector unsigned short
9915vec_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
9920static inline __ATTRS_o_ai vector unsigned int
9921vec_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
9928static inline __ATTRS_o_ai vector unsigned char
9929vec_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
9934static inline __ATTRS_o_ai vector unsigned short
9935vec_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
9940static inline __ATTRS_o_ai vector unsigned int
9941vec_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
9948static inline __ATTRS_o_ai vector unsigned char
9949vec_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
9954static inline __ATTRS_o_ai vector unsigned short
9955vec_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
9960static inline __ATTRS_o_ai vector unsigned int
9961vec_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
9968static inline __ATTRS_o_ai vector unsigned char
9969vec_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
9974static inline __ATTRS_o_ai vector unsigned short
9975vec_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
9980static inline __ATTRS_o_ai vector unsigned int
9981vec_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
9988static inline __ATTRS_o_ai vector bool char
9989vec_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
9995static inline __ATTRS_o_ai vector bool char
9996vec_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
10002static inline __ATTRS_o_ai vector bool char
10003vec_find_any_eq(vector unsigned char __a, vector unsigned char __b) {
10004  return (vector bool char)__builtin_s390_vfaeb(__a, __b, 4);
10005}
10006
10007static inline __ATTRS_o_ai vector bool short
10008vec_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
10014static inline __ATTRS_o_ai vector bool short
10015vec_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
10021static inline __ATTRS_o_ai vector bool short
10022vec_find_any_eq(vector unsigned short __a, vector unsigned short __b) {
10023  return (vector bool short)__builtin_s390_vfaeh(__a, __b, 4);
10024}
10025
10026static inline __ATTRS_o_ai vector bool int
10027vec_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
10033static inline __ATTRS_o_ai vector bool int
10034vec_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
10040static inline __ATTRS_o_ai vector bool int
10041vec_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
10047static inline __ATTRS_o_ai vector bool char
10048vec_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
10054static inline __ATTRS_o_ai vector bool char
10055vec_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
10061static inline __ATTRS_o_ai vector bool char
10062vec_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
10067static inline __ATTRS_o_ai vector bool short
10068vec_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
10075static inline __ATTRS_o_ai vector bool short
10076vec_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
10082static inline __ATTRS_o_ai vector bool short
10083vec_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
10088static inline __ATTRS_o_ai vector bool int
10089vec_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
10095static inline __ATTRS_o_ai vector bool int
10096vec_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
10102static inline __ATTRS_o_ai vector bool int
10103vec_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
10110static inline __ATTRS_o_ai vector signed char
10111vec_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
10117static inline __ATTRS_o_ai vector unsigned char
10118vec_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
10123static inline __ATTRS_o_ai vector unsigned char
10124vec_find_any_eq_idx(vector unsigned char __a, vector unsigned char __b) {
10125  return __builtin_s390_vfaeb(__a, __b, 0);
10126}
10127
10128static inline __ATTRS_o_ai vector signed short
10129vec_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
10135static inline __ATTRS_o_ai vector unsigned short
10136vec_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
10141static inline __ATTRS_o_ai vector unsigned short
10142vec_find_any_eq_idx(vector unsigned short __a, vector unsigned short __b) {
10143  return __builtin_s390_vfaeh(__a, __b, 0);
10144}
10145
10146static inline __ATTRS_o_ai vector signed int
10147vec_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
10153static inline __ATTRS_o_ai vector unsigned int
10154vec_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
10159static inline __ATTRS_o_ai vector unsigned int
10160vec_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
10166static inline __ATTRS_o_ai vector signed char
10167vec_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
10174static inline __ATTRS_o_ai vector unsigned char
10175vec_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
10180static inline __ATTRS_o_ai vector unsigned char
10181vec_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
10186static inline __ATTRS_o_ai vector signed short
10187vec_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
10194static inline __ATTRS_o_ai vector unsigned short
10195vec_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
10201static inline __ATTRS_o_ai vector unsigned short
10202vec_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
10207static inline __ATTRS_o_ai vector signed int
10208vec_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
10215static inline __ATTRS_o_ai vector unsigned int
10216vec_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
10221static inline __ATTRS_o_ai vector unsigned int
10222vec_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
10229static inline __ATTRS_o_ai vector signed char
10230vec_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
10236static inline __ATTRS_o_ai vector unsigned char
10237vec_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
10242static inline __ATTRS_o_ai vector unsigned char
10243vec_find_any_eq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
10244  return __builtin_s390_vfaezb(__a, __b, 0);
10245}
10246
10247static inline __ATTRS_o_ai vector signed short
10248vec_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
10254static inline __ATTRS_o_ai vector unsigned short
10255vec_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
10260static inline __ATTRS_o_ai vector unsigned short
10261vec_find_any_eq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
10262  return __builtin_s390_vfaezh(__a, __b, 0);
10263}
10264
10265static inline __ATTRS_o_ai vector signed int
10266vec_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
10272static inline __ATTRS_o_ai vector unsigned int
10273vec_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
10278static inline __ATTRS_o_ai vector unsigned int
10279vec_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
10285static inline __ATTRS_o_ai vector signed char
10286vec_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
10293static inline __ATTRS_o_ai vector unsigned char
10294vec_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
10300static inline __ATTRS_o_ai vector unsigned char
10301vec_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
10306static inline __ATTRS_o_ai vector signed short
10307vec_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
10314static inline __ATTRS_o_ai vector unsigned short
10315vec_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
10321static inline __ATTRS_o_ai vector unsigned short
10322vec_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
10327static inline __ATTRS_o_ai vector signed int
10328vec_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
10335static inline __ATTRS_o_ai vector unsigned int
10336vec_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
10342static inline __ATTRS_o_ai vector unsigned int
10343vec_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
10350static inline __ATTRS_o_ai vector bool char
10351vec_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
10357static inline __ATTRS_o_ai vector bool char
10358vec_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
10364static inline __ATTRS_o_ai vector bool char
10365vec_find_any_ne(vector unsigned char __a, vector unsigned char __b) {
10366  return (vector bool char)__builtin_s390_vfaeb(__a, __b, 12);
10367}
10368
10369static inline __ATTRS_o_ai vector bool short
10370vec_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
10376static inline __ATTRS_o_ai vector bool short
10377vec_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
10383static inline __ATTRS_o_ai vector bool short
10384vec_find_any_ne(vector unsigned short __a, vector unsigned short __b) {
10385  return (vector bool short)__builtin_s390_vfaeh(__a, __b, 12);
10386}
10387
10388static inline __ATTRS_o_ai vector bool int
10389vec_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
10395static inline __ATTRS_o_ai vector bool int
10396vec_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
10402static inline __ATTRS_o_ai vector bool int
10403vec_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
10409static inline __ATTRS_o_ai vector bool char
10410vec_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
10416static inline __ATTRS_o_ai vector bool char
10417vec_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
10423static inline __ATTRS_o_ai vector bool char
10424vec_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
10429static inline __ATTRS_o_ai vector bool short
10430vec_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
10437static inline __ATTRS_o_ai vector bool short
10438vec_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
10444static inline __ATTRS_o_ai vector bool short
10445vec_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
10450static inline __ATTRS_o_ai vector bool int
10451vec_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
10457static inline __ATTRS_o_ai vector bool int
10458vec_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
10464static inline __ATTRS_o_ai vector bool int
10465vec_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
10472static inline __ATTRS_o_ai vector signed char
10473vec_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
10479static inline __ATTRS_o_ai vector unsigned char
10480vec_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
10485static inline __ATTRS_o_ai vector unsigned char
10486vec_find_any_ne_idx(vector unsigned char __a, vector unsigned char __b) {
10487  return __builtin_s390_vfaeb(__a, __b, 8);
10488}
10489
10490static inline __ATTRS_o_ai vector signed short
10491vec_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
10497static inline __ATTRS_o_ai vector unsigned short
10498vec_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
10503static inline __ATTRS_o_ai vector unsigned short
10504vec_find_any_ne_idx(vector unsigned short __a, vector unsigned short __b) {
10505  return __builtin_s390_vfaeh(__a, __b, 8);
10506}
10507
10508static inline __ATTRS_o_ai vector signed int
10509vec_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
10515static inline __ATTRS_o_ai vector unsigned int
10516vec_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
10521static inline __ATTRS_o_ai vector unsigned int
10522vec_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
10528static inline __ATTRS_o_ai vector signed char
10529vec_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
10536static inline __ATTRS_o_ai vector unsigned char
10537vec_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
10542static inline __ATTRS_o_ai vector unsigned char
10543vec_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
10548static inline __ATTRS_o_ai vector signed short
10549vec_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
10556static inline __ATTRS_o_ai vector unsigned short
10557vec_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
10563static inline __ATTRS_o_ai vector unsigned short
10564vec_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
10569static inline __ATTRS_o_ai vector signed int
10570vec_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
10577static inline __ATTRS_o_ai vector unsigned int
10578vec_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
10583static inline __ATTRS_o_ai vector unsigned int
10584vec_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
10591static inline __ATTRS_o_ai vector signed char
10592vec_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
10598static inline __ATTRS_o_ai vector unsigned char
10599vec_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
10604static inline __ATTRS_o_ai vector unsigned char
10605vec_find_any_ne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
10606  return __builtin_s390_vfaezb(__a, __b, 8);
10607}
10608
10609static inline __ATTRS_o_ai vector signed short
10610vec_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
10616static inline __ATTRS_o_ai vector unsigned short
10617vec_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
10622static inline __ATTRS_o_ai vector unsigned short
10623vec_find_any_ne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
10624  return __builtin_s390_vfaezh(__a, __b, 8);
10625}
10626
10627static inline __ATTRS_o_ai vector signed int
10628vec_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
10634static inline __ATTRS_o_ai vector unsigned int
10635vec_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
10640static inline __ATTRS_o_ai vector unsigned int
10641vec_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
10647static inline __ATTRS_o_ai vector signed char
10648vec_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
10655static inline __ATTRS_o_ai vector unsigned char
10656vec_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
10662static inline __ATTRS_o_ai vector unsigned char
10663vec_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
10668static inline __ATTRS_o_ai vector signed short
10669vec_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
10676static inline __ATTRS_o_ai vector unsigned short
10677vec_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
10683static inline __ATTRS_o_ai vector unsigned short
10684vec_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
10689static inline __ATTRS_o_ai vector signed int
10690vec_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
10697static inline __ATTRS_o_ai vector unsigned int
10698vec_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
10704static inline __ATTRS_o_ai vector unsigned int
10705vec_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
10714static inline __ATTRS_o_ai vector unsigned char
10715vec_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
10721static inline __ATTRS_o_ai vector unsigned char
10722vec_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
10728static inline __ATTRS_o_ai vector unsigned char
10729vec_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
10734static inline __ATTRS_o_ai vector unsigned char
10735vec_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
10741static inline __ATTRS_o_ai vector unsigned char
10742vec_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
10748static inline __ATTRS_o_ai vector unsigned char
10749vec_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
10754static inline __ATTRS_o_ai vector unsigned char
10755vec_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
10761static inline __ATTRS_o_ai vector unsigned char
10762vec_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
10768static inline __ATTRS_o_ai vector unsigned char
10769vec_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
10780static inline __ATTRS_o_ai vector unsigned char
10781vec_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
10788static inline __ATTRS_o_ai vector unsigned char
10789vec_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
10796static inline __ATTRS_o_ai vector unsigned char
10797vec_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
10803static inline __ATTRS_o_ai vector unsigned char
10804vec_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
10811static inline __ATTRS_o_ai vector unsigned char
10812vec_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
10819static inline __ATTRS_o_ai vector unsigned char
10820vec_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
10826static inline __ATTRS_o_ai vector unsigned char
10827vec_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
10834static inline __ATTRS_o_ai vector unsigned char
10835vec_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
10842static inline __ATTRS_o_ai vector unsigned char
10843vec_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
10863